目录
-
- 配置文件的详细说明(后续持续完善)
-
- openai_api_server配置
- 控制器(controller)配置
- 模型(worker)配置
- 模型配置
-
- [大语言模型 示例:Qwen](#大语言模型 示例:Qwen)
- [Embedding模型 示例:Conan-embedding-v1](#Embedding模型 示例:Conan-embedding-v1)
- [TTS文本转语音模型 示例: Spark-TTS](#TTS文本转语音模型 示例: Spark-TTS)
- [T2I 文生图模型示例: flux](#T2I 文生图模型示例: flux)
- [IE 图片编辑模型 示例: Qwen-Image-Edit](#IE 图片编辑模型 示例: Qwen-Image-Edit)
- [ASE 语音转文字模型 示例: SenseVoiceSmall](#ASE 语音转文字模型 示例: SenseVoiceSmall)
GPT Server
是一个用于生产级部署LLMs
、Embedding
、Reranker
、ASR
、TTS
、文生图
、图片编辑
和文生视频
的开源框架。
项目地址 :https://github.com/shell-nlp/gpt_server
配置文件的详细说明(后续持续完善)
openai_api_server配置
yaml
serve_args:
enable: true
host: 0.0.0.0
port: 8082
controller_address: http://localhost:21001
- 功能:OpenAI API服务的主入口配置
- 参数说明:
enable
:服务开关(true/false)host
:监听地址port
:服务暴露端口controller_address
:下游控制器服务地址api_keys
:用来设置 openai 密钥
控制器(controller)配置
yaml
controller_args:
enable: true
host: 0.0.0.0
port: 21001
dispatch_method: shortest_queue
- 核心功能:请求调度中心
- 参数说明:
enable
:服务开关(true/false)host
:监听地址port
:服务暴露端口dispatch_method
:支持两种策略:lottery
:随机分配shortest_queue
(推荐):选择负载最低的Worker
- 设计建议:生产环境建议保持
shortest_queue
以实现负载均衡
模型(worker)配置
yaml
model_worker_args:
host: 0.0.0.0
controller_address: http://localhost:21001
log_level: WARNING
limit_worker_concurrency: 1024
- 参数说明:
host
:监听地址controller_address
:下游控制器服务地址log_level
:日志级别(DEBUG/INFO/WARNING/ERROR)limit_worker_concurrency
:单个Worker最大并发请求数
- 端口说明:Worker端口由系统自动分配并注册到控制器
模型配置
大语言模型 示例:Qwen
yaml
models:
- qwen: # 模型的自定义名称
alias: gpt-4,gpt-3.5-turbo,gpt-3.5-turbo-16k # 模型的别名
enable: false # 模型开关(true/false)
model_config:
model_name_or_path: /home/dev/model/qwen/Qwen2___5-7B-Instruct/ # 模型的路径
max_model_len: 65536
gpu_memory_utilization: 0.8
enable_prefix_caching: true
dtype: auto # 类型
kv_cache_quant_policy: 0
lora: # lora 模型的路径
test_lora: /home/dev/project/LLaMA-Factory/saves/Qwen1.5-14B-Chat/lora/train_2024-03-22-09-01-32/checkpoint-100
model_type: qwen
work_mode: lmdeploy-turbomind
device: gpu
port: 8084 # 手动指定worker端口
workers:
- gpus:
- 1
- 参数说明:
-
alias
:模型的别名,用逗号分隔。例如 gpt4,gpt3,可以在不修改模型名称的情况下,使用替换为其它模型 -
enable
:模型开关(true/false) -
model_config
:模型参数配置model_name_or_path
:模型的路径max_model_len
:模型最大token 长度gpu_memory_utilization
:显存的占用率,提前为模型的KV Cache
占用显存的百分比enable_prefix_caching
:是否启用前缀缓存(true/false)kv_cache_quant_policy
:KV Cache
的量化策略,0 表示不量化lora
:lora模型的路径,其值 key 为 lora 模型的命名,value 为 lora 的路径
-
model_type
:模型类型, -
work_mode
:工作模式,即推理后端,现支持的类型有: [vllm
,sglang
,lmdeploy-turbomind
,lmdeploy-pytorch
,hf
] -
device
:设备类型,暂时只支持 gpu -
port
:可手动指定worker端口,不设置表示自动获取。 -
workers
:这里控制每个模型使用的gpu编号,以及启动几份模型。(worker的含义就是一个进程,每个进程负责启动一个模型服务)
-
workers
样例:
- 启动
一份
该模型,该模型使用编号为1
和2
的gpu
,同时也启动了张量并行
TP=2
yaml
workers:
- gpus:
- 1
- 2
- 启动
两份
该模型,模型副本1加载到gpu 1
, 模型副本2 加载到gpu2
,相当于数据并行
DP=2
yaml
workers:
- gpus:
- 1
- gpus:
- 2
Embedding模型 示例:Conan-embedding-v1
yaml
models:
- Conan-embedding-v1:
alias: text-embedding-ada-002
enable: true
model_config:
model_name_or_path: /home/dev/model/TencentBAC/Conan-embedding-v1/
task_type: auto # auto 、embedding 、 reranker 或者 classify 不设置这个参数,默认为 auto,自动识别可能会识别错误
model_type: embedding
work_mode: infinity
device: gpu
workers:
- gpus:
- 4
- 参数说明(大部分配置 同 大语言模型示例:Qwen ,重复不再描述 ):
model_config
:模型参数配置task_type
:该模型的任务类型,包括:auto
、embedding
、reranker
或者classify
, 默认为auto
,自动识别可能会识别错误
model_type
:模型类型,仅支持embedding
work_mode
:工作模式,即推理后端,现支持的类型有: [vllm
,infinity
,sentence_transformers
],但并不是所有后端都支持
TTS文本转语音模型 示例: Spark-TTS
yaml
- tts:
alias: null
enable: true
model_config:
model_name_or_path: /home/dev/model/SparkAudio/Spark-TTS-0___5B/
model_type: spark_tts
work_mode: vllm
device: gpu
workers:
- gpus:
- 6
-
参数说明(大部分配置 同 大语言模型示例:Qwen ,重复不再描述 ):
model_type
:模型类型,仅支持spark_tts
work_mode
:工作模式,即推理后端,现支持的类型有: [vllm
,sglang
,torch
]
T2I 文生图模型示例: flux
yaml
- flux:
alias: null
enable: true
model_config:
model_name_or_path: /home/dev/model/MusePublic/489_ckpt_FLUX_1/
model_type: flux
work_mode: hf # 不使用这个参数,所以随便填都可以
device: gpu
workers:
- gpus:
- 7
-
参数说明(大部分配置 同 大语言模型示例:Qwen ,重复不再描述 ):
model_type
:模型类型,仅支持flux
IE 图片编辑模型 示例: Qwen-Image-Edit
yaml
- image-edit:
alias: null
enable: true
model_config:
model_name_or_path: /home/dev/model/Qwen/Qwen-Image-Edit/
model_type: qwen_image_edit
work_mode: hf # 不使用这个参数,所以随便填都可以
device: gpu
workers:
- gpus:
- 7
-
参数说明(大部分配置 同 大语言模型示例:Qwen ,重复不再描述 ):
model_type
:模型类型,仅支持qwen_image_edit
ASE 语音转文字模型 示例: SenseVoiceSmall
yaml
- SenseVoiceSmall:
alias: null
enable: true
model_config:
model_name_or_path: /home/dev/model/iic/SenseVoiceSmall
# VAD模型,可以不设置
vad_model: /home/dev/model/iic/speech_fsmn_vad_zh-cn-16k-common-pytorch/
model_type: funasr # 类型只能是 funasr
work_mode: hf # 不使用这个参数,所以随便填都可以
device: gpu
workers:
- gpus:
- 2
- 参数说明(大部分配置 同 大语言模型示例:Qwen ,重复不再描述 ):
-
model_config
:模型参数配置vad_model
: VAD模型
-
model_type
:模型类型,仅支持funasr
-