【书生·浦语系列课程之】XTuner: 自己微调开源模型 InternLM #203
maxchiron
started this conversation in
Show and tell
Replies: 1 comment
-
你好,我想询问下,生成的test数据集,在微调的时候不需要使用吗,该如何送入模型中 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
注意:本教程使用 xtuner 0.1.9 版本
若需要跟着本教程一步一步完成,建议执行如下安装步骤:
若出现莫名其妙报错,请尝试更换以下包的版本:
CUDA相关:(如果有报错再检查,没报错不用看)
目录
概述
Xtuner
一个大语言模型微调工具箱。由 MMRazor 和 MMDeploy 联合开发。
支持的开源LLM (2023.11.01)
特色
微调原理
※ 因此,你找到了一种叫 LoRA 的方法:只对玩具中的某些零件进行改动,而不是对整个玩具进行全面改动。
※ 而 QLoRA 是 LoRA 的一种改进:如果你手里只有一把生锈的螺丝刀,也能改造你的玩具。
快速上手
平台
Ubuntu + Anaconda + CUDA/CUDNN
安装
见文章开头
微调
XTuner 提供多个开箱即用的配置文件,用户可以通过下列命令查看:
注意最后有个英文句号,代表复制到当前路径
不用xtuner默认的
从huggingface拉取模型
,而是`提前从OpenXLab下载模型到本地不用xtuner默认的
从huggingface拉取数据集
,而是提前把数据集下载到本地
https://huggingface.co/datasets/timdettmers/openassistant-guanaco/tree/main
把这两个数据集放到
openassistant-guanaco
文件夹此时,当前路径的文件应该长这样:
修改其中的模型和数据集为 本地路径
常用超参
例如,我们可以利用 QLoRA 算法在 oasst1 数据集上微调 InternLM-7B:
单卡
多卡
NPROC_PER_NODE=${GPU_NUM} xtuner train ./internlm_chat_7b_qlora_oasst1_e3_copy.py
跑完训练后,当前路径应该长这样:
在本示例中,为:
此时,路径中应该长这样:
此时,hf文件夹即为我们平时所理解的所谓 “Lora模型文件”
部署与测试
xtuner chat
的启动参数自定义微调
概述
场景需求
基于 InternLM-chat-7B-V1.1模型,用MedQA数据集进行微调,将其往
医学问答
领域对齐。真实数据预览
数据准备
原格式:(.xlsx)
目标格式:(.jsonL)
🧠通过python脚本:将.xlsx中的 问题 和 回答 两列 提取出来,再放入.jsonL文件的每个conversation的input和output中。
生成的python代码:
执行python脚本,获得格式化后的数据集:
格式化后的数据集长这样:

生成的python代码:
此时,我们重新建一个文件夹来玩“微调自定义数据集”
把前面下载好的internlm-chat-7b-v1_1模型文件夹拷贝过来,或者重新运行下载代码也行。最好不要用软连接,有可能会出问题。因为openxlab本身已使用软连接管理模型路径,所以即使重新运行下载代码,也会很快完成。
别忘了把自定义数据集,即几个.jsonL,也传到服务器上。
减号代表要删除的行,加号代表要增加的行。
同前述,这里不赘述了。
同前述。
【补充】用MS-Agent数据集 赋予LLM以Agent能力
概述
MSAgent 数据集每条样本包含一个对话列表(conversations),其里面包含了 system、user、assistant 三种字段。其中:
system: 表示给模型前置的人设输入,其中有告诉模型如何调用插件以及生成请求
user: 表示用户的输入prompt,分为两种,通用生成的prompt和调用插件需求的 prompt
assistant: 为模型的回复。其中会包括插件调用代码和执行代码,调用代码是要 LLM 生成的,而执行代码是调用服务来生成结果的
一条调用网页搜索插件查询“上海明天天气”的数据样本示例如下图所示:

步骤
步骤0: 查看并复制配置文件
步骤1: 修改配置文件
Beta Was this translation helpful? Give feedback.
All reactions