Image Docker#
Xinference a téléchargé les images officielles sur Dockerhub et Alibaba Cloud Container Image Service.
Modifié dans la version v2.0: À partir de Xinference v2.0, pour utiliser l’image de la version CUDA, la version minimale de CUDA doit être CUDA 12.9.
Préparation#
Xinference utilise l’accélération GPU pour l’inférence. Cette image doit être exécutée sur une machine disposant d’une carte GPU et de CUDA installé.
Assurez-vous que CUDA est correctement installé sur la machine. Vous pouvez utiliser
nvidia-smipour vérifier qu’il fonctionne correctement.Pour les versions CUDA >= 12.9, la version CUDA utilisée dans l’image Docker est
12.9. La version CUDA sur l’hôte doit être12.9ou supérieure, et la version du pilote NVIDIA doit être575ou supérieure.Assurez-vous d’avoir installé NVIDIA Container Toolkit .
Image Docker#
L’image officielle de Xinference est publiée dans le dépôt xprobe/xinference sur DockerHub. Les tags actuellement disponibles incluent :
nightly-main: Cette image est mise à jour quotidiennement à partir de la branche main de GitHub, sans garantie de stabilité ou de fiabilité.v<release version>: Cette image est créée à chaque publication de Xinference et peut généralement être considérée comme stable et fiable.latest: Cette image pointera vers la version la plus récente lors de la publication de Xinference.Pour la version CPU, ajoutez le suffixe
-cpu, par exemplenightly-main-cpu.
Image personnalisée#
Si des dépendances supplémentaires doivent être installées, veuillez vous référer à xinference/deploy/docker/Dockerfile. Assurez-vous d’être dans le répertoire racine du projet Xinference lors de la création de l’image à l’aide du Dockerfile. Par exemple :
git clone https://github.com/xorbitsai/inference.git
cd inference
docker build --progress=plain -t test -f xinference/deploy/docker/Dockerfile .
Utiliser le miroir#
Vous pouvez lancer Xinference dans un conteneur de la manière suivante, tout en mappant le port 9997 sur le port 9998 de la machine hôte, en définissant le niveau de log sur DEBUG, et en spécifiant les variables d’environnement nécessaires.
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
Avertissement
--gpusdoit être spécifié, comme décrit précédemment, l’image doit être exécutée sur une machine dotée d’un GPU, sinon une erreur se produira.-H 0.0.0.0est également obligatoire, sinon il est impossible de se connecter au service Xinference depuis l’extérieur du conteneur.Vous pouvez spécifier plusieurs options
-epour assigner plusieurs variables d’environnement.
Bien sûr, il est également possible d’exécuter le conteneur, puis d’entrer dans le conteneur pour lancer manuellement Xinference.
Note
Pour plusieurs GPU, assurez-vous de définir la taille de la mémoire partagée, par exemple : docker run –shm-size=128g …
Monter le répertoire du modèle#
Par défaut, l’image ne contient aucun fichier de modèle, et les modèles seront téléchargés dans le conteneur lors de l’utilisation. Si vous souhaitez utiliser des modèles déjà téléchargés, vous devez monter le répertoire de la machine hôte dans le conteneur. Dans ce cas, vous devez spécifier un volume local lors de l’exécution du conteneur et configurer les variables d’environnement pour 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
Le principe de la commande ci-dessus est de monter le répertoire spécifié sur l’hôte dans le conteneur, et de définir la variable d’environnement XINFERENCE_HOME pour qu’elle pointe vers ce répertoire dans le conteneur. Ainsi, tous les fichiers de modèle téléchargés seront stockés dans le répertoire que vous avez spécifié sur l’hôte. Vous n’avez pas à vous soucier de perdre ces fichiers lorsque le conteneur Docker s’arrête ; lors de l’exécution suivante du conteneur, vous pouvez utiliser directement les modèles existants sans avoir à les télécharger à nouveau.
Si vous avez téléchargé les modèles en utilisant le chemin par défaut sur la machine hôte, étant donné que le répertoire de cache de xinference stocke les modèles via des liens symboliques, vous devez également monter le répertoire où se trouvent les fichiers d’origine dans le conteneur. Par exemple, si vous utilisez HuggingFace et ModelScope comme dépôts de modèles, vous devez monter leurs répertoires correspondants dans le conteneur. Généralement, les répertoires de cache respectifs se trouvent dans <home_path>/.cache/huggingface et <home_path>/.cache/modelscope. La commande à utiliser est la suivante :
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