Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Actualización de los contenedores de inferencia para cumplir con el kit de herramientas de contenedores de NVIDIA
A partir de las versiones 1.17.4 y posteriores, el kit de herramientas de contenedores de NVIDIA ya no monta automáticamente las bibliotecas de compatibilidad con CUDA. Este cambio de comportamiento podría afectar a sus cargas de trabajo de inferencia de SageMaker IA. Es posible que tus terminales de SageMaker IA y tus trabajos de transformación por lotes usen contenedores incompatibles con las versiones más recientes del kit de herramientas de contenedores de NVIDIA. Para asegurarse de que sus cargas de trabajo cumplen con los requisitos más recientes, es posible que deba actualizar sus puntos de conexión o configurar sus trabajos de transformación por lotes.
Actualización de los puntos finales de SageMaker IA para garantizar la conformidad
Te recomendamos que actualices los puntos finales de SageMaker IA existentes o crees otros nuevos que admitan el comportamiento predeterminado más reciente.
Para garantizar que su punto de conexión sea compatible con las versiones más recientes del kit de herramientas de contenedores de NVIDIA, siga estos pasos:
-
Actualice la configuración de las bibliotecas de compatibilidad de CUDA si utiliza su propio contenedor.
-
Especifique una imagen de máquina de Amazon (AMI) de inferencia que admita el comportamiento más reciente del kit de herramientas de contenedores NVIDIA. Especifica una AMI al actualizar un punto de conexión existente o al crear uno nuevo.
Actualización de la configuración de compatibilidad de CUDA si utiliza su propio contenedor
Las bibliotecas de compatibilidad de CUDA permiten la compatibilidad con las versiones posteriores. Esta compatibilidad se aplica a todas las versiones del kit de herramientas CUDA que sean más recientes que el controlador NVIDIA proporcionado por la SageMaker instancia de IA.
Debe habilitar las bibliotecas de compatibilidad de CUDA solo cuando el controlador de NVIDIA que utiliza la instancia de SageMaker IA tenga una versión anterior al kit de herramientas CUDA en el contenedor del modelo. Si el contenedor de su modelo no requiere compatibilidad con CUDA, puede omitir este paso. Por ejemplo, puedes saltarte este paso si no piensas usar un kit de herramientas CUDA más nuevo que el que proporcionan las instancias de IA. SageMaker
Debido a los cambios introducidos en la versión 1.17.4 del kit de herramientas de contenedores NVIDIA, puede habilitar explícitamente las bibliotecas de compatibilidad de CUDA, si es necesario, añadiéndolas a LD_LIBRARY_PATH en el contenedor.
Le sugerimos que habilite la compatibilidad con CUDA en función de la versión del controlador NVIDIA detectada. Para habilitarla, añada el siguiente fragmento de código al script del intérprete de comandos de inicio del contenedor. Añada este código al script ENTRYPOINT.
El siguiente script muestra cómo cambiar dinámicamente el uso de la compatibilidad de CUDA en función de la versión del controlador NVIDIA detectada en el host implementado para el contenedor de modelos.
#!/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
Especificación de una AMI de inferencia que cumpla con el kit de herramientas de contenedores NVIDIA
En el InferenceAmiVersion parámetro del tipo de ProductionVariant datos, puede seleccionar la AMI para un punto final de SageMaker IA. Cada una de las compatibles AMIs es una imagen preconfigurada. Cada imagen se configura AWS con un conjunto de versiones de software y controlador.
De forma predeterminada, la SageMaker IA AMIs sigue el comportamiento anterior. Montan automáticamente las bibliotecas de compatibilidad de CUDA en el contenedor. Para que un punto de conexión utilice el nuevo comportamiento, debe especificar una versión de AMI de inferencia que esté configurada para el nuevo comportamiento.
Las siguientes versiones de la AMI de inferencia siguen actualmente el nuevo comportamiento. No montan las bibliotecas de compatibilidad de CUDA automáticamente.
- al2- -2-1 ami-sagemaker-inference-gpu
-
-
Versión del controlador NVIDIA: 535.54.03
-
Versión de CUDA: 12.2
-
- al2- -3-1 ami-sagemaker-inference-gpu
-
-
Versión del controlador NVIDIA: 550.144.01
-
Versión de CUDA: 12.4
-
Actualización de un punto de conexión existente
Utilice el siguiente ejemplo para actualizar un punto de conexión existente. El ejemplo utiliza una versión de AMI de inferencia que deshabilita el montaje automático de las bibliotecas de compatibilidad de CUDA.
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
Creación de un nuevo punto de conexión
Utilice el siguiente ejemplo para crear una nuevo punto de conexión: El ejemplo utiliza una versión de AMI de inferencia que deshabilita el montaje automático de las bibliotecas de compatibilidad de CUDA.
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>"
Ejecución de trabajos de transformación por lotes conformes
La transformación por lotes es la opción de inferencia que resulta más adecuada para las solicitudes de procesamiento de grandes cantidades de datos sin conexión. Para crear trabajos de transformación por lotes, utiliza la acción de la API CreateTransformJob. Para obtener más información, consulte Transformación por lotes para inferencias con Amazon AI SageMaker .
El comportamiento modificado del kit de herramientas de contenedores NVIDIA afecta a los trabajos de transformación por lotes. Para ejecutar una transformación por lotes que cumpla con los requisitos del kit de herramientas de contenedores NVIDIA, haga lo siguiente:
-
Si desea ejecutar la transformación por lotes con un modelo para el que ha utilizado su propio contenedor, primero actualice el contenedor para que sea compatible con CUDA. Para actualizarlo, siga el proceso que se indica en Actualización de la configuración de compatibilidad de CUDA si utiliza su propio contenedor.
-
Utilice la acción de la API
CreateTransformJobpara crear el trabajo de transformación por lotes. En su solicitud, establezca la variable de entornoSAGEMAKER_CUDA_COMPAT_DISABLEDentrue. Este parámetro indica al contenedor que no monte automáticamente las bibliotecas de compatibilidad de CUDA.Por ejemplo, cuando se crea un trabajo de transformación por lotes medianteAWS CLI, se establece la variable de entorno con el
--environmentparámetro:aws sagemaker create-transform-job \ --environment '{"SAGEMAKER_CUDA_COMPAT_DISABLED": "true"}'\ . . .