Xinference(Xorbits Inference)是一个功能全面的开源分布式推理平台,其核心价值在于提供了一个统一、高效的入口,用于部署、管理和调用各类AI模型。它旨在解决AI模型部署中环境复杂、接口不一、扩展困难等问题。
🧰 核心功能全景
Xinference的功能覆盖了从模型部署到企业级应用的全流程,其核心功能可以归纳为以下几点:
-
支持多种模型类型:平台不仅支持大语言模型(LLM),还能无缝部署文本嵌入(Embedding)、重排序(ReRank)模型,这对于构建企业级RAG(检索增强生成)应用至关重要。此外,它也支持语音识别、文生图等多模态模型。
-
丰富的推理引擎:Xinference集成了多种业界领先的推理后端,让用户可以根据不同场景(追求高吞吐或低延迟)灵活选择。这些引擎包括:
- vLLM: 通过PagedAttention算法优化内存,吞吐量可达Transformers的24倍,非常适合高并发生产环境。
- SGLang: 专注于LLM和视觉语言模型的高效服务。
- llama.cpp: 通过模型量化技术,允许在消费级硬件(如MacBook)上高效运行大模型。
- Transformers: 由Hugging Face提供,能最快集成最新的NLP模型。
- 此外还支持TensorRT 、MLX 、LMDeploy等引擎。
-
灵活的API与交互方式:
- Web UI:提供一个直观的图形化界面,用于浏览、启动模型和进行简单的对话测试。
- RESTful API:提供标准的HTTP接口,方便与现有系统集成。
- Python SDK:提供编程式调用和管理模型的能力。
- 命令行(CLI):支持通过命令行工具完成所有操作,适合自动化脚本。
- OpenAI兼容:提供与OpenAI API高度兼容的接口,让已有应用可以轻松切换到本地部署的模型。
-
强大的模型管理:
- 模型全生命周期管理:支持模型的启动、运行、监控和关闭。
- 一键部署:通过简单的命令或UI点击即可下载并启动模型,极大简化部署流程。
- 模型中心(Model Hub):用户可以从中快速获取和更新最新模型,无需等待版本发布。
- 自定义模型注册:允许用户注册自己微调或开发的模型,无需修改平台源码。
-
异构硬件与分布式支持:
- 异构硬件:支持NVIDIA、昇腾、AMD等20多种异构芯片,并能混合使用CPU和GPU进行计算。
- 分布式部署 :原生支持分布式架构,可通过
xinference-supervisor和xinference-worker轻松扩展集群,应对高并发场景。 - 自动批处理(Auto-batch):对于Embedding请求,系统会自动将多个并发请求合批处理,可将平均响应时间降低10倍。
-
高级功能与企业级特性:
- Function Calling:支持模型调用外部工具或函数,拓展其能力边界。
- 模型虚拟环境:从2.0版本开始,默认启用虚拟环境,每个模型可运行在独立的Python依赖空间中,有效避免版本冲突。
- 企业级特性:包括用户权限管理、单点登录、多租户隔离、模型微调、可观测性(监控日志)等。
📖 上手教程:从安装到调用
1. 安装与启动
Xinference支持pip和Docker两种主流安装方式。
-
pip安装(推荐开发者):适用于希望进行定制化开发或集成的场景。
bash# 创建并激活Python环境(推荐Python 3.9以上) conda create -n xinference python=3.11 conda activate xinference # 安装核心包及常用引擎 pip install "xinference[transformers, vllm]" # 如需所有功能,可安装完整版 # pip install "xinference[all]" -
Docker部署(推荐生产环境):提供更好的环境隔离和一致性。
bash# 拉取官方镜像 docker pull xprobe/xinference:latest # 运行容器,挂载数据卷并映射端口 docker run -d \ --name xinference \ -v /path/on/host/.xinference:/root/.xinference \ -p 9997:9997 \ --gpus all \ # 如果使用GPU xprobe/xinference:latest \ xinference-local -H 0.0.0.0
2. 启动服务
安装完成后,通过命令行启动服务,默认监听0.0.0.0的9997端口。
bash
xinference-local --host 0.0.0.0 --port 9997
启动成功后,可以通过浏览器访问 http://your-server-ip:9997 进入Web UI。
3. 模型管理与调用
-
通过Web UI启动模型:在"Launch Model"界面,选择模型类型(如LLM)、名称和规格,点击按钮即可自动下载并启动。
-
通过Python SDK调用:
pythonfrom xinference_client import RESTfulClient as Client # 连接Xinference服务 client = Client("http://localhost:9997") # 启动一个模型 model_uid = client.launch_model( model_name="qwen2-instruct", model_type="LLM", model_size_in_billions=7, n_gpu=1 ) # 获取模型实例 model = client.get_model(model_uid) # 发起对话 response = model.chat( prompt="What is the capital of France?", generate_config={"max_tokens": 1024} ) print(response['choices'][0]['message']['content'])
4. 与第三方应用集成
Xinference因其兼容OpenAI的API接口,能与LangChain、Dify、RAGFlow、FastGPT等主流AI应用开发框架无缝集成,方便开发者快速搭建上层应用。
⚖️ 版本对比
Xinference提供不同版本以满足各类用户需求。
| 特性 | 开源版 (免费) | 企业单机版 (商业) | 企业集群版 (商业) |
|---|---|---|---|
| 适用对象 | 个人开发者、小型项目 | 中小企业 | 大型企业、关键业务 |
| 模型支持 | 基础模型 / REST API | 支持国产GPU | 满血DeepSeek优化 |
| 部署方式 | Docker部署 / 基础监控 | 单机部署 | 多机集群 / 弹性伸缩 |
| 安全与管理 | 社区支持 / 自助运维 | 用户权限管理 / 高级安全 | SLA保障 / 高可用 |
| 扩展功能 | - | - | 私有模型仓库 / 异构算力监控 |
💎 总结
Xinference的核心价值在于它为AI模型从开发测试到生产落地的整个流程提供了统一、高效的解决方案。通过整合多种推理引擎、提供简洁的接口和企业级功能,它极大降低了AI应用的部署和运维门槛。