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-smi per 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 essere 12.9 o superiore, mentre la versione del driver NVIDIA deve essere 575 o 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 esempio nightly-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

  • --gpus deve 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 -e per 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