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

相关推荐
无尽夏_7 小时前
CSS3(前端基础)
前端·css·1024程序员节
悟空getmoney7 小时前
自己基于golang写的MongoRest单文件的 RESTful API 网关,直接通过mongodb发布rest,crub聚合简单的很-于大爷工具集
1024程序员节
算法打盹中7 小时前
深入解析 Transformer 模型:以 ChatGPT 为例从词嵌入到输出预测的大语言模型核心工作机制
人工智能·深度学习·语言模型·chatgpt·transformer·1024程序员节
大数据张老师8 小时前
数据结构——直接插入排序
数据结构·算法·排序算法·1024程序员节
恒锐丰小吕8 小时前
EG1151 四开关升降压电源管理芯片技术解析
嵌入式硬件·硬件工程·1024程序员节
lsnm9 小时前
C++新手项目-JsonRPC框架
开发语言·c++·1024程序员节
Yeniden9 小时前
设计模式>原型模式大白话讲解:就像复印机,拿个原件一复印,就得到一模一样的新东西
java·设计模式·原型模式·1024程序员节
南方的狮子先生9 小时前
【数据结构】从线性表到排序算法详解
开发语言·数据结构·c++·算法·排序算法·1024程序员节
CoderJia程序员甲11 小时前
GitHub 热榜项目 - 日榜(2025-10-29)
ai·开源·github·1024程序员节·ai教程