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 con precisión un modelo de lenguaje grande () siguiendo instrucciones rápidas LLM
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-tuning and escaling Education Fine-Tuned Language Models
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.
Para ajustar con precisión una tarea específica mediante pares de instrucciones de tareas LLM rápidas y respuestas:
-
Prepara 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.
-
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 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
Preparación y carga datos de entrenamiento para el afinamiento basado en instrucciones
Los datos de entrenamiento para el ajuste preciso basado en instrucciones deben proporcionarse en 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 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 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}" }
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
Después de cargar los datos en Amazon S3, puede 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: