LLaMA-Factory 入门(一):Mac 中把微调大模型部署为终端服务的流程

环境准备

确保 Mac 系统版本为 macOS 10.13 或更高,建议使用 M1/M2 芯片以获得更好的性能支持。安装 Python 3.8 或更高版本,推荐通过 Homebrew 管理依赖:

brew install python

安装必要的 Python 包,包括 transformerstorchsentencepiece

pip install transformers torch sentencepiece

下载与加载模型

从 Hugging Face 模型库下载 LLaMA 基础模型或微调后的适配版本。若需微调,可使用 LLaMA-Factory 提供的脚本:

git clone https://github.com/huggingface/transformers
cd transformers/examples/research_projects/llama_factory

加载模型到本地环境:

from transformers import LlamaForCausalLM, LlamaTokenizer
model_path = "path/to/your/model"
tokenizer = LlamaTokenizer.from_pretrained(model_path)
model = LlamaForCausalLM.from_pretrained(model_path)

部署为终端服务

创建 Flask 应用以提供 HTTP 接口。新建文件 app.py 并添加以下代码:

from flask import Flask, request, jsonify
app = Flask(__name__)

@app.route('/predict', methods=['POST'])
def predict():
    text = request.json.get('text')
    inputs = tokenizer(text, return_tensors="pt")
    outputs = model.generate(**inputs)
    return jsonify({"response": tokenizer.decode(outputs[0])})

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

启动服务:

python app.py

终端调用测试

通过 curl 命令测试服务是否正常运行:

curl -X POST http://localhost:5000/predict -H "Content-Type: application/json" -d '{"text":"你好"}'

性能优化

启用量化以减少内存占用。修改模型加载代码为 4 位量化模式:

model = LlamaForCausalLM.from_pretrained(model_path, load_in_4bit=True)

使用 gunicorn 提升并发处理能力:

pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 app:app

日志与监控

添加日志记录功能以跟踪请求和错误。修改 app.py

import logging
logging.basicConfig(filename='service.log', level=logging.INFO)

通过 htopnvidia-smi(若使用 GPU 加速)监控资源占用情况。

更多推荐