使用docker部署Xinference

使用docker部署Xinference

2024-06-04
Aigc

Xorbits Inference (Xinference) 是一个开源平台,用于简化各种AI模型的运行和集成。借助Xinference,可以使用任何开源LLM、嵌入模型和多模态模型在云端或本地环境中运行推理,并创建强大的AI应用。

准备工作 #

  • Xinference 使用GPU加速推理,该镜像需要在有 GPU 显卡并且安装 CUDA 的机器上运行。
  • 保证CUDA在机器上正确安装。可以使用nvidia-smi检查是否正确运行。
  • 镜像中的CUDA版本为12.4。为了不出现预期之外的问题,请将宿主机的CUDA版本和NVIDIA Driver版本分别升级到12.4550以上。
  • 服务器已经安装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下载模型到其缓存目录中。

参考 #

© 2024 青蛙小白