Nuestro objetivo con la creación de New Relic AI era poner la observabilidad al alcance de todos a fin de permitirle a cualquier usuario preguntar lo que sea a sus datos de telemetría. New Relic AI lo hace posible, ya que les permite a los clientes interactuar con la base de datos de New Relic (NRDB) mediante el lenguaje natural, reduciendo su dependencia del dominio sobre el lenguaje de consultas de New Relic (NRQL) y agilizando el análisis en los distintos stacks tecnológicos. Las capacidades adicionales incluyen sintetizar ideas a partir de nuestra documentación y base de conocimientos, detectar anomalías en el sistema y mucho más.

Evaluación del rendimiento

Es fundamental establecer medidas y protocolos fiables de evaluación para trabajar con macrodatos, que permitan a los modelos de IA prosperar. Dado que hay innumerables decisiones que tomar, es esencial evaluarlas sistemáticamente y a gran escala. Los algoritmos tradicionales de aprendizaje automático (ML) suelen contar con métricas de evaluación bien definidas y establecidas para lograrlo. Por ejemplo, en un problema de clasificación de vehículos, podrías preguntarte, '¿Identifiqué correctamente ese vehículo en la carretera?' o en un problema de regresión, '¿Qué distancia había entre el número que predije y el resultado real?'.

Con la aparición de ChatGPT, en OpenAI, dimos un paso más hacia lo que podemos conseguir con la IA generativa. Su rendimiento recién establecido representa un avance tan significativo respecto a todo lo que hemos visto antes que no solo ha mejorado las capacidades existentes, sino que también ha desbloqueado un conjunto completamente nuevo de posibilidades. Sin embargo, esta nueva tecnología no está exenta de desafíos, uno de los cuales es la validación del rendimiento. Aunque cada día surgen nuevas características de IA generativa, aún no se han establecido protocolos de evaluación y métricas estándares para evaluar las tareas subyacentes. La naturaleza poco estructurada del lenguaje natural hace que la elaboración de estos protocolos sea una tarea importante. Nosotros, el equipo de desarrollo de New Relic AI, prestamos mucha atención a este aspecto, ya que es fundamental para crear una característica realmente fiable que ofrezca un valor real a los usuarios.

Nuestro objetivo con New Relic AI era crear una herramienta capaz de responder cualquier pregunta. Como en cualquier proyecto de macrodatos, tenemos que evaluar las respuestas para tomar decisiones informadas sobre el diseño y optimizar el rendimiento. Pero ¿cómo podemos determinar si acertamos en algo? En este artículo, compartimos algunas de las medidas que tomamos para hacer frente a este problema.

Estrategia 1: Identificar áreas en las que puedan aplicarse medidas claras para el éxito

Aunque el lenguaje natural no está estructurado y los sistemas basados en IA generativa, como New Relic AI, pueden ser complejos, podemos dividirlos en componentes e identificar las partes del sistema en las que se pueden definir medidas claras para el éxito. El diseño de New Relic AI es modular, y los componentes manejables e independientes hacen que la evaluación de todo el sistema sea más sistemática. Durante las fases de diseño y aplicación, tuvimos siempre en cuenta la importancia de la medibilidad y señalamos áreas específicas en las que podían aplicarse dichas medidas.

Ejemplo 1: Clasificación de las solicitudes de los usuarios por casos de uso

Una de estas áreas es la clasificación de las preguntas de los usuarios en diferentes flujos, que es la primera etapa del procesamiento de cada solicitud de usuario. Cuando se hace una pregunta a New Relic AI, primero se decide a qué flujo debe ir la pregunta: ¿se trata de una pregunta general sobre New Relic (en cuyo caso, buscaremos en nuestra documentación), una pregunta sobre el propio sistema del usuario (que exige una consulta en el NRQL) o una solicitud de resumen general de los errores en el sistema (llamando al servicio Lookout)? Aunque esta etapa de “enrutamiento” incluye IA generativa, se trata esencialmente de un problema de clasificación, que nos permite utilizar métricas de evaluación establecidas para la clasificación. Esto era fundamental para evaluar si íbamos por buen camino con nuestro enfoque de la solución y para ampliar las capacidades de New Relic AI mediante la adición de más flujos posibles en el futuro.

Ejemplo 2: Validación sintáctica en NL2NRQL

Otro ejemplo es la traducción de lenguaje natural a NRQL (NL2NRQL), en la que utilizamos la entrada del usuario en lenguaje natural y la convertimos en una consulta en NRQL. New Relic AI es capaz de formular en NR2NRQL, ejecutar la consulta contra NRDB, obtener los datos y, a continuación, explicar los resultados. Si utilizaste ChatGPT para obtener ayuda sobre programación, es posible que hayas detectado alucinaciones sintácticas, en las que un bloque de código está perfectamente estructurado, pero alguna palabra clave, función o atributo no existe. Para nosotros era primordial evitar este problema con el NL2NRQL y ofrecer a los usuarios consultas válidas que realmente obtuvieran sus datos. Para lograrlo, podemos probar la validez de nuestro NRQL generado ejecutándolo a través de nuestro analizador sintáctico y compilador para la evaluación de la sintaxis y, luego, contra la NRDB a fin de asegurarnos de que devuelva resultados. New Relic AI realiza la validación de sintaxis de manera continua y en tiempo real, y solo devuelve a los usuarios las consultas que son sintácticamente correctas. Esto ofrece una medida clara y binaria del éxito de este aspecto del sistema, una de las múltiples razones por las que quisimos desarrollarlo en torno al NRQL desde el principio.

En este sentido, OpenAI adoptó recientemente un enfoque similar con su nuevo complemento de interpretación de código, en el que ejecuta el código sugerido para garantizar su corrección.

Estrategia 2: Abordar las alucinaciones: Generación de recuperación aumentada (RAG) y replanteamiento de la tarea

Siempre que mencionábamos nuestro trabajo con IA generativa a colegas o amigos, expresaban una preocupación común: “¿Y las alucinaciones?”. 

Las alucinaciones se refieren a un problema conocido de estos modelos generativos de IA, que es su tendencia a inventar hechos con confianza. Esencialmente, las respuestas se presentan siempre con confianza, sin importar si son precisas o correctas (recordemos nuestro ejemplo de las alucinaciones sintácticas). Además, los modelos de OpenAI cuentan con un límite de conocimiento que restringe sus conocimientos incorporados. 

Para la New Relic AI (en la actualidad, impulsada por GPT-4), este problema es relevante sobre todo al responder preguntas generales o basadas en el conocimiento sobre New Relic. Nuestro objetivo es proporcionar información 100% precisa y actualizada en todas nuestras respuestas.

Uso de la RAG

La generación de recuperación aumentada (RAG) es ahora una práctica común establecida para abordar las alucinaciones. Consiste en recuperar información pertinente de una base de datos externa e incorporarla a la consulta del modelo lingüístico. El razonamiento es sencillo: si no sabes con certeza si los conocimientos incorporados al modelo son precisos para tu caso de uso (algo que suele ocurrir), y puesto que sabes que no contienen los hechos más recientes, puedes aportar estos hechos al modelo desde una fuente externa. Con New Relic AI, esa fuente externa son nuestros documentos almacenados en una base de datos vectorial Pinecone.

Replanteamiento de la tarea

Una vez que hayamos incorporado el contexto pertinente en el modelo con la RAG, tenemos que asegurarnos de que el modelo se base realmente en él, en lugar de responder a partir del conocimiento incorporado. Esto supone ajustar cómo formulamos la pregunta del usuario al modelo cuando la pregunta esté relacionada con el conocimiento general de New Relic.

Para ilustrarlo, utilicemos un ejemplo. Imagina que te dan una tarea con instrucciones específicas. En la primera situación, simplemente se te pide que respondas una pregunta como: “¿Quién fue el tercer presidente de los Estados Unidos?”. Con esta redacción, es razonable suponer que se espera que respondas utilizando tus conocimientos previos. Ahora imagina una segunda situación en la que te hacen la misma pregunta, pero además te dan un texto que podría ayudarte. En este caso, empleamos la RAG y, si nuestro objetivo es maximizar la precisión de la respuesta, este enfoque probablemente dará mejores resultados. Por último, profundicemos un poco más. Considera un tercer escenario donde tus instrucciones son: “Aquí tienes un texto; tu tarea es determinar si la respuesta a la pregunta, ‘¿Quién fue el tercer presidente de los Estados Unidos?’ se puede encontrar dentro de él, y si es así, proporciona una explicación.” El tercer escenario es una tarea completamente diferente del primero, ya que se centra en la comprensión de texto en lugar de la recuperación de conocimientos.

Dado que la precisión de los conocimientos es un posible problema de la IA generativa (alucinaciones), y que la síntesis y la comprensión del texto son sus puntos fuertes, formulamos nuestra pregunta siguiendo el concepto de la tercera situación.

Estrategia 3: Fomentar la confianza mediante la transparencia y una comunicación clara

Otra medida que tomamos para aumentar la fiabilidad de New Relic AI es ofrecer a los usuarios la información que necesitan para evaluar las respuestas por sí mismos. Si ofrecemos respuestas sin contexto, podemos hacer que los usuarios no confíen en su validez. Para solucionarlo, hacemos hincapié en una comunicación clara a lo largo de todo el proceso y añadimos pasos intermedios en varias fases del flujo de preguntas y respuestas.

Por ejemplo, cuando los usuarios preguntan por sus propios datos (por ejemplo, “¿Cuántas transacciones realicé hoy?”). New Relic AI les informa que primero convertirá su pregunta en una consulta en NRQL. De este modo, los usuarios saben que estamos utilizando el NRQL para responder a su pregunta y pueden evaluar si este enfoque tiene sentido. Luego, la IA facilita la consulta generada (por ejemplo, SELECT count(*) FROM Transaction SINCE TODAY), ofrece una visualización creada mediante una consulta a NerdGraph (nuestra API GraphQL) con la consulta generada y, por último, presenta la respuesta basada en los datos que devuelve NRDB (por ejemplo, “16 443 606 861”). Al compartir la misma información utilizada para obtener la respuesta final, los usuarios pueden comprender mejor la respuesta y confiar en ella. Incluso si no dominan el NRQL, la sintaxis de la consulta y las palabras clave suelen ser claras, lo que facilita su comprensión.

Del mismo modo, cuando la IA responde una pregunta de conocimiento sobre New Relic, primero informa al usuario que buscará en los documentos y, luego, ofrece enlaces a las referencias que utilizó junto con la respuesta.

Atención a los comentarios

Nuestros usuarios son los jueces definitivos de las capacidades de New Relic, y recopilamos comentarios continuamente. Agradecemos a todos los usuarios externos e internos que contribuyeron con sus valiosas opiniones. 

Si utilizas New Relic AI, nos encantaría conocer tu opinión. Ayúdanos a mejorar puntuando las respuestas con los botones “Me gusta” o “No me gusta” que aparecen en cada una de ellas, o enviándonos tus comentarios a través de Help (ayuda) > Give Us Feedback (danos tu opinión) en el panel de navegación izquierdo.