Xinference部署教程

0 / 5

在本地使用 RAGFlow 搭建知识库时,为了数据不泄露至互联网,需要先安装模型推理框架从而便捷的部署 LLM、Embeding Model 和 Reranke Model 等模型。由于 Ollama 对模型只支持 LLM 和 Embeding Model 部署。而 Xinferce 支持不仅各种模型,还支持各种模型格式。所以选用 Xinference 作为 RAGFlow 的模型推理框架。

Xinference 安装

Xinference 有两种安装方式:Docker 和 pip。本篇主要讲 pip 安装方式,Docker 安装有机会在写,如果想了解 Xinerence 的话建议去中文版文档地址:https://inference.readthedocs.io/zh-cn/latest/index.html

使用 conda 创建虚拟环境

conda 简介和使用在这里就不详细说明了,需要注意的是使用 conda 时,最好改一下 conda 源和 pip 源

# 创建环境
conda create --name xinfer python=3.12
# 进入环境
conda activate xinfer

安装 Xinference

Xinference 支持多种推理引擎,我目前只使用了 Transformers 和 vLLM 这两个引擎后端

1.Transformers 引擎
pip install "xinference[transformers]"
2.vLLM 引擎
pip install "xinference[vllm]"
# 一些模型可能需要用到FlashInfer
pip install flashinfer -i https://flashinfer.ai/whl/cu124/torch2.4
# 对于不同的Cuda和torch版本可以查看https://docs.flashinfer.ai/installation.html 这个网页进行安装

也可同时安装 Transformer 和 vLLM 引擎

pip install "xinference[transformers, vllm]"
3.安装所有引擎(可选)
pip install "xinference[all]"

注:在安装完 Xinference 之后,可以执行以下命令看 PyTorch 是否正常:

python -c "import torch; print(torch.cuda.is_available())"

但实际上笔者没有试过,因为笔者是新创了一个 conda 虚拟环境安装,从来没有遇到过这个问题,所以笔者猜测是在已有的 conda 环境安装才会遇到这个问题。

部署模型

1.设置环境变量(可选)
  1. 设置 XINFERENCE_HOME
    是 Xinference 用来存储信息或数据的(比如模型文件)。在 Linux 系统中一般位于 /home/用户/.xinference 目录下。可以通过配置环境变量修改。

    # 1.打开 .bashrc
    sudo vim ~/.bashrc
    
    # 2.在文档最后写入,路径可以自定义
    export XINFERENCE_HOME=/tmp/xinferenc
    
    # 3.时.bashrc立刻生效
    source ~/.bashrc
    

    需要注意的,设置 XINFERENCE_HOME 的终端和启动 Xinference 的终端必须是同一个终端窗口,笔者曾经在一个终端窗口设置环境变量,一个窗口启动。后来发现设置的环境变量并没有生效。

  2. 设置 HF_ENDPOINT
    Xinference 模型下载默认是从Huggingface 官方网站下载 。在国内因为网络原因,可以通过下面的环境变量设计为其它镜像网站: export HF_ENDPOINT=https://hf-mirror.com/
    具体设置步骤与上述相同。
    另外也可通过设置 XINFERENCE_MODEL_SRC=modelscope,使其默认从 modelscop 下载。

    2.启动 Xinference
    xinference-local --host 0.0.0.0 --port 9997
    

    Xinference 默认会在本地启动服务,因为这里配置了--host 0.0.0.0 参数,使非本地客户端也可以通过机器的 IP 地址来访问 Xinference 服务。端口默认为 9997,可以使用--port 配置其他端口。
    启动成功后,可以通过 http://IP:9997,访问 WebGUI 界面。
    image.png

    3.使用 Xinference 部署模型

    在 Xinference 上可以部署多种模型,比如大语言模型、嵌入模型等,甚至可以部署自定义模型。笔者将以部署 DeepSeek-R1 模型为例,阐述如何部署模型和部署过程中需要注意的地方。由于笔者使用的显卡显存为 48G。所