Imagen de Docker#
Xinference ha subido imágenes oficiales en Dockerhub y Alibaba Cloud Container Image Registry.
Distinto en la versión v2.0: A partir de Xinference v2.0, si se desea utilizar una imagen con la versión de CUDA, esta debe ser al menos CUDA 12.9.
Preparación#
Xinference utiliza GPU para acelerar la inferencia, esta imagen debe ejecutarse en una máquina que tenga una tarjeta GPU y CUDA instalado.
Asegúrate de que CUDA esté correctamente instalado en la máquina. Puedes usar
nvidia-smipara verificar su correcto funcionamiento.Para la versión de CUDA >= 12.9, la versión de CUDA utilizada en la imagen Docker es
12.9. La versión de CUDA en el host debe ser12.9o superior, y la versión del controlador NVIDIA debe ser575o superior.Asegúrese de tener instalado NVIDIA Container Toolkit.
Imagen de Docker#
La imagen oficial de Xinference ha sido publicada en el repositorio xprobe/xinference de DockerHub. Las etiquetas actualmente disponibles incluyen:
nightly-main: Esta imagen se actualiza diariamente desde la rama main de GitHub, sin garantía de estabilidad o confiabilidad.v<release version>: Esta imagen se crea cada vez que Xinference publica una versión, y generalmente se puede considerar estable y confiable.latest: Esta imagen apuntará a la versión de lanzamiento más reciente cuando se publique Xinference.Para la versión CPU, añada el sufijo
-cpu, por ejemplonightly-main-cpu.
Imagen personalizada#
Si necesita instalar dependencias adicionales, consulte xinference/deploy/docker/Dockerfile. Asegúrese de estar en el directorio raíz del proyecto Xinference al crear la imagen con el Dockerfile. Por ejemplo:
git clone https://github.com/xorbitsai/inference.git
cd inference
docker build --progress=plain -t test -f xinference/deploy/docker/Dockerfile .
Usa el espejo#
Puede iniciar Xinference en un contenedor de la siguiente manera, mientras mapea el puerto 9997 al puerto 9998 del host, y especifica el nivel de registro como DEBUG. También puede especificar las variables de entorno necesarias.
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
Advertencia
--gpusdebe especificarse, como se describió anteriormente, la imagen debe ejecutarse en una máquina con GPU; de lo contrario, se producirá un error.-H 0.0.0.0también debe especificarse; de lo contrario, no se podrá conectar al servicio Xinference desde fuera del contenedor.Se pueden especificar múltiples opciones
-epara asignar múltiples variables de entorno.
Por supuesto, también se puede ejecutar el contenedor, luego ingresar a él y levantar Xinference manualmente.
Nota
Para varias GPUs, asegúrate de configurar el tamaño de la memoria compartida, por ejemplo: docker run –shm-size=128g …
Montar el directorio del modelo#
Por defecto, la imagen no incluye ningún archivo de modelo, y durante su uso, los modelos se descargarán dentro del contenedor. Si necesita utilizar modelos ya descargados, es necesario montar el directorio del host en el contenedor. En este caso, debe especificar un volumen local al ejecutar el contenedor y configurar variables de entorno para 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
El principio del comando anterior es montar el directorio especificado en el host dentro del contenedor y establecer la variable de entorno XINFERENCE_HOME para que apunte a ese directorio dentro del contenedor. De esta forma, todos los archivos de modelo descargados se almacenarán en el directorio que usted especificó en el host. No necesita preocuparse por perder estos archivos cuando el contenedor Docker se detenga; la próxima vez que ejecute el contenedor, podrá usar directamente los modelos existentes sin necesidad de descargarlos nuevamente.
Si descargó los modelos en las rutas predeterminadas del host, dado que el directorio de caché de Xinference utiliza enlaces simbólicos para almacenar los modelos, es necesario montar el directorio donde se encuentran los archivos originales dentro del contenedor. Por ejemplo, si utiliza Hugging Face y ModelScope como repositorios de modelos, deberá montar los directorios correspondientes en el contenedor. Generalmente, los directorios de caché correspondientes se encuentran en <home_path>/.cache/huggingface y <home_path>/.cache/modelscope. El comando a utilizar es el siguiente:
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