使用docker部署Xinference
2024-06-04
Xorbits Inference (Xinference) 是一个开源平台,用于简化各种AI模型的运行和集成。借助Xinference,可以使用任何开源LLM、嵌入模型和多模态模型在云端或本地环境中运行推理,并创建强大的AI应用。
准备工作 #
- Xinference 使用GPU加速推理,该镜像需要在有 GPU 显卡并且安装 CUDA 的机器上运行。
- 保证CUDA在机器上正确安装。可以使用
nvidia-smi
检查是否正确运行。 - 镜像中的CUDA版本为
12.4
。为了不出现预期之外的问题,请将宿主机的CUDA版本和NVIDIA Driver版本分别升级到12.4
和550
以上。 - 服务器已经安装docker(>=20.10.5)
- 服务器已经安装NVIDIA Container Toolkit, 并配置docker的运行时为
nvidia-container-runtime
拉取镜像 #
1docker pull xprobe/xinference:v<your_version>
启动容器 #
使用如下方式在容器内启动 Xinference,同时将9997端口映射到宿主机的9998端口:
如果你在宿主机使用的默认路径下载的模型,由于 xinference cache 目录是用的软链的方式存储模型,需要将原文件所在的目录也挂载到容器内。例如你使用 huggingface 和 modelscope 作为模型仓库,那么需要将这两个对应的目录挂载到容器内,一般对应的 cache 目录分别在<home_path>/.cache/huggingface
和<home_path>/.cache/modelscope
,使用的命令如下:
1docker run \
2 --name xinference \
3 --restart=unless-stopped \
4 -v $HOME/.xinference:/root/.xinference \
5 -v $HOME/.cache/huggingface:/root/.cache/huggingface \
6 -v $HOME/.cache/modelscope:/root/.cache/modelscope \
7 -p 9998:9997 \
8 --gpus all \
9 -e HF_ENDPOINT=https://hf-mirror.com \
10 -d \
11 xprobe/xinference:v<your_version> \
12 xinference-local -H 0.0.0.0
--gpus
必须指定,镜像必须运行在有GPU的机器上,否则会出现错误。-H 0.0.0.0
也是必须指定的,否则在容器外无法连接到Xinference服务。- 可以指定多个
-e
选项赋值多个环境变量。
使用xinference运行模型实例时,模型会被下载到~/.xinference/cache
中,实际上~/.xinference/cache
中的模型文件是以软连接的形式链接到~/.cache/huggingface/hub
。因此在启动模型实例前,建议先使用huggingface-cli
下载模型到其缓存目录中。