Há um burburinho e entusiasmo significativos em torno do uso de copilotos de IA para reduzir o trabalho manual, melhorar a produtividade do desenvolvedor de software com geradores de código e inovar com IA generativa. As oportunidades de negócios estão levando muitas equipes de desenvolvimento a construir bases de conhecimento com bancos de dados vetoriais e incorporar grandes modelos de linguagem (LLMs) em seus aplicativos.
Alguns casos de uso gerais para a construção de aplicativos com recursos LLM incluem experiências de pesquisa, geração de conteúdo, resumo de documentos, chatbots e aplicativos de suporte ao cliente. Os exemplos da indústria incluem o desenvolvimento de portais de pacientes na área da saúde, a melhoria dos fluxos de trabalho dos banqueiros juniores nos serviços financeiros e a preparação do caminho para o futuro da fábrica na indústria transformadora.
As empresas que investem em LLMs enfrentam alguns obstáculos iniciais, incluindo a melhoria da governança de dados em torno da qualidade dos dados, a seleção de uma arquitetura LLM, a abordagem dos riscos de segurança e o desenvolvimento de um plano de infraestrutura em nuvem.
Minhas maiores preocupações residem em como as organizações planejam testar seus modelos e aplicações de LLM. As questões que estão nos noticiários incluem uma companhia aérea honrando um reembolso oferecido por seu chatbot, ações judiciais por violação de direitos autorais e redução do risco de alucinações.
“Testar modelos LLM requer uma abordagem multifacetada que vai além do rigor técnico, diz Amit Jain, cofundador e COO da Roadz. “As equipes devem se envolver em melhorias iterativas e criar documentação detalhada para memorizar o processo de desenvolvimento do modelo, metodologias de teste e métricas de desempenho. Envolver-se com a comunidade de investigação para avaliar e partilhar as melhores práticas também é eficaz.”
4 estratégias de teste para LLMs incorporados
As equipes de desenvolvimento precisam de uma estratégia de testes LLM. Considere como ponto de partida as seguintes práticas para testar LLMs incorporados em aplicativos customizados:
- Crie dados de teste para ampliar o controle de qualidade do software
- Automatize os testes de qualidade e desempenho do modelo
- Avalie a qualidade do RAG com base no caso de uso
- Desenvolva métricas e benchmarks de qualidade
Crie dados de teste para ampliar o controle de qualidade do software
A maioria das equipes de desenvolvimento não criará LLMs generalizados e desenvolverá aplicativos para usuários finais e casos de uso específicos. Para desenvolver uma estratégia de testes, as equipes precisam entender as personas dos usuários, os objetivos, o fluxo de trabalho e os benchmarks de qualidade envolvidos.
“O primeiro requisito para testar LLMs é saber a tarefa que o LLM deve ser capaz de resolver”, diz Jakob Praher, CTO da Mindbreeze. “Para essas tarefas, seriam construídos conjuntos de dados de teste para estabelecer métricas para o desempenho do LLM. Então, pode-se otimizar os prompts ou ajustar o modelo sistematicamente.”
Por exemplo, um LLM projetado para atendimento ao cliente pode incluir um conjunto de dados de teste de problemas comuns do usuário e as melhores respostas. Outros casos de uso do LLM podem não ter meios diretos para avaliar os resultados, mas os desenvolvedores ainda podem usar os dados de teste para realizar validações.
“A maneira mais confiável de testar um LLM é criar dados de teste relevantes, mas o desafio é o custo e o tempo para criar tal conjunto de dados”, diz Kishore Gadiraju, vice-presidente de engenharia da Solix Technologies. “Como qualquer outro software, o teste LLM inclui testes unitários, funcionais, de regressão e de desempenho. Além disso, os testes LLM exigem testes de parcialidade, justiça, segurança, controle de conteúdo e explicabilidade.
Automatize os testes de qualidade e desempenho do modelo
Assim que houver um conjunto de dados de teste, as equipes de desenvolvimento deverão considerar diversas abordagens de teste, dependendo das metas de qualidade, dos riscos e das considerações de custo. “As empresas estão começando a adotar métodos de avaliação automatizados, em vez da avaliação humana, devido à sua eficiência de tempo e custos”, afirma Olga Megorskaya, CEO da Toloka AI. “No entanto, as empresas ainda devem contratar especialistas de domínio para situações em que é crucial captar nuances que os sistemas automatizados podem ignorar.”
Encontrar o equilíbrio certo entre automação e testes humanos não é fácil para desenvolvedores ou cientistas de dados. “Sugerimos uma combinação de benchmarking automatizado para cada etapa do processo de modelagem e, em seguida, uma mistura de automação e verificação manual para o sistema ponta a ponta”, disse Steven Hillion, vice-presidente sênior de dados e IA da Astronomer. “Para os principais lançamentos de aplicativos, você quase sempre desejará uma rodada final de validação manual em relação ao seu conjunto de testes. Isso é especialmente verdadeiro se você introduziu novas incorporações, novos modelos ou novos prompts que espera aumentar o nível geral de qualidade, porque muitas vezes as melhorias são sutis ou subjetivas.”
O teste manual é uma medida prudente até que existam plataformas robustas de teste LLM. Nikolaos Vasiloglou, vice-presidente de pesquisa de ML da RelationalAI, afirma: “Não existem plataformas de última geração para testes sistemáticos. Quando se trata de confiabilidade e alucinação, um bot gerador de perguntas com gráfico de conhecimento é a melhor solução.”
Gadiraju compartilha as seguintes bibliotecas e ferramentas de teste LLM:
- AI Fairness 360, um kit de ferramentas de código aberto usado para examinar, relatar e mitigar discriminação e preconceito em modelos de aprendizado de máquina
- DeepEval, uma estrutura de avaliação LLM de código aberto semelhante ao Pytest, mas especializada em resultados de teste de unidade LLM
- Baserun, uma ferramenta para ajudar a depurar, testar e melhorar modelos iterativamente
- Nvidia NeMo-Guardrails, um kit de ferramentas de código aberto para adicionar restrições programáveis nas saídas de um LLM
Monica Romila, diretora de ferramentas de ciência de dados e tempos de execução da IBM Data and AI, compartilhou duas áreas de teste para LLMs em casos de uso corporativo:
- Avaliação da qualidade do modelo avalia a qualidade do modelo usando conjuntos de dados acadêmicos e internos para casos de uso como classificação, extração, resumo, geração e geração aumentada de recuperação (RAG).
- Teste de desempenho do modelo valida a latência do modelo (tempo decorrido para transmissão de dados) e o throughput (quantidade de dados processados em um determinado período de tempo).
Romila diz que os testes de desempenho dependem de dois parâmetros críticos: o número de solicitações simultâneas e o número de tokens gerados (pedaços de texto que um modelo usa). “É importante testar vários tamanhos e tipos de carga e comparar o desempenho com os modelos existentes para ver se são necessárias atualizações.”
Os arquitetos de DevOps e de nuvem devem considerar os requisitos de infraestrutura para conduzir testes de desempenho e carga de aplicativos LLM. “A implantação de infraestrutura de teste para grandes modelos de linguagem envolve a configuração de recursos computacionais robustos, soluções de armazenamento e estruturas de teste”, afirma Heather Sundheim, diretora-gerente de engenharia de soluções da SADA. “Ferramentas de provisionamento automatizado como Terraform e sistemas de controle de versão como Git desempenham papéis essenciais em implantações reproduzíveis e colaboração eficaz, enfatizando a importância de equilibrar recursos, armazenamento, estratégias de implantação e ferramentas de colaboração para testes LLM confiáveis.”
Avalie a qualidade do RAG com base no caso de uso
Algumas técnicas para melhorar a precisão do LLM incluem centralizar o conteúdo, atualizar modelos com os dados mais recentes e usar RAG no pipeline de consulta. Os RAGs são importantes para casar o poder dos LLMs com as informações proprietárias da empresa.
Em um aplicativo LLM típico, o usuário insere um prompt, o aplicativo o envia para o LLM e o LLM gera uma resposta que o aplicativo envia de volta ao usuário. Com o RAG, o aplicativo primeiro envia o prompt para um banco de dados de informações, como um mecanismo de pesquisa ou um banco de dados vetorial, para recuperar informações relevantes relacionadas ao assunto. O aplicativo envia o prompt e essas informações contextuais ao LLM, que ele usa para formular uma resposta. As OAR limitam assim a resposta do LLM a informações relevantes e contextuais.
Igor Jablokov, CEO e fundador da Pryon, afirma: “O RAG é mais plausível para implantações de estilo empresarial onde é necessária uma atribuição verificável ao conteúdo de origem, especialmente em infraestruturas críticas”.
Foi demonstrado que o uso de RAG com um LLM reduz as alucinações e melhora a precisão. No entanto, o uso do RAG também adiciona um novo componente que requer testes de sua relevância e desempenho. Os tipos de testes dependem de quão fácil é avaliar as respostas do RAG e do LLM e até que ponto as equipes de desenvolvimento podem aproveitar o feedback do usuário final.
Falei recentemente com Deon Nicholas, CEO da Forethought, sobre as opções para avaliar RAGs usados na IA generativa de suporte ao cliente de sua empresa. Ele compartilhou três abordagens diferentes:
- Conjuntos de dados padrão ouro ou conjuntos de dados rotulados por humanos de respostas corretas para consultas que servem como referência para o desempenho do modelo
- Aprendizagem por reforço ou teste do modelo em cenários do mundo real, como perguntar o nível de satisfação de um usuário após interagir com um chatbot
- Redes adversárias, ou treinamento de um LLM secundário para avaliar o desempenho do primário, que fornece uma avaliação automatizada por não depender de feedback humano
“Cada método traz vantagens e desvantagens, equilibrando o esforço humano contra o risco de ignorar erros”, diz Nicholas. “Os melhores sistemas aproveitam esses métodos em todos os componentes do sistema para minimizar erros e promover uma implantação robusta de IA.”
Desenvolva métricas e benchmarks de qualidade
Depois de ter dados de teste, um LLM novo ou atualizado e uma estratégia de teste, a próxima etapa é validar a qualidade em relação aos objetivos declarados.
“Para garantir o desenvolvimento de IA segura e confiável, é importante criar KPIs específicos e mensuráveis e estabelecer proteções definidas”, diz Atena Reyhani, diretora de produtos da ContractPodAi. “Alguns critérios a serem considerados são precisão, consistência, velocidade e relevância para casos de uso específicos de domínio. Os desenvolvedores precisam avaliar todo o ecossistema LLM e o modelo operacional no domínio alvo para garantir que ele forneça resultados precisos, relevantes e abrangentes.”
Uma ferramenta para aprender é o Chatbot Arena, um ambiente aberto para comparação de resultados de LLMs. Ele usa o Elo Rating System, um algoritmo frequentemente usado para classificar jogadores em jogos competitivos, mas funciona bem quando uma pessoa avalia a resposta de diferentes algoritmos ou versões LLM.
“A avaliação humana é uma parte central dos testes, especialmente ao proteger um LLM para consultas que aparecem na natureza”, diz Joe Regensburger, vice-presidente de pesquisa da Immuta. “O Chatbot Arena é um exemplo de teste de crowdsourcing, e esses tipos de estudos com avaliadores humanos podem fornecer um ciclo de feedback importante para incorporar o feedback do usuário.”
Romila, da IBM Data and AI, compartilhou três métricas a serem consideradas, dependendo do caso de uso do LLM.
- A pontuação F1 é uma pontuação composta em torno de precisão e recall e se aplica quando LLMs são usados para classificações ou previsões. Por exemplo, um LLM de suporte ao cliente pode ser avaliado com base em quão bem ele recomenda um curso de ação.
- RougeL pode ser usado para testar RAG e LLMs para casos de uso de resumo, mas isso geralmente precisa de um resumo criado por humanos para comparar os resultados.
- sacreBLEU é um método originalmente usado para testar traduções de idiomas que agora está sendo usado para avaliação quantitativa de respostas LLM, juntamente com outros métodos como TER, ChrF e BERTScore.
Algumas indústrias têm métricas de qualidade e risco a serem consideradas. Karthik Sj, vice-presidente de gerenciamento de produtos e marketing da Aisera, afirma: “Na educação, avaliar a adequação à idade e evitar a toxicidade é crucial, mas em aplicações voltadas para o consumidor, priorize a relevância e a latência da resposta”.
Os testes não terminam quando um modelo é implantado, e os cientistas de dados devem buscar reações do usuário final, métricas de desempenho e outros comentários para melhorar os modelos. “Após a implantação, a integração dos resultados com a análise de comportamento torna-se crucial, oferecendo feedback rápido e uma medida mais clara do desempenho do modelo”, afirma Dustin Pearce, vice-presidente de engenharia e CISO da Amplitude.
Uma etapa importante na preparação para produção é usar sinalizadores de recursos no aplicativo. As empresas de tecnologia de IA Anthropic, Character.ai, Notion e Brex constroem seus produtos com sinalizadores de recursos para testar o aplicativo de forma colaborativa, introduzindo lentamente recursos para grandes grupos e direcionando experimentos para diferentes segmentos de usuários.
Embora existam técnicas emergentes para validar aplicações LLM, nenhuma delas é fácil de implementar ou fornece resultados definitivos. Por enquanto, apenas construir um aplicativo com integrações RAG e LLM pode ser a parte mais fácil em comparação com o trabalho necessário para testá-lo e oferecer suporte a melhorias.