目錄
- 配置文件的詳細說明(后續持續完善)
- 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
-