Ajuste de un modelo fundacional - 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 de un modelo fundacional

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 para adaptación al dominio.

  2. Si le interesa un ajuste basado en instrucciones mediante ejemplos de peticiones y respuestas, consulte Ajuste basado en instrucciones.

Los modelos básicos están disponibles para su ajuste

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

  • Bloom 3B

  • Bloom 7B1

  • BloomZ 3B FP16

  • BloomZ 7B1 FP16

  • Código Llama 13B

  • Código Llama 13B Python

  • Código Llama 34B

  • Código Llama 34B Python

  • Código Llama 70B

  • Código Llama 70B Python

  • Código Llama 7B

  • Código Llama 7B Python

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

  • Falcon 40B BF16

  • Falcon 40B Instruct BF16

  • Falcon 7B BF16

  • Falcon 7B Instruct BF16

  • Base Flan-T5

  • Flan-T5 grande

  • Flan-T5 pequeño

  • Flan-T5 XL

  • Flan-T5 XXL

  • Gemma 2B

  • Gemma 2B: Instrucción

  • Gemma 7B

  • Gemma 7B: Instrucción

  • 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

  • Instrucción Mixtral 8x7B

  • 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

  • Difusión estable 2.1

Hiperparámetros de ajuste fino comúnmente admitidos

Los diferentes modelos de base admiten diferentes hiperparámetros cuando se realizan ajustes precisos. Los siguientes son hiperparámetros compatibles con los que se puede 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 ajuste fino 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 revisar cada lote de ejemplos de entrenamiento de ajuste fino. Debe ser una flotación positiva superior a 0.

instruction_tuned

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

per_device_train_batch_size

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

per_device_eval_batch_size

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

max_train_samples

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

max_val_samples

Para 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 todas las muestras 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 el valor model_max_length definido por el tokenizador. Si se establece en un valor positivo, max_input_length se establece en el mínimo del valor proporcionado y model_max_length definido 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 validación del tren se divide de los datos de entrenamiento. Debe estar 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 por los datos de entrenamiento y validación utilizados por el modelo. Debe ser un número entero.

preprocessing_num_workers

El número de procesos que se van a utilizar para el preprocesamiento. SiNone, 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 las actualizaciones de peso. Debe ser un número entero positivo.

lora_alpha

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

lora_dropout

El valor de exclusión para las capas de adaptación de rango bajo (LoRa) debe ser una flotación positiva entre 0 y 1.

int8_quantization

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

enable_fsdp

SiTrue, el entrenamiento utiliza el paralelismo de datos totalmente fragmentado.

Puede especificar valores de hiperparámetros al ajustar el modelo en Studio. Para obtener más información, consulte Ajuste con precisión los modelos de base en Studio.

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