输入“/”快速插入内容

使用FastChat快速部署LLM服务

2024年8月19日修改
作者:lucas大叔
FastChat 是一个用于训练、服务和评估基于LLM的聊天机器人的开放平台,它的核心功能包括:
最先进模型(例如 Vicuna、MT-Bench)的训练和评估代码。
具有 Web UI 和与 OpenAI 兼容的 RESTful API 的分布式多模型服务系统。
准备工作
创建虚拟环境
为了避免潜在的依赖冲突,创建单独的虚拟环境用于FastChat部署。
代码块
# initiate virtual environment
python -m venv .venv
# activate virtual environemnt
source .venv/bin/activate
# upgrade `pip`
pip install -U pip
安装FastChat
FastChat有pip安装和源码安装两种方式,这里采用pip方式安装:
代码块
pip install "fschat[model_worker,webui]" -i https://pypi.tuna.tsinghua.edu.cn/simple
如运行时报缺少accelerate的错误,请通过pip install accelerator 安装。
安装vLLM(可选)
为了获得更好的推理性能,推荐使用vLLM作为后端来加速推理。
代码块
pip install vllm -i https://pypi.tuna.tsinghua.edu.cn/simple
下载LLM
从modelscope下载本次演示的模型glm-4-9b-chat,下载命令如下:
代码块
git lfs install
git clone https://www.modelscope.cn/ZhipuAI/glm-4-9b-chat.git
使用FastChat部署LLM
为了能够通过 Web 和 SDK 访问 LLM 服务,需要在服务器上部署以下 FastChat 的组件:
Controller
Worker
Gradio Web Server
OpenAI API Server
启动 Controller
代码块
python -m fastchat.serve.controller --host 0.0.0.0
默认端口为 21001 ,可通过 --port 指定。 --host 参数是设置服务的主机地址,这里设置为 0.0.0.0 ,表示可以通过任何地址访问。
启动vLLM Worker
代码块
python -m fastchat.serve.vllm_worker --model-path /path/to/local_model --host 0.0.0.0
默认端口为 21002 ,可通过 --port 指定。FastChat 的 Worker 会向 Controller 注册自身,并通过心跳机制保持连接。若没有安装vLLM后端,可通过下面的命令直接启动model_work:
代码块
python -m fastchat.serve.model_worker --model-path /path/to/local_model --host 0.0.0.0
默认使用单GPU时,memory溢出。修改启动命令: python -m fastchat.serve.vllm_worker --model-path /path/to/glm-4-9b-chat --host 0.0.0.0 --num-gpus 4 指定4块GPU。
启动 OpenAI API Server
代码块
python -m fastchat.serve.openai_api_server --host 0.0.0.0