Llama3模型在4月18日公布后,国内开发者对Llama3模型进行了很多训练和适配,除了中文纯文本模型外,多模态版本也陆续在发布中。考虑到国内用户对Agent场景的需求,魔搭社区LLM&AIGC模型微调推理框架SWIFT基于Llama3-8b-instruct原始版本训练了通用中文模型,并保留且适配了中文Agent能力,这是开源社区中率先完整适配中文环境的通用Agent Llama3模型,后续会有更完整的评测报告产出。
模型链接:
https://modelscope.cn/models/swift/Llama3-Chinese-8B-Instruct-Agent-v1/summary
推荐用户直接使用swift进行推理或部署:
#安装依赖pipinstallms-swift-U
#推理swiftinfer--model_typellama3-8b-instruct--model_id_or_pathswift/Llama3-Chinese-8B-Instruct-Agent-v1
#部署swiftdeploy--model_typellama3-8b-instruct--model_id_or_pathswift/Llama3-Chinese-8B-Instruct-Agent-v1
本模型可以联合ModelScopeAgent框架使用,请参考:
https://github.com/modelscope/swift/blob/main/docs/source/LLM/Agent%E5%BE%AE%E8%B0%83%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5.md#%E6%90%AD%E9%85%8Dmodelscope-agent%E4%BD%BF%E7%94%A8
也欢迎开发者基于本模型及后续产出的v2或v3版本模型进行二次微调以获取更好的能力。
下面介绍如何使用SWIFT框架训练Llama3中文Agent模型
我们使用了魔搭官方框架SWIFT进行模型训练:https://github.com/modelscope/swift/tree/main,开发者如果希望训练Llama3中文版本可以参考下面的安装方式:
pipconfigsetglobal.index-urlhttps://mirrors.aliyun.com/pypi/simple/#安装ms-swiftgitclonehttps://github.com/modelscope/swift.gitcdswiftpipinstall-e'.[llm]'#环境对齐(通常不需要运行.如果你运行错误,可以跑下面的代码,仓库使用最新环境测试)pipinstall-rrequirements/framework.txt-Upipinstall-rrequirements/llm.txt-U
为了适配中文及Agent场景,我们针对语料进行了一定混合配比,训练Llama3使用的语料如下:
- COIG-CQIA:
https://modelscope.cn/datasets/AI-ModelScope/COIG-CQIA/summary 该数据集包含了中国传统知识、豆瓣、弱智吧、知乎等中文互联网信息
-魔搭通用Agent训练数据集:
https://modelscope.cn/datasets/AI-ModelScope/ms-agent-for-agentfabric/summary
-alpaca-en:
https://modelscope.cn/datasets/AI-ModelScope/alpaca-gpt4-data-en/summary
-ms-bench魔搭通用中文问答数据集:
https://modelscope.cn/datasets/iic/ms_bench/summary
SWIFT支持很多其他对训练有帮助的开源数据集,如
Firefly中文数据集
DeepCtrl多语数据集
Alpaca/ShareGPT
如开发者希望用其他数据集训练Llama3,只需要在命令行指定--dataset firefly-all-zh等即可使用它们。完整支持的数据集列表可以查看:https://github.com/modelscope/swift/blob/main/docs/source/LLM/%E6%94%AF%E6%8C%81%E7%9A%84%E6%A8%A1%E5%9E%8B%E5%92%8C%E6%95%B0%E6%8D%AE%E9%9B%86.md#%E6%95%B0%E6%8D%AE%E9%9B%86
我们将MLP和Embedder加入了lora_target_modules. 你可以通过指定--lora_target_modules ALL在所有的linear层(包括qkvo以及mlp和embedder)加lora. 这通常是效果最好的。
训练使用8卡进行,环境准备完成后,只需要如下命令即可开启训练:
NPROC_PER_NODE=8\swiftsft\--model_typellama3-8b-instruct\--datasetms-agent-for-agentfabric-defaultalpaca-enms-benchms-agent-for-agentfabric-additioncoig-cqia-ruozhibacoig-cqia-zhihucoig-cqia-examcoig-cqia-chinese-traditionalcoig-cqia-logi-qacoig-cqia-segmentfaultcoig-cqia-wiki\--batch_size2\--max_length2048\--use_loss_scaletrue\--gradient_accumulation_steps16\--learning_rate5e-5\--use_flash_attntrue\--eval_steps500\--save_steps500\--train_dataset_sample-1\--dataset_test_ratio0.1\--val_dataset_sample10000\--num_train_epochs2\--check_dataset_strategynone\--gradient_checkpointingtrue\--weight_decay0.01\--warmup_ratio0.03\--save_total_limit2\--logging_steps10\--sft_typelora\--lora_target_modulesALL\--lora_rank8\--lora_alpha32
为了提高ReACT格式的准确率,我们将部分loss字段的权重提高以保留中文训练中的agent能力表现。
训练后的模型可以在魔搭官网上下载:https://modelscope.cn/models/swift/Llama3-Chinese-8B-Instruct-Agent-v1/summary
该模型具备良好的中文问答能力,示例如下:
通用问答:
逻辑题:
对联:
藏头诗:
古文翻译:
代码能力:
我们使用swift的eval命令对训练模型的前后进行了通用能力评测,结果如下:
英文GSM8K能力下降了8个点左右,经过消融实验我们发现去掉alpaca-en语料会导致GSM8K下降至少十个点以上。
开发者也可以使用swift框架对其他模型进行评测,命令非常简单:
swifteval--model_typellama3-8b-instruct--model_id_or_typeLLM-Research/Meta-Llama-3-8B-Instruct--infer_backendpt--eval_datasetcevalarc
在ModelScope-Agent中使用可以参考我们的官方文档:https://github.com/modelscope/swift/blob/main/docs/source/LLM/Agent%E5%BE%AE%E8%B0%83%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5.md#%E5%9C%A8%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%B8%AD%E4%BD%BF%E7%94%A8agent
我们在服务部署后,可以在AgentFabric中校验其接口调用效果,以天气查询为例,可以看到:
模型可以按照system要求对查询进行补全。
文生图
图片解释
原版Llama3英文模型具备一定的CoT能力,在训练为中文时引入了一定的知识遗忘问题,此问题在V2版本中会继续解决
英文预料的比例需要调整,以保证原英文能力(如GSM8K这类敏感指标)
| 欢迎光临 链载Ai (https://www.lianzai.com/) | Powered by Discuz! X3.5 |