微信扫码
与创始人交个朋友
我要投稿
本文转载自机智流社区,作者樊奇
4 月 18 日 Meta 发布了最新的开源大模型 Llama 3。书生·浦语和机智流社区在第一时间使用了 Lagent 测试了 Llama 3 React 范式下的 Agent 工具调用能力,并使用 XTuner 在 Agent-FLAN 数据集上对 Llama 3 工具调用能力进行微调增强,快来看看社区同学是怎么做的吧!
Lagent:(文末点击阅读原文可直达)
首先我们先来使用基于 Lagent1 的 Web Demo 来直观体验一下 Llama3 模型在 ReAct 范式下的智能体能力。我们让它使用 ArxivSearch 工具来搜索 InternLM2 的技术报告。
从图中可以看到,Llama3-8B-Instruct 模型并没有成功调用工具。原因在于它输出了 query=InternLM2 Technical Report
而非 {'query': 'InternLM2 Technical Report'}
,这也就导致了 ReAct 在解析工具输入参数时发生错误,进而导致调用工具失败。
接下来我们带大家使用 XTuner2 在 Agent-FLAN 数据集上微调 Llama3-8B-Instruct,以让 Llama3-8B-Instruct 模型获得智能体能力。
Agent-FLAN3 数据集是上海人工智能实验室 InternLM 团队所推出的一个智能体微调数据集,其通过将原始的智能体微调数据以多轮对话的方式进行分解,对数据进行能力分解并平衡,以及加入负样本等方式构建了高效的智能体微调数据集,从而可以大幅提升模型的智能体能力。
我们先来配置相关环境。使用如下指令便可以安装好一个 python=3.10 pytorch=2.1.2+cu121 的基础环境了。
conda create -n llama3 python=3.10
conda activate llama3
conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=12.1 -c pytorch -c nvidia
接下来我们安装 XTuner。
cd ~
git clone -b v0.1.18 https://github.com/InternLM/XTuner
cd XTuner
pip install -e .
在微调开始前,我们首先来准备 Llama3-8B-Instruct 模型权重。
cd ~
ln -s /root/new_models/meta-llama/Meta-Llama-3-8B-Instruct .
我们选择从 OpenXLab 上下载 Meta-Llama-3-8B-Instruct 的权重。
cd ~
git lfs install
git clone https://code.openxlab.org.cn/MrCat/Llama-3-8B-Instruct.git Meta-Llama-3-8B-Instruct
由于 HuggingFace 上的 Agent-Flan 数据集暂时无法被 XTuner 直接加载,因此我们首先要下载到本地,然后转换成 XTuner 直接可用的格式。
如果是在 InternStudio 上,我们已经准备好了一份转换好的数据,可以直接通过如下脚本准备好:
cd ~
ln -s /root/new_models/internlm/Agent-Flan .
首先先来下载数据:
cd ~
git lfs install
git clone https://huggingface.co/datasets/internlm/Agent-FLAN
我们已经在 SmartFlowAI/Llama3-Tutorial 仓库中已经准备好了相关转换脚本,更多细节可以访问 https://github.com/SmartFlowAI/Llama3-Tutorial 。
cd ~
git clone https://github.com/SmartFlowAI/Llama3-Tutorial
python ~/Llama3-Tutorial/tools/convert_agentflan.py ~/Agent-Flan/data
在显示下面的内容后,就表示已经转换好了。转换好的数据位于 ~/Agent-Flan/data_converted
Saving the dataset (1/1 shards): 100%|█████████████████████████████████████| 34442/34442
我们已经为大家准备好了可以一键启动的配置文件,主要是修改好了模型路径、对话模板以及数据路径。
我们使用如下指令以启动训练:
mkdir -p ~/project/llama3-ft
cd ~/project/llama3-ft
xtuner train ~/Llama3-Tutorial/configs/llama3-agentflan/llama3_8b_instruct_qlora_agentflan_3e.py --work_dir ~/project/llama3-ft/agent-flan
在训练完成后,我们将权重转换为 HuggingFace 格式,并合并到原权重中。
# 转换权重
xtuner convert pth_to_hf ~/Llama3-Tutorial/configs/llama3-agentflan/llama3_8b_instruct_qlora_agentflan_3e.py
~/project/llama3-ft/agent-flan/iter_18516.pth \
~/project/llama3-ft/agent-flan/iter_18516_hf
# 合并权重
export MKL_SERVICE_FORCE_INTEL=1
xtuner convert merge ~/Meta-Llama-3-8B-Instruct \
~/project/llama3-ft/agent-flan/iter_18516_hf
~/project/llama3-ft/agent-flan/merged
在合并权重后,我们再次使用 Web Demo 体验一下它的智能体能力吧~
可以看到,经过 Agent-FLAN 数据集的微调后,Llama3-8B-Instruct 模型已经可以成功地调用工具了,其智能体能力有了很大的提升。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-08-18
当产品经理谈到用LLM Agent构建新一代智能体的时候,他们在说什么?
2024-08-15
对话AI教育从业者们:AI如何解决因材施教的难题?
2024-08-03
工业应用中的向量数据库与知识向量化存储方案
2024-07-25
两大深度学习框架TensorFlow与PyTorch对比
2024-07-17
让生成式 AI 触手可及:NVIDIA NIM on VKE 部署实践
2024-07-16
中文大模型基准测评2024上半年报告
2024-07-16
一文看懂人工智能的起源、发展、三次浪潮与未来趋势
2024-07-14
"自拍" 秒变 "证件照" 看Coze如何实现
2024-05-14
2024-04-26
2024-05-22
2024-04-12
2024-03-30
2024-07-18
2024-05-10
2024-08-13
2024-04-25
2024-04-26
2024-09-24
2024-09-23
2024-09-22
2024-09-22
2024-09-22
2024-09-21
2024-09-21
2024-09-20