AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


开源力量!轻松上手 Xinference:让DeepSeek-V3/R1满血私有化推理触手可及

发布日期:2025-02-22 08:44:54 浏览次数: 1574 来源:觉察流
推荐语

探索开源工具Xinference,实现大模型高效推理的利器。

核心内容:
1. Xinference工具介绍及其对大模型支持
2. Xinference v1.3.0版本更新亮点
3. 从本地部署到分布式推理的实践指南

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家



 Xinference 是一款强大的工具,它不仅支持本地运行大模型,还能在分布式集群环境下高效推理。Xinference的最新版本v1.3.0带来了对DeepSeek-V3/R1 这样的大参数量模型的支持。开源力量,助力开源模型私有化落地,助推AI行业发展!



 

 大家好,我是肆〇柒,今天想和大家聊聊 Xinference,一个非常实用的大模型推理工具。通过它,我们可以在本地或者分布式集群环境下轻松运行各种大语言模型,比如 qwen2.5-instruct,而V1.3.0版本的更新更是带来了对DeepSeek-V3DeepSeek-R1等大尺寸模型的分布式推理。接下来,我会带大家一步步了解如何使用 Xinference,从本地部署到分布式推理,希望能帮助到对这方面感兴趣的朋友们。

一、Xinference 是什么

Xinference 是一款专为大语言模型推理设计的工具,支持多种推理引擎,比如 vllmsglangllama.cpp 等。它不仅可以运行在本地,还能在分布式集群环境下高效推理,特别适合那些体积庞大的模型,比如 DeepSeek V3 和 DeepSeek R1。通过 Xinference,我们可以轻松管理模型的整个生命周期,从启动到停止,还能通过兼容 OpenAI 的 API 与模型进行交互。


二、本地部署 Xinference

1. 安装与启动

首先,我们需要在本地安装 Xinference。安装完成后,可以通过以下命令启动本地服务:

xinference-local --host 0.0.0.0 --port 9997

默认情况下,Xinference 会使用 <HOME>/.xinference 作为主目录来存储日志文件和模型文件。如果需要更改主目录,可以通过设置环境变量 XINFERENCE_HOME 来实现,例如:

XINFERENCE_HOME=/tmp/xinference xinference-local --host 0.0.0.0 --port 9997

启动成功后,我们可以通过访问 http://127.0.0.1:9997/ui 来使用 Web 界面,或者访问 http://127.0.0.1:9997/docs 查看 API 文档。


2. 选择推理引擎

从 v0.11.0 版本开始,Xinference 要求在加载 LLM 模型之前指定具体的后端推理引擎。当前支持的推理引擎包括:

  • • vllm
  • • sglang
  • • llama.cpp
  • • transformers
  • • MLX

不同的模型格式和量化参数,会影响可用的推理引擎。Xinference 提供了 xinference engine 命令,帮助我们查询相关的参数组合。例如:

xinference engine -e <xinference_endpoint> --model-name qwen-chat

根据运行环境的不同,推荐的推理引擎也有所差异:

  • • Linux:优先使用 vLLM 或 SGLang,资源有限时可考虑 llama.cpp
  • • Windows:推荐使用 WSL,选择与 Linux 一致的引擎,否则推荐 llama.cpp
  • • Mac:推荐使用 MLX 引擎,其次选择 llama.cpp

3. 运行模型

以 qwen2.5-instruct 模型为例,我们可以使用以下命令启动模型:

xinference launch --model-engine <inference_engine> -n qwen2.5-instruct -s 0_5 -f pytorch

如果使用 vllm 引擎,还需要指定相关的参数,例如:

xinference launch --model-engine vllm -n qwen2.5-instruct -s 0_5 -f pytorch --gpu_memory_utilization 0.9

首次运行模型时,Xinference 会从 HuggingFace 下载模型权重,耗费时长视本地网络带宽环境,大约 10 到 30 分钟不等。下载完成后,模型会缓存到本地,后续运行无需重新下载。


4. 与模型交互

Xinference 提供了与 OpenAI 兼容的 API,我们可以通过命令行、cURL 或 Python 代码与模型交互。例如,使用 cURL 发送请求:

curl -X 'POST' \
  'http://127.0.0.1:9997/v1/chat/completions' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "qwen2.5-instruct",
    "messages": [
        {
            "role": "system",
            "content": "You are a helpful assistant."
        },
        {
            "role": "user",
            "content": "What is the largest animal?"
        }
    ]
  }'

也可以使用 Python 代码:

from openai import OpenAI
client = OpenAI(base_url="http://127.0.0.1:9997/v1", api_key="not used actually")

response = client.chat.completions.create(
    model="qwen2.5-instruct",
    messages=[
        {"role""system""content""You are a helpful assistant."},
        {"role""user""content""What is the largest animal?"}
    ]
)
print(response)

还可以使用Xinference自带的Chatbot进行简单的对话验证:

三、分布式推理

对于那些无法适配单台机器 GPU 的大型模型,包括 DeepSeek V3DeepSeek R1 等,Xinference 支持在多台机器上运行。以下是分布式推理的步骤:

1. 部署集群

首先,需要在一台机器上启动 Supervisor 节点:

xinference-supervisor -H "${supervisor_host}"

然后,在其他机器上启动 Worker 节点:

xinference-worker -e "http://${supervisor_host}:9997" -H "${worker_host}"

2. 启动分布式模型

支持的引擎
现在,Xinference 支持如下引擎在多台 worker 上运行模型。

  • • SGLang (在 v1.3.0 中支持)

以下引擎即将支持分布式推理:

  • • vLLM
  • • MLX

具体使用方法

首先,你需要至少 2 个工作节点来支持分布式推理。如果你完成了上一步部署集群,已经通过 Xinference 创建了包含 supervisor 节点和 worker 节点的 Xinference 集群。

接下来,如果您使用的是 Web UI 控制台,选择期望的机器数量作为 worker count;如果使用命令行,启动模型时添加 --n-worker <机器数量> 参数。模型将相应地在多个工作节点上启动。


使用分布式推理时,在 Web UI 中的 GPU count 或命令行中的 --n-gpu 现在表示每个工作节点的 GPU 数量。

例如命令行:

xinference launch -n Deepseek-R1 -s 671 -f pytorch -e "http://${supervisor_host}:9997" --n-worker 2

四、模型管理

Xinference 提供了管理模型生命周期的能力,包括列出支持的模型、查看运行中的模型以及停止模型。例如:

  • • 列出支持的模型:
xinference registrations -t LLM
  • • 列出运行中的模型:
xinference list
  • • 停止模型:
xinference terminate --model-uid "qwen2.5-instruct"

五、使用 Docker 部署

如果更倾向于使用 Docker,可以按照以下步骤运行 Xinference:

1. GPU 机器

docker run -e XINFERENCE_MODEL_SRC=modelscope -p 9998:9997 --gpus all xprobe/xinference:<your_version> xinference-local -H 0.0.0.0 --log-level debug

2. CPU 机器

docker run -e XINFERENCE_MODEL_SRC=modelscope -p 9998:9997 xprobe/xinference:<your_version>-cpu xinference-local -H 0.0.0.0 --log-level debug

六、总结

Xinference 是一个功能强大的工具,无论是本地运行还是分布式推理,都能满足我们的需求。通过它,我们可以轻松管理大语言模型的推理过程,还能与模型进行交互,体验 AI 的魅力。

Xinference对用户友好的UI控制台方式,无疑降低了大模型推理引擎的使用门槛,希望这篇文章能帮助你更好地了解和使用 Xinference。如果有任何问题,欢迎评论区留言,咱们一起聊聊哦。当然,还可以加入“觉察流”社区群,与群里的小伙伴一起学习、交流。加入方法,私信回复“入群”“加群”即可。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

和创始人交个朋友

回到顶部

 

加载中...

扫码咨询