Immagine Docker#
Xinference ha caricato immagini ufficiali su Dockerhub e sul servizio di immagini container di Alibaba Cloud.
Cambiato nella versione v2.0: A partire da Xinference v2.0, per utilizzare l’immagine della versione CUDA, la versione di CUDA deve essere almeno CUDA 12.9.
Lavori preparatori#
Xinference utilizza l’accelerazione GPU per l’inferenza; questa immagine deve essere eseguita su una macchina dotata di GPU con CUDA installato.
Assicurati che CUDA sia correttamente installato sulla macchina. Puoi usare
nvidia-smiper verificare che funzioni correttamente.Per le versioni di CUDA >= 12.9, la versione di CUDA utilizzata nell’immagine Docker è
12.9. La versione di CUDA sull’host deve essere12.9o superiore, mentre la versione del driver NVIDIA deve essere575o superiore.Assicurati di aver installato NVIDIA Container Toolkit .
Immagine Docker#
Il mirror ufficiale di Xinference è stato pubblicato nel repository xprobe/xinference su DockerHub. I tag attualmente disponibili includono:
nightly-main: Questa immagine viene aggiornata quotidianamente dal ramo main di GitHub e non garantisce stabilità.v<release version>: Questa immagine viene creata ogni volta che Xinference rilascia una nuova versione, e può generalmente essere considerata stabile e affidabile.latest: questa immagine punterà all’ultima versione pubblicata al momento del rilascio di Xinference.Per la versione CPU, aggiungi il suffisso
-cpu, ad esempionightly-main-cpu.
Immagine personalizzata#
Se è necessario installare dipendenze aggiuntive, fare riferimento a xinference/deploy/docker/Dockerfile. Assicurarsi di trovarsi nella directory principale del progetto Xinference quando si costruisce l’immagine utilizzando il Dockerfile. Ad esempio:
git clone https://github.com/xorbitsai/inference.git
cd inference
docker build --progress=plain -t test -f xinference/deploy/docker/Dockerfile .
Usa l’immagine#
Puoi avviare Xinference all’interno del contenitore nel seguente modo, mappando la porta 9997 alla porta 9998 dell’host e specificando il livello di log come DEBUG. Puoi anche specificare le variabili d’ambiente necessarie.
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
Avvertimento
--gpusdeve essere specificato, come descritto in precedenza, l’immagine deve essere eseguita su una macchina con GPU, altrimenti si verificherà un errore.-H 0.0.0.0è obbligatorio, altrimenti non sarà possibile connettersi al servizio Xinference dall’esterno del container.È possibile specificare più opzioni
-eper assegnare più variabili d’ambiente.
Naturalmente, è anche possibile eseguire il container e, successivamente, entrare nel container per avviare manualmente Xinference.
Nota
Per più GPU, assicurati di impostare la dimensione della memoria condivisa, ad esempio: docker run –shm-size=128g …
Montaggio della directory del modello#
Per impostazione predefinita, l’immagine non contiene file di modello; i modelli verranno scaricati all’interno del contenitore durante l’uso. Per utilizzare modelli già scaricati, è necessario montare la directory dell’host nel contenitore. In questo caso, è necessario specificare un volume locale durante l’esecuzione del contenitore e configurare le variabili d’ambiente per 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
Il principio del comando sopra è montare la directory specificata dall’host nel contenitore e impostare la variabile d’ambiente XINFERENCE_HOME in modo che punti a tale directory all’interno del contenitore. In questo modo, tutti i file del modello scaricati verranno salvati nella directory specificata dall’utente sull’host. Non dovrai preoccuparti di perdere questi file quando il contenitore Docker viene arrestato; alla prossima esecuzione del contenitore, potrai utilizzare direttamente i modelli esistenti senza doverli scaricare nuovamente.
Se hai scaricato i modelli utilizzando il percorso predefinito sull’host, poiché la directory cache di xinference utilizza collegamenti simbolici per memorizzare i modelli, è necessario montare anche la directory in cui si trovano i file originali nel contenitore. Ad esempio, se utilizzi HuggingFace e ModelScope come repository di modelli, devi montare le directory corrispondenti nel contenitore. Generalmente, le directory cache corrispondenti si trovano rispettivamente in <home_path>/.cache/huggingface e <home_path>/.cache/modelscope. Il comando da utilizzare è il seguente:
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