基于LLaMA-Factory的模型微调训练 #186
Labels
No Label
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: HswOAuth/llm_course#186
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Auto DL 租用实例
选则硬件
选择镜像
进入Jupyter Notebook
安装LLaMA-Factory
源码下载
创建虚拟环境并安装依赖
验证是否安装成功:
使用LLaMA-Factory运行基座模型
启动web界面
设置隧道
运行基座模型
设置隧道后,应该可以通过本机地址:http://127.0.0.1:7860打开llamafactory的ui界面,通过在Lang选项卡中,选择
zh
即可将界面调整为中文。在模型名称中选择GLM-4-9B-chat;
在chat选项卡中选择加载模型。
我们回到命令行窗口,可以看到,模型正在下载:
模型测试及微调
测试微调前模型的对话能力
使用LLaMA-Factory微调大模型
准备my_demo.json文件并更新dataset_info.json文件
在如下位置
~/LLaMAFactory/data/
,创建一个名为my_demo.json
的文件,内容如下:准备完成后,需要对data_info.json文件进行更新。
打开
~/LLaMA-Factory/data/dataset_info.json
文件:将
my_demo
数据块,加入到文件的开头处,保存即可。在LLaMA_Factory中选择微调数据集
刷新一下页面,然后选择
my_demo
数据集:点击“预览数据”可以看到我们刚加入的数据已经生效了:
开始微调
在开始微调新的模型前,先卸载旧的模型,否则会出现Out of Memorry的报错:
卸载完原来的模型后,点击“开始”按钮进行微调,这里我稍微改了下学习率。等1到2分钟,可以看到曲线呈向下趋势。
查看模型加载前后显存
测试微调后模型的对话能力
选择模型,并选择微调后储存的检查点;
测试效果,可以看到我们加载了检查点(刚才训练的结果)后,我们向大模型提问:
你是谁
,大模型回答的是:信息中心AI助手
。接下来我们把检测点去掉,然后再提问,可以看到大模型回答的是ChatGLM相关的内容。
量化微调测试
8bit量化微调
微调选项
这里需要先pip install bitsandbytes==0.39.0,否则会报错。
在高级设置中选择8bit量化微调。
测试量化微调后效果
OutOfMemory报错,估计内存小了暂时不支持8bit量化。
4bit量化微调
微调选项
同样的,在高级设置中选择4bit量化微调。
测试量化微调后效果
选择检查点路径后测试。
查看显存
查看显存,可以看到显存占用率比非量化时候占用要低。
将微调模型仿OpenAI兼容接口
启动接口
使用以下命令使用微调后端模型对外提供仿OpenAI接口:
--adapter_name_or_path:
这里的 --adapter_name_or_path 后接你想用的检查点路径,我这里用saves/GLM-4-9B-Chat/lora/train_10_11_no444;
设置隧道
可视化测试
使用NextChat设置接入我们刚才部署的大模型服务:
命令行测试
很赞!!!