View a markdown version of this page

Creación de un trabajo de AutoML para afinar modelos de generación de texto mediante la API - 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.

Creación de un trabajo de AutoML para afinar modelos de generación de texto mediante la API

Los modelos de lenguaje de gran tamaño (LLM) se destacan en múltiples tareas generativas, como la generación de textos, el resumen, la finalización, la respuesta a preguntas, etc. Su rendimiento se puede atribuir a su considerable tamaño y a su amplio entrenamiento en diversos conjuntos de datos y tareas. Sin embargo, algunos dominios específicos, como los servicios sanitarios y el sector financiero, pueden requerir ajustes personalizados para adaptarse a sus datos y casos de uso particulares. Al adaptar el entrenamiento a su dominio particular, los LLM pueden mejorar su rendimiento y proporcionar resultados más exactos para aplicaciones específicas.

Piloto automático ofrece la capacidad de ajustar una selección de modelos de texto generativo previamente entrenados. En particular, Autopilot admite el ajuste fino basado en instrucciones de una selección de modelos de lenguaje grandes (LLM) de uso general impulsados por. JumpStart

nota

Actualmente, los modelos de generación de texto que permiten realizar ajustes precisos en Autopilot están disponibles exclusivamente en las regiones compatibles con Canvas. SageMaker Consulte la documentación de SageMaker Canvas para ver la lista completa de las regiones compatibles.

Fine-tuning un modelo previamente entrenado requiere un conjunto de datos específico de instrucciones claras que guíen al modelo sobre cómo generar resultados o cómo comportarse para esa tarea. El modelo aprende del conjunto de datos y ajusta sus parámetros para que se ajusten a las instrucciones proporcionadas. Instruction-based El ajuste preciso implica el uso de ejemplos etiquetados, formateados como pares de pronto-respuesta y redactados como instrucciones. Para obtener más información sobre el ajuste fino, consulte un modelo básico. Fine-tune

Las siguientes pautas describen el proceso de creación de un trabajo de Amazon SageMaker Autopilot como experimento piloto para ajustar con precisión los LLM de generación de texto mediante la API Reference. SageMaker

nota

Las tareas como la clasificación de textos e imágenes, la previsión de series temporales y el refinamiento de modelos de lenguaje de gran tamaño están disponibles exclusivamente en la versión 2 de la API de REST de AutoML. Si el lenguaje de su elección es Python, puede hacer referencia directamente al AWS SDK para Python (Boto3)objeto AutoMLv2 del SDK de Amazon SageMaker Python.

Los usuarios que prefieran la comodidad de una interfaz de usuario pueden usar Amazon SageMaker Canvas para acceder a modelos previamente entrenados y modelos básicos de IA generativa, o crear modelos personalizados adaptados a textos específicos, clasificación de imágenes, necesidades de previsión o IA generativa.

Para crear un experimento de piloto automático mediante programación para ajustar un LLM, puede llamar a la CreateAutoMLJobV2API en cualquier idioma compatible con Amazon Autopilot o el. SageMaker AWS CLI

Para obtener información sobre cómo se traduce esta acción de API en una función en el lenguaje de su elección, consulte la sección Véase también de CreateAutoMLJobV2 y seleccione un SDK. Como ejemplo, para los usuarios de Python, consulte la sintaxis de solicitud completa de create_auto_ml_job_v2 en AWS SDK para Python (Boto3).

nota

Piloto automático ajusta modelos de lenguaje grandes sin necesidad de entrenar ni evaluar a varios candidatos. En su lugar, utilizando su conjunto de datos, Autopilot ajusta directamente el modelo objetivo para mejorar una métrica objetiva predeterminada, la pérdida de entropía cruzada. Fine-tuning Los modelos de lenguaje en Autopilot no requieren configurar el campo. AutoMLJobObjective

Tras refinar el LLM, podrá evaluar su rendimiento accediendo a varias puntuaciones de ROUGE mediante el BestCandidate al hacer una llamada a la API de DescribeAutoMLJobV2. El modelo también proporciona información sobre su pérdida de entrenamiento y validación, así como sobre la perplejidad. A fin de obtener una lista completa de métricas para evaluar la calidad del texto generado por los modelos de ajuste fino, consulte Métricas para ajustar modelos de lenguaje grandes en Piloto automático.

Requisitos previos

Antes de usar el piloto automático para crear un experimento de ajuste preciso en la SageMaker IA, asegúrate de seguir los siguientes pasos:

  • (Opcional) Elegir el modelo prentrenado que desee ajustar.

    Para ver la lista de modelos previamente entrenados disponibles para su ajuste en Amazon SageMaker Autopilot, consulte. Modelos de lenguaje grandes compatibles para el ajuste La selección de un modelo no es obligatoria; si no se especifica ningún modelo, Piloto automático utilizará de manera predeterminada el modelo Falcon7BInstruct.

  • Crear un conjunto de datos de instrucciones. Consulte Tipos de archivos de conjuntos de datos y formato de datos de entrada para obtener más información sobre los requisitos de formato del conjunto de datos basado en instrucciones.

  • Colocar el conjunto de datos en un bucket de Amazon S3.

  • Conceda acceso completo al depósito de Amazon S3 que contiene los datos de entrada para la función de ejecución de SageMaker IA utilizada para ejecutar el experimento.

    • Para obtener información sobre cómo recuperar su función de ejecución de SageMaker IA, consulteObtención del rol de ejecución.

    • Para obtener información sobre cómo conceder permisos a su función de ejecución de SageMaker IA para acceder a uno o más buckets específicos en Amazon S3, consulte Añadir permisos adicionales de Amazon S3 a una función de ejecución de SageMaker IA enCreación de un rol de ejecución.

  • Además, debe proporcionar a su función de ejecución los permisos necesarios para acceder al depósito de almacenamiento predeterminado que utiliza el bucket de Amazon S3 JumpStart. Este acceso es necesario para almacenar y recuperar artefactos de modelos previamente entrenados. JumpStart Para conceder acceso a este bucket de Amazon S3, debe crear una nueva política personalizada integrada en su rol de ejecución.

    A continuación, se muestra un ejemplo de política que puede usar en el editor de JSON al configurar trabajos de refinamiento de AutoML en us-west-2:

    JumpStartLos nombres de los cubos siguen un patrón predeterminado que depende del. Regiones de AWS Debe ajustar el nombre del bucket en consecuencia.

    { "Sid": "Statement1", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::jumpstart-cache-prod-us-west-2", "arn:aws:s3:::jumpstart-cache-prod-us-west-2/*" ] }

Una vez hecho esto, puede usar el ARN de este rol de ejecución en las solicitudes de la API de Piloto automático.

Parámetros necesarios

Al llamar a CreateAutoMLJobV2 para crear un experimento de Piloto automático con el fin de refinar LLM, debe proporcionar los siguientes valores:

  • Un AutoMLJobName para especificar el nombre del trabajo. El nombre debe ser del tipo string y tener una longitud de caracteres de entre 1 y 32.

  • Como mínimo, un AutoMLJobChannel del tipo training dentro de AutoMLJobInputDataConfig. Este canal especifica el nombre del bucket de Amazon S3 donde se encuentra su conjunto de datos de ajuste. Tiene la opción de definir un canal validation. Si no se proporciona ningún canal de validación y se ha configurado una ValidationFraction en AutoMLDataSplitConfig, esta fracción se utiliza para dividir aleatoriamente el conjunto de datos de entrenamiento en conjuntos de entrenamiento y validación. Además, puede especificar el tipo de contenido (archivos CSV o Parquet) del conjunto de datos.

  • Un AutoMLProblemTypeConfig del tipo TextGenerationJobConfig para configurar los ajustes del trabajo de entrenamiento.

    Algo especialmente importante es que puede especificar el nombre del modelo base que se va a ajustar en el campo BaseModelName. Para ver la lista de modelos previamente entrenados disponibles para su ajuste en Amazon SageMaker Autopilot, consulte. Modelos de lenguaje grandes compatibles para el ajuste

  • Una OutputDataConfig para especificar la ruta de salida de Amazon S3 a fin de almacenar los artefactos de su trabajo de AutoML.

  • Un RoleArn para especificar el ARN del rol utilizado para acceder a sus datos.

A continuación, se muestra un ejemplo del formato de solicitud completo que se utiliza al realizar una llamada a la API para CreateAutoMLJobV2 con el fin de refinar un modelo (Falcon7BInstruct).

{ "AutoMLJobName": "<job_name>", "AutoMLJobInputDataConfig": [ { "ChannelType": "training", "CompressionType": "None", "ContentType": "text/csv", "DataSource": { "S3DataSource": { "S3DataType": "S3Prefix", "S3Uri": "s3://<bucket_name>/<input_data>.csv" } } } ], "OutputDataConfig": { "S3OutputPath": "s3://<bucket_name>/output", "KmsKeyId": "arn:aws:kms:<region>:<account_id>:key/<key_value>" }, "RoleArn":"arn:aws:iam::<account_id>:role/<sagemaker_execution_role_name>", "AutoMLProblemTypeConfig": { "TextGenerationJobConfig": { "BaseModelName": "Falcon7BInstruct" } } }

Todos los demás parámetros son opcionales.

Parámetros opcionales

En las siguientes secciones, se proporcionan detalles de algunos parámetros opcionales que puede pasar al trabajo de ajuste de AutoML.

Puede proporcionar su propio conjunto de datos de validación y una tasa de división de datos personalizada, o puede dejar que Piloto automático divida el conjunto de datos automáticamente.

Cada AutoMLJobChannelobjeto (consulte el parámetro obligatorio AutoMLJobInputDataConfig) tiene unaChannelType, que se puede configurar en validation valores que especifican cómo se utilizarán los datos al crear un modelo de aprendizaje automático. training

Debe proporcionar al menos un origen de datos y un máximo de dos: uno para los datos de entrenamiento y otro para los datos de validación. La forma de dividir los datos en conjuntos de datos de entrenamiento y validación depende de si tiene uno o dos orígenes de datos.

  • Si solo tiene un origen de datos, el ChannelType se establece en training de forma predeterminada y debe tener este valor.

    • Si el valor ValidationFraction en AutoMLDataSplitConfig no está establecido, el 20 % (0,2) de los datos de este origen se utiliza para la validación de forma predeterminada.

    • Si la ValidationFraction se establece en un valor entre 0 y 1, el conjunto de datos se divide en función del valor especificado, donde el valor especifica la fracción del conjunto de datos utilizada para la validación.

  • Si tiene dos orígenes de datos, el ChannelType de uno de los objetos de AutoMLJobChannel debe establecerse en training, el valor predeterminado. El ChannelType del otro origen de datos debe estar establecido en validation. Los dos orígenes de datos deben tener el mismo formato, CSV o Parquet, y el mismo esquema. En este caso, no debe establecer el valor de ValidationFraction, ya que todos los datos de cada origen se utilizan para el entrenamiento o la validación. Si se configura este valor, se producirá un error.

Con Piloto automático, puede implementar automáticamente su modelo de ajuste fino a un punto de conexión. Para habilitar la implementación automática de su modelo de ajuste fino, incluya una ModelDeployConfig en la solicitud de trabajo de AutoML. Esto permite implementar su modelo ajustado en un punto final de SageMaker IA. A continuación, se muestran las configuraciones disponibles para la personalización.

En el caso de los modelos que requieren la aceptación de un acuerdo de licencia de usuario final antes de realizar el refinamiento, puede aceptar el EULA estableciendo el atributo AcceptEula de ModelAccessConfig en True en TextGenerationJobConfig al configurar su AutoMLProblemTypeConfig.

Puede optimizar el proceso de aprendizaje de su modelo de generación de texto estableciendo valores de hiperparámetros en el atributo TextGenerationHyperParameters de TextGenerationJobConfig al configurar su AutoMLProblemTypeConfig.

Piloto automático permite configurar cuatro hiperparámetros comunes en todos los modelos.

  • epochCount: su valor debe ser una cadena que contenga un valor entero dentro del rango de 1 a 10.

  • batchSize: su valor debe ser una cadena que contenga un valor entero dentro del rango de 1 a 64.

  • learningRate: su valor debe ser una cadena que contenga un valor de coma flotante dentro del rango de 0 a 1.

  • learningRateWarmupSteps: su valor debe ser una cadena que contenga un valor entero dentro del rango de 0 a 250.

Para obtener más información sobre cada hiperparámetro, consulte Hiperparámetros para optimizar el proceso de aprendizaje de los modelos de generación de texto.

El siguiente ejemplo de JSON muestra un TextGenerationHyperParameters campo que se pasa al TextGenerationJobConfig lugar donde están configurados los cuatro hiperparámetros.

"AutoMLProblemTypeConfig": { "TextGenerationJobConfig": { "BaseModelName": "Falcon7B", "TextGenerationHyperParameters": {"epochCount":"5", "learningRate":"0.000001", "batchSize": "32", "learningRateWarmupSteps": "10"} } }