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
Temas
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.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:
|
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
-
Comience con la temperatura recomendada (0.7) y el top_p (0.9)
-
Valide la calidad aumentada de los datos antes de realizar ajustes
-
Siga las instrucciones de la sección Selección de hiperparámetros para ajustar los hiperparámetros
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:
-
Revise el
sample_training_data.jsonl
archivo de su depósito de salida. Este archivo contiene 50 muestras aleatorias del conjunto de datos aumentado. -
Inspeccione manualmente estas muestras para comprobar su relevancia, coherencia y alineación con su caso de uso.
-
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.