LLaMA-Factory 入门:Mac 环境搭建与模型微调部署
硬件与系统要求
Mac 设备需配备 Apple Silicon 芯片(M1/M2 系列)以支持 GPU 加速,运行 macOS 12.3 或更高版本。建议内存不低于 16GB,存储空间预留 50GB 以上用于模型权重与数据集。
环境配置
通过 Homebrew 安装 Python 3.9+ 和 PyTorch 的 Metal 版本(支持 Apple GPU 加速):
bash
brew install python
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cpu
安装 LLaMA-Factory 依赖库:
bash
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -r requirements.txt
模型准备
下载 LLaMA 或 Alpaca 模型权重(需申请 Meta 官方许可),将模型文件置于 ./models 目录。支持 Hugging Face 格式的模型,例如:
bash
huggingface-cli download meta-llama/Llama-2-7b --local-dir ./models/llama-2-7b
数据预处理
自定义数据集需转换为 JSON 格式,包含 instruction、input、output 字段。示例结构:
json
[
{"instruction": "Translate to French", "input": "Hello", "output": "Bonjour"},
...
]
保存为 data/train.json,使用内置脚本预处理:
bash
python src/preprocess_data.py --data_path data/train.json
微调训练
运行以下命令启动 LoRA 微调(适配 Apple GPU):
bash
python src/train_bash.py \
--model_name_or_path ./models/llama-2-7b \
--data_path ./data/train.json \
--output_dir ./output \
--lora_target_modules q_proj,v_proj \
--use_mps_device
关键参数说明:
lora_target_modules:指定适配的注意力层use_mps_device:启用 Metal Performance Shaders 加速
模型部署
将微调后的模型转换为 GGUF 格式便于本地推理:
bash
python src/export_gguf.py --model_dir ./output --output_file ./output/llama-ft.gguf
使用 llama.cpp 进行本地交互:
bash
./main -m ./output/llama-ft.gguf -p "Translate: Hello"
性能优化技巧
- 启用
--bf16参数减少显存占用 - 调整
--micro_batch_size控制内存消耗 - 使用
vmmap工具监控进程内存分布
常见问题排查
- CUDA 错误:确认未错误安装 CUDA 版 PyTorch
- 内存不足:尝试减小批次大小或使用梯度检查点
- Metal 支持问题:更新 macOS 至最新版本
通过上述步骤可在 Mac 环境下完成从环境配置到模型微调部署的全流程。建议首次运行时从 7B 参数的小模型开始验证环境兼容性,再逐步扩展至更大模型。