LLaMA-Factory 入门(一):Mac 终端运行微调后大模型的部署流程

环境准备

确保系统已安装 Python 3.8 或更高版本,建议通过 Homebrew 管理依赖。安装完成后,验证 Python 和 pip 版本:

python3 --version  
pip3 --version  

创建虚拟环境以避免依赖冲突:

python3 -m venv llama-env  
source llama-env/bin/activate  

安装依赖

克隆 LLaMA-Factory 官方仓库并安装核心库:

git clone https://github.com/hiyouga/LLaMA-Factory.git  
cd LLaMA-Factory  
pip install -r requirements.txt  

若需 GPU 加速(仅限 M1/M2 芯片),额外安装 PyTorch 的 Metal 版本:

pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cpu  

模型微调配置

准备数据集(JSON 格式)并保存至 data 目录。编辑 train_args.yaml 文件,指定基础模型路径、数据集路径及训练参数:

model_name_or_path: "path/to/base_model"  
dataset_path: "data/custom_dataset.json"  
output_dir: "output"  
per_device_train_batch_size: 4  

启动微调任务

通过终端运行训练脚本:

python src/train_bash.py --config train_args.yaml  

训练日志和模型权重将保存在 output 目录中。

部署微调后模型

使用 FastAPI 快速搭建本地推理服务。创建 app.py 文件并添加以下代码:

from fastapi import FastAPI  
from transformers import AutoModelForCausalLM, AutoTokenizer  

app = FastAPI()  
model_path = "output/final_model"  
tokenizer = AutoTokenizer.from_pretrained(model_path)  
model = AutoModelForCausalLM.from_pretrained(model_path)  

@app.post("/predict")  
def predict(text: str):  
    inputs = tokenizer(text, return_tensors="pt")  
    outputs = model.generate(**inputs, max_length=50)  
    return tokenizer.decode(outputs[0], skip_special_tokens=True)  

启动服务:

uvicorn app:app --reload  

通过 http://127.0.0.1:8000/docs 访问 API 文档并测试接口。

常见问题排查

若遇到内存不足错误,尝试减小 per_device_train_batch_size 或启用梯度检查点:

gradient_checkpointing: true  

CUDA 相关错误需确认 PyTorch 版本与 Mac 硬件兼容性。可通过重装 PyTorch 解决:

pip uninstall torch -y  
pip install --pre torch --extra-index-url https://download.pytorch.org/whl/nightly/cpu  

更多推荐