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.
Fine-tune un modelo de lenguaje amplio (LLM) que utiliza instrucciones rápidas
Instruction-based El ajuste fino utiliza ejemplos etiquetados para mejorar el rendimiento de un modelo básico previamente entrenado 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 preciso basado en la instrucción, consulte los documentos Introducing FLAN: More generalizable
Fine-tuned Los modelos 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, FLAN-T5 los modelos son instrucciones ajustadas para una amplia gama de tareas a 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 refinar un LLM en una tarea específica mediante instrucciones de tarea en pares de petición-respuesta:
-
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 refinamiento basado en instrucciones.
-
Cree un trabajo de entrenamiento de afinamiento. Para obtener instrucciones, consulte Creación de un trabajo de entrenamiento para el refinamiento basado en instrucciones.
Puede ver ejemplos integrales en Cuadernos de ejemplo.
Solo un subconjunto de modelos básicos es compatible con el ajuste JumpStart preciso basado en instrucciones. Instruction-based el ajuste fino está disponible con los siguientes modelos de base:
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 End-user acuerdos de licencia.
-
Flan-T5 Base
-
Flan-T5 Grande
-
Flan-T5 Pequeño
-
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 Base INCITE 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 refinamiento basado en instrucciones
Los datos de entrenamiento para el refinamiento 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 refinar el porcentaje de datos de entrenamiento para validación al elegir los hiperparámetros para refinar el modelo.
Carga de datos de refinamiento 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 refinamiento basado en instrucciones
Una vez que los datos se hayan cargado en Amazon S3, podrá ajustar e implementar su modelo JumpStart base. Para refinar el modelo en Studio, consulte Fine-tune un modelo en Studio. Para ajustar el modelo con el SDK, consulte. SageMaker Python Fine-tune modelos de base disponibles públicamente con la JumpStartEstimatorclase
Cuadernos de ejemplo
Para obtener más información sobre el refinamiento basado en instrucciones, consulte los ejemplos de cuadernos siguientes: