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.
Creación de un trabajo de optimización de inferencias
Puede crear un trabajo de optimización de inferencias mediante Studio o el SDK de Python para SageMaker IA. El trabajo optimiza su modelo mediante la aplicación de las técnicas que elija. Para obtener más información, consulte Técnicas de optimización.
Precios de instancias para trabajos de optimización de inferencias
Al crear un trabajo de optimización de inferencias que aplica la cuantificación o la compilación, la SageMaker IA elige qué tipo de instancia usar para ejecutar el trabajo. Se le cobrará en función de la instancia utilizada.
Para ver los posibles tipos de instancias y los detalles de sus precios, consulta la información sobre precios de optimización por inferencia en la página de SageMaker precios de Amazon
No se aplicarán costos adicionales en los trabajos en los que se aplique la decodificación especulativa.
Para conocer los modelos compatibles que puede optimizar, consulte Referencia de modelos compatibles.
Complete los siguientes pasos para crear un trabajo de optimización de inferencias en Studio.
Cómo empezar a crear un trabajo de optimización
-
En SageMaker AI Studio, cree un trabajo de optimización mediante cualquiera de las siguientes rutas:
-
Para crear un trabajo para un JumpStart modelo, haga lo siguiente:
-
En el menú de navegación, elija JumpStart.
-
En la página Todos los modelos públicos, elija un proveedor de modelos y, a continuación, seleccione uno de los modelos que admitan la optimización.
-
En la página de detalles del modelo, elija Optimizar. Este botón solo está habilitado para los modelos que admiten la optimización.
-
En la página Crear un trabajo de optimización de inferencias, algunos JumpStart modelos requieren que firme un acuerdo de licencia de usuario final (EULA) antes de poder continuar. Si se solicita, revise los términos de la licencia en la sección Acuerdo de licencia. Si los términos son aceptables para el caso de uso, seleccione la casilla de verificación Acepto el EULA, y he leído los términos y las condiciones.
-
-
Para crear un trabajo para un JumpStart modelo ajustado, haga lo siguiente:
-
En el panel de navegación, en Trabajos, elija Entrenamiento.
-
En la página Trabajos de formación, elija el nombre de un trabajo que utilizó para ajustar un JumpStart modelo. Estos trabajos tienen el tipo JumpStartFormación en la columna Tipo de trabajo.
-
En la página de detalles del trabajo de entrenamiento, elija Optimizar.
-
-
Para crear un trabajo para un modelo personalizado, haga lo siguiente:
-
En el menú de navegación, en Trabajos, elija Optimización de inferencias.
-
Elija Crear nuevo tarea.
-
En la página Crear trabajo de optimización de inferencias, elija Agregar modelo.
-
En la ventana Agregar modelo, elija Modelo personalizado.
-
Elija una de las siguientes opciones:
Usa tu modelo actual: selecciona esta opción para optimizar un modelo que ya hayas creado en SageMaker IA.
Nombre del modelo existente: introduzca el nombre de su modelo de SageMaker IA.
Desde S3: seleccione esta opción para proporcionar artefactos modelo de Amazon S3. En URI de S3, introduzca el URI de la ubicación de Amazon S3 en la que ha almacenado los artefactos del modelo.
-
(Opcional) En el nombre del modelo de salida, puede introducir un nombre personalizado para el modelo optimizado que crea el trabajo. Si no proporciona un nombre, Studio generará uno automáticamente en función de su selección.
-
-
-
En la página Crear trabajo de optimización de inferencias, en Nombre del trabajo, puede aceptar el nombre predeterminado que la SageMaker IA asigna. O bien, para introducir un nombre de trabajo personalizado, seleccione el campo Nombre del trabajo y elija Introducir nombre del trabajo.
Establecimiento de las configuraciones de optimización
-
En Tipo de instancia de implementación, elija el tipo de instancia para el que desee optimizar el modelo.
El tipo de instancia afecta a las técnicas de optimización que puede elegir. Para la mayoría de los tipos que utilizan hardware de GPU, las técnicas admitidas son Cuantización y Decodificación especulativa. Si eliges una instancia que usa silicio personalizado, como la instancia de AWS Inferentia ml.inf2.8xlarge, la técnica admitida es la compilación, que puedes usar para compilar el modelo para ese tipo de hardware específico.
-
Seleccione una o varias de las técnicas de optimización que Studio proporciona:
-
Si selecciona Cuantización, elija un tipo de datos para la opción Tipo de datos de precisión.
-
Si selecciona Decodificación especulativa, elija una de las siguientes opciones:
-
Utilice un modelo de borrador de SageMaker IA: elija usar el modelo de borrador que proporciona la IA. SageMaker
nota
Si opta por utilizar el modelo de borrador de SageMaker IA, también debe habilitar el aislamiento de la red. Studio ofrece esta opción en Seguridad.
-
Elegir JumpStart borrador del modelo: elija seleccionar un modelo del JumpStart catálogo para usarlo como borrador del modelo.
-
Elegir su propio modelo de borrador: elija su propio modelo de borrador y proporcione el URI de S3 en el que se encuentra.
-
-
Si selecciona Carga rápida del modelo, Studio muestra la variable de entorno
OPTION_TENSOR_PARALLEL_DEGREE. Utilice el campo Valor para establecer el grado de paralelismo de tensores. El valor debe dividir GPUs en partes iguales el número de instancias que haya elegido como tipo de instancia de despliegue. Por ejemplo, para fragmentar el modelo mientras usas una instancia con 8 GPUs, usa los valores 2, 4 u 8. -
Si estableces el tipo de instancia de despliegue en una instancia de AWS Inferentia o AWS Trainium, Studio podría mostrar que la compilación es la única opción admitida. En tal caso, Studio selecciona esta opción automáticamente.
-
-
En Salida, introduzca el URI de una ubicación de Amazon S3. Allí, la SageMaker IA almacena los artefactos del modelo optimizado que crea tu trabajo.
-
(Opcional) Amplíe Opciones avanzadas para obtener un control más pormenorizado de la configuración, como, por ejemplo, el rol de IAM, la VPC y las variables de entorno. Para obtener más información, consulte a continuación Opciones avanzadas.
-
Cuando haya terminado de configurar el trabajo, seleccione Crear trabajo.
Studio muestra la página de detalles del trabajo, que muestra el estado del trabajo y todos sus ajustes.
Opciones avanzadas
Puede definir las siguientes opciones avanzadas al crear un trabajo de optimización de inferencias.
En Configuraciones, puede configurar las siguientes opciones:
- Grado de tensor paralelo
-
Un valor para el grado de paralelismo de tensores. El paralelismo de tensores es un tipo de paralelismo de modelos en el que las ponderaciones, gradientes y estados del optimizador específicos del modelo se dividen entre los dispositivos. El valor debe dividir en partes iguales el número GPUs de del clúster.
- Longitud máxima del token
-
El límite de la cantidad de tokens que generará el modelo. Tenga en cuenta que es posible que el modelo no siempre genere la cantidad máxima de tokens.
- Concurrency (Simultaneidad)
-
La capacidad de ejecutar varias instancias de un modelo en el mismo hardware subyacente. Utilice la simultaneidad para ofrecer predicciones a varios usuarios y sacar el máximo partido de la utilización del hardware.
- Tamaño de lote
-
Si el modelo realiza inferencias por lotes, utilice esta opción para controlar el tamaño de los lotes que procesa el modelo.
La inferencia por lotes genera predicciones de modelos a partir de un lote de observaciones. Es una buena opción para conjuntos de datos grandes o si no necesita una respuesta inmediata a una solicitud de inferencia.
En Seguridad, puede configurar las siguientes opciones:
- Rol de IAM
-
Una función de IAM que permite a la SageMaker IA realizar tareas en tu nombre. Durante la optimización del modelo, la SageMaker IA necesita su permiso para:
-
Leer los datos de entrada de un bucket de S3
-
Escribir artefactos de modelos en un bucket de S3
-
Escribir registros en Amazon CloudWatch Logs
-
Publica métricas en Amazon CloudWatch
Conceda permisos para todas estas tareas a un rol de IAM.
Para obtener más información, consulte Cómo utilizar las funciones de ejecución de la SageMaker IA.
-
- Clave de cifrado de KMS
-
Una clave en AWS Key Management Service (AWS KMS). SageMaker La IA utiliza la clave para cifrar los artefactos del modelo optimizado cuando la SageMaker IA carga el modelo en Amazon S3.
- VPC
-
SageMaker La IA utiliza esta información para crear interfaces de red y conectarlas a los contenedores de sus modelos. Las interfaces de red proporcionan a sus contenedores de modelos una conexión de red en su VPC que no está conectada a Internet. También permiten al modelo conectarse a recursos en su VPC privada.
Para obtener más información, consulte Ofrezca a los puntos de conexión alojados en SageMaker IA acceso a los recursos de su Amazon VPC.
- Habilitación del aislamiento de la red
-
Active esta opción si desea restringir el acceso a Internet por parte del contenedor. Los contenedores que funcionan con el aislamiento de la red no pueden realizar llamadas de red salientes.
nota
Debe activar esta opción cuando optimice con decodificación especulativa y utilice el modelo de borrador de SageMaker IA.
Para obtener más información acerca del aislamiento de la red, consulte Aislamiento de red.
En Definición avanzada de contenedores, puede configurar las siguientes opciones:
- Condición de parada
-
Especifica el límite de tiempo durante el que se puede ejecutar un trabajo. Cuando el trabajo alcanza el límite de tiempo, la SageMaker IA finaliza el trabajo. Utilice esta opción para limitar los costos.
- Tags
-
Pares clave-valor asociadas al trabajo de optimización.
Para obtener más información sobre las etiquetas, consulte Tagging AWS resources en la Referencia general de AWS.
- Variables de entorno
-
Pares clave-valor que definen las variables de entorno que se han de establecer en el contenedor del modelo.
Puede crear un trabajo de optimización de inferencias utilizando el SDK de Python para SageMaker IA en su proyecto. En primer lugar, defina una instancia Model mediante la clase ModelBuilder. A continuación, utilice el método optimize() para ejecutar un trabajo que optimice el modelo con la cuantización, la decodificación especulativa o la compilación. Cuando se complete el trabajo, implemente el modelo en un punto de conexión de inferencia mediante el método deploy().
Para obtener más información sobre las clases y los métodos utilizados en los siguientes ejemplos, consulta APIs
Configuración de un proyecto
-
En el código de la aplicación, importe las bibliotecas necesarias. En el ejemplo siguiente se importa el SDK para Python (Boto3). También importa las clases del SDK de Python para SageMaker IA que se utilizan para definir los modelos y trabajar con ellos:
import boto3 from sagemaker.serve.builder.model_builder import ModelBuilder from sagemaker.serve.builder.schema_builder import SchemaBuilder from sagemaker.session import Session from pathlib import Path -
Inicializa una sesión de SageMaker IA. En este ejemplo se usa la clase
Session():sagemaker_session = Session()
Definición de un modelo
-
Cree una instancia de
SchemaBuildery proporcione ejemplos de entrada y salida. Al definir un modelo, debe proporcionar esta instancia a la claseModelBuilder. Con él, la SageMaker IA genera automáticamente las funciones de clasificación para serializar y deserializar la entrada y la salida.Para obtener más información sobre el uso de las clases
SchemaBuilderyModelBuilder, consulte Creación de un modelo en Amazon SageMaker AI con ModelBuilder.En el ejemplo siguiente se proporcionan ejemplos de cadenas de entrada y salida para la clase
SchemaBuilder:response = "Jupiter is the largest planet in the solar system. It is the fifth planet from the sun." sample_input = { "inputs": "What is the largest planet in the solar system?", "parameters": {"max_new_tokens": 128, "top_p": 0.9, "temperature": 0.6}, } sample_output = [{"generated_text": response}] schema_builder = SchemaBuilder(sample_input, sample_output) -
Defina su modelo según la IA. SageMaker En el ejemplo siguiente se definen los parámetros para inicializar una instancia de
ModelBuilder:model_builder = ModelBuilder( model="jumpstart-model-id", schema_builder=schema_builder, sagemaker_session=sagemaker_session, role_arn=sagemaker_session.get_caller_identity_arn(), )En este ejemplo se utiliza un JumpStart modelo.
Sustitúyalo por el identificador de un JumpStart modelo, por ejemplojumpstart-model-idmeta-textgeneration-llama-3-70b.nota
Si quiere optimizar con una decodificación especulativa y quiere utilizar el borrador de SageMaker IA, debe habilitar el aislamiento de la red. Para habilitarlo, incluya el siguiente argumento al inicializar una instancia
ModelBuilder:enable_network_isolation=True,Para obtener más información acerca del aislamiento de la red, consulte Aislamiento de red.
Optimización con la cuantización
-
Para ejecutar un trabajo de cuantización, utilice el método
optimize()y establezca el argumentoquantization_config. En el siguiente ejemplo se estableceOPTION_QUANTIZEcomo una variable de entorno en el contenedor de optimización:optimized_model = model_builder.optimize( instance_type="instance-type", accept_eula=True, quantization_config={ "OverrideEnvironment": { "OPTION_QUANTIZE": "awq", }, }, output_path="s3://output-path", )En este ejemplo, sustituya
por una instancia de ML, comoinstance-typeml.p4d.24xlarge. Sustituyapor la ruta a la ubicación de S3 en la que se almacena el modelo optimizado que crea el trabajo.s3://output-pathEl método
optimize()devuelve un objetoModel, que puede utilizar para implementar el modelo en un punto de conexión. -
Cuando se complete el trabajo, implemente el modelo. En el siguiente ejemplo se utiliza el método
deploy():predictor = optimized_model.deploy( instance_type="instance-type", accept_eula=True, )En este ejemplo, sustituya
por una instancia de ML, comoinstance-typeml.p4d.24xlarge.El método
deploy()devuelve un objeto predictor, que puede utilizar para enviar solicitudes de inferencia al punto de conexión que aloja el modelo.
Para optimizar con la decodificación especulativa, utilice el borrador del modelo SageMaker AI
Cuando optimizas tu modelo con decodificación especulativa, puedes optar por usar un borrador de modelo proporcionado por la SageMaker IA o puedes usar el tuyo propio. En los ejemplos siguientes se utiliza el modelo preliminar de SageMaker IA.
Requisito previo
Para optimizar con la decodificación especulativa y el modelo preliminar de SageMaker IA, debe habilitar el aislamiento de la red al definir el modelo.
-
Para ejecutar un trabajo de decodificación especulativa, utilice el método
optimize()y establezca el argumentospeculative_decoding_config. El siguiente ejemplo establece laModelProviderclaveSAGEMAKERpara utilizar el borrador del modelo que proporciona la SageMaker IA.optimized_model = model_builder.optimize( instance_type="instance-type", accept_eula=True, speculative_decoding_config={ "ModelProvider": "SAGEMAKER", }, )En este ejemplo, sustituya
por una instancia de ML, comoinstance-typeml.p4d.24xlarge.El método
optimize()devuelve un objetoModel, que puede utilizar para implementar el modelo en un punto de conexión. -
Cuando se complete el trabajo, implemente el modelo. En el siguiente ejemplo se utiliza el método
deploy():predictor = optimized_model.deploy(accept_eula=True)El método
deploy()devuelve un objeto predictor, que puede utilizar para enviar solicitudes de inferencia al punto de conexión que aloja el modelo.
Optimización con la decodificación especulativa mediante un modelo de borrador personalizado
Antes de poder proporcionar su borrador de modelo personalizado a SageMaker AI, primero debe cargar los artefactos del modelo en Amazon S3.
En los siguientes ejemplos se muestra una forma posible de proporcionar un modelo de borrador personalizado. En los ejemplos se descarga el modelo de borrador del Hugging Face Hub, se carga en Amazon S3 y se proporciona el URI de S3 al argumento speculative_decoding_config.
-
Si quiere descargar un modelo del Hugging Face Hub, añada la biblioteca
huggingface_huba su proyecto y descargue un modelo con el métodosnapshot_download(). En el siguiente ejemplo se descarga un modelo en un directorio local:import huggingface_hub huggingface_hub.snapshot_download( repo_id="model-id", revision="main", local_dir=download-dir, token=hf-access-token, )En este ejemplo, sustituya
por el ID de un modelo, el Hugging Face Hub, comomodel-idmeta-llama/Meta-Llama-3-8B. Sustituyapor un directorio local. Sustituyadownload-dirpor su token de acceso de usuario. Para obtener información sobre cómo obtener su token de acceso, consulte User access tokenshf-access-tokenen la documentación de Hugging Face. Para obtener más información sobre la biblioteca
huggingface_hub, consulte Hub client libraryen la documentación de Hugging Face. -
Para que el modelo descargado esté disponible para SageMaker AI, cárguelo en Amazon S3. En el siguiente ejemplo se carga el modelo con el objeto
sagemaker_session:custom_draft_model_uri = sagemaker_session.upload_data( path=hf_local_download_dir.as_posix(), bucket=sagemaker_session.default_bucket(), key_prefix="prefix", )En este ejemplo, sustituya
por un calificador que le ayude a distinguir el modelo de borrador en S3, comoprefixspec-dec-custom-draft-model.El método
upload_data()devuelve el URI de S3 de los artefactos del modelo. -
Para ejecutar un trabajo de decodificación especulativa, utilice el método
optimize()y establezca el argumentospeculative_decoding_config. En el siguiente ejemplo se establece la claveModelSourcedel URI de S3 del modelo de borrador personalizado:optimized_model = model_builder.optimize( instance_type="instance-type", accept_eula=True, speculative_decoding_config={ "ModelSource": custom_draft_model_uri + "/", }, )En este ejemplo, sustituya
por una instancia de ML, comoinstance-typeml.p4d.24xlarge.El método
optimize()devuelve un objetoModel, que puede utilizar para implementar el modelo en un punto de conexión. -
Cuando se complete el trabajo, implemente el modelo. En el siguiente ejemplo se utiliza el método
deploy():predictor = optimized_model.deploy(accept_eula=True)El método
deploy()devuelve un objeto predictor, que puede utilizar para enviar solicitudes de inferencia al punto de conexión que aloja el modelo.
Optimización con la compilación
-
Para ejecutar un trabajo de compilación, utilice el método
optimize()y establezca el argumentocompilation_config. En el siguiente ejemplo se utiliza la claveOverrideEnvironmentpara establecer las variables de entorno necesarias en el contenedor de optimización:optimized_model = model_builder.optimize( instance_type="instance-type", accept_eula=True, compilation_config={ "OverrideEnvironment": { "OPTION_TENSOR_PARALLEL_DEGREE": "24", "OPTION_N_POSITIONS": "8192", "OPTION_DTYPE": "fp16", "OPTION_ROLLING_BATCH": "auto", "OPTION_MAX_ROLLING_BATCH_SIZE": "4", "OPTION_NEURON_OPTIMIZE_LEVEL": "2", } }, output_path="s3://output-path", )En este ejemplo, establezca
en un tipo de instancia de ML con hardware acelerado. Por ejemplo, para AWS una inferencia acelerada con Inferentia, puede establecer el tipo en una instancia de Inf2, como.instance-typeml.inf2.48xlargeSustituyapor la ruta a la ubicación de S3 en la que se almacena el modelo optimizado que crea el trabajo.s3://output-path -
Cuando se complete el trabajo, implemente el modelo. En el siguiente ejemplo se utiliza el método
deploy():predictor = optimized_model.deploy(accept_eula=True)El método
deploy()devuelve un objeto predictor, que puede utilizar para enviar solicitudes de inferencia al punto de conexión que aloja el modelo.
Prueba del modelo con una solicitud de inferencia
-
Para enviar una solicitud de inferencia de prueba al modelo implementado, utilice el método
predict()de un objeto predictor. En el siguiente ejemplo se pasa la variablesample_inputque también se pasó a la claseSchemaBuilderen los ejemplos para definir el modelo:predictor.predict(sample_input)La entrada de muestra tiene la petición,
"What is the largest planet in the solar system?". El métodopredict()devuelve la respuesta que generó el modelo, como se muestra en el siguiente ejemplo:{'generated_text': ' Jupiter is the largest planet in the solar system. It is the fifth planet from the sun. It is a gas giant with . . .'}
Puede utilizar el AWS SDK para Python (Boto3) para crear y gestionar tareas de optimización de inferencias mediante programación. En esta sección se proporcionan ejemplos de diferentes técnicas de optimización.
Requisitos previos
Antes de crear un trabajo de optimización con Boto3, asegúrese de tener:
-
AWSCredenciales configuradas: configure sus AWS credenciales con los permisos adecuados
-
Creó un modelo de SageMaker IA (si utiliza un modelo existente)
-
Preparé los datos de entrenamiento en S3 (para la optimización de la decodificación especulativa, se admitía una longitud de contexto de hasta 4096)
-
Función de IAM con los permisos necesarios: su función de ejecución debe tener permisos para acceder a S3 y crear recursos SageMaker
Ejemplo: Crear un trabajo de optimización con la decodificación especulativa EAGLE (Llama 3.3 70B)
En este ejemplo se muestra la creación de un trabajo de optimización para un modelo de lenguaje grande mediante la técnica de decodificación especulativa EAGLE:
import boto3 # Initialize SageMaker client sagemaker_client = boto3.client('sagemaker', region_name='us-west-2') # Step 1: Create a SageMaker model (if not already created) model_response = sagemaker_client.create_model( ModelName='meta-llama-3-3-70b-instruct', ExecutionRoleArn='arn:aws:iam::123456789012:role/SageMakerExecutionRole', PrimaryContainer={ 'Image': '763104351884.dkr.ecr.us-west-2.amazonaws.com/djl-inference:<tag>', 'ModelDataSource': { 'S3DataSource': { 'S3Uri': 's3://my-bucket/models/Llama-3.3-70B-Instruct/', 'S3DataType': 'S3Prefix', 'CompressionType': 'None' } }, 'Environment': { 'SAGEMAKER_ENV': '1', 'SAGEMAKER_MODEL_SERVER_TIMEOUT': '3600' } } ) # Step 2: Create optimization job with speculative decoding optimization_response = sagemaker_client.create_optimization_job( OptimizationJobName='llama-optim-job-eagle-speculative-decoding', RoleArn='arn:aws:iam::123456789012:role/SageMakerExecutionRole', ModelSource={ 'SageMakerModel': { 'ModelName': 'meta-llama-3-3-70b-instruct' } }, DeploymentInstanceType='ml.p4d.24xlarge', # MaxInstanceCount specifies the maximum number of instances for distributed training MaxInstanceCount=4, OptimizationConfigs=[ { 'ModelSpeculativeDecodingConfig': { 'Technique': 'EAGLE', 'TrainingDataSource': { 'S3Uri': 's3://my-bucket/training_data/ultrachat_8k/', 'S3DataType': 'S3Prefix' } } } ], OutputConfig={ 'S3OutputLocation': 's3://my-bucket/optimized-models/llama-optim-output/', }, StoppingCondition={ 'MaxRuntimeInSeconds': 432000 # 5 days } ) print(f"Optimization job ARN: {optimization_response['OptimizationJobArn']}")
Ejemplo: Crear un trabajo de optimización a partir de artefactos del modelo S3 (Qwen3 32B)
En este ejemplo se muestra cómo crear un trabajo de optimización utilizando artefactos de modelo directamente desde S3:
import boto3 sagemaker_client = boto3.client('sagemaker', region_name='us-west-2') # Create model from S3 artifacts model_response = sagemaker_client.create_model( ModelName='qwen3-32b', ExecutionRoleArn='arn:aws:iam::123456789012:role/SageMakerExecutionRole', PrimaryContainer={ 'Image': '763104351884.dkr.ecr.us-west-2.amazonaws.com/djl-inference:<tag>', 'Mode': 'SingleModel', 'ModelDataSource': { 'S3DataSource': { 'S3Uri': 's3://my-bucket/models/qwen3-32b/', 'S3DataType': 'S3Prefix', 'CompressionType': 'None' } }, 'Environment': { 'AWS_REGION': 'us-west-2' } } ) # Create optimization job with smaller training dataset optimization_response = sagemaker_client.create_optimization_job( OptimizationJobName='qwen3-optim-job-eagle', RoleArn='arn:aws:iam::123456789012:role/SageMakerExecutionRole', ModelSource={ 'SageMakerModel': { 'ModelName': 'qwen3-32b' } }, DeploymentInstanceType='ml.g6.48xlarge', MaxInstanceCount=4, OptimizationConfigs=[ { 'ModelSpeculativeDecodingConfig': { 'Technique': 'EAGLE', 'TrainingDataSource': { 'S3Uri': 's3://my-bucket/training_data/ultrachat_1k/', 'S3DataType': 'S3Prefix' } } } ], OutputConfig={ 'S3OutputLocation': 's3://my-bucket/optimized-models/qwen3-optim-output/', }, StoppingCondition={ 'MaxRuntimeInSeconds': 432000 # 5 days } ) print(f"Optimization job ARN: {optimization_response['OptimizationJobArn']}")
Ejemplo: supervisar y gestionar los trabajos de optimización
Tras crear un trabajo de optimización, puede supervisar su progreso y gestionarlo mediante estos comandos:
import boto3 sagemaker_client = boto3.client('sagemaker', region_name='us-west-2') # Describe optimization job to check status describe_response = sagemaker_client.describe_optimization_job( OptimizationJobName='llama-optim-job-eagle-speculative-decoding' ) print(f"Job Status: {describe_response['OptimizationJobStatus']}") # List all optimization jobs (with pagination) list_response = sagemaker_client.list_optimization_jobs( MaxResults=10, SortBy='CreationTime', SortOrder='Descending' ) print("\nRecent optimization jobs:") for job in list_response['OptimizationJobSummaries']: print(f"- {job['OptimizationJobName']}: {job['OptimizationJobStatus']}") # Stop a running optimization job if needed # sagemaker_client.stop_optimization_job( # OptimizationJobName='llama-optim-job-eagle-speculative-decoding' # ) # Delete a completed or failed optimization job # sagemaker_client.delete_optimization_job( # OptimizationJobName='llama-optim-job-eagle-speculative-decoding' # )
La decodificación especulativa con Eagle Heads lleva a cabo cuatro tareas de formación secuenciales. Cada trabajo produce un resultado que se convierte en la entrada del siguiente. Solo el resultado del trabajo final se envía a su bucket de S3. Los resultados intermedios se cifran y almacenan en un depósito de servicios de SageMaker IA interno durante un máximo de 20 días. SageMaker AI no tiene permisos para descifrarlos. Si desea que los datos intermedios se eliminen antes de ese período, asegúrese de que su trabajo se haya completado o se haya detenido y, a continuación, abra un caso de soporte [https://docs.aws.amazon.com/awssupport/latest/user/case-management.html# creating-a-support-case] para que se eliminen estos datos. Incluya en la solicitud su ID de AWS cuenta y el ARN del trabajo de optimización.
Limitaciones del borrador del SageMaker modelo de IA
Para cualquier modelo que optimice con el modelo preliminar de SageMaker IA, tenga en cuenta los requisitos, las restricciones y las variables de entorno compatibles.
Requisitos
Debe hacer lo siguiente:
-
Utilice un modelo proporcionado por SageMaker JumpStart.
-
Habilitar el aislamiento de la red para la implementación del modelo.
-
Si implementa el modelo en un contenedor de inferencia de modelos grandes (LMI), utilice un DJLServing contenedor de la versión 0.28.0 o superior.
Para ver los contenedores disponibles, consulte Contenedores de inferencia de modelos grandes
en el GitHub repositorio de Deep Learning Containers. -
Si ajusta el JumpStart modelo con precisión, utilice el formato safetensors para los pesos del modelo.
Para obtener más información, consulte Safetensors
en la documentación de Hugging Face.
Restricciones
No puede hacer lo siguiente:
-
Utilizar el modelo en entornos de prueba locales que cree con el modo local.
Para obtener más información sobre el modo local, consulta Modo local
en la documentación del SDK de Python para SageMaker IA. -
Acceda al contenedor del modelo a través del AWS Systems Manager agente (agente SSM). El agente SSM proporciona acceso a nivel de shell a su contenedor modelo para que pueda depurar procesos y registrar comandos con Amazon. CloudWatch
Para obtener más información acerca de esta característica, consulte Acceso a contenedores a través de SSM.
-
Configurar el contenedor de modelos para un volcado de núcleo que se produce si el proceso se bloquea.
Para obtener más información sobre los volcados principales de los contenedores modelo, consulte. ProductionVariantCoreDumpConfig
-
Implementar el modelo en puntos de conexión multimodelo, puntos de conexión multicontenedor o puntos de conexión que alojan componentes de inferencia.
Para obtener más información acerca de estos tipos de puntos de conexión, consulte Puntos de conexión multimodelo, Puntos de conexión con varios contenedores y Componentes de inferencias.
-
Crear un paquete de modelos para el modelo. Los paquetes de modelos se utilizan para crear modelos desplegables en los que se publican. AWS Marketplace
Para obtener más información acerca de esta característica, consulte Cree un recurso de paquete de modelos.
-
Usar su propio código de inferencia en el contenedor de modelos.
-
Utilizar un archivo
requirements.txten el contenedor de modelos. Este tipo de archivo muestra las dependencias de los paquetes. -
Habilitar el parámetro
trust_remote_codede Hugging Face.
Variables de entorno admitidas
Puede configurar el contenedor únicamente con las siguientes variables de entorno:
-
Variables de entorno comunes para contenedores de inferencia de modelos grandes (LMI).
Para obtener más información sobre estas variables, consulte Environment Variable Configurations
en la documentación del contenedor de LMI. -
Variables de entorno comunes para los paquetes que Hugging Face Hub proporciona en sus repositorios de Git.
Para los repositorios, consulta Hugging
Face on. GitHub -
Variables de PyTorch entorno comunes y CUDA.
Para obtener más información sobre estas variables, consulte las variables de entorno de Torch
en la PyTorch documentación.