LLMs Disparo Cero/Poco – CodesCode
Las técnicas de solicitud simplifican la implementación, permitiendo que los modelos se generalicen sin datos etiquetados (cero disparos) o se adapten rápidamente con unos pocos ejemplos (pocos disparos).
El poder de los LLM se ha convertido en la nueva sensación en la comunidad de IA. Los primeros adoptantes han acudido en masa a las diferentes soluciones generativas de IA como GPT 3.5, GPT 4 y BARD para diferentes casos de uso. Se han utilizado para tareas de preguntas y respuestas, escritura de textos creativos y análisis crítico. Dado que estos modelos se entrenan en tareas como la predicción de la siguiente oración en una gran variedad de corpora, se espera que sean excelentes en la generación de texto.
Las robustas redes neuronales transformer permiten que el modelo se adapte también a tareas de aprendizaje automático basadas en el lenguaje como la clasificación, la traducción, la predicción y el reconocimiento de entidades. Por lo tanto, los científicos de datos pueden aprovechar fácilmente plataformas de IA generativa para casos de uso de aprendizaje automático basados en el lenguaje más prácticos e industriales al proporcionar las instrucciones apropiadas. En este artículo, pretendemos mostrar lo sencillo que es utilizar LLMs generativos para tareas de aprendizaje automático basadas en el lenguaje usando la técnica de “prompting” y analizar críticamente los beneficios y limitaciones de los enfoques de “zero-shot” y “few-shot” prompting.
¿Qué es el “Prompting”?
Comencemos definiendo los LLMs. Un modelo de lenguaje grande, o LLM, es un sistema de aprendizaje profundo construido con múltiples capas de transformadores y redes neuronales feed-forward que contienen cientos de millones a miles de millones de parámetros. Se entrenan en conjuntos de datos masivos de diferentes fuentes y se construyen para entender y generar texto. Algunas aplicaciones ejemplares son la traducción de idiomas, la sumarización de textos, la respuesta a preguntas, la generación de contenido, entre otros. Hay diferentes tipos de LLMs: solo codificador (BERT), codificador + decodificador (BART, T5) y solo decodificador (PALM, GPT, etc.). Los LLMs con un componente decodificador se llaman LLMs generativos; este es el caso de la mayoría de los LLMs modernos.
Si le indicas a un LLM generativo que realice una tarea, generará el texto correspondiente. Sin embargo, ¿cómo le indicamos a un LLM generativo que realice una tarea específica? Es fácil; le proporcionamos una instrucción escrita. Los LLMs se han diseñado para responder a los usuarios finales en función de las instrucciones, también conocidas como “prompts”. Si has interactuado con un LLM como ChatGPT, has utilizado “prompts”. El “prompting” consiste en empaquetar nuestra intención en una consulta en lenguaje natural que hará que el modelo devuelva la respuesta deseada (Ejemplo: Figura 1, Fuente: Chat GPT).
Existen dos tipos principales de técnicas de “prompting” que examinaremos en las secciones siguientes: “zero-shot” y “few-shot”. Analizaremos sus detalles junto con algunos ejemplos básicos.
“Zero-Shot” Prompting
El “zero-shot” prompting es un escenario específico de aprendizaje de “zero-shot” único para los LLMs generativos. En “zero-shot”, no proporcionamos datos etiquetados al modelo y esperamos que el modelo funcione en un problema completamente nuevo. Por ejemplo, puedes utilizar ChatGPT para “zero-shot” prompting en nuevas tareas proporcionando las instrucciones adecuadas. Los LLMs pueden adaptarse a problemas que no han visto antes porque comprenden contenido de muchas fuentes. Veamos algunos ejemplos.
Aquí tienes un ejemplo de consulta para la clasificación de texto en clases de sentimiento positivo, neutral y negativo.
Ejemplos de Tweets
Los ejemplos de tweets son del conjunto de datos de sentimiento de las aerolíneas de EE. UU. en Twitter. El conjunto de datos se compone de tweets de comentarios sobre diferentes aerolíneas etiquetados como positivos, neutrales o negativos. En la Figura 2 (Fuente: ChatGPT), proporcionamos el nombre de la tarea, es decir, clasificación de sentimientos, las clases, es decir, positivo, neutral y negativo, el texto y el “prompt” para clasificar. El comentario sobre la aerolínea en la Figura 2 es positivo y se muestra satisfecho con la experiencia de vuelo. ChatGPT clasifica correctamente el sentimiento de la reseña como positivo, mostrando la capacidad de ChatGPT de generalizar en una nueva tarea.
La Figura 3 muestra Chat GPT con “zero-shot” en otro ejemplo, pero en este caso con sentimiento negativo. Chat GPT nuevamente predice correctamente el sentimiento del tweet. Si bien hemos mostrado dos ejemplos donde el modelo clasifica correctamente el texto de la reseña, existen varios casos limítrofes en los que incluso los LLMs de última generación no tienen éxito. Por ejemplo, veamos el ejemplo a continuación en la Figura 4. El usuario se queja de la calidad de la comida con la aerolínea, pero Chat GPT identifica incorrectamente el sentimiento como neutral.
En la tabla debajo, podemos ver la comparación de “zero-shot” con el rendimiento del modelo BERT en el conjunto de datos de Sentimiento de Twitter. Analizaremos las métricas de precisión, puntuación F1, precisión y recuperación. Evalúa el rendimiento del “zero-shot” prompting en un subconjunto aleatoriamente seleccionado de datos del conjunto de datos de sentimiento de las aerolíneas y redondea los números del rendimiento al entero más cercano. El “zero-shot” tiene un rendimiento menor pero decente en cada métrica de evaluación, mostrando el gran poder del “prompting”. Los números de rendimiento se han redondeado al entero más cercano.
Modelo | Precisión | Puntuación F1 | Precisión | Recall |
BERT Ajustado | 84% | 79% | 80% | 79% |
Chat GPT (Zero-shot) | 73% | 72% | 74% | 76% |
Prompting de Few-Shot
A diferencia del zero-shot, el prompting de few-shot involucra proporcionar algunos ejemplos etiquetados en el prompt. Esto difiere del aprendizaje de few-shot tradicional, que implica afinar el LLM con unos pocos ejemplos para un problema nuevo. Este enfoque reduce la dependencia de conjuntos de datos grandes etiquetados al permitir que los modelos se adapten rápidamente y produzcan predicciones precisas para nuevas clases con un pequeño número de muestras etiquetadas. Este método es beneficioso cuando reunir una cantidad considerable de datos etiquetados para nuevas clases lleva tiempo y esfuerzo. Aquí hay un ejemplo (Figura 5) de few-shot:
Few Shot vs. Zero Shot
¿Cuánto mejora el rendimiento el few-shot? Si bien las técnicas de few-shot y zero-shot han mostrado un buen rendimiento en ejemplos anecdóticos, el few-shot tiene un rendimiento general más alto que el zero-shot. Como muestra la tabla a continuación, podríamos mejorar la precisión de la tarea en cuestión al proporcionar algunos ejemplos de alta calidad y muestras de ejemplos límite y críticos mientras se promueven los modelos de IA generativos. El rendimiento mejora mediante el uso de aprendizaje de few-shot (10, 20 y 50 ejemplos). El rendimiento del prompting de few-shot se evaluó en un subconjunto aleatorio de datos del conjunto de datos de sentimiento de aerolíneas para cada caso, y los números de rendimiento se redondearon al entero más cercano.
Modelo | Precisión | Puntuación F1 | Precisión | Recall |
BERT Ajustado | 84% | 79% | 80% | 79% |
Chat GPT (Few-shot 10 ejemplos) | 80,8% | 76% | 74% | 79% |
Chat GPT (Few-shot 20 ejemplos) | 82,8% | 79% | 77% | 81% |
Chat GPT (Few-shot 30 ejemplos) | 83% | 79% | 77% | 81% |
Según las métricas de evaluación en la tabla anterior, el few-shot supera al zero-shot por un margen notable del 10% en precisión, 7% en puntuación F1 y logra un rendimiento similar al modelo BERT ajustado. Otra observación clave es que, después de 20 ejemplos, las mejoras se estancan. El ejemplo que hemos cubierto en nuestro análisis es un caso de uso particular de Chat GPT en el conjunto de datos de sentimiento de aerolíneas de Twitter en los Estados Unidos. Veamos otro ejemplo para entender si nuestras observaciones abarcan más tareas y modelos de IA generativos.
Modelos de Lenguaje: Aprendices de Few Shot
A continuación (Figura 6) se muestra un ejemplo de los estudios descritos en el artículo “Modelos de Lenguaje son Aprendices de Few-Shot” que compara el rendimiento de modelos de few-shot, one-shot y zero-shot con GPT-3. El rendimiento se mide en el benchmark LAMBADA (predicción de palabras objetivo) en diferentes configuraciones de few-shot. La singularidad de LAMBADA radica en su enfoque en evaluar la capacidad de un modelo para manejar dependencias a largo plazo en el texto, que son situaciones donde una distancia considerable separa una pieza de información de su contexto relevante. El aprendizaje de few-shot supera al aprendizaje de zero-shot en un margen notable de 12.2pp en precisión.
En otro ejemplo cubierto en el artículo mencionado anteriormente, se compara el rendimiento de GPT-3 en diferentes números de ejemplos proporcionados en el prompt con un modelo BERT ajustado en el benchmark SuperGLUE. SuperGLUE se considera un punto de referencia clave para evaluar el rendimiento en tareas de comprensión del lenguaje ML. El gráfico (Figura 7) muestra que los primeros ocho ejemplos tienen el mayor impacto. A medida que agregamos más ejemplos para el prompting de few-shot, llegamos a un punto en el que necesitamos aumentar exponencialmente los ejemplos para ver una mejora notable. Podemos ver claramente que las mismas observaciones que nuestro ejemplo de clasificación de sentimientos se replican.
Zero-shot solo debe considerarse en escenarios donde falte datos etiquetados. Si tenemos algunos ejemplos etiquetados, podemos lograr grandes mejoras de rendimiento utilizando few-shot en comparación con zero-shot. Una pregunta persistente es qué tan bien funcionan estas técnicas en comparación con técnicas más sofisticadas como el fine-tuning. Recientemente, se han desarrollado varias técnicas de fine-tuning de LLM muy bien desarrolladas y su costo de uso también se ha reducido enormemente. ¿Por qué no simplemente ajustar los modelos? En las próximas secciones, profundizaremos en la comparación de las técnicas de estímulo con los modelos ajustados.
Estímulo de few-shot vs. Fine-Tuning
El principal beneficio de few-shot con LLMs generativos es la simplicidad de la implementación del enfoque. Recolectamos algunos ejemplos etiquetados, preparamos el estímulo, ejecutamos la inferencia y listo. Incluso con varias innovaciones modernas, el fine-tuning es bastante voluminoso en la implementación y requiere mucho entrenamiento, tiempo y recursos. Para algunas instancias particulares, podemos utilizar las diferentes interfaces de usuario de los LLM generativos para obtener los resultados. Para inferir en un conjunto de datos más grande, el código sería algo tan simple como esto:
import osimport openaimessages = []# Ejemplos etiquetados de GPT Chatfew_shot_message = ""# Menciona la Tareafew_shot_message = "Tarea: Clasificación de Sentimientos \n"# Enumera las clasesfew_shot_message += "Clases: positivo, negativo \n"# Agrega contextofew_shot_message += "Contexto: Queremos clasificar los sentimientos de las reseñas de hoteles \n"# Agrega ejemplos etiquetadosfew_shot_message += "Ejemplos etiquetados: \n"for labeled_data in labeled_dataset: few_shot_message += "Texto: " + labeled_data["text"] + "\n"; few_shot_message += "Etiqueta: " + labeled_data["label"] + "\n"# Llama a la API de OpenAI para ChatGPT proporcionando los ejemplos few-shotmessages.append({"role": "user", "content": few_shot_message})chat = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=messages )for data in unlabeled_dataset: # Agrega el texto a clasificar message = "Texto: " + data + ", " # Agrega el estímulo message += "Estímulo: Clasifica el texto dado en una de las categorías de sentimiento." messages.append({"role": "user", "content": message}) # Llama a la API de OpenAI para ChatGPT para clasificación chat = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=messages ) reply = chat.choices[0].message.content print(f"ChatGPT: {reply}") messages.append({"role": "assistant", "content": reply})
Otro beneficio clave de few-shot sobre el fine-tuning es la cantidad de datos. En la tarea de clasificación de sentimientos de las aerolíneas estadounidenses en Twitter, el fine-tuning de BERT se realizó con más de 10,000 ejemplos, mientras que el estímulo de few-shot solo necesitó de 20 a 50 ejemplos para obtener un rendimiento similar. Sin embargo, ¿estas mejoras de rendimiento se generalizan a otras tareas de ML basadas en el lenguaje? El ejemplo de clasificación de sentimientos que hemos cubierto es un caso de uso muy específico. El rendimiento del estímulo de few-shot no estaría a la altura de un modelo ajustado para cada caso de uso. Sin embargo, muestra una capacidad similar/mejor en una amplia variedad de tareas de lenguaje. Para demostrar el poder del estímulo de few-shot, hemos comparado el rendimiento con SOTA y modelos de lenguaje ajustados como BERT en tareas de comprensión de lenguaje estandarizado, traducción y evaluación de preguntas en las secciones posteriores.
Comprensión de Lenguaje
Para comparar el rendimiento de few-shot y el ajuste fino en tareas de comprensión de lenguaje, analizaremos el benchmark SuperGLUE. SuperGLUE es un benchmark de comprensión de lenguaje que consiste en tareas de clasificación, similitud de texto e inferencia de lenguaje natural. El modelo ajustado utilizado para la comparación es un BERT grande ajustado y un modelo BERT++ ajustado fino, y el LLM generativo utilizado es GPT-3. Las gráficas en las figuras (Figura 8 y Figura 9) a continuación muestran el estímulo de few-shot con LLMs generativos de tamaños suficientemente grandes, y alrededor de 32 ejemplos de few-shot son suficientes para superar a BERT++ ajustado fino y a BERT grande ajustado. La mejora en precisión sobre BERT grande es de aproximadamente 2.8 pp, mostrando el poder de few-shot en LLMs generativos.
Traducción
En la siguiente tarea, compararemos el rendimiento de few-shot y el ajuste fino en tareas de traducción. Analizaremos el benchmark BLUE, también conocido como Evaluación Bilingüe de Refuerzo. BLEU calcula una puntuación entre 0 y 1, donde una puntuación más alta indica una mejor calidad de traducción. La idea principal detrás de BLEU es comparar la traducción generada con una o más traducciones de referencia y medir hasta qué punto la traducción generada contiene n-gramas similares a las traducciones de referencia. Los modelos utilizados para la comparación son XLM, MASS y mBART, y el LLM generativo utilizado es GPT-3.
Como muestra la tabla en la figura (Figura 10) a continuación, la solicitud de pocas muestras con Generative LLMs con unos pocos ejemplos es suficiente para superar a XLM, MASS, multilingual BART e incluso al SOTA para diferentes tareas de traducción. Few-shot GPT-3 supera el trabajo anterior de Traducción Automática Neural no supervisada en 5 BLEU al traducir al inglés, reflejando su fortaleza como modelo de lenguaje para la traducción al inglés. Sin embargo, es importante tener en cuenta que el modelo funcionó mal en ciertas tareas de traducción, como del inglés al rumano, destacando sus deficiencias y la necesidad de evaluar el rendimiento caso por caso.
Preguntas y respuestas
En la tarea final, compararemos el rendimiento de la solicitud de pocas muestras y el ajuste fino en tareas de preguntas y respuestas. El nombre de la tarea es autoexplicativo. Analizaremos tres puntos de referencia clave para las tareas de Preguntas y Respuestas: PI QA (Preguntas y Respuestas de Información Procedimental), Trivia QA (conocimiento factual y respuestas a preguntas) y CoQA (Preguntas y Respuestas Conversacionales). La comparación se realiza con el SOTA para modelos ajustados finamente, y el Generative LLM utilizado es GPT-3. Como se muestra en los gráficos de las figuras (Figura 11, Figura 12 y Figura 13) a continuación, la solicitud de pocas muestras en Generative LLMs con unos pocos ejemplos es suficiente para superar el SOTA ajustado finamente para PIQA y Trivia QA. El modelo no superó al SOTA ajustado finamente para CoQA, pero tuvo una precisión bastante similar.
Limitaciones de la solicitud
Los numerosos ejemplos y estudios de caso en las secciones anteriores muestran claramente cómo la solicitud de pocas muestras puede ser la solución preferida sobre el ajuste fino para varias tareas de ML basadas en el lenguaje. En la mayoría de los casos, las técnicas de solicitud de pocas muestras lograron resultados mejores o próximos a los de los modelos de lenguaje ajustados finamente. Sin embargo, es esencial tener en cuenta que en la mayoría de los casos de uso de nicho, el preentrenamiento específico del dominio superaría con creces el ajuste fino y, en consecuencia, las técnicas de solicitud. Esta limitación no se puede resolver a nivel de diseño de la solicitud y requeriría grandes avances en los desarrollos generalizados de LLM.
Otra limitación fundamental es la creación de alucinaciones por parte de los Generative LLMs. Los LLM generalistas han sido propensos a las alucinaciones ya que a menudo se inclinan mucho hacia la escritura creativa. Esta es otra razón por la cual los LLM específicos del dominio son más precisos y tienen un mejor rendimiento en sus puntos de referencia específicos del campo.
Por último, el uso de LLM generalizados como Chat GPT y GPT-4 conlleva mayores riesgos de privacidad que los modelos ajustados finamente o específicos del dominio, para los cuales podemos construir nuestra instancia de modelo. Esto es una preocupación, especialmente para casos de uso que dependen de datos de usuario propietarios o sensibles.
Conclusión
Las técnicas de solicitud se han convertido en un puente entre los LLM y las tareas prácticas de ML basadas en el lenguaje. El disparo cero, que no requiere datos etiquetados previos, muestra el potencial de estos modelos para generalizarse y adaptarse a nuevos problemas. Sin embargo, no logra alcanzar un rendimiento similar/mejor en comparación con el ajuste fino. Numerosos ejemplos y comparaciones de rendimiento de puntos de referencia muestran que la solicitud de pocas muestras ofrece una alternativa convincente al ajuste fino en una variedad de tareas. Al presentar unos pocos ejemplos etiquetados dentro de las solicitudes, estas técnicas permiten que los modelos se adapten rápidamente a nuevas clases con un mínimo de datos etiquetados. Además, los datos de rendimiento enumerados en las secciones anteriores sugieren que trasladar las soluciones existentes para utilizar la solicitud de pocas muestras con Generative LLM es una inversión valiosa. Ejecutar experimentos con los enfoques mencionados en este artículo mejorará las posibilidades de alcanzar sus objetivos utilizando técnicas de solicitud.
Conclusiones clave
- Las técnicas de solicitud permiten el uso práctico: Las técnicas de solicitud son un puente poderoso entre los LLM generativos y las tareas prácticas de aprendizaje automático basadas en el lenguaje. La solicitud cero permite que los modelos se generalicen sin datos etiquetados, mientras que el disparo de pocas muestras aprovecha varios ejemplos para adaptarse rápidamente. Estas técnicas simplifican la implementación, ofreciendo una vía para una utilización efectiva.
- El disparo de pocas muestras supera al disparo cero: El disparo de pocas muestras ofrece un mejor rendimiento al brindarle al LLM orientación específica a través de ejemplos etiquetados. Permite que el modelo utilice su conocimiento preentrenado mientras se beneficia de ejemplos mínimos específicos de la tarea, lo que resulta en respuestas más precisas y relevantes para la tarea dada.
- El disparo de pocas muestras compite con el ajuste fino: El disparo de pocas muestras es una alternativa prometedora al ajuste fino. El disparo de pocas muestras logra un rendimiento similar o mejorado en tareas de clasificación, comprensión del lenguaje, traducción y preguntas y respuestas al proporcionar ejemplos etiquetados dentro de las solicitudes. Especialmente sobresale en escenarios donde los datos etiquetados son escasos.
- Limitaciones y consideraciones: Si bien los LLM generativos y las técnicas de solicitud tienen varios beneficios, el preentrenamiento específico del dominio sigue siendo el camino para tareas especializadas. Además, los riesgos de privacidad asociados con los LLM generalizados subrayan la necesidad de manejar los datos sensibles con cuidado.
Leave a Reply