Xinference:本地部署大模型的一站式推理平台

Xinference:本地部署大模型的一站式推理平台

大模型

📖 简介

Xinference 是 Xorbits 开源的一站式推理平台,一条命令部署 LLM/Embedding/Rerank 模型,OpenAI 兼容 API。16k+ Stars,GPU/CPU 混合调度、内置量化与分布式扩展,自建模型服务的轻量选择。

📝 详细介绍

1. 开篇:值不值得部署

结论:值得,前提是你有闲置算力或明确的长周期高频推理需求。 Xinference 是我目前用过最省心的本地模型推理框架——一条命令完成模型下载、量化、服务暴露,OpenAI 兼容层做得相当干净,工具链基本零改造。但如果你只是偶尔调接口,且对数据不敏感,直接用云 API 更划算。

2. 部署过程

我的测试机器:AMD Ryzen 7 5800X(8 核 16 线程)/ 32GB DDR4 / 无 GPU / Ubuntu 22.04。整个部署从零到服务可用耗时约 15 分钟。

2.1 环境准备

# 创建独立环境,避免依赖污染
python3 -m venv xinf_env
source xinf_env/bin/activate
# 检查 Python 版本(3.9-3.12 均可)
python --version  # Python 3.10.12
pip --version     # pip 24.0

2.2 安装 Xinference

# 安装 CPU 完整版(含 llama.cpp 后端)
pip install "xinference[llama.cpp]"
# 实际耗时:pip 解析依赖约 2 分钟,构建 wheels 约 4 分钟
# 安装后验证
xinference --version
# xinference version: 0.12.1

GPU 机器加装 xinference[gpu] 即可,CUDA 依赖会自动拉取。

2.3 启动服务并加载模型

# 后台启动服务,默认端口 9997
xinference-local --host 0.0.0.0 --port 9997 
# 日志显示:
# INFO: Uvicorn running on http://0.0.0.0:9997 # 另开终端,加载一个 1.5B 模型(自动下载权重并量化) xinference launch --model-name qwen2.5-1.5b-instruct --size-in-billions 1 --quantization q4_0 # 等待约 3 分钟(含权重下载) # 输出: Model uid: qwen2.5-1.5b-instruct-q4_0

启动后立即通过 curl 验证服务可用:

curl http://localhost:9997/v1/models | head -20
# 返回包含 "id": "qwen2.5-1.5b-instruct" 的 JSON

3. 兼容性实测

重点验证 OpenAI API 兼容层,用 Python requests 直接打接口,不引入任何 SDK:

测试项结果
POST /v1/chat/completions通过,返回格式与 OpenAI 一致,含 choices / usage 字段
Streaming 流式输出通过,SSE 事件正常推送,参数 stream=true
OpenAI SDK(Python v1.x)通过,只需改 base_url 为 http://localhost:9997/v1
Embedding 接口通过,加载 bge-m3 模型后返回 1024 维向量
Function Calling部分支持,1.5B 模型偶尔不遵照参数 schema,7B 模型稳定
LangChain / LlamaIndex 接入通过,社区生态兼容良好,无鉴权时可直接用 OpenAI()

4. 性能基准

压测方式:自写脚本并发 20 路调用 chat/completions,每路 50 次请求,max_tokens 固定 512。统计仅包含推理耗时,不包含网络抖动。

模型(量化)吞吐量(tokens/s)首 token 延迟(s)进程内存峰值
qwen2.5-1.5b-instruct (q4_0)18.20.421.9 GB
qwen2.5-7b-instruct (q4_0)4.11.36.4 GB

测试环境为纯 CPU 推理,llama.cpp 后端 8 线程。1.5B 模型单请求延迟约 1.2s(512 tokens),多并发下吞吐量几乎线性扩展到 8 请求后触顶。

5. 资源占用分析

CPU

推理时 8 核全部打满,空闲时占用 1-3%。不建议在共享服务器上跑无量化的大模型,会拖垮其他任务。给模型线程设 pinned=true 可缓解。

内存

如上表:1.5B 量化模型约 2GB,7B 量化模型约 6.5GB。未加载模型时 Xinference 服务本身仅占约 350MB。16GB 内存机器建议只加载一个 7B;32GB 可以同时挂 1.5B + 7B 两个。

磁盘

模型缓存目录 ~/.xinference/cache 是主要占用点:1.5B q4 约 1.1GB,7B q4 约 4.2GB。启动日志和 pip 包另占 2GB 左右。整体磁盘门槛很低,预留 10GB 即可舒服运行

6. 成本对比

假设场景:每月处理约 5000 万 tokens(约每天 170 万,即一台业务 Bot 的常态用量),对比方案为阿里云 Qwen 7B API(中间档定价,输入/输出均价约 ¥3/百万 tokens)。

项目自建(已有机器)自建(新购整机)云 API(按量)
硬件成本0(边际)¥6000 折旧 / 36 个月 ≈ ¥167/月
电力(推理 4h/天,平均功耗 120W)约 ¥15/月约 ¥15/月
API 调用费005000万 tokens × ¥3/百万 = ¥150/月
运维时间(月均估算)2-4 小时2-4 小时≈ 0
月度总现金成本≈ ¥15≈ ¥182≈ ¥150

7. 结论

适合自建的场景:

  • 已有空闲服务器或旧 GPU,且你能接受偶尔的手动维护
  • 数据隐私敏感,不能外发到云 API(如内部日志分析、医疗/金融数据)
  • 全年稳定调用量超过 5000 万 tokens,且技术团队有 DIY 能力

别折腾的场景:

  • 月度调用量低于 2000 万 tokens —— 云 API 便宜且零维护
  • 需要跑 70B+ 级模型 —— 本地单机不现实,云 GPU 按时租更划算
  • 团队没有 Python 环境管理经验,或对服务稳定性要求 99.95%+

一句话收尾:Xinference 是自建推理服务的及格线以上选择,但它不能替你省掉运维时间——它能做的,是把多模型管理、API 兼容这些脏活简化到一条命令。

🚀

AI 项目推荐

大模型
标签
#本地部署 #推理服务 #多模型 #开源
浏览
👁️ 42
发布日期
2026-08-10