LLamaFactory SFT大模型API部署实战

作者:新兰2024.11.20 18:29浏览量:282

简介:本文详细介绍了如何使用LLamaFactory进行大模型的SFT微调,并部署其API以供使用。文章涵盖了从环境准备、模型下载到API部署的全过程,并提供了实用教程和示例。

在当今人工智能飞速发展的时代,大模型的应用越来越广泛。而LLamaFactory作为一个功能丰富、适配性好的大模型训练框架,受到了众多开发者的青睐。本文将详细介绍如何使用LLamaFactory进行大模型的SFT(Soft Prompt Tuning)微调,并部署其API以供使用。

一、背景介绍

LLamaFactory项目的目标是整合主流的各种高效训练微调技术,适配市场主流开源模型。它提供了多个高层次抽象的调用接口,包含多阶段训练、推理测试、benchmark评测、APIServer等,使开发者能够开箱即用。同时,该项目还提供了基于gradio的网页版工作台,方便初学者迅速上手操作。

二、环境准备

在开始之前,我们需要确保机器满足以下硬件和软件环境要求:

  1. 硬件环境:建议使用RTX 4090等高端显卡,以满足大模型训练对显存和算力的要求。
  2. 软件环境:需要安装CUDA、Pytorch等依赖库,并创建一个新的Python环境用于LLamaFactory的安装和配置。

具体安装步骤可参考LLamaFactory的官方GitHub仓库中的README文件。

三、模型下载与校验

LLamaFactory支持从Huggingface和ModelScope下载模型。但考虑到网络环境和模型管理的便利性,建议使用手动下载的方式,并通过绝对路径指定模型位置。

下载完成后,需要对模型文件进行校验,确保文件完整且可用。这包括检查文件大小和数量是否正确,以及运行官方提供的推理demo来验证模型文件的正确性和软件的可用性。

四、大模型API部署

1. 切换模型下载源

由于网络环境等原因,可能需要将模型下载源从Huggingface切换为ModelScope。这可以通过设置环境变量USE_MODELSCOPE_HUB来实现。

2. 执行API部署脚本

在LLamaFactory的文件夹中,执行API部署脚本。需要指定模型名称或路径、模板、推理后端等参数。例如,使用qwen/Qwen-7B模型进行部署时,可以使用以下命令:

  1. CUDA_VISIBLE_DEVICES=0 API_PORT=8000 python src/api_demo.py --model_name_or_path /path/to/qwen/Qwen-7B --template qwen --infer_backend vllm --vllm_enforce_eager

其中,/path/to/qwen/Qwen-7B应替换为实际下载的模型路径。

3. 访问API接口文档

部署成功后,可以通过访问http://localhost:8000/docs来查看API接口文档。该文档提供了API的使用说明、请求参数、响应格式等信息。

五、使用示例

以下是一个使用LLamaFactory API进行推理的示例:

  1. curl -X 'POST' 'http://localhost:8000/v1/chat/completions' -H 'accept: application/json' -H 'Content-Type: application/json' -d '{"model": "qwen", "messages": [{"role": "user", "content": "你能帮我做一些什么事情?"}]}'

该请求将向API发送一个包含用户问题的JSON对象,并返回AI的回复。

六、注意事项

  1. 显存和算力要求:大模型训练对显存和算力的要求较高,请确保机器满足要求。
  2. 模型管理:建议使用手动下载模型的方式,并通过绝对路径指定模型位置,以便对模型进行统一管理。
  3. API安全:在生产环境中部署API时,请确保采取必要的安全措施,如设置访问权限、加密传输等。

七、总结

本文详细介绍了如何使用LLamaFactory进行大模型的SFT微调,并部署其API以供使用。通过本文的介绍,读者可以了解到LLamaFactory的基本功能和使用方法,并能够在实际项目中应用这些知识。希望本文能对读者有所帮助,并激发更多人对人工智能技术的兴趣和探索。

此外,在追求高效推理速度的场景下,还可以结合vllm加速推理以及langchain等工具进行进一步优化。LLamaFactory作为一个不断发展和完善的项目,未来还将提供更多高级功能和优化选项,以满足不同用户的需求。在这个过程中,我们期待更多开发者加入LLamaFactory的社区,共同推动人工智能技术的发展和应用。