跨平台利器:在Mac M1上流畅运行Llama Factory
为什么Mac用户需要专属方案?
作为一名使用Mac M1的自由职业者,你可能已经注意到大多数AI教程都针对NVIDIA显卡用户。这是因为:
- ARM架构的M1芯片与传统x86架构存在差异
- NVIDIA CUDA生态在Mac平台支持有限
- 主流AI工具链默认优化NVIDIA GPU
Llama Factory作为开源大模型微调框架,提供了对ARM架构的原生支持,让Mac用户也能轻松参与AI项目。
💡 提示:CSDN算力平台提供了预装Llama Factory的环境,可作为验证方案的备选GPU环境。
准备工作:环境配置
在Mac M1上运行Llama Factory需要以下准备:
安装Homebrew(Mac包管理器)
bash /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"通过Homebrew安装基础依赖
bash brew install cmake git python@3.10创建Python虚拟环境
bash python -m venv llama-env source llama-env/bin/activate
安装与配置Llama Factory
克隆Llama Factory仓库
bash git clone https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory安装Python依赖
bash pip install -r requirements.txt针对M1芯片的特殊配置
bash export PYTORCH_MPS_HIGH_WATERMARK_RATIO=0.8
运行你的第一个微调任务
Llama Factory支持多种微调方式,我们以LoRA微调为例:
准备数据集(示例使用内置alpaca数据集)
bash python scripts/prepare_data.py --dataset alpaca启动微调任务
bash python src/train_bash.py \ --model_name_or_path Qwen/Qwen-7B \ --dataset alpaca \ --lora_target q_proj,v_proj \ --output_dir ./output
关键参数说明:
| 参数 | 说明 | |------|------| |model_name_or_path| 基础模型路径 | |dataset| 使用的数据集 | |lora_target| LoRA适配的模型层 | |output_dir| 输出目录 |
常见问题与解决方案
- 问题1:遇到"NotImplementedError: The operator 'aten::_scaled_dot_product_flash_attention'..."
解决方案:添加
--flash_attn false参数禁用flash attention问题2:内存不足
- 尝试减小
per_device_train_batch_size参数值 使用
--quantization_bit 4进行4bit量化问题3:性能较慢
- 确保使用最新版PyTorch-nightly
bash pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu
进阶技巧:自定义与优化
- 使用自定义数据集
- 准备JSON格式数据文件
参考
scripts/prepare_data.py编写预处理脚本混合精度训练加速
bash python src/train_bash.py \ --fp16 \ --model_name_or_path Qwen/Qwen-7B \ # 其他参数...监控训练过程
- 使用TensorBoard
bash tensorboard --logdir ./output
总结与下一步
通过本文,你已经掌握了在Mac M1上运行Llama Factory的核心方法。建议尝试:
- 更换不同基础模型(如ChatGLM、Baichuan等)
- 实验不同的微调方法(全参数微调、QLoRA等)
- 探索Web UI界面(
python src/webui.py)
Llama Factory的强大之处在于其灵活性和易用性,即使没有NVIDIA显卡,Mac用户也能充分参与大模型微调的前沿实践。现在就去试试修改第一个提示词吧!