Llama 3 Agent 能力体验+微调

Llama 3 Agent 能力体验+微调

    正在检查是否收录...

Llama 3 Agent 能力体验+微调(Lagent 版)

微调过程

本次实验基于AutoDL平台使用A40显卡做的实验,使用 XTuner 在 Agent-FLAN 数据集上微调 Llama3-8B-Instruct,以让 Llama3-8B-Instruct 模型获得智能体能力。Agent-FLAN数据集是上海人工智能实验室 InternLM 团队所推出的一个智能体微调数据集,其通过将原始的智能体微调数据以多轮对话的方式进行分解,对数据进行能力分解并平衡,以及加入负样本等方式构建了高效的智能体微调数据集,从而可以大幅提升模型的智能体能力。

环境的配置

首先创建一个cuda虚拟环境,命令如下:

conda create -n llama3 python=3.10 conda activate llama3 pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 --index-url https://download.pytorch.org/whl/cu118 

查看安装的环境包

安装Git

conda install git-lfs 

使用git命令下载Xtuner

git clone -b v0.1.18 https://github.com/InternLM/XTuner 

安装Xtuner相关的依赖包,命令如下:

cd XTuner pip install -e .[all] 

clone Llama3-Tutorial的代码

cd .. git clone https://github.com/SmartFlowAI/Llama3-Tutorial 

模型的准备

选择从gitee Al网站下载Meta-Llama-3-8B-Instruct 的权重,然后使用Xftp上传到AutoDL租用的A40显卡中。

数据集准备

首先先来下载数据:

cd ~ git clone https://huggingface.co/datasets/internlm/Agent-FLAN 

在 SmartFlowAI/Llama3-Tutorial 仓库中已经准备好了相关转换脚本。

python /root/autodl-tmp/Llama3-Tutorial/tools/convert_agentflan.py /root/autodl-tmp/Agent-FLAN/data 

在显示下面的内容后,就表示已经转换好了。转换好的数据位于 /root/autodl-tmp/Agent-FLAN/data_converted

微调启动

安装deepspeed库

pip install deepspeed 

使用如下指令以启动训练:

export MKL_SERVICE_FORCE_INTEL=1 xtuner train /root/autodl-tmp/Llama3-Tutorial/configs/llama3-agentflan/llama3_8b_instruct_qlora_agentflan_3e.py --work-dir /root/autodl-tmp/agent-flan-hf --deepspeed deepspeed_zero2 

会出现下图错误

此时使用命令编辑文件,修改路径地址即可。

vim /root/autodl-tmp/Llama3-Tutorial/configs/llama3-agentflan/llama3_8b_instruct_qlora_agentflan_3e.py 


修改之后,继续运行微调命令,会出现下图问题。

发现缺少mpipy4包,安装mpi4py包。

pip install mpi4py 


此时参考这篇博客执行下列命令,安装即可。

 conda install -c conda-forge mpi4py mpich 

安装完成后,重新运行微调命令,即可进行训练。

训练完成后,进行转换权重。

#转换权重 xtuner convert pth_to_hf ~/Llama3-Tutorial/configs/llama3-agentflan/llama3_8b_instruct_qlora_agentflan_3e.py \ /root/autodl-tmp/agent-flan-hf/iter_2316.pth \ /root/autodl-tmp/agent-flan-hf/iter_2316_hf 

由于训练时间太久,选择官方已经训练好且转换为 HuggingFace 格式的权重。
接下来使用指令合并权重:

# 合并权重 export MKL_SERVICE_FORCE_INTEL=1 xtuner convert merge /root/autodl-tmp/model \ /root/autodl-tmp/agent-flan-hf/iter_2316_hf \ /root/autodl-tmp/agent-flan-hf/mergecd 

Llama3 ReAct Demo

首先使用基于 Lagent 的 Web Demo 来直观体验一下 Llama3 模型在 ReAct 范式下的智能体能力。安装lagent。

pip install lagent 

我们让它使用 ArxivSearch 工具来搜索 InternLM2 的技术报告。 使用以下命令:

 streamlit run /root/autodl-tmp/Llama3-Tutorial/tools/agent_web_demo.py /root/autodl-tmp/model --server.port 6006 

此时打开AutoDL上边A40卡的自定义服务即可访问demo实例。
从下图中可以看到,Llama3-8B-Instruct 模型并没有成功调用工具。原因在于它输出了 query=InternLM2 Technical Report 而非 {‘query’: ‘InternLM2 Technical Report’},这也就导致了 ReAct 在解析工具输入参数时发生错误,进而导致调用工具失败。

Llama3+Agent-FLAN ReAct Demo

在合并权重后,我们再次使用 Web Demo 体验一下它的智能体能力吧。

streamlit run /root/autodl-tmp/Llama3-Tutorial/tools/agent_web_demo.py /root/autodl-tmp/agent-flan-hf/mergecd --server.port 6006 

从下图可以看到,经过 Agent-FLAN 数据集的微调后,Llama3-8B-Instruct 模型已经可以成功地调用工具了,其智能体能力有了很大的提升。

本次实验参考Llama3-Tutorial这个教程,有兴趣者可以访问了解一下。

llamagit智能体数据集reactwebcloneamlstreamlitintelhuggingfaceflowpythongithubsmart解析工具urlcreate人工智能iva
  • 本文作者:李琛
  • 本文链接: https://wapzz.net/post-14918.html
  • 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。
本站部分内容来源于网络转载,仅供学习交流使用。如涉及版权问题,请及时联系我们,我们将第一时间处理。
文章很赞!支持一下吧 还没有人为TA充电
为TA充电
还没有人为TA充电
0
  • 支付宝打赏
    支付宝扫一扫
  • 微信打赏
    微信扫一扫
感谢支持
文章很赞!支持一下吧
关于作者
2.3W+
5
0
1
WAP站长官方

深入解析CICADA爬虫:原理、应用与未来发展

上一篇

自动爬虫技术:探索数据的新境界

下一篇
  • 复制图片
按住ctrl可打开默认菜单