Xinference 内置模型详解:在统一推理 API 上部署 baichuan-2-chat(Baichuan2 Chat)
2026/9/16 14:29:45 网站建设 项目流程

Xinference 内置模型详解:在统一推理 API 上部署 baichuan-2-chat(Baichuan2 Chat)

【免费下载链接】inferenceSwap GPT for any LLM by changing a single line of code. Xinference lets you run open-source, speech, and multimodal models on cloud, on-prem, or your laptop — all through one unified, production-ready inference API.项目地址: https://gitcode.com/GitHub_Trending/in/inference

导读

本文聚焦 Xinference 内置模型家族中的baichuan-2-chat(百川智能 Baichuan2 对话模型),系统说明其内置规格(7B / 13B 两个 pytorch 版本)、支持的推理引擎、模型来源与启动命令,并结合仓库内置的 模型家族定义文件 与测试用例,从源码层面解读其上下文长度、对话模板、停止符与虚拟环境依赖等实现细节。读完本文,你将掌握如何通过一行xinference launch命令在本地或云端拉起 Baichuan2 对话模型,并通过 OpenAI 兼容接口完成聊天推理。

模型概览:从 Baichuan2 到内置模型家族

baichuan-2-chat是百川智能 Baichuan2 基座模型经过指令微调(fine-tune)后的对话版本,专注于通用聊天场景。在 Xinference 的内置模型体系中,它被注册为官方内置 LLM 之一,对应元数据定义位于 xinference/model/llm/llm_family.json。

根据文档 baichuan-2-chat 模型页 与仓库内置定义,该模型的核心属性如下:

属性说明
Model Namebaichuan-2-chat内置模型注册名,launch 时使用
Context Length4096上下文窗口长度 4096 tokens
Languagesen,zh支持英文与中文
Abilitieschat对话(聊天)能力
Model Typebaichuan架构类型BaichuanForCausalLM
Quantizationsnone内置定义未提供量化档位,pytorch 全精度
EnginesvLLM、Transformers两种可用推理引擎

该定义同样被 测试用例 test_llm_family.py 引用,测试通过match_llm("baichuan-2-chat", model_format="pytorch")校验其默认规格,证明该模型在模型家族注册表中具备可被程序化匹配的稳定身份。

内置规格与多源模型获取

baichuan-2-chat提供两个 pytorch 规格(Model Spec),分别对应 70 亿与 130 亿参数版本,模型权重可从多个来源获取,无需手动填写下载地址。

Model Spec 1:pytorch,7B

字段
Model Formatpytorch
Model Size7 Billion
Quantizationsnone
EnginesvLLM、Transformers
Model IDbaichuan-inc/Baichuan2-7B-Chat

启动命令如下(将${engine}替换为vllmtransformers,将${quantization}替换为none):

xinference launch --model-engine ${engine} --model-name baichuan-2-chat --size-in-billions 7 --model-format pytorch --quantization ${quantization}

Model Spec 2:pytorch,13B

字段
Model Formatpytorch
Model Size13 Billion
Quantizationsnone
EnginesvLLM、Transformers
Model IDbaichuan-inc/Baichuan2-13B-Chat

启动命令如下:

xinference launch --model-engine ${engine} --model-name baichuan-2-chat --size-in-billions 13 --model-format pytorch --quantization ${quantization}

模型来源(Hubs)与版本锁定

仓库内置定义 llm_family.json 为每个规格登记了三个模型来源与固定 revision:

  • Hugging Face:7B 版本baichuan-inc/Baichuan2-7B-Chat(revision2ce891951e000c36c65442608a0b95fd09b405dc);13B 版本baichuan-inc/Baichuan2-13B-Chat(revisiona56c793eb7a721ab6c270f779024e0375e8afd4a)。
  • ModelScope:7B/13B 均使用baichuan-inc/Baichuan2-7B-Chatbaichuan-inc/Baichuan2-13B-Chat,revision 分别为v1.0.4v1.0.3
  • OpenMind Hub:对应Baichuan/Baichuan2_7b_chat_ptBaichuan/Baichuan2_13b_chat_pt

revision 的锁定意味着每次拉起模型时权重来源可复现。可以通过环境变量切换默认模型源(例如设置为 modelscope),这一点在 test_llm_family.py 中得到了验证:当设置模型源环境变量为modelscope后,match_llm("baichuan-2-chat", model_format="pytorch")返回的规格其model_hub即为modelscope,量化档位为none,格式为pytorch

引擎选择:vLLM 与 Transformers

文档明确指出baichuan-2-chat支持 vLLM 与 Transformers 两种引擎,通过--model-engine参数选择:

  • Transformers:基于 Hugging Face transformers 生态,兼容性最好,适合首次验证与低资源环境。仓库为 Transformers 引擎声明了额外的虚拟环境依赖(见下文)。
  • vLLM:面向高吞吐、低延迟的在线服务场景,通过 PagedAttention 等机制优化推理,适合生产化部署与并发请求处理。

选择引擎时需同时匹配对应--model-engine--model-format pytorch。若不确定当前环境是否满足依赖,Xinference 会依据内置定义自动创建/复用独立的虚拟环境并安装所需包。

对话模板、停止符与虚拟环境依赖:源码级细节

除文档中的启动命令外,llm_family.json 还为该模型登记了三项关键推理配置,理解它们有助于解释模型在 API 侧的行为:

  • chat_template(对话模板):使用 Baichuan2 的保留 token(<reserved_106>标记用户消息、<reserved_107>标记助手消息)拼接多轮对话,并在生成阶段追加<reserved_107>作为生成提示;system 消息作为前置内容。
  • stop_token_ids(停止符)[2, 195],对应<eos><reserved_107>两个 token id,保证生成在回复结束时及时截断,避免输出多余保留 token。
  • virtualenv(虚拟环境依赖):当引擎为 Transformers 时,自动安装#transformers_dependencies#依赖、sentencepiecetransformers_stream_generator。其中sentencepiece用于 Baichuan 中文分词(BPE/SentencePiece),transformers_stream_generator用于流式生成支持。

同时,仓库中 test_stream_options.py 提供了一个端到端的调用样例:以 RESTful API 拉起baichuan-2-chat(Transformers 引擎、7B、pytorch、量化none)后,再通过 OpenAI 兼容接口发起多轮对话请求(包含中英文混合消息),并校验流式返回的分片类型。这说明:

  1. 模型注册名、尺寸、格式与量化参数与 launch 命令完全对应;
  2. 启动后可立即通过/v1/chat/completions风格接口以 OpenAI 协议进行对话。

实际操作:从命令行启动到 API 调用

综合文档与源码,推荐的最小操作路径如下:

  1. 启动模型(以 7B + Transformers 为例):
xinference launch --model-engine transformers --model-name baichuan-2-chat --size-in-billions 7 --model-format pytorch --quantization none
  1. (可选)切换模型源:如需从 ModelScope 拉取权重,在启动前设置模型源环境变量(如XINFERENCE_ENV_MODEL_SRC=modelscope)。

  2. 调用聊天接口:启动完成后,Xinference 会返回一个模型 UID(model_uid)。之后即可使用任意 OpenAI SDK 指向http://<host>:<port>/v1发起chat/completions请求,或直接通过 Xinference 的 RESTful API 进行调用,多轮对话消息结构遵循 OpenAI 的messages协议。

  3. 查看与管理:可通过xinference list查看已启动模型,或在前端控制台查看运行状态与日志。

总结

baichuan-2-chat是 Xinference 内置 LLM 家族中一个开箱即用的中英文对话模型,提供 7B/13B 两个 pytorch 规格、4096 上下文窗口,并同时支持 vLLM 与 Transformers 两种引擎。借助 内置模型定义 与 生成式文档,你只需一条xinference launch命令即可完成从权重下载、环境准备到服务暴露的全部流程,并通过统一的 OpenAI 兼容 API 进行生产级调用。

【免费下载链接】inferenceSwap GPT for any LLM by changing a single line of code. Xinference lets you run open-source, speech, and multimodal models on cloud, on-prem, or your laptop — all through one unified, production-ready inference API.项目地址: https://gitcode.com/GitHub_Trending/in/inference

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询