本项目依托fastchat的基础能力来提供openai server的能力.
- 在此基础上完美适配了更多的模型,优化了fastchat兼容较差的模型
- 重新适配了vllm对模型适配较差,导致解码内容和hf不对齐的问题。
- 支持了vllm和hf的加载方式
- 支持所有兼容sentence_transformers的语义向量模型(Embedding和Reranker)
- Chat模板支持了function角色,使其完美支持了LangGraph Agent框架
- 降低了模型适配的难度和项目使用的难度(仅需适配10行以内的相似代码),从而更容易的部署自己最新的模型。
(仓库初步构建中,构建过程中没有经过完善的回归测试,可能会发生已适配的模型不可用的Bug,欢迎提出改进或者适配模型的建议意见。)
4-20 支持了 llama-3
4-13 支持了 deepseek
4-4 支持了 embedding模型 acge_text_embedding (通过测试)
3-9 支持了 reranker 模型 ( bge-reranker,bce-reranker-base_v1)
3-3 支持了 internlm-1.0 ,internlm-2.0
3-2 支持了 qwen-2 0.5B, 1.8B, 4B, 7B, 14B, and 72B
2-4 支持了 vllm 实现
1-6 支持了 Yi-34B
12-31 支持了 qwen-7b, qwen-14b
12-30 支持了 all-embedding(理论上支持所有的词嵌入模型)
12-24 支持了 chatglm3-6b
Models | HF | vllm |
---|---|---|
chatglm3-6b | √ | √ |
Qwen (7B, 14B, etc.)) | √ | √ |
Qwen-2 (0.5B--72B) | √ | √ |
Yi-34B | √ | √ |
Internlm-1.0 | √ | √ |
Internlm-2.0 | √ | √ |
Deepseek | √ | √ |
Llama-3 | √ | - |
原则上支持所有的Embedding/Rerank 模型
以下模型经过测试:
Embedding/Rerank | HF |
---|---|
bge-reranker | √ |
bce-reranker | √ |
bge-embedding | √ |
bce-embedding | √ |
piccolo-base-zh-embedding | √ |
acge_text_embedding | √ |
目前 acge_text_embedding MTEB榜单排行第一, 超越付费的闭源服务,阿里云OpenSearch服务(第二)和baichuan-text-embedding(第五)
cd gpt_server/script
vim config.yaml
serve_args:
host: 0.0.0.0
port: 8082
models:
- chatglm3-6b: # 自定义的模型名称
alias: gpt4,gpt3 # 模型别名 例如 gpt4,gpt3
enable: false # 是否启动这个模型 false / true
model_name_or_path: /home/dev/model/chatglm3-6b/ # 模型的路径
model_type: chatglm3 # 模型的类型 现在暂时 只有 chatglm3 embedding
work_mode: hf # 启动方式 vllm hf
device: gpu # gpu / cpu
workers:
- gpus: # 第一个 worker 每一个 -gpus 表示一个 worker
- 1 # 每个worker 使用的gpu
- 2
# - 3
# - gpus: # 第二个 worker
# - 1
# Embedding 模型 同上
- piccolo-base-zh:
alias: null # 别名
enable: true # false true
model_name_or_path: /home/dev/model/assets/embeddings/sensenova/piccolo-base-zh/
model_type: embedding
work_mode: hf
device: gpu # gpu / cpu
workers:
- gpus:
- 0
sh start.sh
待填充
见 gpt_server/tests 目录 样例测试代码
https://github.com/shell-nlp/gpt_server/tree/main/tests
FastChat : https://github.com/lm-sys/FastChat
vllm : https://github.com/vllm-project/vllm