Llamando a Todas las Funciones

Llamando a Todas las Bellezas

Imagen creada por el autor utilizando Dall-E

Benchmarking de llamadas de funciones y explicaciones de OpenAI

Gracias a Roger Yang por sus contribuciones a este artículo

La observabilidad en modelos de lenguaje grandes de terceros (LLMs) se aborda en gran medida mediante pruebas comparativas y evaluaciones, ya que modelos como Claude de Anthropic, los modelos GPT de OpenAI y PaLM 2 de Google son propiedad. En esta publicación de blog, evaluamos los modelos GPT de OpenAI con llamadas de funciones y explicaciones utilizando diferentes métricas de rendimiento. Estamos especialmente interesados en cómo los modelos GPT y las características de OpenAI se desempeñan en la clasificación correcta de respuestas alucinadas y relevantes. Los resultados que se muestran a continuación demuestran las compensaciones entre velocidad y rendimiento para diferentes sistemas de aplicaciones de LLM, así como una discusión sobre cómo se pueden utilizar estos resultados con explicaciones para el etiquetado de datos, la evaluación asistida por LLM y las verificaciones de calidad. El marco experimental que utilizamos se proporciona a continuación para que los profesionales puedan iterar y mejorar en la plantilla de clasificación predeterminada.

Llamadas de funciones y explicaciones de OpenAI

Con las llamadas de funciones de OpenAI, puedes describir funciones a varios modelos GPT, que luego se pueden utilizar para obtener un objeto JSON que contiene los argumentos para llamar a esas funciones. Las llamadas de funciones actúan básicamente como una herramienta o agente para grabar una respuesta en un formato determinado con el fin de conectar de manera confiable las capacidades del modelo GPT de OpenAI con herramientas externas y APIs. En cuanto a las explicaciones, dado que a menudo puede resultar difícil entender por qué un LLM responde de una manera específica, estas están diseñadas para solicitar al LLM que justifique si una salida es correcta o no. Luego puedes adjuntar una etiqueta de salida (‘relevante’ o ‘irrelevante’) y una explicación del LLM. A continuación se muestra un ejemplo de una evaluación ‘relevante’ con una explicación para depurar las respuestas del LLM.

Imagen del autor

En la sección de Resultados y Compensaciones a continuación, se proporcionan tablas de comparación para dos casos de uso: predicción de relevancia y predicción de alucinaciones (estas son Tabla 1 y Tabla 2, respectivamente). Cada tabla compara el rendimiento de GPT-4-turbo, GPT-4, GPT-3.5 y GPT-3.5-turbo en diversas métricas de clasificación (precisión, exactitud, recuperación y puntuación F1) bajo instrucciones específicas y atributos de los LLM.

Los cuatro modelos fundamentales evaluados se analizan con esas métricas (además del tiempo mediano de procesamiento) en los siguientes casos:

  • Sin_llamadas_de_funciones_y_sin_explicaciones
  • Con_llamadas_de_funciones_y_sin_explicaciones
  • Con_llamadas_de_funciones_y_con_explicaciones
  • Sin_llamadas_de_funciones_y_con_explicaciones

Por lo tanto, la plantilla de instrucciones en los LLM no cambia (es decir, la completación de la instrucción ordinaria) para ejemplos Sin_llamadas_de_funciones_y_sin_explicaciones. Las muestras Con_llamadas_de_funciones_y_sin_explicaciones piden al LLM que coloque su respuesta en un objeto JSON que solo acepta enum como entrada, y las muestras Con_llamadas_de_funciones_y_con_explicaciones piden al LLM que proporcione una explicación junto con su respuesta en el mismo objeto JSON (consultar el cuaderno de Google colab).

Conjunto de datos de referencia y métricas de evaluación

Identificar correctamente las respuestas alucinadas y relevantes en las salidas de los LLM son dos de los mayores desafíos para nuestros clientes que están implementando aplicaciones de LLM. Optimizar los sistemas de evaluación de LLM para alucinaciones significa identificar correctamente todas las respuestas alucinadas, al mismo tiempo que se realiza un seguimiento de las salidas factuales. Para casos de uso que aprovechan la búsqueda y las recomendaciones como parte de la experiencia de usuario, los factores más importantes relacionados con la satisfacción del usuario son la velocidad y la relevancia de los resultados. Para evaluar el rendimiento de un sistema LLM para las salidas relevantes e irrelevantes, debes tener en cuenta las siguientes métricas clave:

  • Precisión y Recordatorio: ¿Qué tan relevante es la información recuperada?
  • Precisión: ¿Qué tan precisas son las respuestas en contexto?
  • Latencia: ¿Cuánto tiempo tarda el sistema en proporcionar la respuesta?
  • Opiniones de los usuarios: ¿Cómo han afectado la relevancia y el tiempo de respuesta de los resultados en la experiencia del usuario?

Resultados y Compensaciones

Aquí están los resultados de la comparación de los sistemas LLM para predicciones irrelevantes y relevantes:

Tabla 1 de autor

Aquí están los resultados de la comparación de los sistemas LLM para predicciones de alucinaciones y predicciones factuales:

Tabla 2 de autor

Antes de analizar los resultados, puedes reproducir estos resultados por ti mismo en este cuaderno de colaboración de Google. Ten en cuenta que normalmente no podrías recrear los números exactamente en estas tablas debido a la naturaleza no determinística de los LLMs, pero para este cuaderno hemos añadido una semilla al muestreo para que sea siempre la misma. Además, se ha añadido un muestreo estratificado para que las categorías binarias sean exactamente 50/50. Ten en cuenta que hay un costo computacional asociado con la ejecución de este cuaderno usando tus claves de OpenAI API. El número predeterminado de muestras se ha establecido en 2, pero puedes cambiar el número a 100 si quieres replicar los resultados de esta publicación del blog.

Tiempo de Procesamiento de VoAGI

Para mayor claridad, estas comparaciones (usando 100 muestras) fueron realizadas en Google Colab con una cuenta y clave estándar de OpenAI API. Por lo tanto, aunque los valores de latencia es poco probable que sean exactos cuando se ejecuten en una configuración diferente, se reproducirán los modelos más lentos y más rápidos.

Además, el uso de explicaciones en tus evaluaciones probablemente tardará entre 3 y 20 veces más en compilarse (esto es independiente de la llamada a funciones).

Para la capacidad predictiva del modelo en general en términos de relevancia

  • Latencia: GPT-3.5-instruct > GPT-3.5-turbo > GPT-4-turbo > GPT-4

Para la capacidad predictiva del modelo en términos de alucinaciones

  • Latencia: GPT-3.5-instruct > GPT-3.5-turbo ~ GPT-4-turbo > GPT-4

Los modelos GPT con llamada a funciones tienden a tener una latencia ligeramente mayor que los LLM sin llamada a funciones, pero ten en cuenta que hay algunas advertencias. Primero, la latencia se extrae de las cabeceras HTTP devueltas por OpenAI, por lo que dependiendo de tu cuenta y de tu método de hacer estas solicitudes, los valores de latencia pueden cambiar, ya que fueron calculados internamente por OpenAI. Las compensaciones en la llamada a funciones también dependen de tu caso de uso. Por ejemplo, sin la llamada a funciones tendrías que especificar exactamente cómo necesitarías que se estructurara tu salida proporcionando ejemplos y una descripción detallada. Sin embargo, si tu caso de uso es la extracción de datos estructurados entonces es más sencillo trabajar directamente con la API de llamada a funciones de OpenAI.

En general, los LLM con llamada a funciones ofrecen un rendimiento similar a los LLM que no utilizan la llamada a funciones y en su lugar utilizan la finalización de instrucciones ordinarias. La decisión de utilizar la API de llamada a funciones de OpenAI en lugar de la ingeniería de instrucciones debe depender de tu caso de uso y de la complejidad de tus salidas.

Comparaciones de Rendimiento del Modelo GPT

Para la capacidad predictiva del modelo en general en términos de relevancia:

  • Rendimiento: GPT-4 ~ GPT-4-turbo ~ GPT-3.5-turbo >>> GPT-3.5-instruct

Para la capacidad predictiva del modelo en cuanto a alucinaciones:

  • Rendimiento: GPT-4 ~ GPT-4-turbo > GPT-3.5-turbo > GPT-3.5-instruct

Curiosamente, en ambos casos de uso, el uso de explicaciones no siempre mejora el rendimiento. Más sobre esto a continuación.

Métricas de Evaluación

Si estás decidiendo qué LLM utilizar para predecir relevancia, debes usar ya sea GPT-4, GPT-4-turbo o GPT-3.5-turbo.

GPT-4-turbo identifica con precisión cuándo una salida es relevante, pero sacrifica recordar los 50 ejemplos, de hecho, el recuerdo no es mejor que lanzar una moneda incluso cuando se utilizan explicaciones.

GPT-3.5-turbo sufre del mismo compromiso, aunque tiene menor latencia y menor precisión. A partir de estos resultados, GPT-4 obtiene las puntuaciones F1 más altas (media armónica de precisión y recuerdo) y el mejor rendimiento en general, aunque se ejecuta en tiempos comparables a GPT4-turbo.

GPT-3.5-instruct predice que todo es relevante y, por lo tanto, no es un LLM viable para predecir relevancia. Curiosamente, cuando se utilizan explicaciones, el rendimiento predictivo mejora drásticamente, aunque sigue siendo inferior a los otros LLM. Además, GPT-3.5-instruct no puede utilizar la API de llamada de OpenAI y es probable que se quede obsoleto a principios de 2024.

Si estás decidiendo qué LLM utilizar para predecir alucinaciones, debes usar ya sea GPT-4, GPT-4-turbo o GPT-3.5-turbo.

Los resultados muestran que GPT-4 identifica correctamente las salidas alucinadas y fácticas con mayor frecuencia (~3% más del tiempo) en precisión, exactitud, recuerdo y F1 que GPT-4-turbo.

Aunque tanto GPT-4 como GPT-4-turbo tienen un rendimiento ligeramente superior a GPT-3.5-turbo (ten en cuenta que se debe utilizar un mayor número de muestras antes de concluir que el margen pequeño no es ruido), podría valer la pena trabajar con GPT-3.5-turbo si planeas utilizar explicaciones.

Las explicaciones para predecir alucinaciones y datos fácticos se devuelven a una velocidad más de tres veces mayor para GPT-3.5-turbo que para GPT-4 y GPT-4-turbo, sin embargo, el recuerdo sufre en ambos modelos GPT-3.5 en comparación con el recuerdo de los modelos GPT-4 cuando se predice correctamente las alucinaciones.

Discusión e Implicaciones

Cuando decidas qué LLM utilizar para tu aplicación, se requiere una serie de experimentos e iteraciones para tomar esa decisión. De manera similar, también se requiere una evaluación y experimentación de referencia al decidir si se debe utilizar un LLM como evaluador. En esencia, estos son los dos métodos principales de evaluación de LLM: evaluación de modelos LLM (evaluando modelos fundamentales) y evaluación de sistemas LLM a través de observabilidad.

Imagen del autor | Evaluación de dos plantillas de solicitud diferentes en un solo modelo fundamental. Estamos probando el mismo conjunto de datos en las dos plantillas y viendo cómo se comparan sus métricas como precisión y recuerdo.

En última instancia, al decidir si un LLM será un buen evaluador de rendimiento para tu caso de uso, debes tener en cuenta la latencia de tu sistema, además del rendimiento de las métricas de predicción relevantes. A lo largo de esta publicación, resumimos cómo estos modelos funcionan sin ajustes, sin agregar técnicas para aumentar la velocidad y el rendimiento. Recuerda que todos estos LLM utilizan plantillas de solicitud sin ejemplos añadidos para mejorar las salidas del modelo. Dado que estos números actúan como referencia, los equipos pueden mejorar el rendimiento del sistema LLM con ingeniería de solicitud, plantillas de solicitud (y bibliotecas almacenadas), agentes, afinamiento y también con aplicaciones de búsqueda y recuperación como RAG y HyDE.

Trabajo Futuro Potencial: Explicaciones para Etiquetado de Datos

A través de esta comparativa, encontramos algunos ejemplos interesantes donde proporcionar una explicación cambia la etiqueta predicha. El ejemplo a continuación predice “relevante” cuando no se utiliza una explicación e incluso tiene una etiqueta “relevante” para la verdad absoluta. Dado que incluso los “conjuntos de datos dorados” pueden tener errores de etiquetado (especialmente para tareas más subjetivas), una explicación bien justificada de un LLM podría ser suficiente para editar la etiqueta de verdad absoluta. Esto se puede considerar como una evaluación asistida por LLM o una verificación de calidad.

A continuación se muestra un ejemplo del conjunto de datos wiki para relevancia, tenga en cuenta que la columna ‘D’ es la etiqueta de la verdad absoluta proporcionada por el conjunto de datos, la columna ‘E’ es la etiqueta predicha sin llamar a la función y sin explicación, mientras que la columna ‘F’ es la etiqueta predicha creada (sin llamar a la función) con la explicación en la columna ‘G’. Por lo tanto, la columna ‘E’ y las columnas ‘F’ y ‘G’ son respuestas de dos llamadas separadas a LLM. F&G se generaron juntas a partir de la misma llamada, como se muestra en la Figura 1 a continuación.

Figura 1 (por autor): Captura de pantalla del script (código proporcionado en Colab). Aquí, la etiqueta y la explicación se devuelven juntas, pero solicitamos que se proporcione primero la explicación (ver la indicación).

La tabla a continuación muestra un ejemplo en el que tenemos una etiqueta de la verdad absoluta = ‘relevante’, una etiqueta predicha por LLM sin llamar a la función = ‘relevante’, pero luego tenemos un cambio de etiqueta a ‘irrelevante’ cuando se le pide a LLM que proporcione una explicación primero. Como varios ejemplos similares que encontramos, LLM presenta un argumento válido para etiquetar la respuesta recuperada a la pregunta del usuario como ‘irrelevante’. Si bien muchos de nosotros pensamos en el Imperio Romano a menudo, podemos estar de acuerdo en que la respuesta de varios párrafos a “¿cuánto tiempo duró el Imperio Romano?” no es una respuesta lo suficientemente concisa ni relevante como para obtener comentarios positivos del usuario final. Hay muchas posibilidades para las evaluaciones asistidas por LLM, incluidos los ahorros de costos y tiempo para las empresas que necesitan etiquetar datos. Esto, junto con la visibilidad que proporcionan las explicaciones y el retorno de las referencias (documentos utilizados en la predicción) de LLM, son avances importantes para el espacio de observabilidad de LLM.

Ejemplo del autor

Conclusión

Esperemos que este artículo brinde un buen punto de partida para los equipos que buscan comprender y equilibrar los compromisos entre rendimiento y velocidad con los nuevos sistemas de aplicación de LLM. Como siempre, el espacio de IA generativa y LLMOps evoluciona rápidamente, por lo que será interesante ver cómo cambian estos hallazgos y el espacio con el tiempo.

¿Preguntas? ¡Por favor, contáctenos!

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Esta investigación de IA presenta la integración de Lucene para una búsqueda vectorial potente con OpenAI Embeddings.

Últimamente, se han logrado avances significativos en la aplicación de redes neuronales profundas al campo de la búsq...

Aprendizaje Automático

El Maestro Gamer de la IA de DeepMind Aprende 26 juegos en 2 horas.

El aprendizaje por refuerzo, un área de investigación fundamental de Google DeepMind, tiene un enorme potencial para ...

Aprendizaje Automático

La mochila que resuelve el sesgo de ChatGPT Los modelos de lenguaje Backpack son métodos de inteligencia artificial alternativos para los transformadores.

Los modelos de lenguaje de Inteligencia Artificial se están convirtiendo en una parte esencial de nuestras vidas. Hem...

Aprendizaje Automático

La carrera para evitar el peor escenario para el aprendizaje automático

Las compañías de inteligencia artificial tienen ventaja en bloquear la creación y distribución de material de abuso s...

Inteligencia Artificial

Train y despliega modelos de ML en un entorno multicloud utilizando Amazon SageMaker

En esta publicación, demostramos una de las muchas opciones que tienes para aprovechar las capacidades de IA/ML más a...