Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Aktualisieren von Inferenzcontainern zur Anpassung an das NVIDIA Container Toolkit
Ab den Versionen 1.17.4 und höher mountet das NVIDIA Container Toolkit nicht mehr automatisch CUDA-Kompatibilitätsbibliotheken. Diese Verhaltensänderung könnte sich auf Ihre SageMaker KI-Inferenz-Workloads auswirken. Ihre SageMaker KI-Endpunkte und Batch-Transformationsjobs verwenden möglicherweise Container, die mit den neuesten Versionen des NVIDIA Container Toolkit nicht kompatibel sind. Um sicherzustellen, dass Ihre Workloads den neuesten Anforderungen entsprechen, müssen Sie möglicherweise Ihre Endpunkte aktualisieren oder Ihre Batch-Transformationsjobs konfigurieren.
Aktualisierung der SageMaker KI-Endpunkte im Hinblick auf die Einhaltung gesetzlicher Vorschriften
Wir empfehlen Ihnen, Ihre vorhandenen SageMaker KI-Endpunkte zu aktualisieren oder neue zu erstellen, die das neueste Standardverhalten unterstützen.
Gehen Sie wie folgt vor, um sicherzustellen, dass Ihr Endpunkt mit den neuesten Versionen des NVIDIA Container Toolkit kompatibel ist:
-
Aktualisieren Sie die Einrichtung der CUDA-Kompatibilitätsbibliotheken, wenn Sie Ihren eigenen Container verwenden.
-
Geben Sie ein Amazon Machine Image (AMI) für die Inferenz an, das das aktuelle Verhalten des NVIDIA Container Toolkit unterstützt. Sie geben ein AMI an, wenn Sie einen vorhandenen Endpunkt aktualisieren oder einen neuen erstellen.
Aktualisieren der Einrichtung von CUDA-Kompatibilität bei Verwendung eines eigenen Containers
Die CUDA-Kompatibilitätsbibliotheken ermöglichen die Aufwärtskompatibilität. Diese Kompatibilität gilt für alle CUDA-Toolkit-Versionen, die neuer sind als der von der AI-Instanz bereitgestellte NVIDIA-Treiber. SageMaker
Sie müssen die CUDA-Kompatibilitätsbibliotheken nur aktivieren, wenn der NVIDIA-Treiber, den die SageMaker AI-Instanz verwendet, eine ältere Version als das CUDA-Toolkit im Modellcontainer hat. Wenn Ihr Modellcontainer keine CUDA-Kompatibilität erfordert, können Sie diesen Schritt überspringen. Sie können diesen Schritt beispielsweise überspringen, wenn Sie nicht vorhaben, ein neueres CUDA-Toolkit als das von AI-Instanzen bereitgestellte zu verwenden. SageMaker
Aufgrund der Änderungen, die in Version 1.17.4 des NVIDIA Container Toolkit eingeführt wurden, können Sie CUDA-Kompatibilitätsbibliotheken bei Bedarf explizit aktivieren, indem Sie sie im Container zu LD_LIBRARY_PATH hinzufügen.
Wir empfehlen, die CUDA-Kompatibilität je nach erkannter NVIDIA-Treiberversion zu aktivieren. Fügen Sie zur Aktivierung den folgenden Codeausschnitt zum Shell-Startskript des Containers hinzu. Fügen Sie diesen Code dem ENTRYPOINT-Skript hinzu.
Das folgende Skript zeigt, wie Sie die Verwendung der CUDA-Kompatibilität auf Basis der erkannten NVIDIA-Treiberversion auf dem bereitgestellten Host für Ihren Modellcontainer dynamisch umschalten.
#!/bin/bash verlt() { [ "$1" = "$2" ] && return 1 || [ "$1" = "$(echo -e "$1\n$2" | sort -V | head -n1)" ] } if [ -f /usr/local/cuda/compat/libcuda.so.1 ]; then CUDA_COMPAT_MAX_DRIVER_VERSION=$(readlink /usr/local/cuda/compat/libcuda.so.1 | cut -d'.' -f 3-) echo "CUDA compat package should be installed for NVIDIA driver smaller than ${CUDA_COMPAT_MAX_DRIVER_VERSION}" NVIDIA_DRIVER_VERSION=$(sed -n 's/^NVRM.*Kernel Module *\([0-9.]*\).*$/\1/p' /proc/driver/nvidia/version 2>/dev/null || true) echo "Current installed NVIDIA driver version is ${NVIDIA_DRIVER_VERSION}" if verlt $NVIDIA_DRIVER_VERSION $CUDA_COMPAT_MAX_DRIVER_VERSION; then echo "Adding CUDA compat to LD_LIBRARY_PATH" export LD_LIBRARY_PATH=/usr/local/cuda/compat:$LD_LIBRARY_PATH echo $LD_LIBRARY_PATH else echo "Skipping CUDA compat setup as newer NVIDIA driver is installed" fi else echo "Skipping CUDA compat setup as package not found" fi
Spezifizieren eines geeigneten Inferenz-AMI für das NVIDIA Container Toolkit
Im InferenceAmiVersion Parameter des ProductionVariant Datentyps können Sie das AMI für einen SageMaker KI-Endpunkt auswählen. Jedes der unterstützten AMIs ist ein vorkonfiguriertes Image. Jedes Image wird AWS mit einer Reihe von Software- und Treiberversionen konfiguriert.
Standardmäßig AMIs folgt die SageMaker KI dem alten Verhalten. Sie mounten automatisch CUDA-Kompatibilitätsbibliotheken im Container. Damit ein Endpunkt das neue Verhalten verwendet, müssen Sie eine Inferenz-AMI-Version angeben, die für das neue Verhalten konfiguriert ist.
Die folgenden Inferenz-AMI-Versionen folgen derzeit dem neuen Verhalten. Sie mounten CUDA-Kompatibilitätsbibliotheken nicht automatisch.
- al2- ami-sagemaker-inference-gpu -2-1
-
-
NVIDIA-Treiber-Version: 535.54.03
-
CUDA-Version: 12.2
-
- al2- -3-1 ami-sagemaker-inference-gpu
-
-
NVIDIA-Treiber-Version: 550.144.01
-
CUDA-Version: 12.4
-
Aktualisieren eines vorhandenen Endpunkts
Verwenden Sie das folgende Beispiel, um einen vorhandenen Endpunkt zu aktualisieren. Das Beispiel verwendet eine Inferenz-AMI-Version, die das automatische Mounten von CUDA-Kompatibilitätsbibliotheken deaktiviert.
ENDPOINT_NAME="<endpoint name>" INFERENCE_AMI_VERSION="al2-ami-sagemaker-inference-gpu-3-1" # Obtaining current endpoint configuration CURRENT_ENDPOINT_CFG_NAME=$(aws sagemaker describe-endpoint --endpoint-name "$ENDPOINT_NAME" --query "EndpointConfigName" --output text) NEW_ENDPOINT_CFG_NAME="${CURRENT_ENDPOINT_CFG_NAME}new" # Copying Endpoint Configuration with AMI version specified aws sagemaker describe-endpoint-config \ --endpoint-config-name ${CURRENT_ENDPOINT_CFG_NAME} \ --output json | \ jq "del(.EndpointConfigArn, .CreationTime) | . + { EndpointConfigName: \"${NEW_ENDPOINT_CFG_NAME}\", ProductionVariants: (.ProductionVariants | map(.InferenceAmiVersion = \"${INFERENCE_AMI_VERSION}\")) }" > /tmp/new_endpoint_config.json # Make sure all fields in the new endpoint config look as expected cat /tmp/new_endpoint_config.json # Creating new endpoint config aws sagemaker create-endpoint-config \ --cli-input-json file:///tmp/new_endpoint_config.json # Updating the endpoint aws sagemaker update-endpoint \ --endpoint-name "$ENDPOINT_NAME" \ --endpoint-config-name "$NEW_ENDPOINT_CFG_NAME" \ --retain-all-variant-properties
Erstellen eines neuen Endpunkts
Erstellen Sie mithilfe des folgenden Beispiels einen neuen Endpunkt. Das Beispiel verwendet eine Inferenz-AMI-Version, die das automatische Mounten von CUDA-Kompatibilitätsbibliotheken deaktiviert.
INFERENCE_AMI_VERSION="al2-ami-sagemaker-inference-gpu-3-1" aws sagemakercreate-endpoint-config \ --endpoint-config-name "<endpoint_config>" \ --production-variants '[{ \ .... "InferenceAmiVersion": "${INFERENCE_AMI_VERSION}", \ ... "}]' aws sagemaker create-endpoint \ --endpoint-name "<endpoint_name>" \ --endpoint-config-name "<endpoint_config>"
Ausführen konformer Batch-Transformationsjobs
Die Batch-Transformation ist die Inferenzoption, die sich am besten für Anforderungen zur Offline-Verarbeitung großer Datenmengen eignet. Um Batch-Transformationsjobs zu erstellen, verwenden Sie die API-Aktion CreateTransformJob. Weitere Informationen finden Sie unter Batch-Transformation für Inferenz mit Amazon AI SageMaker .
Das geänderte Verhalten des NVIDIA Container Toolkit wirkt sich auf Batch-Transformationsjobs aus. Gehen Sie wie folgt vor, um eine Batch-Transformation auszuführen, die den Anforderungen des NVIDIA Container Toolkit entspricht:
-
Wenn Sie eine Batch-Transformation mit einem Modell ausführen möchten, für das Sie Ihren eigenen Container bereitgestellt haben, aktualisieren Sie zunächst den Container für die CUDA-Kompatibilität. Folgen Sie bei der Aktualisierung den Anweisungen unter Aktualisieren der Einrichtung von CUDA-Kompatibilität bei Verwendung eines eigenen Containers.
-
Verwenden Sie die API-Aktion
CreateTransformJob, um den Batch-Transformationsjob zu erstellen. Legen Sie in Ihrer Anforderung dieSAGEMAKER_CUDA_COMPAT_DISABLED-Umgebungsvariable auftruefest. Dieser Parameter weist den Container an, CUDA-Kompatibilitätsbibliotheken nicht automatisch zu mounten.Wenn Sie beispielsweise einen Batch-Transformationsauftrag mithilfe von erstellenAWS CLI, legen Sie die Umgebungsvariable mit dem
--environmentfolgenden Parameter fest:aws sagemaker create-transform-job \ --environment '{"SAGEMAKER_CUDA_COMPAT_DISABLED": "true"}'\ . . .