Docker-Image#
Xinference hat offizielle Images auf Dockerhub und dem Alibaba Cloud Container Image Service hochgeladen.
Geändert in Version v2.0: Ab Xinference v2.0 muss für die Verwendung von Bildern mit CUDA-Version die CUDA-Version mindestens CUDA 12.9 betragen.
Vorbereitungen#
Xinference nutzt GPU-Beschleunigung für die Inferenz; dieses Image muss auf einer Maschine mit GPU-Grafikkarte und installiertem CUDA ausgeführt werden.
Stellen Sie sicher, dass CUDA auf dem Rechner korrekt installiert ist. Verwenden Sie
nvidia-smi, um zu überprüfen, ob es ordnungsgemäß ausgeführt wird.Für CUDA-Versionen >= 12.9 beträgt die im Docker-Image verwendete CUDA-Version
12.9. Die CUDA-Version auf dem Host muss12.9oder höher sein, und die NVIDIA-Treiberversion muss575oder höher sein.Bitte stellen Sie sicher, dass das NVIDIA Container Toolkit installiert ist.
Docker-Image#
Das offizielle Xinference-Image wurde im Repository xprobe/xinference auf DockerHub veröffentlicht. Derzeit verfügbare Tags umfassen:
nightly-main: Dieses Image wird täglich aus dem GitHub-Hauptzweig erstellt und aktualisiert. Eine stabile und zuverlässige Funktion ist nicht garantiert.v<release version>: Dieses Image wird bei jeder Veröffentlichung von Xinference erstellt und gilt normalerweise als stabil und zuverlässig.latest: Dieses Image zeigt bei der Veröffentlichung von Xinference auf die neueste Version.Für die CPU-Version fügen Sie das Suffix
-cpuhinzu, z. B.nightly-main-cpu.
Benutzerdefiniertes Image#
Wenn zusätzliche Abhängigkeiten installiert werden müssen, siehe xinference/deploy/docker/Dockerfile . Stellen Sie sicher, dass Sie sich beim Erstellen des Images mit der Docker-Datei im Stammverzeichnis des Xinference-Projekts befinden. Beispiel:
git clone https://github.com/xorbitsai/inference.git
cd inference
docker build --progress=plain -t test -f xinference/deploy/docker/Dockerfile .
Verwenden Sie das Spiegelbild#
Sie können Xinference im Container wie folgt starten, wobei Port 9997 auf Port 9998 des Hosts gemappt wird, das Log-Level auf DEBUG gesetzt wird und Sie auch die erforderlichen Umgebungsvariablen festlegen können.
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
Warnung
--gpusmuss angegeben werden, wie bereits zuvor beschrieben. Das Image muss auf einem Rechner mit GPU ausgeführt werden, andernfalls treten Fehler auf.-H 0.0.0.0muss ebenfalls angegeben werden, da sonst von außerhalb des Containers keine Verbindung zum Xinference-Dienst hergestellt werden kann.Es können mehrere
-e-Optionen angegeben werden, um mehrere Umgebungsvariablen zuzuweisen.
Selbstverständlich können Sie auch nach dem Starten des Containers in das Containerinnere wechseln und Xinference manuell starten.
Bemerkung
Für mehrere GPUs stellen Sie sicher, dass die Größe des gemeinsamen Speichers festgelegt ist, z. B.: docker run –shm-size=128g …
Hängen Sie das Modellverzeichnis ein#
Standardmäßig sind im Image keine Modelldateien enthalten. Während der Nutzung werden Modelle im Container heruntergeladen. Falls bereits heruntergeladene Modelle verwendet werden sollen, muss das Host-Verzeichnis in den Container eingebunden werden. In diesem Fall muss beim Ausführen des Containers ein lokales Volume angegeben werden und die Umgebungsvariablen für Xinference müssen konfiguriert werden.
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
Das Prinzip des obigen Befehls besteht darin, das auf dem Host angegebene Verzeichnis in den Container einzubinden und die Umgebungsvariable XINFERENCE_HOME auf dieses Verzeichnis im Container zu setzen. Dadurch werden alle heruntergeladenen Modelldateien in dem von Ihnen auf dem Host angegebenen Verzeichnis gespeichert. Sie müssen sich keine Sorgen machen, diese Dateien zu verlieren, wenn der Docker-Container gestoppt wird. Beim nächsten Start des Containers können Sie die vorhandenen Modelle direkt verwenden, ohne sie erneut herunterladen zu müssen.
Wenn Sie das Modell im Standardpfad auf dem Host-Rechner heruntergeladen haben, muss das Verzeichnis, in dem sich die Originaldateien befinden, ebenfalls in den Container eingehängt werden, da das xinference-Cache-Verzeichnis das Modell über symbolische Links speichert. Wenn Sie beispielsweise Hugging Face und ModelScope als Modell-Repositorys verwenden, müssen Sie die entsprechenden Verzeichnisse in den Container einhängen. Die entsprechenden Cache-Verzeichnisse befinden sich normalerweise unter <home_path>/.cache/huggingface und <home_path>/.cache/modelscope. Der verwendete Befehl lautet wie folgt:
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