在 Xinference 中部署 deepseek-v2.5:通过 vLLM / Transformers / SGLang 引擎启动 236B 通用与代码能力融合大模型
2026/9/16 15:33:35 网站建设 项目流程

在 Xinference 中部署 deepseek-v2.5:通过 vLLM / Transformers / SGLang 引擎启动 236B 通用与代码能力融合大模型

【免费下载链接】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

deepseek-v2.5 是 Xinference 内置的 LLM 模型之一,它是 DeepSeek-V2-Chat 与 DeepSeek-Coder-V2-Instruct 的融合升级版本,将通用对话与代码生成能力整合进单一模型。本文以 deepseek-v2.5.rst 为骨架,结合仓库内模型注册表与启动/管理文档,完整讲解该模型在 Xinference 中的规格参数、引擎支持与一键启动方式,读完后你可以直接用一条xinference launch命令或 Python Client 在本机、单机多卡乃至分布式集群中拉起该模型,并通过 OpenAI 兼容 API 对外提供服务。

模型概览:DeepSeek-V2.5 的核心能力定位

根据模型内置注册表中的定义,Xinference 为deepseek-v2.5登记的元信息如下(与官方文档卡片一致):

属性
Context Length128000
Model Namedeepseek-v2.5
Languagesen, zh
Abilitieschat
Model DescriptionDeepSeek-V2.5 is an upgraded version that combines DeepSeek-V2-Chat and DeepSeek-Coder-V2-Instruct. The new model integrates the general and coding abilities of the two previous versions.

从能力标签看,该模型仅注册了chat能力,即纯文本对话/生成,未注册 embedding、rerank 等多模态或向量化能力;支持中英双语,上下文窗口为 128K tokens。官方描述明确指出,它并非从零训练的独立新模型,而是对既有通用模型(DeepSeek-V2-Chat)与代码模型(DeepSeek-Coder-V2-Instruct)两种能力的融合——因此在部署后,同一服务既可承接通用问答,也可直接用于代码补全、代码解释与软件工程类任务,无需为两类场景分别启动两个模型实例。

在 Xinference 的模型管理体系中,deepseek-v2.5属于内置(builtin)LLM 模型家族的一员。内置模型的定义集中在模型注册表中,读者可将其与仓库内其他 DeepSeek 系列模型(如 deepseek-v2-chat、deepseek-v3、deepseek-r1)对照阅读,以理解 Xinference 的模型家族登记模式。

模型规格:236B 参数与引擎支持矩阵

文档卡片中为本模型定义了一个规格(Model Spec):

  • Model Format:pytorch
  • Model Size (in billions):236
  • Quantizations:none
  • Engines:vLLM, Transformers, SGLang
  • Model ID:deepseek-ai/DeepSeek-V2.5

规格解读如下:

  • 236B 参数规模:这是完整的稠密/MoE 权重全量规模,意味着需要多卡 GPU 显存协同才能容纳,单卡部署通常不可行。
  • 量化选项为none:Xinference 对该模型的注册信息中不提供任何量化变体(如 INT4/INT8),启动时--quantization只能取none,模型权重以 FP16/BF16 全精度加载。
  • 三引擎并驱:vLLM、Transformers、SGLang 三个推理后端均可承载该模型,其中 vLLM 与 SGLang 面向高吞吐服务化场景,Transformers 面向灵活性与兼容性优先的场景。

上述规格可以在源码注册表 xinference/model/llm/llm_family.json 中找到一一对应的原始 JSON 定义,其中还额外登记了:

  • Hugging Face 源deepseek-ai/DeepSeek-V2.5,固定 revision24b08cb750e0c2757de112d2e16327cb21ed4833,以保证可复现下载;
  • ModelScope 源deepseek-ai/DeepSeek-V2.5,revision 为master
  • 模型架构DeepseekV2ForCausalLMmodel_typedeepseek_v2
  • 停止条件stop_token_ids[100001]stop字符串为<|end▁of▁sentence|>
  • 虚拟环境依赖(virtualenv 包声明,见下节)。

一键启动:命令行完整命令与参数解析

文档给出了该模型的启动命令模板:

xinference launch --model-engine ${engine} --model-name deepseek-v2.5 --size-in-billions 236 --model-format pytorch --quantization ${quantization}

由于规格中量化仅有none一种,实际可执行的命令即:

xinference launch --model-engine vllm --model-name deepseek-v2.5 --size-in-billions 236 --model-format pytorch --quantization none

各参数含义与取值依据:

参数取值说明
--model-enginevllm/transformers/sglang推理后端,取自模型规格中的 Engines 列表
--model-namedeepseek-v2.5必须与注册表model_name完全一致
--size-in-billions236参数规模,决定选择注册表中哪个 Model Spec
--model-formatpytorch权重格式,本规格仅支持 pytorch
--quantizationnone量化方式,本规格仅支持 none
--model-uid可选自定义模型唯一 ID,默认等于模型名,用于后续调用句柄
--endpoint可选指定http://<XINFERENCE_HOST>:<XINFERENCE_PORT>,默认指向本机服务
--model-type可选LLM 类模型可省略,系统可自动推断

启动后,每个运行中的模型实例都会获得一个唯一 uid(默认即模型名),该 uid 是对外调用的句柄,也可通过--model-uid手动指定,便于多实例并存时区分管理(参见 launch.rst 中关于模型 uid 的说明)。

引擎选择对依赖的影响:虚拟环境机制

选择不同引擎并非只影响性能,还会触发不同的运行环境准备。在 xinference/model/llm/llm_family.json 中,deepseek-v2.5virtualenv.packages声明为:

#transformers_dependencies# ; #engine# == "Transformers" #vllm_dependencies# ; #engine# == "vllm" #system_numpy# ; #engine# == "vllm"

这意味着:选择 Transformers 引擎时,Xinference 会为该模型准备 Transformers 系列依赖的独立虚拟环境;选择 vLLM 引擎时,则会安装 vLLM 依赖并复用系统 NumPy 环境。从源码结构看,Xinference 会按引擎类别把模型隔离到对应虚拟环境中运行,避免多模型之间的依赖版本冲突——这也是内置模型能够同时支持三套后端的关键机制。相关实现可继续参考 xinference/core/virtual_env_manager.py 与文档 virtualenv.rst。

提示模板与停止符:保证输出格式正确的底层细节

除了显存与算力,Chat 类模型能否正确收敛输出还取决于提示模板与停止符。注册表中为deepseek-v2.5登记了一套完整的 Jinja 版chat_template(见 xinference/model/llm/llm_family.json),其核心特征包括:

  • 使用 DeepSeek 系列专用标记:<|begin▁of▁sentence|>开头、<|User|>/<|Assistant|>区分角色;
  • 内置对 tool_calls / tool 输出的处理分支,即该模板原生兼容函数调用(Function Call)场景;
  • add_generation_prompt=True时,在结尾自动追加<|Assistant|>引导符;
  • 配合stop_token_ids=[100001]stop=["<|end▁of▁sentence|>"]完成生成终止。

这些元数据由 Xinference 在启动时自动注入到所选引擎中,用户在 CLI 层无需手工维护模板。

使用 Python Client 启动与调用

除命令行外,Xinference 提供等价的 Python Client 接口。启动该模型:

from xinference.client import Client client = Client("http://127.0.0.1:9997") model_uid = client.launch_model( model_name="deepseek-v2.5", model_engine="vllm", model_size_in_billions=236, model_format="pytorch", quantization="none", ) print(model_uid)

之后即可通过 OpenAI 兼容的chat接口进行对话(Xinference 将模型暴露为统一推理 API,调用方式与deepseek-v2.5是否在远端运行无关):

from xinference.client import Client client = Client("http://127.0.0.1:9997") model = client.get_model(model_uid) response = model.chat( messages=[{"role": "user", "content": "用 Python 写一个快速排序,并解释复杂度"}] ) print(response["choices"][0]["message"]["content"])

Python Client 的完整用法可参考 xinference/client/restful/restful_client.py 及其测试 xinference/client/tests/test_client.py。由于 236B 模型加载耗时较长,也支持先只下载不启动,通过POST /v1/cache/models接口将权重缓存到本地模型仓库,之后再执行启动(详见 launch.rst 的 "Download without launching" 一节)。

模型生命周期管理:列出、查询与终止

启动之后,可以通过三种方式查看当前运行中的模型实例(对应 models/index.rst):

# 命令行 xinference list # REST API curl http://127.0.0.1:9997/v1/models # Python from xinference.client import Client client = Client("http://127.0.0.1:9997") print(client.list_models())

不再需要时,按 uid 终止以释放 GPU 显存与进程资源:

xinference terminate --model-uid "deepseek-v2.5" # 或 REST curl -X DELETE http://127.0.0.1:9997/v1/models/deepseek-v2.5 # 或 Python client.terminate_model(model_uid="deepseek-v2.5")

若需查看某模型是否可启动以及其全部规格,可以使用xinference registrations --model-type LLM(或GET /v1/model_registrations/LLM)列出所有内置 LLM 家族,确认deepseek-v2.5的 236B 规格与引擎列表。

部署实践要点与注意事项

针对该模型的实际落地,以下要点值得注意:

  1. 显存规划是前提:236B 全精度权重在单卡上无法加载,需要按多卡张量并行规划显存。Xinference 会依据模型规格进行显存估算,相关算法可参见 xinference/model/llm/memory.py 与文档 model_memory.rst,建议在启动前据此确认 GPU 总量是否满足。
  2. 多副本横向扩展:若节点上有空闲 GPU,可设置--replica使同一模型加载多个实例,Xinference 自动做请求负载均衡,对外仍呈现单一模型(参见 launch.rst 的 Replica 一节);从 v1.15.0 起还可通过环境变量XINFERENCE_ALLOW_MULTI_REPLICA_PER_GPU控制单卡多副本。
  3. 分布式部署:单机多卡资源不足时,可参考 distributed_inference.rst 将模型调度到多台 worker 节点,236B 级别的模型尤其适合该模式。
  4. 虚拟环境就绪:首次启动会为所选引擎创建独立虚拟环境并下载约百 GB 级权重,耗时较长;建议使用--endpoint指向运行中的 supervisor,并用 cache-management 或下载进度接口观察状态。
  5. 量化不可用:该规格没有量化变体,无法通过降低精度来压缩显存;若显存受限,应评估仓库内其他规模更小的 DeepSeek 系列模型(如 deepseek-v2-chat 的 16B 规格)。

小结

deepseek-v2.5是 Xinference 内置 LLM 家族中融合通用与代码能力的高规格选项:128K 上下文、236B 参数、vLLM/Transformers/SGLang 三引擎可选。通过文档卡片给出的启动命令,配合 Python Client、REST API 与多副本/分布式能力,即可在一套统一推理 API 下快速将其投入生产使用。本文涉及的模型元数据与依赖声明均可在 xinference/model/llm/llm_family.json 中核对,启动与管理接口可进一步阅读 models/index.rst 与 launch.rst。

【免费下载链接】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),仅供参考

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

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

立即咨询