Use Qlora para ajustar o modelo de grande idioma chinês.
Use Qlora para ajustar Baichuan-7b, e o código é mais conciso: 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 # 测试处理数据Endereço de download do 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 = 32O modelo LLAMA lançado oficialmente pelo Facebook é proibido de uso comercial, e o oficial não possui pesos oficiais do modelo de código aberto (embora já existam muitos endereços de download de terceiros na Internet). Para seguir a permissão correspondente, atualmente é impossível publicar os pesos completos do modelo. Por favor, entenda (o mesmo é verdadeiro no exterior). Pesquise você mesmo o endereço de download.
python convert_llama_weights_to_hf.py --input_dir ./ --model_size 7B --output_dir ./7B-hf . Se um erro for relatado: 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 , você pode pip install --upgrade protobuf==3.20.1 e depois: python convert_llama_weights_to_hf.py --input_dir ./ --model_size tokenizer_only --output_dir ./7B-hf . Finalmente, podemos obter 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" . Finalmente, podemos obter chinês-alpaca-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 Endereço do download: Bellegroup/Belle-7b-2M em 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 - - interactiveComo treinar seus próprios dados? O formato de dados é:
{
"data" : [
{ "instruction" : "" , "input" : "" , "output" : "" },
{ "instruction" : "" , "input" : "" , "output" : "" },
...
]
}Em seguida, adicione seu próprio conjunto de dados no local onde os dados são definidos em qlora.py. Por fim, defina os parâmetros relevantes ao executar o comando.
LIUCONGG/CHATGLM-FINETUNING: Com base no modelo ChatGLM-6B, são realizadas tarefas específicas a jusante de ajuste fino, envolvendo congelamento, lora, tuniling p, etc. (github.com)
Thudm/chatglm-6b: chatglm-6b: um modelo de idioma de diálogo bilíngue aberto | Modelo de diálogo bilíngue de código aberto (github.com)
Huggingface/peft :? PEFT: ajuste fino com eficiência de parâmetro de última geração. (github.com)
Ymcui/chinês-llama-alpaca: Modelo de Lançamento grande e alpaca chinês + implantação local de treinamento da CPU/GPU (llama e Alpaca LLMs chineses) (github.com)
Lianjiatech/Belle: Belle: Be All Language Model Engine (modelo de diálogo chinês de código aberto) (github.com)
Artidoro/Qlora: Qlora: Finetuning eficiente de LLMs quantizados (github.com)
Que pessoa bondosa, Kado, você pode tentar o efeito final? Alugar o Autodl não é suficiente para sobreviver