Modelos fundacionales e hiperparámetros para el afinamiento - 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.

Modelos fundacionales e hiperparámetros para el afinamiento

Los modelos fundacionales son costosos desde el punto de vista computacional y se basan en un corpus grande y sin etiquetas. Ajustar un modelo fundacional previamente entrenado es una forma económica de aprovechar sus amplias capacidades y, al mismo tiempo, personalizar un modelo en su propio corpus pequeño. El ajuste es un método de personalización que requiere más entrenamiento y que, además, cambia las ponderaciones del modelo.

El ajuste puede serle útil si necesita:

  • personalizar su modelo según necesidades empresariales específicas;

  • que su modelo funcione correctamente con un lenguaje específico de un dominio, como una jerga sectorial, términos técnicos u otro vocabulario especializado;

  • rendimiento mejorado para tareas específicas;

  • respuestas precisas, relativas y contextualizadas en las aplicaciones;

  • respuestas más objetivas, menos tóxicas y mejor ajustadas a requisitos específicos.

Hay dos enfoques principales que puede adoptar para realizar ajustes en función del caso de uso y del modelo fundacional elegido.

  1. Si está interesado en ajustar su modelo a partir de datos específicos de un dominio, consulte Ajuste un modelo de lenguaje grande () mediante la adaptación de dominios LLM.

  2. Si le interesa un ajuste basado en instrucciones mediante ejemplos de peticiones y respuestas, consulte Ajuste con precisión un modelo de lenguaje grande () siguiendo instrucciones rápidas LLM.

Modelos fundacionales disponibles para el afinamiento

Puede ajustar con precisión cualquiera de los siguientes modelos básicos: JumpStart

  • Bloom 3B

  • Bloom 7B1

  • BloomZ 3B FP16

  • BloomZ 7B1 FP16

  • Code Llama 13B

  • Code Llama 13B Python

  • Code Llama 34B

  • Code Llama 34B Python

  • Code Llama 70B

  • Code Llama 70B Python

  • Code Llama 7B

  • Code Llama 7B Python

  • CyberAgentLM2-7B-Chat (-7B-Chat) CALM2

  • Falcon 40B BF16

  • Falcon 40B Instruct BF16

  • Falcon 7B BF16

  • Falcon 7B Instruct BF16

  • Flan-T5 Base

  • Flan-T5 Large

  • Flan-T5 Small

  • Flan-T5 XL

  • Flan-T5 XXL

  • Gemma 2B

  • Gemma 2B Instruct

  • Gemma 7B

  • Gemma 7B Instruct

  • GPT-2 XL

  • GPT-J 6B

  • GPT-Neo 1,3 B

  • GPT-Neo 125 M

  • GPT- 2,7 B NEO

  • Light GPT Instruct 6B

  • 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

  • Mixtral 8x7B

  • Mixtral 8x7B Instruct

  • 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

  • Stable Diffusion 2.1

Hiperparámetros de afinamiento compatibles comunes

Los diferentes modelos fundacionales admiten diferentes hiperparámetros para el afinamiento. A continuación se indican los hiperparámetros compatibles comunes que pueden personalizar aún más el modelo durante el entrenamiento:

Parámetro de inferencia Descripción

epoch

El número de pasadas que el modelo realiza a través del conjunto de datos de afinamiento durante el entrenamiento. Debe ser un número entero mayor que 1.

learning_rate

La velocidad a la que se actualizan los pesos del modelo después de pasar por cada lote de ejemplos de entrenamiento de afinamiento. Debe ser un valor flotante positivo mayor que 0.

instruction_tuned

Si se debe entrenar con instrucciones el modelo o no. Debe ser 'True' o 'False'.

per_device_train_batch_size

El tamaño del lote por GPU núcleo o CPU para entrenamiento. Debe ser un entero positivo.

per_device_eval_batch_size

El tamaño del lote por GPU núcleo o CPU para su evaluación. Debe ser un entero positivo.

max_train_samples

Con fines de depuración o para agilizar el entrenamiento, reduzca el número de ejemplos de entrenamiento a este valor. El valor -1 significa que el modelo utiliza todas las muestras de entrenamiento. Debe ser un entero positivo o -1.

max_val_samples

Con fines de depuración o para agilizar el entrenamiento, reduzca el número de ejemplos de validación a este valor. El valor -1 significa que el modelo utiliza todos los ejemplos de validación. Debe ser un entero positivo o -1.

max_input_length

Longitud máxima total de la secuencia de entrada después de la tokenización. Las secuencias más largas que esta se truncarán. Si es -1, max_input_length se establece en el mínimo de 1024 y en la model_max_length definida por el tokenizador. Si se establece en un valor positivo, max_input_length se establece en el mínimo del valor proporcionado y la model_max_length definida por el tokenizador. Debe ser un entero positivo o -1.

validation_split_ratio

Si no hay un canal de validación, la proporción de entrenamiento-validación se divide a partir de los datos de entrenamiento. Debe estar comprendido entre 0 y 1.

train_data_split_seed

Si los datos de validación no están presentes, esto corrige la división aleatoria de los datos de entrenamiento de entrada a los datos de entrenamiento y validación utilizados por el modelo. Debe ser un número entero.

preprocessing_num_workers

Número de procesos que se van a utilizar para el preprocesamiento. Si es None, el proceso principal se utiliza para el preprocesamiento.

lora_r

Valor r de adaptación de rango bajo (LoRA), que actúa como factor de escalado para actualizaciones de ponderación. Debe ser un entero positivo.

lora_alpha

Valor alfa de adaptación de rango bajo (LoRA), que actúa como factor de escalado para actualizaciones de ponderación. Por lo general, de 2 a 4 veces el tamaño de lora_r. Debe ser un entero positivo.

lora_dropout

El valor de abandono para las capas de adaptación de rango bajo (LoRA) debe ser un valor flotante positivo entre 0 y 1.

int8_quantization

Si es True, el modelo se carga con una precisión de 8 bits para el entrenamiento.

enable_fsdp

Si es True, el entrenamiento utiliza paralelismo de datos totalmente particionados.

Puede especificar valores de hiperparámetros al afinar el modelo en Studio. Para obtener más información, consulte Afinamiento de un modelo en Studio.

También puede anular los valores de hiperparámetros predeterminados al ajustar el modelo mediante el SageMaker Python SDK. Para obtener más información, consulte Afinamiento de los modelos fundacionales disponibles públicamente con la clase JumpStartEstimator.