LLaMA-Factory 快速入门(一):Mac 下大模型微调与部署的零门槛流程
·
LLaMA-Factory 快速入门:Mac 下大模型微调与部署的零门槛流程
环境准备与工具安装
确保系统为 macOS 10.15 或更高版本,配备至少 16GB 内存与 20GB 可用磁盘空间。推荐使用 Python 3.8 或以上版本,通过 Homebrew 安装依赖工具:
brew install cmake git-lfs
克隆 LLaMA-Factory 仓库并安装 Python 依赖:
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -r requirements.txt
模型下载与配置
从 Hugging Face 下载基础模型(如 Llama-2-7b-hf),需提前申请访问权限。将模型权重放置在 ./models 目录下,修改 configs/model_config.py 中的路径配置:
model_path = "./models/Llama-2-7b-hf"
数据准备与格式转换
准备训练数据为 JSON 格式,每条数据包含 instruction(指令)、input(输入)和 output(输出)。示例数据文件 data/train.json:
[
{"instruction": "翻译为中文", "input": "Hello, world!", "output": "你好,世界!"}
]
使用内置脚本转换为训练集:
python scripts/prepare_data.py --data_path data/train.json
启动微调任务
运行以下命令启动 LoRA 微调(低资源适配):
python src/train_bash.py \
--model_name_or_path ./models/Llama-2-7b-hf \
--dataset train_data \
--lora_rank 8 \
--per_device_train_batch_size 2 \
--gradient_accumulation_steps 4 \
--num_train_epochs 3
关键参数说明:
lora_rank: LoRA 矩阵的秩,影响微调参数量。per_device_train_batch_size: 根据显存调整批次大小。
模型测试与交互
微调完成后,合并 LoRA 权重并启动交互式测试:
python src/export_model.py \
--model_name_or_path ./models/Llama-2-7b-hf \
--adapter_name_or_path ./outputs/checkpoint-final
python src/cli_demo.py --model_name_or_path ./merged_model
本地化部署
使用 Gradio 快速构建 Web 界面:
from transformers import AutoModelForCausalLM, AutoTokenizer
import gradio as gr
model = AutoModelForCausalLM.from_pretrained("./merged_model")
tokenizer = AutoTokenizer.from_pretrained("./merged_model")
def predict(text):
inputs = tokenizer(text, return_tensors="pt")
outputs = model.generate(**inputs, max_length=100)
return tokenizer.decode(outputs[0], skip_special_tokens=True)
gr.Interface(fn=predict, inputs="textbox", outputs="text").launch()
保存为 app.py 后运行 python app.py,即可通过浏览器访问本地服务。
性能优化建议
- 量化部署:使用
bitsandbytes进行 4-bit 量化,减少显存占用:model = AutoModelForCausalLM.from_pretrained("./merged_model", load_in_4bit=True) - 缓存管理:通过
vllm加速推理:pip install vllm python -m vllm.entrypoints.api_server --model ./merged_model
常见问题排查
- 显存不足:降低批次大小或启用梯度检查点:
python src/train_bash.py --gradient_checkpointing - 分词错误:检查
tokenizer_config.json是否与模型匹配。
通过上述流程,可在 Mac 环境下高效完成从微调到部署的全流程,无需复杂配置即可实现定制化模型应用。
更多推荐


所有评论(0)