LLaMA-Factory 小模型微调实操

以 微调 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 作诗,

  1. https://github.com/chinese-poetry/chinese-poetry 下载诗词样本

  2. 挑选出唐诗相关的目录, 全部转为简体,去重

  3. 因为数据量比较大,让 gemini 推荐了一些名家作者,过滤出他们的诗,再随机挑一些,凑出 2 万首诗

  4. 搭建 ollam , 调用 qwen2.5:14b 给这些诗词打分

  5. 根据分数从高至低挑出 6000 首诗词,再次调用 qwen2.5:14b 从诗句中提取以下内容

    1. 提取 2-3 个描述情感或氛围的词(如:雄浑、忧愤、静谧)
    2. 提取 3-5 个诗中出现的自然环境、季节或具体意象词(如:明月、残雪、长河、蝉鸣)
  6. 格式化输出数据集格式alpaca如下

    [
        {
            "instruction": "根据下面的环境与氛围词作一首词。",
            "input": "忧郁,思乡,落日,孤云,戍楼,烟瘴,远客",
            "output": "落日孤云带远冈,戍楼烟瘴旧边场。\n疲民卒岁方怀土,远客凭高自忆乡。\n汉使一朝延四皓,秦诗千古吊三良。\n行藏此意无人解,聊借青山送酒觞。"
        }
    ]
  7. 编辑 LLaMA-Factory 目录中的 data 文件夹,中的 dataset_info.json, 将数据集添加入配置文件中, 因为默认支持 alpaca 格式,直接添加一项,设置 file_name 即可。 然后浏览器刷新一下,数据集列表中可以看到新数据集了

  8. 模型名称选择 Qwen3.5-0.8B-Base, 模型下载源 选择 ·ModelScope·

  9. 选择 chat 模式, 点击加载模型, 然后试试对话

  10. 选择 Train 模式, 选择 Supervised Fine-Tuning (SFT), 选择数据集, 因为只有 6 千条数据,学习率用了 2e-5 , 我是古诗,所以截断长度设置的 512, 验证集比例 0.1, 其它参数|不启用思考模式 , 其它参数|保存间隔 100 (根据需要减少一点,这样后面测试时可以多点选择)

    还有其它参数看上面的手册或是教学视频。 或是直接让 ai 帮我选

  11. 点击开始

  12. 定期将最底部的日志或是 saves 目录下对应的日志复制给 ai , 让它判断一下 收敛情况, 学习率策略, 训练效率

  13. 训练完成后,到第二轮的时候,ai 推荐停止,因为出现过拟合的趋势

  14. 停止训练,将 saves 目录下的 checkpoint-xxx 目录设置到 LLaMA-Factory检查点路径 中,保留原来的基座模型 + 微调方法:lora+checkpoint路径 然后重新载入模型,在对话窗口中进行测试

  15. 测试结果如果不理想的话,再换一个 checkpoint-xxx 再进行测试

  16. 测试完成后, 选择 Export 模式,导出时导出量化数据集填写Train 时使用的数据集,导出设备:auto 目前名称可以使用 Qwen3.5-0.8B-Poem-Merged-600-bf16 (原基座模型+用途+checkpoint+计算类型)

  17. 导出完成后,在 模型路径 中填写导出路径(不要换模型名称,不然一些参数会自动切换,原路径最好复制一下,等下可以还原回去),再次载入模型进行 chat , 看结果是否正确
    因为是小模型,响应速度很快
    由 ai 出题, 新模型作诗,交给 ai 打分(5 分最高), gemini:4.11, qwen.ai:4.0, deepseek:3.57 打分,

  18. 以后可以在 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 导出

上一篇