View a markdown version of this page

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

Los modelos básicos son costosos desde el punto de vista computacional y se basan en un corpus grande y sin etiquetas. Fine-tuning un modelo básico 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. Fine-tuning es un método de personalización que implica una formación adicional y que cambia los pesos del modelo.

Fine-tuning podría 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 Fine-tune un modelo de lenguaje amplio (LLM) que utiliza la adaptación de dominios.

  2. Si le interesa un ajuste basado en instrucciones mediante ejemplos de peticiones y respuestas, consulte Fine-tune un modelo de lenguaje amplio (LLM) que utiliza instrucciones rápidas.

Modelos fundacionales disponibles para el refinamiento

Puede ajustar con precisión cualquiera de los siguientes modelos de JumpStart base:

  • 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 (CALM2-7B-Chat)

  • Falcon 40B BF16

  • Falcon 40B Instruct BF16

  • Falcon 7B BF16

  • Falcon 7B Instruct BF16

  • Flan-T5 Base

  • Flan-T5 Grande

  • Flan-T5 Pequeño

  • 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-NEO 2,7 B

  • LightGPT 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 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

  • Stable Diffusion 2.1

Hiperparámetros de refinamiento compatibles comunes

Los diferentes modelos fundacionales admiten diferentes hiperparámetros para el refinamiento. 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 Description (Descripción)

epoch

El número de pasadas que el modelo realiza a través del conjunto de datos de refinamiento 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 refinamiento. 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

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

per_device_eval_batch_size

Tamaño del lote por núcleo de GPU o CPU para 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

Low-rank valor de adaptación (LoRa) r, que actúa como factor de escala para las actualizaciones de peso. Debe ser un entero positivo.

lora_alpha

Low-rank valor alfa de adaptación (LoRa), que actúa como factor de escala para las actualizaciones de peso. 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 refinar el modelo en Studio. Para obtener más información, consulte Fine-tune un modelo en Studio.

También puede anular los valores de hiperparámetros predeterminados al ajustar el modelo con el SDK. SageMaker Python Para obtener más información, consulte Fine-tune modelos de base disponibles públicamente con la JumpStartEstimatorclase.