La semana pasada, le presentaron el ciclo de vida de un proyecto de IA generativa. Exploró casos de uso de ejemplo para modelos de lenguaje grandes y analizó los tipos de tareas que son capaces de realizar.
En esta lección, aprenderá cómo mejorar el rendimiento de los modelos existentes para casos de uso específicos.
También aprenderá métricas importantes que pueden usarse para evaluar el desempeño de su LLM ajustado y cuantificar su mejora con respecto al modelo base con el que comenzó.
Primero analicemos cómo utilizar sugerencias de instrucciones para perfeccionar el LLM. Anteriormente en el curso, vio que algunos modelos eran capaces de reconocer instrucciones contenidas en sugerencias y realizar correctamente la inferencia de disparo cero.
Y es posible que otros LLM más pequeños no puedan realizar la tarea, como en el ejemplo que se muestra aquí.
También vio que incluir uno o más ejemplos de lo que desea que haga el modelo (conocido como inferencia de un solo intento o de pocos intentos) podría ser suficiente para ayudar al modelo a identificar la tarea y generar una buena finalización.
Sin embargo, esta estrategia tiene varias desventajas.
- En primer lugar, con modelos más pequeños, aunque incluyan cinco o seis ejemplares, no siempre funciona.
- En segundo lugar, cualquier ejemplo que incluya en el mensaje ocupa un espacio valioso en la ventana contextual, lo que reduce el espacio que tiene para incluir otra información útil.
Afortunadamente, existe otra solución en la que se puede entrenar aún más el modelo base mediante un proceso llamado ajuste fino.
A diferencia de la formación previa para la formación de LLM mediante el aprendizaje autosupervisado utilizando grandes cantidades de datos de texto no estructurados,
El ajuste es un proceso de aprendizaje supervisado en el que se actualizan los pesos del LLM utilizando un conjunto de datos de ejemplos etiquetados.
Estos ejemplos de marcado son pares de finalización rápida,
El proceso de ajuste amplía el entrenamiento del modelo para mejorar su capacidad de generar buenas terminaciones en una tarea específica.
Una estrategia llamada ajuste fino de la instrucción ha sido particularmente efectiva para mejorar el desempeño de los modelos en una variedad de tareas.
Echemos un vistazo más de cerca a cómo funciona esto: el ajuste de instrucciones entrena un modelo utilizando ejemplos que demuestran cómo debe responder a instrucciones específicas. A continuación se muestran algunos ejemplos de indicaciones para demostrar la idea. La instrucción en ambos ejemplos es "categorizar este comentario" y la finalización esperada es una cadena de texto que comienza con "sentimiento" seguido de "positivo" o "negativo".
El conjunto de datos que utiliza para la capacitación incluye muchos pares de ejemplos de finalización rápida de la tarea de su interés, y cada ejemplo incluye una instrucción.
Por ejemplo, si desea ajustar un modelo para mejorar su capacidad de resumir, crearía un conjunto de datos de ejemplos que comience con "resumir el siguiente texto" o una frase similar. Si estuviera mejorando las habilidades de traducción de su modelo, sus ejemplos incluirían instrucciones como "traducir esta oración". Estos ejemplos de finalización rápida permiten que el modelo aprenda a generar respuestas que sigan una instrucción determinada.
El ajuste fino de instrucciones, donde se actualizan todos los pesos del modelo, se denomina ajuste fino global. Este proceso produce una nueva versión del modelo con pesos actualizados. Es importante tener en cuenta que, al igual que el entrenamiento previo, el ajuste completo requiere suficiente memoria y presupuesto computacional para almacenar y procesar todos los gradientes, optimizadores y otros componentes que se actualizan durante el entrenamiento. Por lo tanto, puede beneficiarse de las estrategias de optimización de la memoria y computación paralela que aprendió la semana pasada.
Entonces, ¿cómo se ajusta realmente la instrucción y el LLM? El primer paso es preparar tus datos de entrenamiento. Hay muchos conjuntos de datos disponibles públicamente que se han utilizado para entrenar las primeras generaciones de modelos de lenguaje, aunque la mayoría de ellos no están formateados como instrucciones. Afortunadamente, los desarrolladores han reunido bibliotecas de plantillas de sugerencias que se pueden utilizar para tomar conjuntos de datos existentes, como el gran conjunto de datos de reseñas de productos de Amazon, y convertirlos en conjuntos de datos de sugerencias de instrucciones para realizar ajustes.
La biblioteca de plantillas de solicitudes incluye muchas plantillas para diferentes tareas y diferentes conjuntos de datos. Aquí hay tres sugerencias que están diseñadas para funcionar con el conjunto de datos de reseñas de Amazon y que pueden usarse para ajustar modelos para tareas de clasificación, generación de texto y resumen de texto.
Puedes ver que en cada caso pasas la reseña original (aquí llamada review_body) a la plantilla donde se inserta en "Una breve descripción de la oración del producto" en el texto que comienza la directiva. El resultado es un mensaje que ahora contiene instrucciones y ejemplos del conjunto de datos.
Una vez que haya preparado el conjunto de datos de instrucción, al igual que el aprendizaje supervisado estándar, divida el conjunto de datos en divisiones de entrenamiento, validación y prueba.
Durante el ajuste fino, selecciona señales del conjunto de datos de entrenamiento y las pasa al LLM, y la generación se completa. A continuación, compara la finalización del LLM con las respuestas especificadas en los datos de capacitación. Puede ver aquí que el modelo no hace un muy buen trabajo al clasificar la revisión como neutral, lo cual es un poco exagerado. Las críticas son obviamente muy positivas. Recuerde, el resultado del LLM es una distribución de probabilidad entre tokens.
Por lo tanto, puede comparar la distribución final y la distribución de las etiquetas de entrenamiento y usar la función de entropía cruzada estándar para calcular la pérdida entre las dos distribuciones de tokens.
Luego, la pérdida calculada se utiliza para actualizar los pesos del modelo, con retropropagación estándar. Hará esto para muchos lotes de pares de finalización de sugerencias y actualizará los pesos durante varias épocas para que mejore el rendimiento del modelo en la tarea.
Al igual que con el aprendizaje supervisado estándar, puede definir un paso de evaluación separado para medir su desempeño en LLM utilizando un conjunto de datos de validación reservados. Esto le dará la precisión de la validación,
Y una vez que termine de realizar el ajuste fino, puede utilizar el conjunto de datos de prueba reservados para la evaluación final del desempeño. Esto le dará la precisión de la prueba.
El proceso de ajuste da como resultado una nueva versión del modelo base que es mejor en la tarea que le interesa, a menudo llamado modelo guiado. El ajuste mediante sugerencias de instrucciones es, con diferencia, la forma más común de ajustar los LLM. A partir de este momento, cuando escuche o vea la palabra "ajuste fino", podrá asumir que siempre significa ajuste fino de la instrucción.
referencia
https://www.coursera.org/learn/generative-ai-with-llms/lecture/exyNC/instruction-fine-tuning