Docker 映像#
Xinference 在 Dockerhub 和 阿里雲容器鏡像服務 中上傳了官方鏡像。
在 v2.0 版的變更: 從 Xinference v2.0 開始,如果要使用cuda版本的映像檔,cuda版本最低要達到 CUDA 12.9 。
準備工作#
Xinference 使用 GPU 加速推理,該鏡像需要在有 GPU 顯示卡且安裝 CUDA 的機器上運行。
保證 CUDA 在機器上正確安裝。可以使用
nvidia-smi檢查是否正確執行。對於 CUDA 版本 >= 12.9,Docker 映像中使用的 CUDA 版本為
12.9。主機上的 CUDA 版本需為12.9或以上,同時 NVIDIA 驅動程式版本需為575或以上。請確保已安裝 NVIDIA Container Toolkit 。
Docker 映像#
Xinference 官方映像已發布在 DockerHub 上的 xprobe/xinference 倉庫中。當前可用的標籤包括:
nightly-main: 此映像會每日從 GitHub 主分支更新建立,不保證穩定性與可靠性。v<release version>:這個映像檔會在 Xinference 每次發布時製作,通常可以認為是穩定可靠的。latest:此映像檔會在 Xinference 發佈時指向最新的發行版本。對於 CPU 版本,增加
-cpu後綴,如nightly-main-cpu。
自訂映像檔#
如果需要安裝額外的依賴,可以參考 xinference/deploy/docker/Dockerfile 。請確保使用 Dockerfile 製作映像檔時在 Xinference 專案的根目錄下。例如:
git clone https://github.com/xorbitsai/inference.git
cd inference
docker build --progress=plain -t test -f xinference/deploy/docker/Dockerfile .
使用鏡像#
你可以使用以下方式在容器內啟動 Xinference,同時將 9997 連接埠對應到宿主機的 9998 連接埠,並指定日誌層級為 DEBUG,也可以指定所需的環境變數。
docker run -e XINFERENCE_MODEL_SRC=modelscope -p 9998:9997 --gpus all xprobe/xinference:v<your_version> xinference-local -H 0.0.0.0 --log-level debug
警告
--gpus必須指定,正如前文所述,鏡像必須運行在有 GPU 的機器上,否則會出現錯誤。-H 0.0.0.0也是必須指定的,否則在容器外無法連線到 Xinference 服務。可以指定多個
-e選項來賦值多個環境變數。
當然,也可以運行容器後,進入容器內手動拉起 Xinference。
備註
對於多張 GPU,確保設置共享記憶體大小,例如:docker run --shm-size=128g ...
掛載模型目錄#
預設情況下,映像檔中不包含任何模型檔案,使用過程中會在容器內下載模型。如果需要使用已經下載好的模型,需要將宿主機的目錄掛載到容器內。在這種情況下,需要在執行容器時指定本地磁碟區,並為 Xinference 配置環境變數。
docker run -v </on/your/host>:</on/the/container> -e XINFERENCE_HOME=</on/the/container> -p 9998:9997 --gpus all xprobe/xinference:v<your_version> xinference-local -H 0.0.0.0
上述命令的原理是將主機上指定的目錄掛載到容器中,並設定 XINFERENCE_HOME 環境變數指向容器內的該目錄。如此一來,所有下載的模型檔案將儲存在您在主機上指定的目錄中。您無需擔心在 Docker 容器停止時遺失這些檔案,下次執行容器時,您可以直接使用現有的模型,無需重複下載。
如果你在宿主機使用預設路徑下載的模型,由於 xinference cache 目錄是使用軟鏈結的方式儲存模型,需要將原始檔案所在的目錄也掛載到容器內。例如你使用 Hugging Face 和 ModelScope 作為模型倉庫,那麼需要將這兩個對應的目錄掛載到容器內,一般對應的 cache 目錄分別在 <home_path>/.cache/huggingface 和 <home_path>/.cache/modelscope,使用的指令如下:
docker run \
-v </your/home/path>/.xinference:/root/.xinference \
-v </your/home/path>/.cache/huggingface:/root/.cache/huggingface \
-v </your/home/path>/.cache/modelscope:/root/.cache/modelscope \
-p 9997:9997 \
--gpus all \
xprobe/xinference:v<your_version> \
xinference-local -H 0.0.0.0