Ajuste basado en instrucciones - Amazon SageMaker

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.

Ajuste basado en instrucciones

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 preciso basado en la instrucción, consulte los documentos IntroducingFLAN: More generalizable Language Models with Instruction Fine-Tuned y escalando los modelos lingüísticos afinados con la instrucción.

Los modelos LAnguage Net (FLAN) ajustados con precisión utilizan el ajuste de las instrucciones para que los modelos sean más fáciles de resolver tareas generales posteriores. NLP Amazon SageMaker JumpStart proporciona varios modelos de base en la familia de FLAN modelos. Por ejemplo, los modelos FLAN -T5 son instrucciones ajustadas para una amplia gama de tareas con el fin de aumentar el rendimiento al máximo 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.

Modelos compatibles con el ajuste preciso basado en instrucciones

Solo un subconjunto de modelos básicos es compatible con el ajuste JumpStart 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.

  • Base Flan-T5

  • 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 INCITEBase 3B V1

  • RedPajama INCITEBase 7B V1

  • RedPajama INCITEChat 3B V1

  • RedPajama INCITEChat 7B V1

  • RedPajama INCITEInstruye a 3B V1

  • RedPajama INCITEInstruya a 7B V1

Prepara y carga los datos de entrenamiento para ajustarlos según las instrucciones

Los datos de entrenamiento para el ajuste preciso basado en las instrucciones deben proporcionarse en el formato de archivo de texto JSON Lines, donde 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 formación también puede incluir un JSON archivo de plantilla (template.json) que describa los formatos de entrada y salida de los datos. Si no se proporciona ningún 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 template.json archivo, cada entrada .jsonl de los datos de entrenamiento debe incluir los campos {instruction}{context}, y. {response}

Si proporciona un JSON archivo de plantilla personalizado, utilice las "completion" teclas "prompt" y para definir sus propios campos obligatorios. Según el siguiente JSON archivo de plantilla personalizado, cada entrada .jsonl de los datos de entrenamiento debe incluir los campos {question}{context}, y: {answer}

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

Divida los datos para el entrenamiento y las pruebas

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

Cargue datos de ajuste preciso a 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 siguientes comandos 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}")

Cree un trabajo de formación para realizar ajustes precisos basados en la instrucción

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

Cuadernos de ejemplo

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