¿Qué es el ajuste de instrucciones?

5 de abril de 2024

Autores

Dave Bergmann

Senior Writer, AI Models, IBM

¿Qué es el ajuste de instrucciones?

El ajuste de instrucciones es una técnica para afinar modelos de lenguaje de gran tamaño (LLM) en un conjunto de datos etiquetados de indicaciones de instrucción y outputs correspondientes. Mejora el rendimiento del modelo no solo en tareas específicas, sino también en el seguimiento de instrucciones en general, lo que ayuda a adaptar los modelos preentrenados para su uso práctico.

El ajuste de instrucciones es un subconjunto de la categoría más amplia de técnicas de ajuste que se utilizan para adaptar modelos fundacionales preentrenados para tareas posteriores. Los modelos fundacionales se pueden ajustar para una variedad de propósitos, desde la personalización del estilo hasta complementar el conocimiento básico y el vocabulario del modelo preentrenado para optimizar el rendimiento para un caso de uso específico. Aunque la afinación no es exclusiva de ningún dominio específico o arquitectura de modelo de inteligencia artificial, se ha convertido en una parte integral del ciclo de vida de los LLM. Por ejemplo, la familia de modelos Llama 2 de Meta se ofrece (en varios tamaños) como modelo base, como variante afinada para el diálogo (Llama-2-chat) y como variante afinada para la codificación (Code Llama).

El ajuste de instrucciones no es mutuamente excluyente con otras técnicas de afinación. Por ejemplo, los modelos de chat suelen someterse tanto al ajuste de instrucciones como al aprendizaje por refuerzo a partir de feedback humano (RLHF), una técnica de afinación que tiene como objetivo mejorar cualidades abstractas como la amabilidad y la honestidad; los modelos afinados para la codificación a menudo se someten tanto a un ajuste de instrucciones (para optimizar ampliamente las respuestas para el seguimiento de instrucciones) como a una afinación adicional en base a datos específicos de programación (para aumentar el conocimiento del modelo sobre la sintaxis y el vocabulario de codificación).

Aunque la génesis de los LLM se remonta al documento de 2017 "Attention is All You Need" que introdujo modelos de transformadores a gran escala en tareas de procesamiento del lenguaje natural (PLN), la incorporación del ajuste de instrucciones y el RLHF(impulsada por influyentes artículos de Google en 20211 y OpenAI en 2022,2 respectivamente) produjeron los LLM modernos que iniciaron la era actual de la IA generativa con el lanzamiento de ChatGPT.

Diseño 3D de bolas rodando por un circuito

Las últimas noticias + conocimientos de IA 


Descubra ideas y noticias de expertos sobre IA, nube y mucho más en el boletín semanal Think. 

¿Por qué ajustar las instrucciones de los LLM?

La utilidad del ajuste de instrucciones, como la de la mayoría de las técnicas de afinación, radica en el hecho de que los LLM preentrenados no están optimizados para conversaciones o seguimiento de instrucciones. En un sentido literal, los LLM no responden a un prompt: solo le añaden texto. El ajuste de instrucciones ayuda a que el texto anexado sea más útil.

El proceso de preentrenamiento de los modelos de lenguaje autorregresivos (LLM utilizados para generar texto, como Llama 2 de Meta, GPT de OpenAI, Gemini de Google o Granite de IBM) optimiza estos LLM para predecir simplemente las siguientes palabras en una secuencia determinada hasta que se complete.

Los LLM se entrenan previamente mediante aprendizaje autosupervisado en un corpus masivo de contenido escrito. En el preentrenamiento, a los modelos autorregresivos se les proporciona el comienzo de una muestra de texto y se les encomienda repetidamente la tarea de predecir la siguiente palabra de la secuencia hasta el final del fragmento. Para cada predicción, la siguiente palabra real de la oración de muestra original sirve como "verdad fundamental". A través de algoritmos de optimización como el descenso de gradiente que ajustan iterativamente los parámetros del modelo (los pesos y sesgos variables aplicados a las operaciones matemáticas que ocurren en cada nodo de una red neuronal) de una manera que acerca las predicciones del modelo al texto original, el modelo "aprende" los patrones lingüísticos en sus datos de entrenamiento (y, por extensión, el "conocimiento" transmitido en esos patrones lingüísticos).

Aunque este proceso de preentrenamiento imparte una capacidad impresionante para generar texto lingüísticamente coherente, no necesariamente alinea el rendimiento del modelo con las necesidades prácticas de los usuarios humanos. Sin una afinación, un modelo base podría responder a un mensaje de "enséñame a hornear pan " con "en un horno casero". Es una forma gramaticalmente correcta de completar la frase, pero no lo que el usuario quería.

Sin embargo, el entrenamiento previo de un LLM para cualquier propósito específico (como seguir instrucciones) no es práctico. El "gran" en "modelos de lenguaje de gran tamaño" se refiere al hecho de que estos modelos a menudo tienen miles de millones de parámetros: entrenar estos enormes modelos desde cero implica una enorme cantidad de energía, tiempo, recursos computacionales y datos de entrenamiento. Por el contrario, la afinación de un LLM ya entrenado requiere muchos menos datos y, especialmente cuando se utilizan métodos de afinación eficiente de parámetros (PEFT) como la afinación parcial o la adaptación de bajo rango (LoRA), solo una fracción de las demandas computacionales.

Aunque la afinación se puede lograr a través de casi cualquier paradigma de machine learning, incluido el aprendizaje por refuerzo, el aprendizaje semisupervisado o el aprendizaje autosupervisado adicional, el ajuste de instrucciones implica un aprendizaje supervisado en pares etiquetados (entrada, output). Lo que distingue el ajuste de instrucciones de otras formas de afinación supervisada (SFT) es que las muestras de entrada en un conjunto de datos de instrucciones consisten completamente en tareas que se asemejan a las solicitudes que los usuarios podrían hacer en sus prompts; los outputs demuestran respuestas deseables a esas solicitudes. Al ajustar las ponderaciones del modelo para que las salidas del LLM se parezcan a los ejemplos del conjunto de datos de instrucciones, el LLM "aprende" a responder a un prompt como "enséñame a hornear pan" añadiendo un texto que contiene consejos reales para hornear pan.

De esta forma, el ajuste de instrucciones ayuda a cerrar la brecha entre el objetivo fundamental del modelo (la predicción de la siguiente palabra) y el objetivo del usuario de que el modelo siga instrucciones y realice tareas específicas. Esto hace que el comportamiento del modelo sea más útil y predecible.

Mixture of Experts | Pódcast

Descifrar la IA: resumen semanal de noticias

Únase a nuestro panel de ingenieros, investigadores, responsables de producto y otros profesionales de talla mundial que se abren paso entre el bullicio de la IA para ofrecerle las últimas noticias y conocimientos al respecto.

¿Cómo funciona el ajuste de instrucciones?

La afinación de los LLM en un conjunto de datos etiquetado de tareas variadas de seguimiento de instrucciones produce una mayor capacidad para seguir instrucciones en general, reduciendo la cantidad de información en contexto necesaria para indicaciones eficaces. Los conjuntos de datos de instrucciones pueden ser creados por el hombre o generados por otro LLM.

Como se articuló en el influyente artículo de Google Research de 2022, "Los modelos lingüísticos afinados son aprendices cero", el objetivo del ajuste de instrucciones es mejorar la capacidad de los LLM para responder a las instrucciones de PLN. Para ello, el ajuste de instrucciones "combina aspectos atractivos de los paradigmas de preentrenamiento–afinación y de prompting". En esencia, al incorporar de manera orgánica los principios del prompt engineering en la afinación supervisada, el ajuste de instrucciones reduce la cantidad de prompt engineering y ejemplares de few-shot necesarios para obtener una respuesta útil y precisa del modelo afinado1.

Cada muestra de entrenamiento en un conjunto de datos de instrucciones consta de tres elementos:

  • Una instrucción: una entrada de texto en lenguaje natural que especifica una tarea determinada. Por ejemplo, "traducir esta frase del inglés al español".
  • Información adicional: información complementaria opcional que proporciona el contexto relevante para la tarea en cuestión. Por ejemplo, una entrada para una tarea de comprensión lectora puede incluir un breve pasaje (y luego dar instrucciones al modelo para que responda a una pregunta determinada al respecto).
  • Output deseado: el output de destino (respuesta) para la solicitud dada, según las instrucciones y el contexto proporcionados. Esto servirá como una verdad básica contra la cual se evalúan y optimizan las predicciones del modelo.

El artículo de Google señalaba que la variante resultante de su modelo LaMDA-PT ajustada a las instrucciones, denominada FLAN (por Finetuned Language Net), experimentó las mayores mejoras en tareas que se articulan de forma natural como instrucciones, como la traducción, la respuesta a preguntas, la comprensión lectora y la inferencia en lenguaje natural (NLI) (la tarea de determinar si una "hipótesis" dada se deduce lógicamente de una "premisa" dada).

Para explicar esto, el artículo FLAN señala una observación realizada por Brown, et al en el artículo de investigación publicado para el modelo GPT-3 original en 2020: una explicación de por qué los LLM preentrenados (sin una afinación adicional) tienen dificultades con tareas como la NLI es que es poco probable que los pasajes que se asemejan a una tarea típica de NLI se produzcan de forma natural en el corpus de datos sin etiquetar utilizado para el preentrenamiento autosupervisado.3 Por el contrario, para las tareas que se asemejan más al objetivo de modelado lingüístico directo del preentrenamiento (como las tareas de razonamiento de sentido común que, en última instancia, requieren que el modelo complete una frase correctamente), las instrucciones son en gran medida redundantes (y, por tanto, el ajuste de las instrucciones aporta menos beneficios).

Quizá lo más importante es que el artículo demostró que añadir tareas adicionales al conjunto de datos de ajuste de instrucciones mejoraba el rendimiento del modelo ajustado a las instrucciones incluso en tareas novedosas que no estaban representadas en el conjunto de datos de instrucciones. Ahí reside el beneficio fundamental del ajuste de las instrucciones: una mejora holística de la capacidad del modelo para seguir instrucciones en general.

Ajuste de instrucciones vs. afinación multitarea

El artículo de FLAN también incluyó un estudio de ablación que exploró si los beneficios aparentes del ajuste de las instrucciones se debían a las propias instrucciones o simplemente eran atribuibles al ajuste del modelo en varias tareas de PLN. Para examinar el papel de las instrucciones en la afinación, el estudio de ablación ajustó el modelo base en tres configuraciones diferentes:

  • Sin plantilla: solo se proporcionaron entradas y outputs al modelo. Por ejemplo, la entrada para una tarea de traducción sería "el perro corre ", y el output de destino sería "le chien court.
  • Nombre del conjunto de datos: cada entrada iba precedida del nombre de la tarea y del conjunto de datos. En nuestro ejemplo de traducción, la entrada, extraída de la colección de conjuntos de datos WMT 20144 , sería "[Traducción: WMT 14 al francés] El perro corre.
  • Instrucciones FLAN: las entradas siguieron los principios de ajuste de instrucciones. Para este ejemplo de traducción, la entrada sería “Por favor, traduzca esta oración al francés: 'El perro corre'”.

A continuación, el estudio de ablación midió los resultados de cada modelo de lenguaje ajustado en una serie de tareas de seguimiento de instrucciones zero-shot. El modelo ajustado por instrucciones logró más de un 18 % más de precisión que el modelo "sin plantilla" y más de un 8 % más de precisión que el modelo "nombre del conjunto de datos". Esto indica que entrenar con las propias instrucciones es crucial para mejorar el rendimiento zero-shot en tareas invisibles.

Afinación de la cadena de pensamiento (CoT)

El prompting de cadena de pensamiento (CoT) pide a un LLM que no solo responda a una pregunta, sino que también genere una justificación de cómo llegó a una respuesta. Esto se puede lograr a través del few-shot prompting con ejemplos de razonamiento secuencial, o simplemente agregando "pensar paso a paso" al final de un prompt. La investigación ha demostrado que las indicaciones de CoT mejoran significativamente las capacidades zero-shot de grandes modelos en diversas tareas de razonamiento aritmético, simbólico y otras tareas de razonamiento lógico5. Wei y otros descubrieron que el ajuste de instrucciones que no incluye tareas de CoT en el conjunto de datos de instrucción degrada significativamente el rendimiento del modelo en las evaluaciones de CoT, pero que añadir conjuntos de datos de CoT mejora el rendimiento en todas las evaluaciones6.

Además, su investigación descubrió que la afinación de las instrucciones en las tareas de CoT (con y sin ejemplares few-shot) aumenta la capacidad de un modelo para el razonamiento de CoT en un entorno zero-shot. Una comprensión intuitiva de este beneficio sería que, al afinarse para resolver un problema en pasos lógicos en lugar de saltar a una respuesta que simplemente parece lingüísticamente coherente, los modelos aprenden a producir y aplicar mejor sus propias habilidades de razonamiento.

Conjuntos de datos de ajuste de instrucciones

Existen varios conjuntos de datos con el fin de ajustar las instrucciones de los LLM, muchos de los cuales son de código abierto. Estos conjuntos de datos pueden incluir pares de lenguaje natural escrito directamente (o recopilado) (instrucción, resultado), usar plantillas para convertir conjuntos de datos anotados existentes en instrucciones o incluso utilizar otros LLM para generar ejemplos.

Conjuntos de datos creados por humanos

Aunque la creación directa de pares (instrucción, output) es sencilla, es un proceso laborioso que, en última instancia, conlleva una cantidad significativa de tiempo y coste. Se han propuesto varios métodos para transformar conjuntos de datos de lenguaje natural en instrucciones, normalmente mediante la aplicación de plantillas. La publicación de varios conjuntos de datos de código abierto creados por humanos ha ayudado a sufragar el coste de la afinación de los datos orgánicos.

Entre los principales conjuntos de datos de instrucciones de código abierto creados por humanos se incluyen:

  • Flan: utilizado por primera vez para ajustar el modelo LaMDA-PT de Google, dando lugar al modelo FLAN original, el conjunto de datos Flan se ha refinado desde entonces y se ha utilizado para afinar una serie de LLM. Los modelos destacados afinados en Flan incluyen FLAN-T5, Flan-UL2 y Flan-PaLM 540B (también conocido como FLAN-T5-XXL).
  • OpenAssistant: OpenAssistant Conversations es un corpus de conversación multilingüe creado por humanos que se centra en los intercambios de diálogo al estilo de un asistente. Consta de 91 829 instrucciones de usuario y 69 614 respuestas de asistente extraídas de 66 497 árboles de conversación en 35 idiomas diferentes.
  • Dolly: Dolly es un conjunto de datos en inglés de 15 000 instancias de conversación generadas por humanos, diseñado para permitir que los LLM interactúen con los usuarios en patrones basados en diálogos similares a ChatGPT. Abarca una amplia gama de tareas y comportamientos humanos, incluidos el resumen, la extracción de información, la lluvia de ideas, la escritura creativa, la clasificación y la respuesta a preguntas.

Conjuntos de datos generados por LLM

Motivados por la cantidad prohibitiva de coste y mano de obra necesarios para generar manualmente instrucciones y outputs objetivo, muchos conjuntos de datos de instrucciones utilizan las respuestas de LLM más grandes para generar instrucciones, outputs o ambos. El uso de conjuntos de datos generados por LLM tiene a menudo el efecto añadido de enseñar a modelos más pequeños a emular el comportamiento de modelos más grandes, a veces en una dinámica deliberada de profesor/aprendiz.

  • Self-Instruct: Self-Instruct se creó utilizando InstructGPT, que a su vez es una versión ajustada a las instrucciones de GPT-3. Los autores suministraron "tareas semilla" en lenguaje natural y pidieron a InstructGPT que generara ejemplos adicionales, obteniendo finalmente 52 000 instrucciones de entrenamiento. Los investigadores de la Universidad de Stanford utilizaron un método Self-Instruct modificado para generar datos de entrenamiento para Alpaca, la primera variante de LLaMA ajustada a las instrucciones. En particular, Alpaca superó ligeramente los puntos de referencia de InstructGPT en el conjunto de datos de Self-Instruct.7
  • Evol-Instruct: como su nombre indica, Evol-Instruct propone una evolución a la metodología Self-Instruct, reescribiendo instrucciones utilizando estrategias en profundidad y en amplitud. El primero desarrolla instrucciones para aumentar la complejidad de las instrucciones a través de medidas como añadir restricciones, aumentar los pasos de razonamiento y complicar la entrada. Este último "muta" las instrucciones anteriores para aumentar la diversidad del conjunto de datos y la cobertura de temas. Evol-Instruct se introdujo en el documento de investigación para WizardLM, que detalla cómo se utilizó Evol-Instruct para ajustar LLaMA.8
  • ShareGPT: ShareGPT.com contiene un repositorio generado por los usuarios de sus intercambios con ChatGPT. Los investigadores detrás de Vicuna, un notable ajuste de LLaMA, utilizaron 70 000 registros conversacionales de ShareGPT y adaptaron sus selecciones para conversaciones de varios turnos.9
  • OpenOrca: OpenOrca es una colección de datos aumentados de Flan Collection (enlace externo a ibm.com). Su objetivo es replicar el conjunto de datos utilizado por Microsoft para entrenar a Orca, que exploró una metodología que se centra explícitamente en optimizar el uso de modelos más grandes para refinar LLM más pequeños a través del aprendizaje por imitación.10

A medida que aumenta el poder de los LLM, la utilidad de los conjuntos de datos de ajuste de instrucciones generados por LLM ha aumentado de manera similar. Un artículo de 2023 reprodujo el paradigma de afinación de Alpaca, que ajustaba LLaMA a partir de instrucciones generadas por InstructGPT, mientras repetía el proceso en paralelo utilizando GPT-4 para generar instrucciones. El modelo resultante, al que llamaron LLaMA-GPT4, superó significativamente las puntuaciones de "Utilidad" del equivalente de Alpaca y estuvo cerca de igualar al propio GPT-4 en medidas de "Utilidad", "Honestidad" e "Inocuidad"11.

Retos y limitaciones del ajuste de instrucciones

Aunque las técnicas de ajuste de instrucciones han producido importantes avances en los LLM, aún queda trabajo por hacer para diversificar los conjuntos de datos de ajuste de instrucciones y aclarar completamente sus beneficios.

Uno de los principales retos de la puesta a punto de instrucciones es la creación de instrucciones de alta calidad para su uso en la afinación. Los recursos necesarios para elaborar un conjunto de datos de instrucción de tamaño adecuado han centralizado la instrucción en un puñado de conjuntos de datos de código abierto, lo que puede tener el efecto de disminuir la diversidad de modelos. Aunque el uso de LLM propios de mayor tamaño para generar instrucciones ha ayudado a reducir los costes, esto tiene el inconveniente potencial de reforzar los sesgos y deficiencias de estos LLM propietarios en todo el espectro de los LLM de código abierto. Este problema se agrava por el hecho de que los modelos patentados son a menudo, en un esfuerzo por eludir el sesgo intrínseco de los investigadores humanos, para evaluar el rendimiento de los modelos más pequeños.

A nivel técnico, algunos investigadores han expresado su preocupación de que el uso de modelos más grandes para mejorar modelos más pequeños pueda ayudar a los modelos más pequeños a imitar el estilo de los modelos más grandes, pero no su funcionalidad real . Un estudio empírico de 2023 sugirió que muchas de las impresionantes mejoras de rendimiento que se obtienen a través del ajuste de las instrucciones pueden provenir de la detección de patrones superficiales, en lugar de una mejora más genuina en el razonamiento lógico12.

Del mismo modo, otros investigadores han postulado que algunas mejoras informadas pueden depender en cierta medida de la dependencia de la evaluación del rendimiento del modelo ajustado a las instrucciones en tareas demasiado relacionadas con las del conjunto de datos de entrenamiento de instrucciones. A través de pruebas más específicas de la instrucción de modelos ajustada de esta manera, Gudibande, et al concluyeron que "la acción de mayor influencia para mejorar los modelos de código abierto es abordar el difícil reto de desarrollar mejores [modelos de lenguaje] básicos, en lugar de tomar el atajo de imitando sistemas propios"13.

Soluciones relacionadas
IBM watsonx.ai

Entrene, valide, ajuste e implemente IA generativa, modelos fundacionales y capacidades de machine learning con IBM watsonx.ai, un estudio empresarial de nueva generación para desarrolladores de IA. Cree aplicaciones de IA en menos tiempo y con menos datos.

Descubra watsonx.ai
Soluciones de inteligencia artificial

Ponga la IA a trabajar en su negocio con la experiencia líder en IA del sector de IBM y junto a su cartera de soluciones.

Explore las soluciones de IA
Servicios de IA

Reinvente las operaciones y flujos de trabajo críticos añadiendo IA para maximizar las experiencias, la toma de decisiones en tiempo real y el valor empresarial.

Explore los servicios de IA
Dé el siguiente paso

Obtenga acceso único a capacidades que abarcan el ciclo de vida de desarrollo de la IA. Produzca potentes soluciones de IA con interfaces intuitivas, flujos de trabajo y acceso a API y SDK estándar del sector.

Explore watsonx.ai Solicite una demostración en directo
Notas a pie de página

NOTA: enlacex externos a ibm.com.
1
 "Finetuned Language Models Are Zero-Shot Learners". Google (vía arXiv). 3 de septiembre de 2021 (última revisión: 8 de febrero de 2022).
2 "Aligning language models to follow instructions". OpenAI. 27 de enero de 2022.
3 "Language Models are Few-Shot Learners". arXiv. 22 de julio de 2020.
"WMT 2014". Papers With Code. 27 de junio de 2014.
5 "Language Models are Zero-Shot Reasoners". arXiv. 24 de mayo de 2022 (última revisión 29 de enero de 2023).
6 "Scaling Instruction-Finetuned Language Models". Google (vía arXiv). 6 de diciembre de 2022.
7 "Alpaca: A Strong, Replicable Instruction-Following Model". Stanford Center for Research on Foundation Models. 13 de marzo de 2023.
8 "WizardLM: Empowering Large Language Models to Follow Complex Instructions". arXiv. 10 de junio de 2023.
9 "Vicuna: An Open-Source Chatbot Impressing GPT-4 with 90%* ChatGPT Quality". LMSYS Org. 30 de marzo de 2023.
10 "Orca: Progressive Learning from Complex Explanation Traces of GPT-4". Microsoft. Junio de 2023.
11 "Instruction Tuning with GPT-4". arXiv. 6 de abril de 2023.
12 "Do Models Really Learn to Follow Instructions? An Empirical Study of Instruction Tuning". arXiv. 19 de mayo de 2023.
13 "The False Promise of Imitating Proprietary LLMs". arXiv. 25 May 2023.