Afinamiento de un modelo de lenguaje grande (LLM) con instrucciones de peticiones - 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.

Afinamiento de un modelo de lenguaje grande (LLM) con instrucciones de peticiones

El ajuste basado en instrucciones utiliza ejemplos etiquetados para mejorar el rendimiento de un modelo fundacional entrenado previamente en una tarea específica. Los ejemplos etiquetados tienen formato de pares de respuesta/aviso y están redactados como instrucciones. Este proceso de ajuste modifica las ponderaciones del modelo. Para obtener más información sobre el ajuste basado instrucciones, consulte los documentos Introducing FLAN: More generalizable Language Models with Instruction Fine-Tuning y Scaling Instruction-Finetuned Language Models.

Los modelos Fine-Tuned LAnguage Net (FLAN) utilizan el ajuste de instrucciones para que los modelos sean más fáciles de resolver tareas generales de PNL posteriores. Amazon SageMaker JumpStart ofrece varios modelos básicos en la familia de modelos FLAN. Por ejemplo, los modelos FLAN-T5 incluyen instrucciones ajustadas para una amplia gama de tareas con el fin de aumentar el rendimiento de forma inmediata en una variedad de casos de uso comunes. Con datos adicionales y ajustes, los modelos basados en instrucciones se pueden adaptar aún más a tareas más específicas que no se hayan tenido en cuenta durante el entrenamiento previo.

Para afinar un LLM en una tarea específica mediante instrucciones de tarea en pares de petición-respuesta:

  1. Prepare las instrucciones en archivos JSON. Para obtener más información sobre el formato necesario para los archivos de pares de petición-respuesta y la estructura de la carpeta de datos, consulte Preparación y carga datos de entrenamiento para el afinamiento basado en instrucciones.

  2. Cree un trabajo de entrenamiento de afinamiento. Para obtener instrucciones, consulte Creación de un trabajo de entrenamiento para el afinamiento basado en instrucciones.

Puede encontrar end-to-end ejemplos enCuadernos de ejemplo.

Solo un subconjunto de modelos básicos JumpStart es compatible con el ajuste fino basado en instrucciones. El ajuste basado en instrucciones está disponible con los siguientes modelos fundacionales:

nota

Algunos modelos JumpStart básicos, como el Llama 2 7B, requieren la aceptación de un acuerdo de licencia para el usuario final antes de realizar ajustes y realizar inferencias. Para obtener más información, consulte Contratos de licencia para usuarios finales.

  • Flan-T5 Base

  • Flan-T5 Large

  • Flan-T5 Small

  • Flan-T5 XL

  • Flan-T5 XXL

  • Llama 2 13B

  • Llama 2 13B Chat

  • Llama 2 13B Neuron

  • Llama 2 70B

  • Llama 2 70B Chat

  • Llama 2 7B

  • Llama 2 7B Chat

  • Llama 2 7B Neuron

  • Mistral 7B

  • RedPajama INCITE Base 3B V1

  • RedPajama Base INCITE 7B V1

  • RedPajama INCITE Chat 3B V1

  • RedPajama INCITE Chat 7B V1

  • RedPajama INCITE Instruct 3B V1

  • RedPajama INSTRUCT INCITE 7B V1

Preparación y carga datos de entrenamiento para el afinamiento basado en instrucciones

Los datos de entrenamiento para el afinamiento basado en instrucciones deben proporcionarse en el formato de archivo de texto JSON Lines, en el que cada línea es un diccionario. Todos los datos de entrenamiento deben estar en una sola carpeta. La carpeta puede incluir varios archivos.jsonl.

La carpeta de entrenamiento también puede incluir un archivo JSON de plantilla (template.json) que describa los formatos de entrada y salida de los datos. Si no se proporciona un archivo de plantilla, se utiliza el siguiente archivo de plantilla:

{ "prompt": "Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.\n\n### Instruction:\n{instruction}\n\n### Input:\n{context}", "completion": "{response}" }

Según el archivo template.json, cada entrada .jsonl de los datos de entrenamiento debe incluir los campos {instruction}, {context} y {response}.

Si proporciona un archivo JSON de plantilla personalizada, utilice las claves "prompt" y "completion" para definir sus propios campos obligatorios. De acuerdo con el siguiente archivo JSON de plantilla personalizada, cada entrada .jsonl de los datos de entrenamiento debe incluir los campos {question}, {context} y {answer}:

{ "prompt": "question: {question} context: {context}", "completion": "{answer}" }

División de datos para entrenamiento y pruebas

Si lo desea, puede proporcionar otra carpeta que contenga los datos de validación. Esta carpeta también debe incluir uno o varios archivos .jsonl. Si no se proporciona ningún conjunto de datos de validación, se reserva una cantidad determinada de los datos de entrenamiento con fines de validación. Puede afinar el porcentaje de datos de entrenamiento para validación al elegir los hiperparámetros para afinar el modelo.

Carga de datos de afinamiento en Amazon S3

Cargue los datos preparados en Amazon Simple Storage Service (Amazon S3) para utilizarlos a la hora de ajustar un modelo JumpStart básico. Puede utilizar los comandos siguientes para cargar los datos:

from sagemaker.s3 import S3Uploader import sagemaker import random output_bucket = sagemaker.Session().default_bucket() local_data_file = "train.jsonl" train_data_location = f"s3://{output_bucket}/dolly_dataset" S3Uploader.upload(local_data_file, train_data_location) S3Uploader.upload("template.json", train_data_location) print(f"Training data: {train_data_location}")

Creación de un trabajo de entrenamiento para el afinamiento basado en instrucciones

Una vez que los datos se hayan cargado en Amazon S3, podrá ajustar e implementar su modelo JumpStart base. Para afinar el modelo en Studio, consulte Afinamiento de un modelo en Studio. Para ajustar el modelo con precisión mediante el SageMaker Python SDK, consulte. Afinamiento de los modelos fundacionales disponibles públicamente con la clase JumpStartEstimator

Cuadernos de ejemplo

Para obtener más información sobre el afinamiento basado en instrucciones, consulte los ejemplos de cuadernos siguientes: