chatglm2_finetuning
1.0.0
2024-04-22 简化
2023-10-09 support accelerator trainer
2023-10-07 support colossalai trainer
2023-09-26 support transformers trainer
2023-08-16 解除 chatglm2-6b-int4 全参训练限制, 推理可选使用 Rope NtkScale , 不训练扩展推理长度
2023-08-02 增加 muti lora infer 例子, 手动升级 aigc_zoo , pip install -U git+https://github.com/ssbuild/deep_training.zoo.git --force-reinstall --no-deps
2023-07-18 微调经验分享见: https://github.com/ssbuild/aigc_zoo#训练经验分享
2023-07-16 modify data strategy
2023-07-04 support ptv2 and arrow_stream,arrow_file,parquet dataset
dev 通过一下方式安装
pip install -U git+https://github.com/ssbuild/deep_training.git
pip install -U transformers>=4.30 deepspeed xformers bitsandbytes>=0.39 accelerate>=0.20
Contoh data tunggal
q question
a answer
{ "id" : 1 , "paragraph" : [{ "q" : "从南京到上海的路线" , "a" : [ "你好,南京到上海的路线如下: " , " 1. 南京到上海,可以乘坐南京地铁1号线,在南京站乘坐轨道交通1号线。 " , " 2. 南京到浦东机场,可以搭乘上海地铁1号,在陆家嘴站乘坐地铁1线,在浦东国际机场站乘坐机场快线,前往上海浦东国际机场。 " , " 3. 上海到南京,可以换乘上海地铁2号线,从南京站换乘地铁2线,再从南京南站换乘地铁1路,然后到达上海站" ]}]}
{ "id" : 2 , "paragraph" : [{ "q" : "写一个诗歌,关于冬天" , "a" : [ "冬夜寂静冷, " , "云在天边飘, " , "冰封白雪上, " , "寒冷像一场雪。 " , " " , "雪花融化成冰, " , "像那雪花飘洒, " , "在寒冷的冬天, " , "感受春天的喜悦。 " , " 冬日里, " , "风雪渐消, " , "一片寂静, " , "把快乐和温暖带回家。 " ]}]}
{"id": 3, "paragraph": [{"q": "晚上睡不着应该怎么办", "a": ["晚上睡不着可能会让你感到焦虑或不舒服,但以下是一些可以帮助你入睡的方法:", "", "1. 制定规律的睡眠时间表:保持规律的睡眠时间表可以帮助你建立健康的睡眠习惯,使你更容易入睡。尽量在每天的相同时间上床,并在同一时间起床。", "2. 创造一个舒适的睡眠环境:确保睡眠环境舒适,安静,黑暗且温度适宜。可以使用舒适的床上用品,并保持房间通风。", "3. 放松身心:在睡前做些放松的活动,例如泡个热水澡,听些轻柔的音乐,阅读一些有趣的书籍等,有助于缓解紧张和焦虑,使你更容易入睡。", "4. 避免饮用含有咖啡因的饮料:咖啡因是一种刺激性物质,会影响你的睡眠质量。尽量避免在睡前饮用含有咖啡因的饮料,例如咖啡,茶和可乐。", "5. 避免在床上做与睡眠无关的事情:在床上做些与睡眠无关的事情,例如看电影,玩游戏或工作等,可能会干扰你的睡眠。", "6. 尝试呼吸技巧:深呼吸是一种放松技巧,可以帮助你缓解紧张和焦虑,使你更容易入睡。试着慢慢吸气,保持几秒钟,然后缓慢呼气。", "", "如果这些方法无法帮助你入睡,你可以考虑咨询医生或睡眠专家,寻求进一步的建议。"]}]}
atau
{ "id" : 1 , "conversations" : [{ "from" : " user " , "value" : "从南京到上海的路线" }, { "from" : " assistant " , "value" : [ "你好,南京到上海的路线如下: " , " 1. 南京到上海,可以乘坐南京地铁1号线,在南京站乘坐轨道交通1号线。 " , " 2. 南京到浦东机场,可以搭乘上海地铁1号,在陆家嘴站乘坐地铁1线,在浦东国际机场站乘坐机场快线,前往上海浦东国际机场。 " , " 3. 上海到南京,可以换乘上海地铁2号线,从南京站换乘地铁2线,再从南京南站换乘地铁1路,然后到达上海站" ]}]}
{ "id" : 2 , "conversations" : [{ "from" : " user " , "value" : "写一个诗歌,关于冬天" }, { "from" : " assistant " , "value" : [ "冬夜寂静冷, " , "云在天边飘, " , "冰封白雪上, " , "寒冷像一场雪。 " , " " , "雪花融化成冰, " , "像那雪花飘洒, " , "在寒冷的冬天, " , "感受春天的喜悦。 " , " 冬日里, " , "风雪渐消, " , "一片寂静, " , "把快乐和温暖带回家。 " ]}]}
{"id": 3, "conversations": [{"from": "user", "value": "晚上睡不着应该怎么办"}, {"from": "assistant", "value": ["晚上睡不着可能会让你感到焦虑或不舒服,但以下是一些可以帮助你入睡的方法:", "", "1. 制定规律的睡眠时间表:保持规律的睡眠时间表可以帮助你建立健康的睡眠习惯,使你更容易入睡。尽量在每天的相同时间上床,并在同一时间起床。", "2. 创造一个舒适的睡眠环境:确保睡眠环境舒适,安静,黑暗且温度适宜。可以使用舒适的床上用品,并保持房间通风。", "3. 放松身心:在睡前做些放松的活动,例如泡个热水澡,听些轻柔的音乐,阅读一些有趣的书籍等,有助于缓解紧张和焦虑,使你更容易入睡。", "4. 避免饮用含有咖啡因的饮料:咖啡因是一种刺激性物质,会影响你的睡眠质量。尽量避免在睡前饮用含有咖啡因的饮料,例如咖啡,茶和可乐。", "5. 避免在床上做与睡眠无关的事情:在床上做些与睡眠无关的事情,例如看电影,玩游戏或工作等,可能会干扰你的睡眠。", "6. 尝试呼吸技巧:深呼吸是一种放松技巧,可以帮助你缓解紧张和焦虑,使你更容易入睡。试着慢慢吸气,保持几秒钟,然后缓慢呼气。", "", "如果这些方法无法帮助你入睡,你可以考虑咨询医生或睡眠专家,寻求进一步的建议。"]}]} # infer.py 推理预训练模型
# infer_finetuning.py 推理微调模型
# infer_lora_finetuning.py 推理lora微调模型
python infer.py
| Level kuantitatif | Memori video GPU minimum |
|---|---|
| FP16 (kuantitatif) | 13 GB |
| Int8 | 10 GB |
| Int4 | 6 GB |


# 制作数据
cd scripts
bash train_full.sh -m dataset
or
bash train_lora.sh -m dataset
or
bash train_ptv2.sh -m dataset
注: num_process_worker 为多进程制作数据 , 如果数据量较大 , 适当调大至cpu数量
dataHelper.make_dataset_with_args(data_args.train_file,mixed_data=False, shuffle=True,mode='train',num_process_worker=0)
# 全参数训练
bash train_full.sh -m train
# lora adalora ia3
bash train_lora.sh -m train
# ptv2
bash train_ptv2.sh -m train
Parameter pelatihan
纯粹而干净的代码
https://huggingface.co/THUDM/chatglm2-6b