大语言模型(LLM)部署和推理工具——Xinference[1],其特点是部署快捷、使用简单、推理高效,并且支持多种形式的开源模型,还提供了 WebGUI 界面和 API 接口,方便用户进行模型部署和推理。现在就让我们一起来了解和使用 Xinference 吧!
1. Xinference 介绍
Xorbits Inference(Xinference)是一个性能强大且功能全面的分布式推理框架。可用于各种模型的推理。通过 Xinference,你可以轻松地一键部署你自己的模型或内置的前沿开源模型。无论你是研究者,开发者,或是数据科学家,都可以通过 Xinference 与最前沿的 AI 模型,发掘更多可能。下面是 Xinference 与其他模型部署推理工具的对比:
2. Xinference 安装
Xinference 支持两种方式的安装,一种是使用 Docker 镜像安装,另外一种是直接在本地源码进行安装。
2.1. Xinference Docker安装
如果你希望在 Linux 或者 Window 服务器上部署大模型,可以使用 Xinference 官方的 Docker 镜像来一键安装和启动 Xinference 服务(确保你的机器上已经安装了 Docker 和 CUDA),命令如下:
docker pull xprobe/xinference:latest
docker run -p 9997:9997 --gpus all xprobe/xinference:latest xinference-local -H 0.0.0.0
启动后,我们可以通过机器的 9997 端口来访问 Xinference 服务。
2.2. Xinference 本地源码安装
首先我们需要准备一个 3.9 以上的 Python 环境运行来 Xinference,建议先根据 conda 官网文档安装 conda。或者参考本人之前发表的文章:Conda/Miniconda/Anaconda 安装及命令整理-CSDN博客
然后使用以下命令来创建 3.10 的 Python 环境:
conda create --name xinference python=3.10
conda activate xinference
安装cupy
Installation — CuPy 14.0.0a1 documentation
请先保证nvidia驱动安装正确,测试方法:
nvidia-smi
下面命令指定cuda版本时,会自动安装cudatoolkit=12.4 (具体版本与nvidia-smi显示的cuda保持一致)
conda install -c conda-forge cupy cudnn cutensor nccl cuda-version=12.4
安装cudatoolkit(跳过,安装cupy过程已安装-本人没有安装)
CUDA Toolkit (nvidia): CUDA完整的工具安装包,其中提供了 Nvidia 驱动程序、开发 CUDA 程序相关的开发工具包等可供安装的选项。包括 CUDA 程序的编译器、IDE、调试器等,CUDA 程序所对应的各式库文件以及它们的头文件。
官网:
安装:
conda install cudatoolkit
安装xinference
Xinference 在 Linux, Windows, MacOS 上都可以通过 pip 来安装。如果需要使用 Xinference 进行模型推理,可以根据不同的模型指定不同的引擎。Xinference 依赖的第三方库比较多,所以安装需要花费一些时间。
如果你希望能够推理所有支持的模型,可以用以下命令安装所有需要的依赖:
conda activate xinference
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple "xinference[all]"
备注:如果你想使用 GGML 格式的模型,建议根据当前使用的硬件手动安装所需要的依赖,以充分利用硬件的加速能力。
**注意:**在 Xinference 安装过程中,有可能会安装 PyTorch 的其他版本(其依赖的vllm[3]组件需要安装),从而导致 GPU 服务器无法正常使用,因此在安装完 Xinference 之后,可以执行以下命令看 PyTorch 是否正常:
python -c "import torch; print(torch.cuda.is_available())"
如果输出结果为True,则表示 PyTorch 正常,否则需要重新安装 PyTorch。
只需要输入如下命令,就可以在服务上启动 Xinference 服务:
xinference-local -H 0.0.0.0
Xinference 默认会在本地启动服务,端口默认为 9997。因为这里配置了-H 0.0.0.0参数,非本地客户端也可以通过机器的 IP 地址来访问 Xinference 服务。
启动成功后,我们可以通过地址 http://localhost:9777来访问 Xinference 的 WebGUI 界面了。
3. 部署本地模型(以 Qwen-14B 模型为例)
3.1 Web UI 方式启动模型
Xinference 启动之后,在浏览器中输入: http://localhost:9997,我们可以访问到本地 Xinference 的 Web UI。
打开“Launch Model”标签,搜索到 qwen-chat,选择模型启动的相关参数,然后点击模型卡片左下方的小火箭 按钮,就可以部署该模型到 Xinference。 默认 Model UID 是 qwen-chat(后续通过将通过这个 ID 来访问模型)。
当你第一次启动 Qwen 模型时,Xinference 会从 HuggingFace 下载模型参数,大概需要几分钟的时间。Xinference 将模型文件缓存在本地,这样之后启动时就不需要重新下载了。 Xinference 还支持从其他模型站点下载模型文件,例如 modelscope[9]。
3.2 命令行方式启动模型
我们也可以使用 Xinference 的命令行工具来启动模型,默认 Model UID 是 qwen-chat(后续通过将通过这个 ID 来访问模型)。
xinference launch -n qwen-chat -s 14 -f pytorch
除了 WebUI 和命令行工具, Xinference 还提供了 Python SDK 和 RESTful API 等多种交互方式, 更多用法可以参考 Xinference 官方文档[10]。
3.3 模型下载源的设置
Xinference 模型下载缺省是从Huggingface官方网站下载 https://huggingface.co/models 。在国内因为网络原因,可以通过下面的环境变量设计为其它镜像网站:
HF_ENDPOINT=https://hf-mirror.com.
或者直接设置为:ModelScope:
通过环境变量"XINFERENCE_MODEL_SRC"设置。
XINFERENCE_MODEL_SRC=modelscope.
另外,可以通过环境变量XINFERENCE_HOME设置运行时缓存文件主目录。
export HF_ENDPOINT=https://hf-mirror.com
export XINFERENCE_MODEL_SRC=modelscope
export XINFERENCE_HOME=/jppeng/app/xinference
可以设置环境变量,临时启作用,或者设置在用户环境变量中,登陆即自动生效。
3.4. 启动Xinference服务
- 在命令行中输入
xinference
,这将在本地启动后台服务。 - 服务启动后,会自动打开一个Gradio风格的本地网页。在这里,你可以选择希望启动的模型、选择参数并启动。
- 请确保选择的模型在右下方标明为“Chat Model”,因为只有这些模型才能接入Chatbox。
3.5. 选择合适的模型
- Model Size 模型大小越大,对硬件资源的要求也越多。
本文章参照整合:
https://zhuanlan.zhihu.com/p/685224526
ubuntu-conda-gpu-安装xinference - 代号尚行
推理框架 Xinference和大模型部署(ChatGLM为例)_no available slot found for the model-CSDN博客