LLaMA-Factory 快速入门(一):Mac 新手入门大模型微调与部署的完整指南
环境准备与工具安装
确保Mac系统版本为macOS 12.3或更高,配备Apple Silicon芯片(M1/M2)。通过Homebrew安装Python 3.9+和PyTorch 2.0+,推荐使用conda创建独立虚拟环境避免依赖冲突。
brew install miniconda
conda create -n llama_factory python=3.10
conda activate llama_factory
pip install torch torchvision torchaudio
安装LLaMA-Factory核心库与依赖项,需额外安装bitsandbytes和accelerate以支持量化训练。
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e .
数据准备与格式转换
训练数据需转换为JSON格式,包含"instruction"(任务描述)、"input"(可选输入)、"output"(预期输出)三个字段。示例数据格式如下:
{
"instruction": "生成一段产品描述",
"input": "智能手表",
"output": "这款智能手表支持心率监测、GPS定位和30天续航..."
}
使用内置脚本将CSV或TXT数据转换为适配格式,运行脚本后自动生成processed_data.json文件。
python scripts/prepare_data.py --input raw_data.csv --format csv
模型微调配置与启动
在configs/train_config.yaml中设置基础模型路径(如meta-llama/Llama-2-7b)、数据路径及训练参数。关键参数包括batch_size(根据显存调整)、learning_rate(建议2e-5)、max_steps(500-1000)。
启动LoRA微调(适合消费级硬件),使用8-bit量化减少显存占用。
python src/train_bash.py \
--stage sft \
--model_name_or_path meta-llama/Llama-2-7b \
--do_train \
--dataset_dir data \
--lora_target_modules q_proj,v_proj \
--output_dir output
模型部署与API测试
微调完成后,使用FastAPI部署模型为本地服务。需安装额外依赖并创建app.py文件定义API端点。
from fastapi import FastAPI
from transformers import pipeline
app = FastAPI()
model = pipeline("text-generation", model="output")
@app.post("/generate")
async def generate(text: str):
return model(text, max_length=100)
启动服务后通过curl测试接口,返回结果为JSON格式的生成文本。
uvicorn app:app --reload
curl -X POST "http://127.0.0.1:8000/generate" -H "Content-Type: application/json" -d '{"text":"如何保养皮革沙发?"}'
性能优化与常见问题
启用Flash Attention可提升20%训练速度,修改train_config.yaml添加以下参数:
use_flash_attention: true
显存不足时调整gradient_accumulation_steps(建议2-4)并启用gradient_checkpointing。若出现CUDA内存错误,尝试降低batch_size或使用DeepSpeed Zero阶段2优化。
日志文件默认保存在logs/目录下,通过tensorboard可实时监控loss曲线:
tensorboard --logdir logs/

被折叠的 条评论
为什么被折叠?



