LLaMA-Factory 入门(一):Mac 下大模型微调与部署的零基础学习路径

在 Mac 环境下进行大模型微调与部署可能看起来复杂,但通过合理的步骤和工具选择,即使是零基础用户也能快速上手。以下内容将详细介绍从环境准备到模型微调与部署的完整流程。

环境准备

确保 Mac 系统版本为 macOS 10.13 或更高,并安装最新版本的 Xcode 命令行工具。打开终端运行以下命令安装 Homebrew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

安装 Python 3.9 或更高版本,推荐使用 Pyenv 管理多版本 Python:

brew install pyenv
pyenv install 3.9.12
pyenv global 3.9.12

安装必要的依赖库,包括 PyTorch 和 CUDA(如果 Mac 支持 GPU 加速):

pip install torch torchvision torchaudio

安装 LLaMA-Factory

克隆 LLaMA-Factory 的 GitHub 仓库到本地:

git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory

安装项目依赖:

pip install -r requirements.txt

数据准备与模型微调

准备训练数据,数据格式应为 JSON 文件,包含 "instruction" 和 "output" 字段。示例数据如下:

{
  "instruction": "解释机器学习的概念",
  "output": "机器学习是人工智能的一个分支,通过算法让计算机从数据中学习模式并做出预测。"
}

运行微调脚本,使用 LoRA 方法进行高效微调:

python src/train_bash.py \
  --model_name_or_path meta-llama/Llama-2-7b-hf \
  --data_path data.json \
  --output_dir output \
  --lora_target_modules q_proj,v_proj

模型部署

微调完成后,使用 FastAPI 部署模型为本地服务。创建 app.py 文件并添加以下代码:

from fastapi import FastAPI
from transformers import AutoModelForCausalLM, AutoTokenizer

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

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

启动服务:

uvicorn app:app --reload

测试与优化

通过 curl 测试 API 是否正常工作:

curl -X POST "http://127.0.0.1:8000/predict" -H "Content-Type: application/json" -d '{"text":"解释深度学习"}'

监控 GPU 使用情况,确保资源分配合理。如果性能不足,可尝试量化模型或调整批处理大小。

这一学习路径覆盖了从零开始的环境配置到最终模型部署的全过程。通过分阶段实践,用户可以逐步掌握大模型微调与部署的核心技能。后续可探索更复杂的微调方法或部署到生产环境。

Logo

更多推荐