Destilación Amazon Nova - Amazon SageMaker AI

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.

Destilación Amazon Nova

Esta guía de inicio rápido le ayuda a empezar con la destilación modelo Amazon Nova mediante el ajuste fino supervisado (SFT) en IA. SageMaker

Conceptos

La destilación de modelos es un método que transfiere el conocimiento de modelos grandes y avanzados a modelos más pequeños y eficientes. Con los modelos Amazon Nova, un modelo instructor más grande (como Amazon Nova Pro o Amazon Nova Premier) transfiere sus capacidades a un modelo aprendiz más pequeño (como Amazon Nova Lite o Amazon Nova Micro). Esto crea un modelo personalizado que mantiene un alto rendimiento y utiliza menos recursos.

Componentes principales

El proceso de destilación incluye principalmente dos tipos de modelos:

Los modelos docentes sirven como fuente de conocimiento e incluyen:

  • Amazon Nova Pro (Amazon). nova-pro-v1:0)

  • Amazon Nova Premier (amazon). nova-premier-v1:0)

Los estudiantes modelos reciben e implementan el conocimiento:

  • Amazon Nova Lite (Amazon). nova-lite-v1:0:300 k)

  • Amazon Nova Micro (Amazon). nova-micro-v1:00:128 (km)

  • Amazon Nova Pro (Amazon). nova-pro-v1:0:300 k) - Disponible solo cuando se utiliza Amazon Nova Premier como profesor

Casos de uso

La destilación en modo modo es particularmente beneficiosa cuando:

  • Su aplicación tiene requisitos estrictos de latencia, coste y precisión.

  • Necesita un modelo personalizado para tareas específicas, pero carece de suficientes datos de entrenamiento etiquetados de alta calidad.

  • Desea igualar el rendimiento de los modelos avanzados y, al mismo tiempo, mantener la eficiencia de los modelos más pequeños.

Requisitos previos

  • Cuenta de AWS con acceso a los modelos de Amazon Nova y a las cuotas de servicio adecuadas (mínimo 6 instancias P5 y 1 R5).

  • Función de IAM con permisos para SageMaker trabajos de formación.

  • Cubeta de Amazon S3 para almacenar datos y resultados de entrenamiento.

Configuración de aumento de datos

La fase de aumento de datos utiliza los trabajos de SageMaker formación para generar datos de formación de alta calidad utilizando el modelo docente. En esta sección se detallan el proceso de configuración y los requisitos.

rol de IAM

Para crear funciones de IAM y adjuntar políticas, consulte Crear funciones y adjuntar políticas (consola). Si lo usa AWS CLI, siga las instrucciones de create-role y. attach-role-policy Para obtener más información, consulte Cómo utilizar las funciones de ejecución de SageMaker IA en la Guía para desarrolladores de SageMaker IA.

A continuación, se muestran ejemplos de comandos para su consulta.

Cree un rol de ejecución de SageMaker IA

El rol se crea con una relación de confianza que permite a SageMaker AI, Amazon Bedrock, asumir este rol. Esto permite que estos servicios actúen en su nombre al ejecutar trabajos de inferencia por lotes.

aws iam create-role \ --role-name NovaCustomizationRole \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": ["sagemaker.amazonaws.com", "bedrock.amazonaws.com"] }, "Action": "sts:AssumeRole" } ] }'

Adjunte las políticas necesarias

# Attach AmazonSageMakerFullAccess aws iam attach-role-policy \ --role-name NovaCustomizationRole \ --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess # Attach AmazonBedrockFullAccess aws iam attach-role-policy \ --role-name NovaCustomizationRole \ --policy-arn arn:aws:iam::aws:policy/AmazonBedrockFullAccess # Attach S3 access policy aws iam attach-role-policy \ --role-name NovaCustomizationRole \ --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess # Attach AmazonEC2FullAccess aws iam attach-role-policy \ --role-name NovaCustomizationRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEC2FullAccess # Attach AmazonEC2ContainerRegistryFullAccess aws iam attach-role-policy \ --role-name NovaCustomizationRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryFullAccess # Attach AmazonEC2ContainerRegistryFullAccess aws iam attach-role-policy \ --role-name NovaCustomizationRole \ --policy-arn arn:aws:iam::aws:policy/CloudWatchLogsFullAccess

Adjunte la siguiente política en línea a la función de ejecución del cliente necesaria para Distillation Container.

  • AWS KMS permisos: permite que el rol interactúe con el servicio de administración de AWS claves, necesario para acceder a los recursos cifrados o administrar las claves de cifrado.

  • IAM:PassRole: Este permiso suele ser necesario cuando un servicio necesita transferir esta función a otro servicio, un patrón habitual en las integraciones de AWS servicios.

aws iam put-role-policy \ --role-name NovaCustomizationRole \ --policy-name Distillation-Additional-Permissions\ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*" } ] }

Configuración de Amazon VPC

Para crear una configuración de Amazon VPC para trabajos de formación de SageMaker IA mediante la AWS Management Console, siga las instrucciones de Configure Your Private VPC for SageMaker Training (consola).

Crear una Amazon VPC nueva

Name: Distillation-VPC IPv4 CIDR: 10.0.0.0/16 (or your preferred range) Availability Zones: 2 Public Subnets: 2 Private Subnets: 2 NAT Gateways: 1 (in one AZ)

Cree un grupo de seguridad

Name: Distillation-SG Description: Security group for data distillation jobs Inbound Rules: Allow all traffic from self Outbound Rules: Allow all traffic (0.0.0.0/0)

Cree puntos finales de VPC para los siguientes servicios

com.amazonaws.[region].s3 com.amazonaws.[region].sagemaker.api com.amazonaws.[region].sagemaker.runtime com.amazonaws.[region].bedrock.api com.amazonaws.[region].bedrock.runtime com.amazonaws.[region].sts com.amazonaws.[region].logs com.amazonaws.[region].ecr.api com.amazonaws.[region].ecr.dkr

Para cada punto final:

  • Seleccione su destilación-VPC

  • Elija las subredes privadas

  • Seleccione el grupo de seguridad Distillation-SG

AWS KMS claves

Cuando se trabaja con la inferencia de lotes de Amazon Bedrock, se necesita una AWS KMS clave para garantizar la seguridad y el cumplimiento de los datos. Los trabajos de inferencia por lotes de Amazon Bedrock requieren que los depósitos de Amazon S3 de entrada y salida estén cifrados con AWS KMS claves para garantizar la protección de los datos en reposo.

Cree una clave KMS AWS CLI con este comando:

# Create KMS key aws kms create-key \ --description "KMS key for Amazon Bedrock batch inference Amazon S3 bucket" \ --region us-east-1

El comando generará la información clave, incluido el ARN. Ejemplo de salida:

{ "KeyMetadata": { "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Arn": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } }
nota

Guarde el ARN de la clave de KMS de la salida, ya que la necesitará para crear el bucket de Amazon S3 en la siguiente sección.

Bucket de Amazon S3

Necesita dos tipos de almacenamiento de Amazon S3. El bucket Amazon S3 gestionado por el cliente almacena los datos de entrada y los archivos de salidamanifest.json. Usted crea y administra este depósito y puede utilizar un único depósito tanto para la entrada como para la salida. Este depósito debe configurarse con cifrado de KMS, ya que almacenará datos de salida confidenciales y se utilizará en los trabajos de inferencia de lotes de Amazon Bedrock. Amazon Bedrock requiere depósitos cifrados con KMS para procesar las tareas de inferencia de lotes.

El bucket Amazon S3 gestionado por el servicio almacena los pesos de los modelos. Durante su primer trabajo de formación, se crea automáticamente un bucket de Amazon S3 gestionado por un servicio. Cuenta con controles de acceso restringidos con rutas específicas a las que solo se puede acceder a través de archivos de manifiesto.

Para crear un depósito en un depósito específico Región de AWS, utilice el comando CLI create-bucket.

Ejemplo de comando para crear un bucket de Amazon S3 con AWS KMS cifrado. {kms_key_arn}Sustitúyalo por el ARN de tu AWS KMS clave. Primero tendrás que crear una AWS KMS clave si aún no lo has hecho.

aws s3api create-bucket \ --bucket {my_bucket_name} \ --region {aws_region} \ --create-bucket-configuration LocationConstraint={aws_region} \ --server-side-encryption-configuration '{ "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "aws:kms", "KMSMasterKeyID": "{kms_key_arn}" }, "BucketKeyEnabled": true } ] }'

Comienza un trabajo SageMaker de formación

Antes de empezar un trabajo de formación, prepare los datos.

Requisito de formato de datos: el conjunto de datos de entrada debe estar en formato JSONL y cada línea debe contener una muestra en formato inverso. Para obtener más información, consulte Preparación de datos para resumir y comprender los modelos.

Restricciones del conjunto

  • Número mínimo de solicitudes: 100

  • Tamaño máximo de archivo: 2 GB

  • Longitud máxima de línea: 180 KB

  • Formato de archivo: solo JSONL

Para cargar los datos de entrada, ejecute el siguiente comando.

aws s3 cp /path/to/input-data/ s3://customer-input-data-bucket/ —recursive

Receta de aumento de datos

Puede obtener la receta de destilación en el repositorio de SageMaker HyperPod recetas. La receta de destilación se encuentra en el directorio:. recipes-collection/recipes/fine-tuning/nova El proceso de aumento de datos se controla mediante un archivo de configuración YAML. A continuación se presenta una explicación detallada de cada parámetro. Todos los campos son obligatorios.

Parámetro Descripción
name

Un nombre descriptivo para su puesto de formación. Esto ayuda a identificar su trabajo en el AWS Management Console.

datos_de_destilación

Habilita el trabajo de destilación de datos, no modifique este campo.

maxNumberOfSolicita

El número máximo de solicitudes en el conjunto de datos.

maxResponseLength

La longitud máxima de respuesta por solicitud (símbolos).

maxInputFileSizeInGB

El tamaño máximo del archivo de entrada (en GB).

maxLineLengthEn KB

El tamaño máximo de una sola línea del archivo de entrada (en KB).

maxStudentModelFineTuningContextLengthInTokens

El tamaño máximo de la ventana de contexto (fichas) para el modelo del alumno. El valor no debe superar la capacidad del modelo del estudiante. Puede establecer este valor en 32 000 o 64 000 en función de la capacidad del modelo del alumno.

teacherModelId

Al configurar el ID del modelo de profesor, seleccione una de estas dos opciones:

  • Para Amazon Titan Premier: «us.amazon. nova-premier-v1:0 "para la región IAD. Nota: Esto solo está disponible en la región IAD.

  • Para Amazon Nova Pro: «us.amazon. nova-pro-v1:0 "para la región IAD y «eu.amazon». nova-pro-v1:0 "para la región ARN.

temperature

Controla la aleatoriedad de la respuesta (se recomienda 0,7 para mantener el equilibrio).

top_p

Umbral de probabilidad acumulada para el muestreo simbólico (se recomienda 0,9).

custome_bucket

Depósito de input/output datos de Amazon S3.

kms_key

AWS KMS clave para cifrar la salida en S3. La inferencia por lotes de Bedrock la necesitaba para almacenar la salida devuelta por el trabajo de inferencia.

Limitación

Para el modelo Teacher como Nova Premier: solo se admite en la región IAD (us-east-1) debido a que la inferencia por lotes de Amazon Bedrock no está disponible en la región ARN (). eu-north-1

prácticas recomendadas

Preparación de datos

  • Incluye 100 ejemplos etiquetados de alta calidad para guiar el modelo docente

  • Elimine las etiquetas de mala calidad antes de enviarlas

  • Siga las mejores prácticas para comprender el texto y solicitar información

  • Pruebe las instrucciones con el modelo del profesor antes de iniciar la destilación

Selección del modelo

  • Utilice Nova Pro como profesor para casos de uso general

  • Considere Nova Premier para obtener conocimientos de dominio especializados

  • Elija el modelo para estudiantes en función de los requisitos de latencia y costo

Optimización del rendimiento

Comenzar un trabajo con PySDK

El siguiente ejemplo de cuaderno muestra cómo realizar un trabajo de SageMaker formación para la destilación. Para obtener más información, consulte Utilizar un estimador de SageMaker IA para ejecutar un trabajo de formación.

import os import sagemaker,boto3 from sagemaker.pytorch import PyTorch from sagemaker.inputs import TrainingInput sagemaker_session = sagemaker.Session() role = sagemaker.get_execution_role() # SETUP job_name = <Your_job_name> # Must be unique for every run input_s3_uri = <S3 URI to your input dataset> # Must end in .jsonl file output_s3_uri = <S3 URI to your output bucket> + job_name image_uri = "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-distillation-repo:SM-TJ-DISTILL-LATEST" # Do not change instance_type = "ml.r5.4xlarge" # Recommedation is to use cpu instances instance_count = 1 # Must be 1, do not change role_arn = <IAM role to execute the job with> recipe_path = <Local path to your recipe> # Execution estimator = PyTorch( output_path=output_s3_uri, base_job_name=job_name, role=role_arn, instance_count=instance_count, instance_type=instance_type, training_recipe=recipe_path, max_run=432000, sagemaker_session=sagemaker_session, image_uri=image_uri, subnets= ['subnet-xxxxxxxxxxxxxxxxx','subnet-xxxxxxxxxxxxxxxxx'], # Add subnet groups created in previous steps security_group_ids= ['sg-xxxxxxxxxxxxxxxxx'], # Add security group created in previous steps disable_profiler=True, debugger_hook_config=False ) trainingInput = TrainingInput( s3_data=input_s3_uri, distribution='FullyReplicated', s3_data_type='Converse' ) # The keys must be "train". estimator.fit(inputs={"train": trainingInput})

Validar la calidad aumentada de los datos

Antes de proceder al ajuste, es fundamental validar la calidad de los datos aumentados:

  1. Revise el sample_training_data.jsonl archivo de su depósito de salida. Este archivo contiene 50 muestras aleatorias del conjunto de datos aumentado.

  2. Inspeccione manualmente estas muestras para comprobar su relevancia, coherencia y alineación con su caso de uso.

  3. Si la calidad no cumple sus expectativas, es posible que deba ajustar los datos de entrada o los parámetros de destilación y volver a ejecutar el proceso de aumento de datos.

Una vez que se complete el aumento de datos, la segunda fase consiste en ajustar el modelo de los estudiantes con Amazon. SageMaker HyperPod Para obtener más información, consulte Ajuste de precisión supervisado (SFT) de rango completo.

En la receta de entrenamiento de SFT, puedes pasar la ruta del conjunto de datos devuelta por el trabajo anterior.

data_s3_path: "s3://[escrow-bucket]/[job-name]/distillation_data/training_data.jsonl"

También anula la configuración de entrenamiento recomendada generada en el paso anterior.

Limitaciones

  • Solo es compatible con la técnica de ajuste fino de SFT Nova en estos datos aumentados.

  • Solo es compatible con la técnica de ajuste fino de SFT Nova en Amazon. SageMaker HyperPod

  • No se admite la destilación multimodal.

  • No hay soporte para modelos de profesores personalizados.