本文重点介绍Fastchat是什么,各个组件的作用和关系,如何使用Fastchat框架部署大模型。
使用FastChat快速部署LLM服务
Fastchat是什么?
FastChat是一个用于训练、部署和评估大模型的开源框架,支持一行代码部署大语言模型,支持Web UI和OpenAI兼容的RESTful API。其核心功能:
- 模型训练与评估:提供模型的权重、训练代码和评估代码(例如Vicuna、FastChat-T5)
- 分布式多模型服务系统:支持大量并发连接,并允许多个Worker(模型工作者)注册到单个Controller(控制器)。
- 兼容OpenAI的API:提供OpenAI的API,方便开发集成到项目。
Fastchat各个组件详解
为了能够通过 Web 和 SDK/API 访问 LLM 服务,我们需要在服务器上部署以下 FastChat 的组件:
- Controller(控制器)
- Worker(工作者)
- Gradio Web Server(Web服务器)
- OpenAI API Server(API服务器)
前提是大模型已经部署,详见安装 FastChat & vLLM & 下载大模型 ,若已安装,请跳过。
1. Controller(控制器)
# 查看Controller的参数 python3 -m fastchat.serve.controller --help
命令行参数及其用途:
基本配置
- 作用:Controller负责管理分布式模型实例。它监控所有Worker的状态,并调度Worker,以保证各个同名Worker之间的负载均衡,确保请求被合理地分配到各个Worker。
--host
和--port
:指定控制器服务监听的主机地址和端口号。--ssl
:启用SSL加密,需要设置SSL密钥文件和证书文件的环境变量。
调度配置
--dispatch-method
:指定请求的分发方法,可以是lottery
(随机选择工作者)或shortest_queue
(选择任务队列最短的工作者)。
启动Controller(控制器)
python -m fastchat.serve.controller --host 0.0.0.0
默认端口为21001
,可通过--port
指定。--host
参数是设置服务的主机地址