Parámetros para ajustar modelos de base

Los parámetros de ajuste configuran los experimentos de ajuste que se utilizan para ajustar un modelo de base.

Nota : Los parámetros que cambie al ajustar un modelo de base se aplican al experimento de ajuste, no al modelo de base subyacente.

Algunos parámetros de ajuste son comunes a todos los métodos de ajuste. Otros parámetros son específicos del método de sintonización utilizado.

Los parámetros que puede utilizar para ajustar los modelos de cimentación en watsonx.ai se describen en las secciones siguientes:

Parámetros comunes de ajuste

La siguiente tabla describe los parámetros de ajuste que puede personalizar para todos los métodos de ajuste.

Referencias comunes de descripción de valores de parámetros de ajuste
Nombre de parámetro Descripción Opciones de valor Más información
Tamaño de lote Número de ejemplos etiquetados a procesar a la vez. 1-16 Segmentación de los datos de entrenamiento
Acumular pasos Número de lotes a procesar antes de realizar ajustes. 1-128 Segmentación de los datos de entrenamiento
Tasa de aprendizaje Determina el alcance del cambio a realizar cuando se ajusta el modelo. 0.00001–0.5 Gestión de la tasa de aprendizaje
Número de épocas (número de ciclos de entrenamiento) Número de veces que se recorren los datos de entrenamiento. 1-50 Elegir el número de ciclos de formación que se completarán

Parámetros para los métodos de ajuste fino

Se utilizan parámetros adicionales para controlar los experimentos de ajuste de los siguientes métodos de ajuste fino:

Parámetros de ajuste fino de la adaptación de bajo rango

Además de los parámetros de ajuste comunes, la siguiente tabla describe los parámetros de ajuste asociados específicamente a la adaptación de bajo rango ( LoRA ) y a la adaptación de bajo rango cuantizada ( QLoRA ).

Parámetros para LoRA y QLoRA modelos de cimentación de ajuste fino
Nombre de parámetro Notas
Alfa Multiplicador a aplicar a los cambios de peso del adaptador antes de añadirlos a los pesos del modelo base. Este ajuste controla el impacto de los pesos del adaptador. El valor alfa se divide por el valor de rango para calcular el porcentaje de cambio de peso que debe aplicarse.
Dropout Porcentaje de pesos del adaptador que se restablecen aleatoriamente a cero para evitar el sobreajuste a los datos de entrenamiento.
Clasificar Número a utilizar en los cálculos que seleccionan el subconjunto de ponderaciones de los parámetros del modelo a ajustar.
Módulos objetivo Especifica las capas del modelo de cimentación base que se van a adaptar.

Para obtener más información sobre estos parámetros y cómo utilizarlos, consulte Configuración de la adaptación de bajo rango ( LoRA o QLoRA sólo ajuste fino).

Ajuste de los valores de los parámetros para la sintonización fina de LoRA

Los mejores valores de hiperparámetros para un experimento de ajuste fino de LoRA varían en función de los datos, el modelo básico que se utilice y el tipo de tarea que se desee que realice el modelo.

La siguiente tabla muestra los valores útiles de los parámetros iniciales. Puede ajustar los valores de los parámetros a medida que vaya aprendiendo lo que funciona mejor mediante la experimentación.

Valores por defecto de los parámetros para un experimento de ajuste fino de adaptación de bajo rango
Nombre de parámetro granite-3-1-8b-base llama-3-1-8b llama-3-1-70b llama-3-1-70b-gptq
Alfa 32 64 32 32
Acumular pasos 1 1 1 1
Tamaño de lote 5 8 5 5
Dropout 0.05 0.05 0.05 0.05
Tasa de aprendizaje 0.00001 0.00001 0.00001 0.00001
Número de épocas (número de ciclos de entrenamiento) 10 5 10 10
Número de GPU 4 4 4 4
Clasificar 8 32 8 8
Módulos objetivo ["all-linear"] [] es decir, todas las capas [] es decir, todas las capas [] es decir, todas las capas

Para obtener más información sobre estos parámetros, consulte Configuración de la adaptación de bajo rango ( QLoRA o LoRA sólo ajuste fino).

Descripciones de los parámetros

Segmentación de los datos de entrenamiento

Cuando se ejecuta un experimento, el experimento primero divide los datos de entrenamiento en lotes más pequeños y, a continuación, entrena en un lote a la vez. Cada lote debe caber en la memoria de GPU que se va a procesar. Para reducir la cantidad de memoria de GPU necesaria, puede configurar el experimento de ajuste para posponer la realización de ajustes hasta que se procese más de un lote. El ajuste se ejecuta en un lote y se calculan sus métricas de rendimiento, pero no se realizan ajustes inmediatamente. En su lugar, la información de rendimiento se recopila en algunos lotes antes de que se evalúen las medidas de rendimiento acumulativas.

Utilice los parámetros siguientes para controlar cómo se segmentan los datos de entrenamiento:

Tamaño de lote Número de ejemplos etiquetados (también conocidos como muestras) para procesar a la vez.

Por ejemplo, para un conjunto de datos con 1.000 ejemplos y un tamaño de lote de 10, el conjunto de datos se divide en 100 lotes de 10 ejemplos cada uno.

Si el conjunto de datos de entrenamiento es pequeño, especifique un tamaño de lote más pequeño para asegurarse de que cada lote tiene suficientes ejemplos en él.

Pasos de acumulación: Número de lotes a procesar antes de realizar ajustes.

Por ejemplo, si el conjunto de datos se divide en 100 lotes y establece el valor de los pasos de acumulación en 10, los ajustes se realizarán 10 veces en lugar de 100.

Elegir el número de ciclos de formación que se completarán

El parámetro Número de épocas especifica el número de veces que se debe recorrer el conjunto de datos de entrenamiento completo.

Por ejemplo, con un tamaño de lote de 10 y un conjunto de datos con 1.000 ejemplos, una época debe procesar 100 lotes y realizar ajustes 100 veces. Si establece el número de épocas en 20, el modelo se pasa a través del conjunto de datos 20 veces, lo que significa que procesa un total de 2.000 lotes durante el proceso de ajuste.

Cuanto mayor sea el número de épocas y mayores sean los datos de entrenamiento, más tiempo tardará en ajustar un modelo. Si establece un número de épocas demasiado bajo, es posible que el modelo no aprenda adecuadamente. Si establece un número de épocas demasiado alto, puede sobreajustar el modelo al conjunto de datos. El sobreajuste es un término que se utiliza para describir el fenómeno por el cual un modelo está tan ajustado a sus datos de entrenamiento que no puede generalizar y aplicar lo que aprende cuando se introducen nuevos datos.

Gestión de la tasa de aprendizaje

El parámetro tasa de aprendizaje determina el alcance del cambio a realizar cuando se ajusta el modelo. Cuanto mayor sea el número, mayor será el cambio. Establecer una tasa de aprendizaje demasiado baja podría impedir que el modelo aprenda adecuadamente a partir de los nuevos datos presentados. Establecer una tasa de aprendizaje demasiado alta podría impedir que el modelo aprenda lo suficientemente gradualmente como para poder aplicar lo que aprende a datos nuevos y desconocidos.

Este parámetro es uno que tal vez desee establecer de forma conservadora y luego cambiar gradualmente a medida que experimenta para encontrar los mejores hiperparámetros para el conjunto de datos y el modelo base que está personalizando.

Establecimiento de límites de tokens

Puede cambiar el número de tokens permitidos en la entrada y salida del modelo durante un experimento de ajuste configurando el parámetro max_seq_length. La longitud máxima de la secuencia es el número máximo de tokens de entrada más los tokens de salida permitidos para cada mensaje.

Cuanto mayor sea el número de fichas de entrada y salida permitidas, más tiempo se tardará en ajustar el modelo. Establezca este parámetro en el número más pequeño que sea posible utilizar, pero que siga representando su caso de uso correctamente.

Cree ejemplos de entrada y salida en sus datos de entrenamiento que se ajusten al límite que planea utilizar para el ajuste. Los ejemplos que superen la longitud máxima de secuencia especificada se truncarán durante el experimento. Por ejemplo, si establece este parámetro en 200 y los datos de entrenamiento tienen una entrada de ejemplo con 1000 tokens, solo se utilizan los primeros 200 tokens de la entrada de ejemplo.

Recuerde que la longitud de la secuencia también incluye los tokens de salida para cada indicación, lo que significa que la configuración controla el número de tokens que el modelo puede generar como salida durante el experimento de ajuste.

Edición del verbalizador

El verbalizador es una especie de plantilla que define cómo se formatean las muestras de entrenamiento cuando se envían al modelo base durante un experimento de ajuste.

El formato del verbalizador puede cambiar en función del modelo base. Es posible que desee personalizar el verbalizador si un texto prefijo más descriptivo puede guiar al modelo de fundamentos para generar mejores respuestas. Sin embargo, si edita el verbalizador, siga estas directrices:

  • Cambie el verbalizador sólo después de que la ingeniería haya validado que el formato personalizado mejora el resultado del modelo de cimentación.

  • No modifique la variable {{input}} .

    Esta variable indica al experimento de ajuste que extraiga el texto del segmento input de los ejemplos de su archivo de datos de entrenamiento.

  • Si cambia el verbalizador que se utiliza para sintonizar un modelo de base, utilice los mismos prefijos cuando inferencia el modelo sintonizado más tarde.

Configuración de la adaptación de bajo rango ( LoRA o QLoRA sólo ajuste fino)

Sólo para los experimentos de ajuste LoRA y QLoRA, puede ajustar los siguientes parámetros del experimento de ajuste:

  • alpha: Determina el multiplicador que se aplicará a los cambios de peso del adaptador cuando se añadan a los pesos del modelo base. El valor alfa se divide por el valor de rango para calcular el porcentaje de cambio de peso que debe aplicarse. Por ejemplo, si alfa es 2 y rango es 8, las ponderaciones del adaptador se reducen 1/4 o 25% antes de añadirse a las ponderaciones del modelo. El valor resultante controla cuánto impacto quieres que tengan los pesos añadidos. Este ajuste tiene una función similar a la velocidad de aprendizaje, por lo que es posible que desee ajustar sólo uno u otro ajuste durante la experimentación.

  • dropout: Pone a cero aleatoriamente los pesos de algunos de los parámetros del adaptador LoRA. Especifique un valor decimal para indicar el porcentaje de pesos a restablecer, como 0.1 para un 10%. El abandono ayuda a evitar el sobreajuste, que se produce cuando el modelo aprende a responder al conjunto de datos de entrenamiento específico, pero no puede generalizar su aprendizaje para responder como se espera a nuevas entradas.

  • rank: Rango a utilizar cuando se realizan cálculos de descomposición de matrices en las matrices del modelo base. Un número más bajo significa un trabajo más rápido porque hay menos parámetros entrenables que ajustar en el adaptador. Un número inferior también introduce la posibilidad de una menor fidelidad a las ponderaciones de los parámetros del modelo original. Utilice un número mayor si la tarea que desea que aprenda el modelo base es contraria o completamente nueva en comparación con las tareas que ya puede realizar el modelo base. El valor máximo permitido es 256.

  • target_modules: Las capas del modelo base de cimentación en las que desea añadir adaptadores de bajo rango durante el ajuste. Las opciones incluyen:

    • ["all-linear"]: Selecciona todas las capas lineales y unidimensionales de la red neuronal convolucional, excepto la capa de salida. Esta opción funciona con todos los modelos con decodificador.
    • [] (matriz vacía): Añade adaptadores a los predeterminados especificados para la arquitectura del modelo.
    • ["$layer-name", "$layer-name"]: Lista un subconjunto de capas. Los nombres de las capas difieren según la arquitectura del modelo. Véase la tabla Capas del modelo de arquitecturas del modelo de cimentación.
  • type: Especifique una de las siguientes opciones:

    • lora: Ejecuta un experimento de ajuste fino de adaptación de bajo rango. Este tipo sólo puede aplicarse a modelos de cimentación no cuantificados y funciona mejor con modelos de cimentación de base que no estén sintonizados por instrucción.
    • qlora: Ejecuta un experimento de ajuste fino de adaptación de bajo rango de cuantización. Este tipo sólo puede aplicarse a modelos de cimentación cuantizados.
    • none: Ejecuta un experimento completo de ajuste fino. Ninguna es el valor predeterminado.
Capas del modelo de arquitecturas de cimentación
Arquitectura del modelo base Capas Capas seleccionadas por defecto
llama [down_proj, up_proj, gate_proj, q_proj, k_proj, v_proj, o_proj] ["q_proj", "v_proj"]
Granite [down_proj, up_proj, gate_proj, q_proj, k_proj, v_proj, o_proj] ["all-linear"]

Más información