目录
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.0
port: 8082
controller_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.0
port: 21001
dispatch_method: shortest_queue
- 核心功能:请求调度中心
- 参数说明:
enable:服务开关(true/false)host:监听地址port:服务暴露端口dispatch_method:支持两种策略:lottery:随机分配shortest_queue(推荐):选择负载最低的Worker
- 设计建议:生产环境建议保持
shortest_queue以实现负载均衡
模型(worker)配置
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
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:设备类型,暂时只支持 gpuport:可手动指定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-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:模型类型,仅支持embeddingwork_mode:工作模式,即推理后端,现支持的类型有: [vllm,infinity,sentence_transformers],但并不是所有后端都支持
TTS文本转语音模型 示例: Spark-TTS
- 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_ttswork_mode:工作模式,即推理后端,现支持的类型有: [vllm,sglang,torch]
T2I 文生图模型示例: flux
- 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
- 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
- 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