LLaMA-Factory 入门(一):Mac 环境搭建大模型微调部署的基础全步骤

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 格式,包含 instructioninputoutput 字段。示例结构:

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 参数的小模型开始验证环境兼容性,再逐步扩展至更大模型。

相关推荐
Yupureki13 小时前
《算法竞赛从入门到国奖》算法基础:入门篇-前缀和
c语言·数据结构·c++·算法·1024程序员节
CoderYanger1 天前
动态规划算法-01背包问题:50.分割等和子集
java·算法·leetcode·动态规划·1024程序员节
CoderYanger1 天前
动态规划算法-两个数组的dp(含字符串数组):48.最长重复子数组
java·算法·leetcode·动态规划·1024程序员节
金融小师妹1 天前
美联储议息夜:基于多智能体决策分歧模型的“鹰派降息”推演
人工智能·深度学习·1024程序员节
金融小师妹1 天前
基于NLP政策文本分析与多智能体博弈模拟的FOMC决策推演:“美联储传声筒”下的利率路径分歧
大数据·人工智能·深度学习·1024程序员节
打码人的日常分享2 天前
IPD项目质量体系管理方案
大数据·运维·人工智能·信息可视化·1024程序员节
CoderYanger3 天前
动态规划算法-两个数组的dp(含字符串数组):42.不相交的线
java·算法·leetcode·动态规划·1024程序员节
CoderYanger3 天前
动态规划算法-两个数组的dp(含字符串数组):43.不同的子序列
java·算法·leetcode·动态规划·1024程序员节
CoderYanger4 天前
动态规划算法-两个数组的dp(含字符串数组):41.最长公共子序列(模板)
java·算法·leetcode·动态规划·1024程序员节
CoderYanger4 天前
动态规划算法-子序列问题(数组中不连续的一段):28.摆动序列
java·算法·leetcode·动态规划·1024程序员节