在 Mac 上通过 LLaMA Factory 微调并部署到 Ollama
最近尝试在 macOS 环境下利用 LLaMA Factory 对开源模型进行微调,并将结果导入 Ollama 运行。整个过程比较顺畅,但也遇到了一些环境兼容性和文件完整性的小坑,这里整理一下关键步骤和避坑经验。
环境准备与安装
LLaMA Factory 依赖较新的 Python 版本。建议直接使用 Conda 创建独立虚拟环境,避免系统包冲突。
# 克隆项目
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
# 创建并激活环境(推荐 Python 3.11)
conda create -n llm_env python=3.11
conda activate llm_env
# 安装依赖
pip install -e ".[torch,metrics]"
注意: 如果直接在全局环境中安装,可能会遇到 PEP 668 限制报错(externally-managed-environment)。此时应优先选择创建虚拟环境,而非强行使用 --break-system-packages 参数。
启动 WebUI 验证安装:
llamafactory-cli webui
访问 http://localhost:7860/ 即可看到界面。
模型下载与校验
推荐使用 ModelScope 获取模型。由于涉及大文件,务必先安装 Git LFS。
git lfs install
git clone https://www.modelscope.cn/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B.git
避坑点: 初次加载模型时,若出现 SafetensorError: header too large,通常是因为 Git LFS 下载的文件不完整。请对比本地 model.safetensors 文件大小与网页显示是否一致。如不一致,建议手动下载后替换。
数据集配置
微调需要指定训练数据。将准备好的 JSON 格式数据集放入 data 目录,并在 dataset_info.json 中注册。
假设数据集文件为 huanhuan.json,修改 dataset_info.json 末尾添加:
{
// ...原有配置保持不变
"huanhuan": {
"file_name": "huanhuan.json"
}
}
保存后刷新页面,Train 面板的数据集下拉框中应能搜索到对应名称。
训练与验证
配置好模型和数据集后,可直接使用默认参数开始训练。
关于 Python 版本的兼容性: 曾尝试使用更高版本(如 3.14),但在处理序列化数据时遇到 异常。最终切换回 Python 3.11 后问题解决。这提示我们在选择大模型工具链时,稳定性往往优于追求最新特性。


