GPT Server 文档

目录

GPT Server是一个用于生产级部署LLMsEmbeddingRerankerASRTTS文生图图片编辑文生视频的开源框架。

项目地址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_policyKV 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样例:

  • 启动一份该模型,该模型使用编号为12gpu ,同时也启动了张量并行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:该模型的任务类型,包括:autoembeddingreranker 或者 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

相关推荐
Databend6 小时前
2KB histogram 背后:Databend 如何低成本追踪长尾延迟
大数据·数据分析·agent
笃行3506 小时前
用 CodeBuddy “复活“《山海经》:异兽图鉴网站的诞生
agent
AlbertZein7 小时前
Agent任务实测:谁能稳定跑完,谁只是看起来很强?
aigc·openai·ai编程
镜舟科技7 小时前
Databricks 再提 LTAP,AI 时代的数据底座为何重回大一统叙事?
数据库·架构·agent
轻口味7 小时前
别被模型宣传骗了,真实 Agent 任务一跑就知道
agent·ai编程
AlbertZein8 小时前
别被模型宣传骗了,真实 Agent 任务一跑就知道
aigc·openai·ai编程
小星AI8 小时前
Kimi Code CLI 超详细教程,附源码
人工智能·agent
Databend8 小时前
从湖仓升级为 Agent 时代的数据控制面,Snowflake 和 Databricks 有哪些布局
大数据·数据库·agent
uccs9 小时前
AI Agent 系统的容错设计实践
agent·ai编程·claude