以 微调 Qwen3.5-0.8B 作诗作为例子
参考教程
官方手册
https://llamafactory.readthedocs.io/zh-cn/latest/
基于 web 极简上手说明
https://www.bilibili.com/video/BV1Q8rYYdErf/
https://www.bilibili.com/video/BV1Q8rYYdErf?p=2
基于命令行进微调,有参数介绍
https://www.bilibili.com/video/BV13QFxzCEXb
图文教程
https://modelscope.csdn.net/68f9ced32e738254e8bfb6c8.html#devmenu3
操作流程
按手册安装就好了,基本没有问题。只是在 windows 下遇到过 bitsandbytes 与 CUDA 库版本不匹配问题,不知道 linux 或是 wsl 下会不会有问题
安装完成后,执行 llamafactory-cli webui 显示 web ui , 即安装成功
我使用的例子的微调 Qwen3.5-0.8B 作诗,
-
从
https://github.com/chinese-poetry/chinese-poetry下载诗词样本 -
挑选出唐诗相关的目录, 全部转为简体,去重
-
因为数据量比较大,让
gemini推荐了一些名家作者,过滤出他们的诗,再随机挑一些,凑出 2 万首诗 -
搭建 ollam , 调用
qwen2.5:14b给这些诗词打分 -
根据分数从高至低挑出 6000 首诗词,再次调用
qwen2.5:14b从诗句中提取以下内容- 提取 2-3 个描述情感或氛围的词(如:雄浑、忧愤、静谧)
- 提取 3-5 个诗中出现的自然环境、季节或具体意象词(如:明月、残雪、长河、蝉鸣)
-
格式化输出数据集格式
alpaca如下[ { "instruction": "根据下面的环境与氛围词作一首词。", "input": "忧郁,思乡,落日,孤云,戍楼,烟瘴,远客", "output": "落日孤云带远冈,戍楼烟瘴旧边场。\n疲民卒岁方怀土,远客凭高自忆乡。\n汉使一朝延四皓,秦诗千古吊三良。\n行藏此意无人解,聊借青山送酒觞。" } ] -
编辑
LLaMA-Factory目录中的data文件夹,中的dataset_info.json, 将数据集添加入配置文件中, 因为默认支持alpaca格式,直接添加一项,设置file_name即可。 然后浏览器刷新一下,数据集列表中可以看到新数据集了 -
模型名称选择
Qwen3.5-0.8B-Base, 模型下载源 选择 ·ModelScope· -
选择
chat模式, 点击加载模型, 然后试试对话 -
选择
Train模式, 选择Supervised Fine-Tuning (SFT), 选择数据集, 因为只有 6 千条数据,学习率用了 2e-5 , 我是古诗,所以截断长度设置的 512, 验证集比例 0.1, 其它参数|不启用思考模式 , 其它参数|保存间隔 100 (根据需要减少一点,这样后面测试时可以多点选择)还有其它参数看上面的手册或是教学视频。 或是直接让 ai 帮我选
-
点击开始
-
定期将最底部的日志或是 saves 目录下对应的日志复制给 ai , 让它判断一下 收敛情况, 学习率策略, 训练效率
-
训练完成后,到第二轮的时候,ai 推荐停止,因为出现过拟合的趋势
-
停止训练,将
saves目录下的checkpoint-xxx目录设置到LLaMA-Factory的检查点路径中,保留原来的基座模型+微调方法:lora+checkpoint路径然后重新载入模型,在对话窗口中进行测试 -
测试结果如果不理想的话,再换一个
checkpoint-xxx再进行测试 -
测试完成后, 选择
Export模式,导出时导出量化数据集填写Train时使用的数据集,导出设备:auto目前名称可以使用Qwen3.5-0.8B-Poem-Merged-600-bf16(原基座模型+用途+checkpoint+计算类型) -
导出完成后,在
模型路径中填写导出路径(不要换模型名称,不然一些参数会自动切换,原路径最好复制一下,等下可以还原回去),再次载入模型进行chat, 看结果是否正确
因为是小模型,响应速度很快
由 ai 出题, 新模型作诗,交给 ai 打分(5 分最高),gemini:4.11,qwen.ai:4.0,deepseek:3.57打分, -
以后可以在
instruction中将格式区分开来, 不用这么笼统,比如作五言绝句之类的
转换格式
LLaMA-Factory 导出格式为 Safetensors (fuggingface)格式 为了能在 ollama 或是 lama.cpp 中运行,需要导入
LLaMA-Factory 已经在导出目录中创建了 Modelfile 文件, 供 ollama 直接进行导入
转换格式 ollama create Qwen3.5-0.8B-Poem-Merged-600-bf16 -f "xxxxxx\Qwen3.5-0.8B-Poem-Merged-600-bf16\Modelfile"
进行量化 ollama create Qwen3.5-0.8B-Poem-Merged-600-bf16 -f "xxxxxx\Qwen3.5-0.8B-Poem-Merged-600-bf16\Modelfile" --quantize q4_k_m
导出 GGUF 格式供 LLamaSharp 之类的调用
ollama 官方说使用内部格式,只支持 gguf 导入,不支持导出, 可以使用三方工具 https://github.com/mattjamo/OllamaToGGUF 导出