Llama3 中文通用Agent微调模型来啦!(附手把手微调实战教程)

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: Llama3模型在4月18日公布后,国内开发者对Llama3模型进行了很多训练和适配,除了中文纯文本模型外,多模态版本也陆续在发布中。

前言

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进行推理或部署:

# 安装依赖
pip install ms-swift -U
# 推理
swift infer --model_type llama3-8b-instruct --model_id_or_path swift/Llama3-Chinese-8B-Instruct-Agent-v1
# 部署
swift deploy --model_type llama3-8b-instruct --model_id_or_path swift/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中文版本可以参考下面的安装方式:

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
# 安装ms-swift
git clone https://github.com/modelscope/swift.git
cd swift
pip install -e '.[llm]'
# 环境对齐 (通常不需要运行. 如果你运行错误, 可以跑下面的代码, 仓库使用最新环境测试)
pip install -r requirements/framework.txt  -U
pip install -r requirements/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. 这通常是效果最好的。

超参数

lr

5e-5

epoch

2

lora_rank

8

lora_alpha

32

lora_target_modules

ALL

batch_size

2

gradient_accumulation_steps

16

训练使用8卡进行,环境准备完成后,只需要如下命令即可开启训练:

NPROC_PER_NODE=8 \
swift sft \
  --model_type llama3-8b-instruct \
  --dataset ms-agent-for-agentfabric-default alpaca-en ms-bench ms-agent-for-agentfabric-addition coig-cqia-ruozhiba coig-cqia-zhihu coig-cqia-exam coig-cqia-chinese-traditional coig-cqia-logi-qa coig-cqia-segmentfault coig-cqia-wiki \
  --batch_size 2 \
  --max_length 2048 \
  --use_loss_scale true \
  --gradient_accumulation_steps 16 \
  --learning_rate 5e-5 \
  --use_flash_attn true \
  --eval_steps 500 \
  --save_steps 500 \
  --train_dataset_sample -1 \
  --dataset_test_ratio 0.1 \
  --val_dataset_sample 10000 \
  --num_train_epochs 2 \
  --check_dataset_strategy none \
  --gradient_checkpointing true \
  --weight_decay 0.01 \
  --warmup_ratio 0.03 \
  --save_total_limit 2 \
  --logging_steps 10 \
  --sft_type lora \
  --lora_target_modules ALL \
  --lora_rank 8 \
  --lora_alpha 32

为了提高ReACT格式的准确率,我们将部分loss字段的权重提高以保留中文训练中的agent能力表现。

训练后的模型可以在魔搭官网上下载:https://modelscope.cn/models/swift/Llama3-Chinese-8B-Instruct-Agent-v1/summary

推理效果

该模型具备良好的中文问答能力,示例如下:

通用问答:

image.png

image.png

逻辑题:

image.png

image.png

image.png

对联:

image.png

藏头诗:

image.png

古文翻译:

image.png

代码能力:

image.png

评测

我们使用swift的eval命令对训练模型的前后进行了通用能力评测,结果如下:

评测模型

ARC

CEVAL

GSM8K

Llama3-8b-instruct

0.7645

0.5089

0.7475

Llama3-Chinese-8B-Instruct-Agent-v1

0.7577

0.4903

0.652

英文GSM8K能力下降了8个点左右,经过消融实验我们发现去掉alpaca-en语料会导致GSM8K下降至少十个点以上。

开发者也可以使用swift框架对其他模型进行评测,命令非常简单:

swift eval --model_type llama3-8b-instruct --model_id_or_type LLM-Research/Meta-Llama-3-8B-Instruct --infer_backend pt --eval_dataset ceval arc

和ModelScope-Agent联用

在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中校验其接口调用效果,以天气查询为例,可以看到:

image.png

image.png

模型可以按照system要求对查询进行补全。

文生图

image.png

图片解释

image.png

image.png

image.png

image.png

待提升工作

  1. 原版Llama3英文模型具备一定的CoT能力,在训练为中文时引入了一定的知识遗忘问题,此问题在V2版本中会继续解决
  2. 英文预料的比例需要调整,以保证原英文能力(如GSM8K这类敏感指标)

点击直达模型链接

Llama3中文8BAgent模型v1版本 · 模型库 (modelscope.cn)

相关文章
|
4天前
|
物联网 测试技术 API
LLM 大模型学习必知必会系列(九):Agent微调最佳实践,用消费级显卡训练属于自己的Agent!
LLM 大模型学习必知必会系列(九):Agent微调最佳实践,用消费级显卡训练属于自己的Agent!
LLM 大模型学习必知必会系列(九):Agent微调最佳实践,用消费级显卡训练属于自己的Agent!
|
2天前
|
机器学习/深度学习 人工智能 测试技术
世界模型也扩散!训练出的智能体竟然不错
【5月更文挑战第30天】研究人员提出了一种名为DIAMOND的新方法,将扩散模型应用于世界模型以增强强化学习智能体的训练。DIAMOND在Atari 100k基准测试中实现了1.46的人类标准化得分,刷新了完全在世界模型中训练的智能体的记录。通过生成视觉细节,智能体在多个游戏中超越人类玩家,特别是在需要精细细节识别的游戏上。不过,DIAMOND在连续控制环境和长期记忆方面的应用仍需改进。这项工作开源了代码和模型,促进了未来相关研究。论文链接:[https://arxiv.org/abs/2405.12399](https://arxiv.org/abs/2405.12399)
9 2
|
3天前
|
物联网 PyTorch 测试技术
LLM 大模型学习必知必会系列(十):基于AgentFabric实现交互式智能体应用,Agent实战
LLM 大模型学习必知必会系列(十):基于AgentFabric实现交互式智能体应用,Agent实战
LLM 大模型学习必知必会系列(十):基于AgentFabric实现交互式智能体应用,Agent实战
|
6天前
|
人工智能 自然语言处理 机器人
B端Agent的机会,不在于“助手”,而在基于垂直领域的任务式Agent微调
该文讨论了AI助手在企业服务中的应用,指出通用的“助手”Agent(如Coze、钉钉)在B端业务场景中表现一般,因为它们依赖用户正确指导且易发散。相比之下,任务式Agent(如TFlow)针对特定行业和场景进行微调,能更好地理解和执行复杂任务,具有更高准确性和稳定性,适合企业业务流程。TFlow的优势包括场景微调、优化流程处理,开发和使用成本较低,能直接解决实际业务问题。作者认为,B端Agent的机会在于为企业降低成本或增加效益,而任务式Agent通过微调形成的适配性成为其核心竞争力。
|
14天前
|
存储 人工智能 API
文心大模型的智能体(Agent)平台
文心智能体平台是百度推出的大模型开发平台,支持各类开发者创建个性化智能体(Agent)和AI插件。平台提供零代码、低代码工具,让不同能力的开发者能轻松构建智能体,同时具备大模型的强大能力,如内容创作和多模态生成。智能体具备主动思考、理解和记忆功能,可在多个场景下与用户互动。AI插件则扩展了大模型的应用,包括信息检索、多模态交互和服务自动化等。平台还提供流量分发,助力商业闭环。了解更多:[文心智能体平台介绍](https://chatgpt.ciilii.com/show/news-715.html)。
|
18天前
|
测试技术 决策智能
专业智能体指导让小模型学会数学推理!微调Mistral-7B实现86.81%准确率
【5月更文挑战第13天】Orca-Math研究展示如何用小模型解决小学数学题,通过70亿参数的SLM在GSM8K基准测试上达到86.81%准确率。采用合成数据集和迭代学习技术,包括多智能体协作创建问题集及“偏好学习”优化解决方案。虽优于其他大、小模型,但可能不适用于复杂数学问题,且依赖高质量合成数据集的创建。[论文链接](https://arxiv.org/abs/2402.14830)
27 4
|
18天前
|
XML JSON API
【AIGC】LangChain Agent 最新教程详解及示例学习
【5月更文挑战第5天】LangChain Agent全网最全最新教程学习及示例学习
223 0
|
18天前
|
人工智能 API 决策智能
【AI Agent系列】【阿里AgentScope框架】实战1:利用AgentScope实现动态创建Agent和自由组织讨论
【AI Agent系列】【阿里AgentScope框架】实战1:利用AgentScope实现动态创建Agent和自由组织讨论
234 2
|
18天前
|
人工智能 决策智能 C++
【AI Agent教程】【MetaGPT】案例拆解:使用MetaGPT实现“狼人杀“游戏(1)- 整体框架解析
【AI Agent教程】【MetaGPT】案例拆解:使用MetaGPT实现“狼人杀“游戏(1)- 整体框架解析
205 1
|
18天前
|
人工智能 搜索推荐 决策智能
【AI Agent系列】【阿里AgentScope框架】1. 深入源码:详细解读AgentScope中的智能体定义以及模型配置的流程
【AI Agent系列】【阿里AgentScope框架】1. 深入源码:详细解读AgentScope中的智能体定义以及模型配置的流程
183 0