公司最近采购了 2 台服务器,其中一台配备了 2 张 4090 型号 GPU(显存48 * 2),准备拿来搞搞 AI,上周五运维把虚拟机创建好了发给我了,于是周末花了点时间把基础环境给搭建了一下,本文主要记录下在最新 ubuntu22.04 部署 Xinference 教程过程中的笔记手稿整理。

在我自己的使用的环境里基本上很少部署 Xinference,这玩意主要还是针对于企业级的,个人的话部署模型用 ollama 就行了,可以看我早期的这篇文章《使用 Ollama 自建大模型并对接第三方平台二次分发盈利》,但是针对于企业的话,使用Xinference 还是专业点,并且支持的引擎和模型都太多了,基本上满足企业各种部署大模型场景,可以部署聊天模型,向量模型,音视频图片模型以及自定义模型,主要还是因为 ollama 那个东西到目前为止都没办法直接用 dify 对接 重排序 rerank 模型,就整得很麻木,所以直接一步到位 Xinference 。

前置条件

  • 一台带了GPU 显卡的服务器(目前我收到的分配资源是 8C16G,直通 2 张显卡都分配上了,100G 系统盘,500G 数据盘)为什么不多分配点?主要还是服务器紧张,前期部署东西少勉强能支持,后期再说扩容的事,反正是虚拟机扩容也简单。
  • 一双勤劳的手
  • 最好是有科学上网环境,很多东西没科学上网真是太难等待了
  • 本文主要在 ubuntu 22.04 系统下进行演示操作,若其他操系统可参考其原理。

若你的机器配置比较低,可以参考下面命令调整 swap 防止机器卡死。

swapoff /swap.img
rm /swap.img
fallocate -l 32G /swap.img
cmod 600 /swap.img
mkswap /swap.img
swapon /swap.img
cat /etc/fstab

安装依赖

因为有显卡,所以先要保证显卡驱动正常,为了不污染宿主机环境,本文是采用 docker 部署,关注我的粉丝们都知道能用 docker 绝不会直接使用宿主机物理部署,这样方便一键迁移。

如果你没有安装显卡驱动参考下方命令进行:

# 查看推荐驱动 
ubuntu-drivers devices
# 升级系统到最新以及更新依赖
apt-get update && apt upgrade && apt-get install g++ gcc make
# 安装推荐版本 例如: nvidia-driver-580-server
# nvidia-driver-xxx :这是适配大多数用户,一般情况下都可以安装这个
# nvidia-driver-xxx-server :这个适配服务器,有多块GPU调度等情况
# nvidia-driver-xxx-open :这个是开源版本,可以自己修改
apt install nvidia-driver-{VERSION_NUMBER}
# 重启系统 
reboot
# 验证查看驱动
nvidia-smi

只要确认输出了类似于显卡信息,第一步就操作完成了。

Mon Jan 19 20:07:24 2026       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.95.05              Driver Version: 580.95.05      CUDA Version: 13.0     |
+-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 4090        Off |   00000000:03:00.0 Off |                  Off |
| 30%   30C    P8             28W /  450W |   47557MiB /  49140MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
|   1  NVIDIA GeForce RTX 4090        Off |   00000000:03:01.0 Off |                  Off |
| 30%   34C    P8             11W /  450W |   39304MiB /  49140MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A          116523      C   Model: Qwen3-Embedding-4B-0            8186MiB |
|    0   N/A  N/A          134789      C   ...l: deepseek-r1-distill-qwen-0      39348MiB |
|    1   N/A  N/A          142857      C   Xinf vLLM worker: 1                   39286MiB |
+-----------------------------------------------------------------------------------------+

接下来第二步,因为要在 docker 中调用显卡,所以还需要安装 NVIDIA Container Toolkit,如果默认安装官方的命令安装的话会出现超时的情况,可以使用下面 中国科学院技术大学的镜像命令进行替换。

# 基础依赖
apt-get update && sudo apt-get install -y --no-install-recommends \
   curl \
   gnupg2
# 添加源
curl -fsSL https://mirrors.ustc.edu.cn/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://mirrors.ustc.edu.cn/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
  sed 's#deb https://nvidia.github.io#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://mirrors.ustc.edu.cn#g' | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
# 更新并安装
apt-get update
# 安装
export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.18.1-1
  sudo apt-get install -y \
      nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
      nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
      libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
      libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}
      
# 验证
nvidia-container-runtime --version

只要最终输出了类似于下面的版本信息则第二步执行成功:

NVIDIA Container Runtime version 1.18.1
commit: efe99418ef87500dbe059cadc9ab418b2815b9d5
spec: 1.3.0

runc version 1.3.4
commit: v1.3.4-0-gd6d73eb8
spec: 1.2.1
go: go1.24.11
libseccomp: 2.5.5

安装 xinference

前面做完了之后保证没问题就直接开始部署xinference平台了。

直接创建一个目录,将 docker-compose.yaml 编排文件写入。GPU数量根据实际参数进行修改。

services:
  xinference:
      image: xprobe/xinference:v1.17.1-cu129
    #image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/xprobe/xinference:v1.7.0.post1
    container_name: xinference
    restart: unless-stopped
    shm_size: '12gb'
    ports:
      - "9997:9997" 
    volumes:
      - ./data/.xinference:/root/.xinference
      - ./data/.cache/huggingface:/root/.cache/huggingface
      - ./data/.cache/modelscope:/root/.cache/modelscope 
    environment:
      - HF_ENDPOINT=https://hf-mirror.com
      - XINFERENCE_MODEL_SRC=modelscope
      - CUDA_VISIBLE_DEVICES=0,1
      - XINFERENCE_LOCAL_GPU_COUNT=2
      - RAY_RESOURCES={"GPU":2}
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 2
              capabilities: [gpu]
    command: ["xinference-local", "-H", "0.0.0.0","--log-level","debug"]

Xinference 官方镜像已发布在 DockerHub 上的 xprobe/xinference 仓库中。当前可用的标签包括:

  • nightly-main: 这个镜像会每天从 GitHub main 分支更新制作,不保证稳定可靠。
  • v<release version>: 这个镜像会在 Xinference 每次发布的时候制作,通常可以认为是稳定可靠的。
  • latest: 这个镜像会在 Xinference 发布时指向最新的发布版本
  • 对于 CPU 版本,增加 -cpu 后缀,如 nightly-main-cpu
  • 对于 CUDA 12.8 版本,增加 -cu128 后缀,如 nightly-main-cu128 。(Xinference 版本需要介于 v1.8.1 和 v1.15.0)
  • 对于 CUDA 12.9 版本,增加 -cu129 后缀,如 nightly-main-cu129 。(Xinference 版本需要至少 v1.16.0)

如何你没有科学上网条件拉取镜像会特别慢,可以使用注释里面的国内镜像版本,但是版本可能会不一致。

最后执行 docker-compose up -d, 等待项目启动完成。

访问并部署模型

出现了 logo 之后就直接访问,http://服务器ip:9997,没有登录界面直接进入。

使用Ubuntu 22.04 Docker 安装 Xinference 教程

现在就可以选择部署模型。

直接选择合适的模型,一定要选择显存足够的,不然下载下来也运行不起来,下载的时候可以查看日志对应的仓库地址去看在对应的模型介绍。

使用Ubuntu 22.04 Docker 安装 Xinference 教程

部署的时候会选择一些参数,简单介绍一下,xinference 官网也是有介绍的,默认 docker 是支持所有模型引擎的。

按照参数设置之后直接点击火箭图标等待部署完成,最好是通过日志查看进度,因为界面上可能很久都不知道进度。

xinference 介绍

  • Transformers 引擎:PyTorch(transformers) 引擎支持几乎有所的最新模型,这是 Pytorch 模型默认使用的引擎
  • vLLM 引擎:vLLM 是一个支持高并发的高性能大模型推理引擎。当满足以下条件时,Xinference 会自动选择 vllm 作为引擎来达到更高的吞吐量。

    模型格式为 pytorch , gptq 或者 awq 。
    
    当模型格式为 pytorch 时,量化选项需为 none 。
    
    当模型格式为 awq 时,量化选项需为 Int4 。
    
    当模型格式为 gptq 时,量化选项需为 Int3 、 Int4 或者 Int8 。
    
    操作系统为 Linux 并且至少有一个支持 CUDA 的设备
    
    自定义模型的 model_family 字段和内置模型的 model_name 字段在 vLLM 的支持列表中。
  • Llama.cpp 引擎:Xinference 通过 xllamacpp 支持 gguf 格式的模型。xllamacpp 由 Xinference 团队开发,并从 v1.6.0 开始成为 llama.cpp 的唯一后端。自 Xinference v1.5.0 起,llama-cpp-python 被弃用;在 Xinference 从 v1.6.0 开始,该后端已被移除。
  • SGLang 引擎:SGLang 具有基于 RadixAttention 的高性能推理运行时。它通过在多个调用之间自动重用KV缓存,显著加速了复杂 LLM 程序的执行。它还支持其他常见推理技术,如连续批处理和张量并行处理。
  • MLX 引擎:MLX-lm 用来在苹果 silicon 芯片上提供高效的 LLM 推理。

所有目前支持的模型可以参考官方:https://inference.readthedocs.io/zh-cn/latest/models/builtin/llm/index.html

所有名词不懂的大家直接 ai 问就行了明明白白哈哈哈哈。

最后部署聊天模型可以直接点击聊天进行对话尝试。

使用Ubuntu 22.04 Docker 安装 Xinference 教程

使用Ubuntu 22.04 Docker 安装 Xinference 教程

Dify 对接使用

直接安装 Xorbits Inference 插件按照提示添加各类模型进去即可。

使用Ubuntu 22.04 Docker 安装 Xinference 教程

添加完之后就可以对话了。

使用Ubuntu 22.04 Docker 安装 Xinference 教程

总结

本文主要写明如何在 ubuntu22.04 下系统使用 docker 运行企业级大模型 xinference 平台,希望对大家有帮助,整个过程中也遇到了很多问题,笔记都是过程中总结出来进行编写的,在运行多个模型的时候,比如聊天模型、嵌入模型、重排序模型要规划好资源利用,注意先后启动顺序,不然会导致不足以加载模型,多卡建议使用 vllm 并行推理大大增加速度体验更好。

参考链接

nvidia 官方驱动安装说明

Ubuntu22.04 LTS 安装nvidia显卡驱动

Ubuntu24.04/22.04重灌筆記:GPU安裝與深度學習

nvidia-smi 找不到驱动程序

Installing the NVIDIA Container Toolkit 官方链接

CUDA Toolkit Archive 官方下载地址

Ubuntu下nvidia driver和cuda版本管理

文章目录