Qloraを使用して、中国の大手言語モデルを微調整します。
Qloraを使用してBaichuan-7Bを微調整すると、コードはより簡潔になります:https://github.com/taishan1994/baichuan-qlora-tuning
numpy == 1.24 . 2
pandas == 2.0 . 0
nltk == 3.7
transformers == 4.30 . 0. dev0
accelerate == 0.20 . 0. dev0
deepspeed == 0.9 . 2
peft == 0.4 . 0. dev0
datasets == 2.12 . 0
evaluate == 0.2 . 2
sentencepiece == 0.1 . 97
scipy == 1.10 . 1
icetk
cpm_kernels
mpi4py == 3.1 . 4 - - output #训练保存lora权重
- - - - chatglm
- - - - alpaca
- - - - bloom
- - data
- - - - msra
- - - - - - instruct_data
- - - - - - - - train . json #指令数据
- - model_hub
- - - - BELLE - 7 B - 2 M #bloom权重
- - - - chatglm - 6 b #chatGLM权重
- - - - 7 B : #英文LLaMA原始权重
- - - - 7 B - hf : #英文权重转换为hugging face格式权重
- - - - chinese - llama - plus - lora - 7 b : #中文llama-7b的lora权重
- - - - chinese - alpaca - plus - lora - 7 b : #中文alpaca-7b的lora权重
- - - - chinese - alpaca - 7 b : #合并lora后的最终的模型
- - - - tokenizer . model : #原始llama的7B文件
- - - - convert_llama_weights_to_hf . py #llama转换为hugging face格式
- - - - merge_llama_with_chinese_lora . py #合并lora到预训练模型
- - tools
- - - - get_version . py #获取python包版本
- - - - get_used_gpus . py #循环打印使用的GPU显卡
- - chat . py # 闲聊
- - qlora . py # 4bit训练
- - process . py # 测试处理数据Chatglm-6bダウンロードアドレス:Tsinghua University Cloud Disk(Tsinghua.edu.cn)
python qlora . py - - model_name = "chatglm" - - model_name_or_path = "./model_hub/chatglm-6b" - - trust_remote_code = True - - dataset = "msra" - - source_max_len = 128 - - target_max_len = 64 - - do_train - - save_total_limit = 1 - - padding_side = "left" - - per_device_train_batch_size = 8 - - do_eval - - bits = 4 - - save_steps = 10 - - gradient_accumulation_steps = 1 - - learning_rate = 1e-5 - - output_dir = "./output/chatglm/" - - lora_r = 8 - - lora_alpha = 32Facebookが公式にリリースしたLlamaモデルは、商業用途が禁止されており、公式のオープンソースモデルの重みはありません(ただし、インターネットにはすでにサードパーティのダウンロードアドレスがたくさんあります)。対応する許可に従うために、現在、完全なモデルの重みを公開することは不可能です。理解してください(現在も同じことが海外で真実です)。自分でダウンロードアドレスを検索してください。
python convert_llama_weights_to_hf.py --input_dir ./ --model_size 7B --output_dir ./7B-hf 。エラーが報告されている場合: If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0 pip install --upgrade protobuf==3.20.1 python convert_llama_weights_to_hf.py --input_dir ./ --model_size tokenizer_only --output_dir ./7B-hf 。最後に、7b-hfを取得できます。python merge_llama_with_chinese_lora.py --base_model "./7B-hf" --lora_model "./chinese-llama-plus-lora-7b,chinese-alpaca-plus-lora-7b" --output_type "huggingface" --output_dir "./chinese-alpaca-7b" 。最後に、中国アルパカ-7bを入手できます。 python qlora . py - - model_name = "chinese_alpaca" - - model_name_or_path = "./model_hub/chinese-alpaca-7b" - - trust_remote_code = False - - dataset = "msra" - - source_max_len = 128 - - target_max_len = 64 - - do_train - - save_total_limit = 1 - - padding_side = "right" - - per_device_train_batch_size = 8 - - do_eval - - bits = 4 - - save_steps = 10 - - gradient_accumulation_steps = 1 - - learning_rate = 1e-5 - - output_dir = "./output/alpaca/" - - lora_r = 8 - - lora_alpha = 32belle-7b-2mダウンロードアドレス:bellegroup/belle-7b-2m at main(huggingface.co)
python qlora . py - - model_name = "chinese_bloom" - - model_name_or_path = "./model_hub/BELLE-7B-2M" - - trust_remote_code = False - - dataset = "msra" - - source_max_len = 128 - - target_max_len = 64 - - do_train - - save_total_limit = 1 - - padding_side = "left" - - per_device_train_batch_size = 8 - - do_eval - - bits = 4 - - save_steps = 10 - - gradient_accumulation_steps = 1 - - learning_rate = 1e-5 - - output_dir = "./output/bloom/" - - lora_r = 8 - - lora_alpha = 32 python chat . py - - model_name "chatglm" - - base_model "./model_hub/chatglm-6b" - - tokenizer_path "./model_hub/chatglm-6b" - - lora_model "./output/chatglm/adapter_model" - - with_prompt - - interactive独自のデータをトレーニングする方法は?データ形式は次のとおりです。
{
"data" : [
{ "instruction" : "" , "input" : "" , "output" : "" },
{ "instruction" : "" , "input" : "" , "output" : "" },
...
]
}次に、データがqlora.pyで定義されている場所に独自のデータセットを追加します。最後に、コマンドを実行するときに関連するパラメーターを自分で定義します。
liucongg/chatglm-finetuning:chatglm-6bモデルに基づいて、フリーズ、ロラ、p調整などを含む微調整下流の特定のタスクが実行されます(github.com)
thudm/chatglm-6b:chatglm-6b:オープンバイリンガルダイアログ言語モデル|オープンソースバイリンガルダイアログ言語モデル(github.com)
Huggingface/peft:? PEFT:最先端のパラメーター効率の高い微調整。 (github.com)
YMCUI/中国 - ラマ - アルパカ:中国のllama&alpaca大手言語モデル +ローカルCPU/GPUトレーニング展開(中国Llama&Alpaca LLMS)(github.com)
lianjiatech/belle:ベル:みんなの大規模な言語モデルエンジン(オープンソース中国語の対話モデル)(github.com)
Artidoro/Qlora:Qlora:量子化されたLLMSの効率的な微調整(github.com)
どちらの心の優しい人、カド、あなたは最終的な効果を試すことができますか? AutoDLをレンタルするだけでは、目的を達成するのに十分ではありません