Mac 基于 LLaMA Factory 微调模型并导入 Ollama 实战记录
本文记录了在 macOS 环境下,使用 LLaMA Factory 对大语言模型进行微调,并将结果导出至 Ollama 的完整流程。过程中遇到了一些环境配置和兼容性坑点,整理如下供参考。
一、LLaMA Factory 安装
首先通过 Git 拉取项目源码:
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]"
踩坑记录:
- Python 版本限制:安装初期报错
ERROR: Package 'llamafactory' requires a different Python: 3.9.6 not in '>=3.11.0'。虽然尝试升级到 Python 3.14,但后续发现部分依赖库(如 dill)在新版本上存在兼容性问题,建议稳定版选择 Python 3.12。 - 外部管理环境错误:若直接使用系统 Python,可能会遇到
externally-managed-environment报错。推荐使用 Conda 创建虚拟环境隔离依赖:
brew install --cask anaconda
conda create -n llama python=3.12
conda activate llama
pip install -e ".[torch,metrics]"
安装完成后,执行 llamafactory-cli webui 启动服务,访问 http://localhost:7860/ 即可看到 WebUI 界面。

二、模型下载与验证
我们选用 ModelScope 上的轻量级模型进行测试,例如 DeepSeek-R1-Distill-Qwen-1.5B。由于包含大文件,需先安装 Git LFS:
git lfs install
git clone https://www.modelscope.cn/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B.git
关键检查点:
初次加载时可能抛出 SafetensorError: Error while deserializing header: header too large。这通常意味着 Git 下载的大文件不完整。请对比本地 model.safetensors 文件大小与 ModelScope 页面显示的大小是否一致。若不一致,建议手动下载后替换到对应目录。
确认文件完整后,在 WebUI 中配置模型路径并加载测试。

三、数据集准备
微调需要指定训练数据。同样从 ModelScope 获取一个小规模数据集,例如 甄嬛 1M 数据集。
将 huanhuan.json 移动到 ${dir}/LLaMA-Factory/data 目录下,随后编辑该目录下的 dataset_info.json 配置文件,追加数据集定义:
{
"huanhuan": {
"file_name": "huanhuan.json"
}
}
保存后,在 WebUI 的 Train 页面数据集下拉框中应能搜索到 huanhuan。预览数据无误即表示配置成功。

四、训练与效果验证
使用默认配置直接开始训练。注意,如果之前使用了 Python 3.14,可能会遇到 TypeError: Pickler._batch_setitems() 错误,这是 dill 库与新 Python 版本的兼容性问题。切换回 Python 3.12 环境后问题即可解决。
训练日志示例:
***** train metrics *****
epoch = 3.0
train_loss = 4.5287
train_runtime = 0:46:36.50
Figure saved at: saves/DeepSeek-R1-1.5B-Distill/lora/train_2026-02-12-16-14-47/training_loss.png
训练完成后,在 Checkpoint 路径中选择输出目录。重要步骤:需要先卸载当前模型,再重新加载新训练的权重。此时再次询问'我是谁',模型的回答应已发生变化,不再局限于初始的 DeepSeek 身份。

五、导出至 Ollama
最后一步是将微调后的模型转换为 Ollama 可识别的格式。在 LLaMA Factory 的 Export 页面,配置好导出路径,点击生成镜像。

导出成功后,会生成一个 Modelfile。通过 Ollama CLI 指令加载该目录:
ollama create test_DeepSeek -f /Users/xxx/Documents/workspace/model/Modelfile
ollama list
ollama run test_DeepSeek:latest
至此,模型已成功部署为 Ollama 服务,后台可通过 API 接口直接调用。


