Nossa missão ao construir a New Relic AI era desbloquear a observabilidade para todos, permitindo que qualquer usuário pergunte qualquer coisa aos seus dados de telemetria. A New Relic AI consegue isso permitindo que os clientes interajam com o banco de dados New Relic (NRDB) usando linguagem natural, reduzindo sua dependência da proficiência da New Relic Query Language (NRQL) e simplificando a análise em seu stack de tecnologia. Recursos adicionais incluem sintetizar insights da nossa documentação e base de conhecimento, revelar anomalias do sistema e muito mais.

Avaliação de desempenho

O estabelecimento de medidas e protocolos de avaliação robustos é um aspecto fundamental do trabalho com big data, onde prosperam os modelos de IA. Com inúmeras decisões a tomar, é essencial avaliá-las de forma sistemática e em grande escala. Os algoritmos tradicionais de aprendizado de máquina (machine learning, ML) costumam ter métricas de avaliação bem definidas e estabelecidas para conseguir fazer isso. Por exemplo, em um problema de classificação de veículos, você poderia perguntar: "Identifiquei corretamente aquele carro na estrada?" ou, para um problema de regressão: "A que distância estava o número da minha previsão do resultado real?".

Com a introdução do ChatGPT, a OpenAI elevou o nível do que podemos alcançar usando IA generativa com um aumento gradual. O desempenho recém-estabelecido dessa tecnologia é um avanço tão representativo em relação a tudo que já vimos antes, que não apenas aprimorou os recursos existentes, mas também abriu um novo conjunto de possibilidades. No entanto, esta nova tecnologia apresenta desafios, um dos quais é a validação de desempenho. Embora novos recursos generativos de IA surjam todos os dias, ainda não foram estabelecidos protocolos de avaliação padrão e métricas para metrificar as tarefas subjacentes. A natureza não estruturada da produção em linguagem natural torna a formulação desses protocolos uma tarefa desafiadora. Nós, da equipe de desenvolvimento da New Relic AI, estamos atentos a esse aspecto, que é tão crucial para a criação de um recurso verdadeiramente confiável e que agregue valor real aos usuários.

Nosso objetivo com a New Relic AI era criar uma ferramenta que pudesse responder a qualquer pergunta. Como acontece com qualquer projeto de big data, precisamos avaliar as respostas para tomar decisões de design informadas e otimizar o desempenho. Mas, como podemos determinar se acertamos em qualquer coisa? Nesta publicação, compartilhamos algumas das medidas que tomamos para enfrentar esse problema.

Estratégia 1: identificação de áreas onde medidas claras de sucesso podem ser aplicadas

Embora a linguagem natural não seja estruturada e os sistemas generativos baseados em IA (como a New Relic AI) possam ser complexos, podemos dividi-los em componentes e identificar partes do sistema onde medidas claras de sucesso podem ser definidas. O design da New Relic AI é modularizado e os componentes gerenciáveis e independentes tornam a avaliação de todo o sistema mais sistemática. Ao longo de todas as fases de concepção e implementação, levamos consistentemente em consideração a importância da mensurabilidade e identificamos áreas específicas onde essas medidas poderiam ser aplicadas.

Exemplo 1: classificação de solicitações de usuários por caso de uso

Uma dessas áreas é a classificação das perguntas dos usuários em diferentes fluxos, que compõem a primeira etapa do processamento de cada solicitação dos usuários. Quando você faz uma pergunta à New Relic AI, ela primeiro decide para qual fluxo a pergunta deve ser encaminhada. É uma pergunta geral sobre a New Relic? Nesse caso, pesquisaremos nossa documentação. Uma pergunta sobre o próprio sistema do usuário (exigindo uma consulta NRQL)? Ou uma solicitação de uma visão geral dos erros no sistema (chamando o serviço Lookout)? Embora esta fase de “roteamento” envolva IA generativa, esse é, essencialmente, um problema de classificação que nos permite usar métricas de avaliação estabelecidas para classificação. Isso é crucial para avaliar se estávamos no caminho certo com nossa abordagem à solução e para dimensionar os recursos da New Relic AI, adicionando mais possibilidades de fluxos no futuro.

Exemplo 2: validação de sintaxe em NL2NRQL

Outro exemplo é a tradução de linguagem natural para NRQL (NL2NRQL), onde pegamos a entrada do usuário em linguagem natural e a convertemos em uma consulta NRQL. A New Relic AI é capaz de executar NR2NRQL, fazer a consulta no NRDB, buscar os dados e, em seguida, explicar os resultados. Se você usou o ChatGPT para ajuda de programação, deve ter encontrado alucinações de sintaxe, onde um bloco de código está perfeitamente estruturado, mas alguma palavra-chave, função ou atributo não existe. Para nós, era essencial evitar esse problema com NL2NRQL e fornecer aos usuários consultas válidas, que realmente buscassem seus dados. Para conseguir isso, podemos testar a validade do nosso NRQL gerado executando-o por meio do nosso analisador e compilador para avaliação de sintaxe e, em seguida, contra o NRDB para garantir que ele retorne resultados. A New Relic AI realiza validação de sintaxe continuamente e em tempo real, retornando aos usuários apenas consultas que estejam sintaticamente corretas. Isso oferece uma medida clara e binária de sucesso para esse aspecto do sistema (uma das múltiplas razões pelas quais queríamos desenvolver com base em NRQL desde o início).

Como observação, a OpenAI adotou recentemente uma abordagem semelhante com seu novo plug-in de interpretação de código, onde o código sugerido é executado para garantir sua correção.

Estratégia 2: combate às alucinações: a geração aumentada de recuperação (Retrieval-augmented generation, RAG) e reenquadramento da tarefa

Sempre que mencionávamos o nosso trabalho com IA generativa a colegas ou amigos, eles expressavam uma preocupação comum: "E as alucinações?" 

As alucinações referem-se a uma armadilha conhecida destes modelos generativos de IA, que é a sua tendência de inventar fatos com muita confiança. Essencialmente, as respostas são sempre apresentadas com confiança, independentemente de serem precisas ou corretas (considere o nosso exemplo de alucinações sintáticas). Além disso, os modelos da OpenAI têm um limite de conhecimento que limita o seu conhecimento incorporado. 

Para a New Relic AI (atualmente impulsionada inteiramente com GPT-4), esse problema é especialmente relevante ao responder perguntas gerais ou baseadas em conhecimento sobre a New Relic. Nosso objetivo é fornecer informações 100% precisas e atualizadas em todas as nossas respostas.

Uso de RAG

A geração aumentada de recuperação (RAG) é agora uma prática comum, estabelecida para lidar com alucinações. Ela envolve recuperar informações relevantes de um banco de dados externo e incorporá-las ao prompt do modelo de linguagem. O raciocínio por trás disso é simples: se você não tiver certeza se o conhecimento integrado do seu modelo é preciso para o seu caso de uso (o que geralmente é o caso) e como você sabe que ele não contém os fatos mais recentes, é possível trazer os fatos para o modelo a partir de uma fonte externa. Com a New Relic AI, essa fonte externa são nossos documentos armazenados em um banco de dados vetorial da Pinecone.

Reenquadramento da tarefa

Depois de trazermos o contexto relevante para o modelo com RAG, precisamos garantir que o modelo realmente se apoia nessa tecnologia, em vez de responder a partir do conhecimento incorporado. Isso significa ajustar a forma como apresentamos a pergunta do usuário ao modelo quando a pergunta está relacionada ao conhecimento geral da New Relic.

Para ilustrar isso, vamos usar um exemplo: Imagine que você recebeu uma tarefa com instruções específicas. No primeiro cenário, você simplesmente precisa responder a uma pergunta como: “Quem foi o terceiro presidente dos Estados Unidos?” Com esta frase, é razoável presumir que a resposta esperada use como base seu conhecimento prévio. Agora, imagine um segundo cenário onde a mesma pergunta é apresentada, mas você também recebe algum texto que pode servir de alguma ajuda. Neste caso, empregamos a RAG e, se o nosso objetivo for maximizar a precisão da resposta, esta abordagem provavelmente retornaria melhores resultados. Finalmente, vamos dar um passo além. Considere uma terceira configuração onde suas instruções são: “Aqui está um texto; sua tarefa é determinar se a resposta à pergunta ‘Quem foi o terceiro presidente dos Estados Unidos?’ pode ser encontrada o texto e, em caso afirmativo, fornecer uma explicação”. A terceira configuração é uma tarefa totalmente diferente da primeira, uma vez que se concentra na compreensão do texto, e não na recuperação do conhecimento.

Como a precisão do conhecimento é uma armadilha potencial da IA generativa (alucinações), e o resumo e a compreensão do texto são seus pontos fortes, formulamos nossa sugestão seguindo o conceito da terceira configuração.

Estratégia 3: promoção da confiabilidade por meio da transparência e da comunicação clara

Uma etapa adicional que adotamos para aumentar a confiabilidade da New Relic AI foi o fornecimento das informações de que os usuários precisam para avaliar as respostas por conta própria. Se oferecermos respostas sem contexto, os usuários podem se sentir inseguros quanto à sua validade. Para resolver isso, enfatizamos a comunicação clara durante todo o processo, adicionando etapas intermediárias em vários estágios do fluxo de perguntas e respostas.

Por exemplo, quando os usuários perguntam sobre seus próprios dados (por exemplo, "Quantas transações eu fiz hoje?") a New Relic AI primeiro informa que a pergunta será convertida em uma consulta NRQL. Dessa forma, os usuários sabem que estamos usando o NRQL para responder às suas perguntas e já podem avaliar se essa abordagem faz sentido. Em seguida, a IA fornece a consulta gerada (por exemplo, SELECT count(*) FROM Transaction SINCE TODAY, ou seja, SELECIONE o número de transações DESDE HOJE), oferece uma visualização criada consultando a NerdGraph — nossa API GraphQL — com a consulta gerada e, finalmente, apresenta a resposta com base nos dados retornados do NRDB (por exemplo, "16.443.606.861"). Ao compartilhar as mesmas informações usadas para obter a resposta final, os usuários podem compreender e confiar mais na resposta. Mesmo que não sejam proficientes em NRQL, a sintaxe da consulta e as palavras-chave costumam ser autoexplicativas, facilitando a compreensão.

Da mesma forma, quando a IA responde a uma pergunta de conhecimento sobre a New Relic, ela primeiro informa ao usuário que pretende usar uma pesquisa nos documentos e depois fornece links para as referências usadas junto com a resposta.

Atenção ao feedback

Nossos usuários atuam como juízes finais dos recursos da New Relic e coletamos feedback continuamente. Somos gratos a todos os usuários externos e internos que contribuem com seus insights valiosos. 

Se você estiver usando o New Relic AI, adoraríamos ouvir sua opinião. Continue nos ajudando a melhorar ao classificar suas respostas com os botões de polegar para cima/para baixo disponíveis em cada resposta ou enviando comentários adicionais em Help > Give Us Feedback (Ajuda > Ofereça seu feedback) no painel de navegação esquerdo.