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ā)布的時候制作,通??梢哉J為是穩(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:
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
docker?swarm快速部署redis分布式集群的詳細過程
這篇文章主要介紹了docker?swarm快速部署redis分布式集群,只需要通過docker-compose.yml文件和一個啟動命令就完成redis分布式部署的方式,讓其分別部署在不同機器上,并實現(xiàn)集群搭建,需要的朋友可以參考下2022-10-10Docker安裝RabbitMQ AMQP協(xié)議及重要角色
這篇文章主要為大家介紹了Docker安裝RabbitMQ AMQP協(xié)議和主要角色詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05docker安裝Elasticsearch7.6集群并設置密碼
這篇文章主要介紹了docker安裝Elasticsearch7.6集群并設置密碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-06-06docker容器查看所有沒使用的鏡像并刪除的實現(xiàn)
本文主要介紹了docker容器查看所有沒使用的鏡像并刪除的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-08-08