“Xinference 是一款强大的工具,它不仅支持本地运行大模型,还能在分布式集群环境下高效推理。Xinference的最新版本v1.3.0带来了对DeepSeek-V3/R1 这样的大参数量模型的支持。开源力量,助力开源模型私有化落地,助推AI行业发展!”
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-feature-settings: normal;font-variation-settings: normal;font-size: 13.5px;text-align: left;line-height: 1.75;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;">qwen2.5-instruct,而V1.3.0版本的更新更是带来了对ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-feature-settings: normal;font-variation-settings: normal;font-size: 13.5px;text-align: left;line-height: 1.75;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;">DeepSeek-V3,ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-feature-settings: normal;font-variation-settings: normal;font-size: 13.5px;text-align: left;line-height: 1.75;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;">DeepSeek-R1等大尺寸模型的分布式推理。接下来,我会带大家一步步了解如何使用 Xinference,从本地部署到分布式推理,希望能帮助到对这方面感兴趣的朋友们。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;display: table;padding: 0px 1em;color: rgb(63, 63, 63);">一、Xinference 是什么ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">Xinference 是一款专为大语言模型推理设计的工具,支持多种推理引擎,比如ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-feature-settings: normal;font-variation-settings: normal;font-size: 13.5px;text-align: left;line-height: 1.75;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;">vllm、ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-feature-settings: normal;font-variation-settings: normal;font-size: 13.5px;text-align: left;line-height: 1.75;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;">sglang、ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-feature-settings: normal;font-variation-settings: normal;font-size: 13.5px;text-align: left;line-height: 1.75;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;">llama.cpp等。它不仅可以运行在本地,还能在分布式集群环境下高效推理,特别适合那些体积庞大的模型,比如ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-feature-settings: normal;font-variation-settings: normal;font-size: 13.5px;text-align: left;line-height: 1.75;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;">DeepSeek V3和DeepSeek R1。通过 Xinference,我们可以轻松管理模型的整个生命周期,从启动到停止,还能通过兼容 OpenAI 的 API 与模型进行交互。首先,我们需要在本地安装 Xinference。安装完成后,可以通过以下命令启动本地服务:
xinference-local--host0.0.0.0--port9997
默认情况下,Xinference 会使用<HOME>/.xinference作为主目录来存储日志文件和模型文件。如果需要更改主目录,可以通过设置环境变量XINFERENCE_HOME来实现,例如:
XINFERENCE_HOME=/tmp/xinferencexinference-local--host0.0.0.0--port9997
启动成功后,我们可以通过访问 http://127.0.0.1:9997/ui 来使用 Web 界面,或者访问 http://127.0.0.1:9997/docs 查看 API 文档。
从v0.11.0版本开始,Xinference 要求在加载 LLM 模型之前指定具体的后端推理引擎。当前支持的推理引擎包括:
vllmsglangllama.cpptransformersMLX不同的模型格式和量化参数,会影响可用的推理引擎。Xinference 提供了xinference engine命令,帮助我们查询相关的参数组合。例如:
xinferenceengine-e<xinference_endpoint>--model-nameqwen-chat
根据运行环境的不同,推荐的推理引擎也有所差异:
vLLM或SGLang,资源有限时可考虑llama.cpp。WSL,选择与 Linux 一致的引擎,否则推荐llama.cpp。MLX引擎,其次选择llama.cpp。以qwen2.5-instruct模型为例,我们可以使用以下命令启动模型:
xinferencelaunch--model-engine<inference_engine>-nqwen2.5-instruct-s0_5-fpytorch
如果使用vllm引擎,还需要指定相关的参数,例如:
xinferencelaunch--model-enginevllm-nqwen2.5-instruct-s0_5-fpytorch--gpu_memory_utilization0.9
首次运行模型时,Xinference 会从 HuggingFace 下载模型权重,耗费时长视本地网络带宽环境,大约 10 到 30 分钟不等。下载完成后,模型会缓存到本地,后续运行无需重新下载。
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 代码:
fromopenaiimportOpenAI
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 V3、DeepSeek R1等,Xinference 支持在多台机器上运行。以下是分布式推理的步骤:
首先,需要在一台机器上启动 Supervisor 节点:
xinference-supervisor-H"${supervisor_host}"然后,在其他机器上启动 Worker 节点:
xinference-worker-e"http://${supervisor_host}:9997"-H"${worker_host}"支持的引擎
现在,Xinference 支持如下引擎在多台 worker 上运行模型。
以下引擎即将支持分布式推理:
具体使用方法
首先,你需要至少 2 个工作节点来支持分布式推理。如果你完成了上一步部署集群,已经通过 Xinference 创建了包含 supervisor 节点和 worker 节点的 Xinference 集群。
接下来,如果您使用的是 Web UI 控制台,选择期望的机器数量作为worker count;如果使用命令行,启动模型时添加--n-worker <机器数量>参数。模型将相应地在多个工作节点上启动。
使用分布式推理时,在 Web UI 中的GPU count或命令行中的--n-gpu现在表示每个工作节点的 GPU 数量。
例如命令行:
xinferencelaunch-nDeepseek-R1-s671-fpytorch-e"http://${supervisor_host}:9997"--n-worker2Xinference 提供了管理模型生命周期的能力,包括列出支持的模型、查看运行中的模型以及停止模型。例如:
xinferenceregistrations-tLLM
xinferencelist
xinferenceterminate--model-uid"qwen2.5-instruct"
如果更倾向于使用 Docker,可以按照以下步骤运行 Xinference:
dockerrun-eXINFERENCE_MODEL_SRC=modelscope-p9998:9997--gpusallxprobe/xinference:<your_version>xinference-local-H0.0.0.0--log-leveldebug
dockerrun-eXINFERENCE_MODEL_SRC=modelscope-p9998:9997xprobe/xinference:<your_version>-cpuxinference-local-H0.0.0.0--log-leveldebug
Xinference 是一个功能强大的工具,无论是本地运行还是分布式推理,都能满足我们的需求。通过它,我们可以轻松管理大语言模型的推理过程,还能与模型进行交互,体验 AI 的魅力。
Xinference对用户友好的UI控制台方式,无疑降低了大模型推理引擎的使用门槛,希望这篇文章能帮助你更好地了解和使用 Xinference。如果有任何问题,欢迎评论区留言,咱们一起聊聊哦。当然,还可以加入“觉察流”社区群,与群里的小伙伴一起学习、交流。加入方法,私信回复“入群”“加群”即可。
| 欢迎光临 链载Ai (https://www.lianzai.com/) | Powered by Discuz! X3.5 |