在 AIStudio 镜像中心使用 Dockerfile 自助构建最新版 vLLM 镜像在 AIStudio 镜像中心使用 Dockerfile 自助构建最新版 vLLM 镜像 ,无需访问 DockerHub立即构建
Skip to content
回到全部文章

Xinference 安装与使用指南

Xinference 提供了一套统一的推理服务平台,能够在同一环境中灵活集成多种后端引擎(如 vLLM、SGLang、Transformers 等),支持多类型模型(大语言模型、Embedding、Reranker、Diffusion 等)的加载与调用,提供 OpenAI 兼容接口和可视化管理界面。

本教程将描述如何在 AIStudio 「开发机」和「推理服务」中使用 Xinference。

Xinference 官方镜像

部分用户参照 Xinference 官方文档的指导,尝试使用官方 Docker 镜像 在 AIStudio 中启动 4090 机型的开发机,发现存在异常报错。错误信息如下:

shell
2024-11-01 18:39:10  /usr/local/lib/python3.10/dist-packages/torch/cuda/__init__.py:128: UserWarning: CUDA initialization: Unexpected error from cudaGetDeviceCount(). Did you run some cuda functions before calling NumCudaDevices() that might have already set an error? Error 804: forward compatibility was attempted on non supported HW (Triggered internally at ../c10/cuda/CUDAFunctions.cpp:108.)

以上错误可能是因为 Nvidia Driver 兼容性的问题,可尝试更换为 Driver 版本更高的算力规格(需要自行检查,平台不支持用户自行安装 Nvidia Driver)。为了更好的平台兼容性,建议不要使用 Xinference 官方镜像。

在开发机中使用 Xinference

本节描述如何在开发机中安装 Xinference v1.12.0(不含 SGLang 引擎)。

注意

由于 vllm 和 sglang 在包依赖上无法调和,Xinference 从 v1.8.1 版本开始,从 all 里移除了 sglang。

Step 0 获取系统级 CUDA 环境

由于 Llama.cpp 引擎 依赖系统级 CUDA 环境,因此需要事先安装 CUDA 环境。

不建议在开发机中手动安装 CUDA Toolkit。您可以前往镜像中心,使用基于 Dockerfile 的构建方式,填入我们提供的 CUDA 12.4 Dockerfile,手动构建一个符合条件的系统级 CUDA 镜像。

注意

Step 1 安装 Xinference

等待自定义镜像构建完毕后,使用自定义镜像创建开发机。请注意选择上一步自定义镜像所在可用区的算力规格。

登录开发机后,用以下命令安装 Xinference。该方式将安装推理所有支持的模型需要的依赖:

shell
export PIP_INDEX_URL=https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
python3 -m pip install "xinference[all]"

安装完毕后,新开 tmux 会话,设置必要的环境变量,然后启动 Xinference 服务:

shell
# 指定从 ModelScope 中下载模型:
export XINFERENCE_MODEL_SRC=modelscope
# 指定 HuggingFace 镜像网站
export HF_ENDPOINT=https://hf-mirror.com
# 默认情况下,Xinference 会使用 <HOME>/.xinference 作为主目录来存储一些必要的信息,比如日志文件和模型文件,其中 <HOME> 就是当前用户的主目录。
# 由于 AIStudio 开发机本地 rootfs 容量为 100GiB,如果已购买共享文件存储,或开发机已挂载大容量云盘或,建议修改主目录
# 比如修改主目录指向共享文件存储中的特定目录(请提前创建目录)
export XINFERENCE_HOME=/mnt/public/xinference
# 又或者修改主目录指向云盘的特定目录(请提前创建目录)
export XINFERENCE_HOME=/datadisk/xinference

启动 Xinference

shell
xinference-local --host 0.0.0.0 --port 9997

恭喜!您已经在本地拉起了 Xinference 服务。一旦 Xinference 服务运行起来,即可加载模型,提供 API 服务。

根据 Xinference 官方提供的模型列表,尝试启动一个 JINA AI 向量嵌入模型 jina-embeddings-v2-base-zh

CTRL+B + D 分离 tmux 会话,执行以下命令:

shell
xinference launch --model-name jina-embeddings-v2-base-zh --model-type embedding

输出如下:

shell
root@is-dacvkncuymixgg4v-devmachine-0:~# xinference launch --model-name jina-embeddings-v2-base-zh --model-type embedding
Launch model name: jina-embeddings-v2-base-zh with kwargs: {}
Model uid: jina-embeddings-v2-base-zh

Step 2 后续步骤

  • 您可以遵循 Xinference 官方文档的使用方式来使用 Xinference API,包括使用网页、cURL 命令、命令行或者是 Xinference 的 Python SDK。
  • 利用开发机提供的 SSH 服务和 SSH 端口转发功能,将开发机内网端口映射到本地电脑,从而实现从公网直接访问开发机内部服务。 配置方法详见 SSH 端口转发:公网访问开发机内 HTTP 服务
  • 您可以将开发机保存为镜像,以便后续使用该镜像创建开发机、推理服务等。请访问 AIStudio 平台镜像中心,在上方页面点击构建镜像按钮,选择基于运行中的开发机构建镜像。

使用 Xinference 部署推理服务

以使用 vLLM 引擎为例。

Step 0 构建自定义 Xinference 镜像

您可以前往镜像中心,使用基于 Dockerfile 的构建方式,填入我们提供的 Xinference(vllm) Dockerfile,手动构建一个使用 vLLM 引擎的 Xinference 镜像

等待自定义镜像构建完成,即可在 AIStudio 平台使用该镜像创建开发机、推理服务等。使用 Dockerfile 构建的镜像体积将更加小,启动速度更快。

Step 1 准备模型文件

由于 Xinference 提供 WebUI,可以方便地从网页端操作并直接下载模型,因此您可以跳过此步骤。

如果您希望自主下载模型,可将需要部署的模型文件上传至共享高性能存储。建议通过 AICoder 上传或下载模型。

Step 1 创建推理服务

使用 AIStudio 预置推理镜像部署服务,主要遵循以下步骤:

  1. 选择合适的算力资源实例规格。如需帮助,详见推理服务标准部署流程

  2. 选择之前构建的 Xinference 自定义镜像。

  3. 配置启动命令,启动命令的核心作用是启动 Xinference(必须保持在前台运行)。

    shell
    export XINFERENCE_MODEL_SRC=modelscope
    export HF_ENDPOINT=https://hf-mirror.com
    # 指定下载模型的位置为高性能存储(强烈推荐)
    # 否则会下载模型至推理服务容器系统盘,推理服务系统盘不支持持久化存储,重启服务后模型需要重新下载。
    # export XINFERENCE_HOME=/mnt/empty_example
    
    echo "正在启动 Xinference 服务..."
    # 将xinference-local作为主进程运行,而不是放在后台
    xinference-local --host 0.0.0.0 --port 9997

    注意

    Xinference 服务 --port 参数指定了 9997 端口,相应地,推理服务内网配置区域应作如下配置:

    • 监听端口 9997
    • 调用端口 80
  4. 配置存储时,请务必挂载共享高性能存储,确保启动命令可访问 XINFERENCE_HOME 指定的目录。如需帮助,详见推理服务标准部署流程

  5. 填写外网配置内网配置。内网监听端口号必须于 --port 参数值一致。如需帮助,详见推理服务标准部署流程

确认创建后,平台根据配置拉取镜像、启动实例并运行启动命令。部署成功后,即可通过配置的网络地址访问服务。

Step 2 访问 Xinference Web UI

  1. 进入推理服务详情页,找到外网访问地址,打开弹窗。

  2. 在弹窗中点击直接访问地址旁的跳转链接,可直接访问 Xinference Web UI 页面。

  3. 在 Xinference Web UI 页面左侧找到启动模型,搜索 qwen2.5-instruct,部署一个 0.5B 模型。

    • 模型引擎:vLLM
    • 模型格式:Pytorch
    • 模型大小:0.5

    具体操作可参考 Xinference

找不到想要的答案?
让 AI 助手为您解答