目录
- 配置文件的详细说明(后续持续完善)
- openai_api_server配置
- 控制器(controller)配置
- 模型(worker)配置
- 模型配置
- 大语言模型 示例:Qwen
- Embedding模型 示例:Conan-embedding-v1
- TTS文本转语音模型 示例: Spark-TTS
- T2I 文生图模型示例: flux
- IE 图片编辑模型 示例: Qwen-Image-Edit
- ASE 语音转文字模型 示例: SenseVoiceSmall
GPT Server
是一个用于生产级部署LLMs
、Embedding
、Reranker
、ASR
、TTS
、文生图
、图片编辑
和文生视频
的开源框架。
项目地址:https://github.com/shell-nlp/gpt_server
配置文件的详细说明(后续持续完善)
openai_api_server配置
serve_args:enable: true host: 0.0.0.0port: 8082controller_address: http://localhost:21001
- 功能:OpenAI API服务的主入口配置
- 参数说明:
enable
:服务开关(true/false)host
:监听地址port
:服务暴露端口controller_address
:下游控制器服务地址api_keys
:用来设置 openai 密钥
控制器(controller)配置
controller_args:enable: true host: 0.0.0.0port: 21001dispatch_method: shortest_queue
- 核心功能:请求调度中心
- 参数说明:
enable
:服务开关(true/false)host
:监听地址port
:服务暴露端口dispatch_method
:支持两种策略:lottery
:随机分配shortest_queue
(推荐):选择负载最低的Worker
- 设计建议:生产环境建议保持
shortest_queue
以实现负载均衡
模型(worker)配置
model_worker_args:host: 0.0.0.0controller_address: http://localhost:21001log_level: WARNINGlimit_worker_concurrency: 1024
- 参数说明:
host
:监听地址controller_address
:下游控制器服务地址log_level
:日志级别(DEBUG/INFO/WARNING/ERROR)limit_worker_concurrency
:单个Worker最大并发请求数
- 端口说明:Worker端口由系统自动分配并注册到控制器
模型配置
大语言模型 示例:Qwen
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.8enable_prefix_caching: true dtype: auto # 类型kv_cache_quant_policy: 0lora: # lora 模型的路径test_lora: /home/dev/project/LLaMA-Factory/saves/Qwen1.5-14B-Chat/lora/train_2024-03-22-09-01-32/checkpoint-100model_type: qwenwork_mode: lmdeploy-turbomind device: gpuport: 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
workers:- gpus:- 1- 2
- 启动
两份
该模型,模型副本1加载到gpu 1
, 模型副本2 加载到gpu2
,相当于数据并行
DP=2
workers:- gpus:- 1- gpus:- 2
Embedding模型 示例:Conan-embedding-v1
models:
- Conan-embedding-v1:alias: text-embedding-ada-002enable: truemodel_config:model_name_or_path: /home/dev/model/TencentBAC/Conan-embedding-v1/task_type: auto # auto 、embedding 、 reranker 或者 classify 不设置这个参数,默认为 auto,自动识别可能会识别错误model_type: embeddingwork_mode: infinitydevice: gpuworkers:- gpus:- 4
- 参数说明(大部分配置 同 大语言模型示例:Qwen ,重复不再描述 ):
model_config
:模型参数配置task_type
:该模型的任务类型,包括:auto
、embedding
、reranker
或者classify
, 默认为auto
,自动识别可能会识别错误
model_type
:模型类型,仅支持embedding
work_mode
:工作模式,即推理后端,现支持的类型有: [vllm
,infinity
,sentence_transformers
],但并不是所有后端都支持
TTS文本转语音模型 示例: Spark-TTS
- tts:alias: nullenable: truemodel_config:model_name_or_path: /home/dev/model/SparkAudio/Spark-TTS-0___5B/model_type: spark_ttswork_mode: vllmdevice: gpuworkers:- gpus:- 6
-
参数说明(大部分配置 同 大语言模型示例:Qwen ,重复不再描述 ):
model_type
:模型类型,仅支持spark_tts
work_mode
:工作模式,即推理后端,现支持的类型有: [vllm
,sglang
,torch
]
T2I 文生图模型示例: flux
- flux:alias: nullenable: truemodel_config:model_name_or_path: /home/dev/model/MusePublic/489_ckpt_FLUX_1/model_type: fluxwork_mode: hf # 不使用这个参数,所以随便填都可以device: gpuworkers:- gpus:- 7
-
参数说明(大部分配置 同 大语言模型示例:Qwen ,重复不再描述 ):
model_type
:模型类型,仅支持flux
IE 图片编辑模型 示例: Qwen-Image-Edit
- image-edit: alias: nullenable: truemodel_config:model_name_or_path: /home/dev/model/Qwen/Qwen-Image-Edit/model_type: qwen_image_editwork_mode: hf # 不使用这个参数,所以随便填都可以device: gpuworkers:- gpus:- 7
-
参数说明(大部分配置 同 大语言模型示例:Qwen ,重复不再描述 ):
model_type
:模型类型,仅支持qwen_image_edit
ASE 语音转文字模型 示例: SenseVoiceSmall
- SenseVoiceSmall:alias: nullenable: truemodel_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 # 类型只能是 funasrwork_mode: hf # 不使用这个参数,所以随便填都可以device: gpuworkers:- gpus:- 2
- 参数说明(大部分配置 同 大语言模型示例:Qwen ,重复不再描述 ):
-
model_config
:模型参数配置vad_model
: VAD模型
-
model_type
:模型类型,仅支持funasr
-