Docker部署Xinference的教程
Docker 鏡像
Xinference 在 Dockerhub 和 阿里云容器鏡像服務 中上傳了官方鏡像。
準備工作
- Xinference 使用 GPU 加速推理,該鏡像需要在有 GPU 顯卡并且安裝 CUDA 的機器上運行。
- 保證 CUDA 在機器上正確安裝??梢允褂?
nvidia-smi檢查是否正確運行。 - 鏡像中的 CUDA 版本為
12.4。為了不出現(xiàn)預期之外的問題,請將宿主機的 CUDA 版本和 NVIDIA Driver 版本分別升級到12.4和550以上。
Docker 鏡像
當前,可以通過兩個渠道拉取 Xinference 的官方鏡像。
1. 在 Dockerhub 的 xprobe/xinference 倉庫里。
2. Dockerhub 中的鏡像會同步上傳一份到阿里云公共鏡像倉庫中,供訪問 Dockerhub 有困難的用戶拉取。
拉取命令:
docker pull registry.cn-hangzhou.aliyuncs.com/xprobe_xinference/xinference:<tag>
目前可用的標簽包括:
nightly-main: 這個鏡像會每天從 GitHub main 分支更新制作,不保證穩(wěn)定可靠。v<release version>: 這個鏡像會在 Xinference 每次發(fā)布的時候制作,通常可以認為是穩(wěn)定可靠的。latest: 這個鏡像會在 Xinference 發(fā)布時指向最新的發(fā)布版本- 對于 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 .
使用鏡像
你可以使用如下方式在容器內(nèi)啟動 Xinference,同時將 9997 端口映射到宿主機的 9998 端口,并且指定日志級別為 DEBUG,也可以指定需要的環(huán)境變量。
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 的機器上,否則會出現(xiàn)錯誤。-H 0.0.0.0也是必須指定的,否則在容器外無法連接到 Xinference 服務。- 可以指定多個
-e選項賦值多個環(huán)境變量。
當然,也可以運行容器后,進入容器內(nèi)手動拉起 Xinference。
掛載模型目錄
默認情況下,鏡像中不包含任何模型文件,使用過程中會在容器內(nèi)下載模型。
如果需要使用已經(jīng)下載好的模型,需要將宿主機的目錄掛載到容器內(nèi)。
這種情況下,需要在運行容器時指定本地卷,并且為 Xinference 配置環(huán)境變量。
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 環(huán)境變量指向容器內(nèi)的該目錄。這樣,所有下載的模型文件將存儲在您在主機上指定的目錄中。
您無需擔心在 Docker 容器停止時丟失這些文件,下次運行容器時,您可以直接使用現(xiàn)有的模型,無需重復下載。
如果你在宿主機使用的默認路徑下載的模型,由于 xinference cache 目錄是用的軟鏈的方式存儲模型,需要將原文件所在的目錄也掛載到容器內(nèi)。
例如你使用 huggingface 和 modelscope 作為模型倉庫,那么需要將這兩個對應的目錄掛載到容器內(nèi),一般對應的 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
links:
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Dockerfile 部署java web的環(huán)境詳解
這篇文章主要介紹了Dockerfile 構(gòu)建java web 環(huán)境詳解的相關(guān)資料,這里對Dockerfile 進行基本介紹,并說明如何構(gòu)建java web環(huán)境進行詳解,需要的朋友可以參考下2016-12-12
docker prune命令定時清理不常用數(shù)據(jù)的操作方法
使用docker引擎服務時間久了,會發(fā)現(xiàn)磁盤空間越來越大,現(xiàn)在要刪除關(guān)于docker相關(guān)不用的數(shù)據(jù)來釋放磁盤空間,這篇文章主要介紹了docker prune命令 可定時清理不常用數(shù)據(jù),需要的朋友可以參考下2022-10-10
使用Docker方式啟動tomcat,訪問首頁出現(xiàn)404的解決方案
這篇文章主要介紹了使用Docker方式啟動tomcat,訪問首頁出現(xiàn)404的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-03-03
在Ubuntu15.04上安裝Docker的步驟以及基本用法
Docker是一種輕量型的的類虛擬機的平臺,在開發(fā)項目上還是很有優(yōu)勢的,這僅是我的一種直觀理解。所以這篇文章主要給大家介紹了在Ubuntu15.04上安裝Docker的步驟以及基本用法,有需要的朋友們可以參考借鑒。2016-10-10

