《(4)XTuner 大模型单卡低成本微调实战》
课程文档:《XTuner 大模型单卡低成本微调实战》
1 Finetune简介
LLM的下游应用中,增量预训练和指令跟随是经常会用到两种的微调模式
1.1 增量预训练微调
使用场景:让基座模型学习到一些新知识,如某个垂类领域的常识
训练数据:文章、书籍、代码等
1.2 指令跟随微调
使用场景:让模型学会对话模板,根据人类指令进行对话
训练数据:高质量的对话、问答数据
1.2.1 对话角色
指令跟随微调是为了得到能够实际对话的LLM;
介绍指令跟随微调前,需要先了解如何使用LLM进行对话;
在实际对话时,通常会有三种角色
- System:给定一些上下文信息,比如“你是一个安全的AI助手”
- User:实际用户,会提出一些问题,比如T世界第一高峰是?”
- Assistant:根据User的输入,结合System的上下文信息,做出回答,比如“珠穆朗玛峰”
在使用对话模型时,通常是不会感知到这三种角色的;
1.2.2 对话模板
对话模板是为了能够让LLM区分出,System、User和Assistant;
不同的模型会有不同的模板;
LlaMa 2 模板
- <<SYS>>: System上下文开始
- <</SYS>>: System上下文结束
- [INST]: User指令开始
- [/INST]: User 指令结束
InternLM模板
- <|System|>: System上下文开始
- <|User|>: User指令开始
- <eoh>: End of Human,User 指令结束
- <|Bot|>: Assistant开始回答
- : End of Assistant,Assistant 回答结束
4 动手实战环节
在InternStudio平台中选择 A100(1/4) 的配置,镜像选择 Cuda11.7-conda
;
5 XTuner InternLM-Chat 个人小助手认知微调实践
5.2.2 数据准备
对话数据要复制很多份,直到训练后出现效果才可以;
5.2.3 配置准备
Note:修改示例代码中的每一行都要进行替换,包括
evaluation_inputs
属性。
5.2.4 微调启动
cd /root/personal_assistant/config && xtuner train /root/personal_assistant/config/internlm_chat_7b_qlora_oasst1_e3_copy.py
5.2.5 微调后参数转换/合并
Note:如果是重复测试,微调前需要删除
hf
和hf_merge
文件夹。
5.2.6 网页DEMO
请介绍一下你自己
Troubleshooting
(1)“在 Windows-PS 终端上执行ssh-keygen -t rsa
卡住无响应”
在 Windows-PS 终端上执行ssh-keygen -t rsa
命令,PS终端显示:
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\xxx/.ssh/id_rsa):_
然后提示符在闪烁,不过10分钟左右之后却一直没有任何响应;
开启pig导致无法正常使用ssh
命令;
关闭pig软件再使用ssh
命令;