Avaliação de ponta a ponta de modelo de linguagem grande
Nesta fase, avalia-se a sua solução de geração de Retrieval-Augmented (RAG) examinando os prompts de usuário esperados que contêm os dados de suporte recuperados em comparação com o modelo de linguagem. Antes de chegar a esta fase, você deve concluir as fases anteriores. Você precisa coletar seus documentos de teste e consultas, fragmentar seus documentos de teste, enriquecer os blocos, incorporar os blocos, criar um índice de pesquisa e implementar uma estratégia de pesquisa. Em seguida, você deve avaliar cada uma dessas fases e garantir que os resultados atendam às suas expectativas. Neste ponto, você deve ter certeza de que sua solução retorna dados de aterramento relevantes para uma consulta de usuário.
Esses dados de fundamentação formam o contexto para o prompt que se envia ao modelo de linguagem para responder à consulta do usuário. Estratégias de engenharia imediatas estão além do escopo deste artigo. Este artigo aborda a avaliação da chamada engenhada para o modelo de linguagem a partir da perspetiva dos dados de base. Este artigo aborda as métricas comuns de avaliação de modelos de linguagem e as métricas específicas de similaridade e avaliação que se podem usar em cálculos de avaliação de modelo ou como métricas autónomas.
Este artigo não tenta fornecer uma lista exaustiva de métricas de modelo de linguagem ou métricas de semelhança e avaliação. O que é importante para você tirar deste artigo é que existem várias métricas que cada uma tem casos de uso distintos. Só você tem uma compreensão holística da sua carga de trabalho. Você e seus cientistas de dados devem determinar o que deseja medir e quais métricas são apropriadas.
Este artigo faz parte de uma série. Leia a introdução primeiro.
Métricas de avaliação de modelos linguísticos
Há várias métricas que você deve usar para avaliar a resposta do modelo de linguagem, incluindo fundamentação, completude, utilização, relevância e correção. Como o objetivo geral do padrão RAG é fornecer dados relevantes como contexto para um modelo de linguagem ao gerar uma resposta, idealmente, cada uma das métricas acima deve pontuar altamente. No entanto, dependendo da sua carga de trabalho, pode ser necessário priorizar uma em detrimento da outra.
Importante
As respostas do modelo de linguagem são não determinísticas, o que significa que o mesmo prompt para um modelo de idioma geralmente retorna resultados diferentes. Este conceito é importante para entender quando você usa um modelo de linguagem como parte do seu processo de avaliação. Considere o uso de um intervalo de destino em vez de um único destino ao avaliar o uso do modelo de linguagem.
Fundamentação
A fundamentação, por vezes referida como fidelidade, mede se a resposta se baseia completamente no contexto. Ele valida que a resposta não está usando informações diferentes das que existem no contexto. Uma métrica de baixa fundamentação indica que o modelo de linguagem pode estar emitindo respostas imprecisas ou sem sentido.
Calcular a fundamentação
Use os seguintes métodos para calcular a fundamentação das respostas:
- Azure IA Segurança de Conteúdo – fundamentação baseada é um modelo personalizado que usa inferência de linguagem natural para determinar se as declarações, ou neste caso fragmentos, são baseadas no contexto do documento de origem.
- Fundamentação baseada em modelo de linguagem de grande escala utiliza um modelo de linguagem para determinar o nível de fundamentação da resposta.
- Biblioteca de fidelidade de Ragas.
- Cálculo de precisão do MLflow.
Avalie a fundamentação
Um cálculo de baixa fundamentação indica que o modelo de linguagem não vê os blocos como relevantes. Você deve avaliar se precisa adicionar dados à sua coleção, ajustar sua estratégia de fragmentação ou tamanho de bloco ou ajustar seu prompt.
Exaustividade
de integridade mede se a resposta responde a todas as partes da consulta. A completude ajuda você a entender se as partes no contexto são pertinentes, se relacionam diretamente com a consulta e fornecem uma resposta completa.
Calcular a integridade
Use os seguintes métodos para calcular a completude das respostas:
- pontuação de recuperação assistida por IA levando.
- Um modelo linguístico pode ajudá-lo a medir a qualidade da resposta do modelo linguístico. Você precisa da pergunta, do contexto e da resposta gerada para fazer essa medição. As etapas a seguir descrevem o processo de alto nível:
- Use o modelo de linguagem para reformular, resumir ou simplificar a pergunta. Esta etapa identifica a intenção.
- Peça ao modelo para verificar se a intenção ou a resposta à intenção é encontrada ou pode ser derivada dos documentos recuperados. A resposta pode ser "sim" ou "não" para cada documento. As respostas que começam com "sim" indicam que os documentos recuperados são relevantes para a intenção ou resposta à intenção.
- Calcule a proporção das intenções que têm uma resposta que começa com "sim".
- Quadra o placar para destacar os erros.
Avalie a integridade
Se a completude for baixa, comece a trabalhar para aumentá-la avaliando seu modelo de incorporação. Compare o vocabulário do seu conteúdo com o vocabulário do seu modelo de incorporação. Determine se você precisa de um modelo de incorporação específico do domínio ou se deve ajustar um modelo existente. O próximo passo é avaliar sua estratégia de fragmentação. Se utilizares uma divisão de tamanho fixo, considera aumentar o tamanho do fragmento. Você também pode avaliar se os dados do teste têm dados suficientes para resolver completamente a questão.
Utilização
Utilização mede o grau em que a resposta consiste em informações dos blocos no contexto. O objetivo é determinar até que ponto cada parte faz parte da resposta. A baixa utilização indica que os resultados podem não ser relevantes para a consulta. Você deve avaliar a utilização juntamente com a completude.
Calcular a utilização
Use um modelo de linguagem para calcular a utilização. Você pode passar a resposta e o contexto que contém as partes para o modelo de linguagem. Você pode pedir ao modelo de linguagem para determinar o número de segmentos que comportam a resposta.
Avaliar a utilização
A tabela a seguir fornece orientações sobre como avaliar a completude e a utilização.
Pertinência
Relevância mede até que ponto a resposta do modelo de linguagem é pertinente e relacionada à consulta.
Calcular relevância
Use os seguintes métodos para calcular a relevância das respostas:
- assistido por IA: relevância no Azure AI Foundry
- Biblioteca de Relevância de Respostas Ragas
- Cálculo da relevância do MLflow
Observação
Você pode usar o portal do Azure AI Foundry para executar os cálculos ou usar as orientações neste artigo para calcular a relevância por conta própria.
Avaliar a relevância
Quando a relevância for baixa, execute as seguintes tarefas:
- Certifique-se de que as partes fornecidas ao modelo de linguagem sejam relevantes.
- Determine se quaisquer partes relevantes e viáveis não serão devolvidas. Se você descobrir essas partes, avalie seu modelo de incorporação.
- Se não houver partes viáveis, verifique se existem dados relevantes. Se isso acontecer, avalie sua estratégia de fragmentação.
- Se troços relevantes são retornados, avalie o seu prompt.
Os métodos de avaliação como completude saída devem fornecer pontuações que sejam semelhantes à pontuação de relevância.
Correção
Correção mede até que ponto a resposta é precisa e baseada em factos.
Calcular a exatidão
Existem várias maneiras de avaliar a correção, incluindo:
- Modelo de linguagem - Use um modelo de linguagem para calcular a correção. Você pode passar a resposta para o modelo de linguagem, idealmente um modelo de linguagem diferente daquele usado para gerar o resultado. Pode solicitar ao modelo linguístico que verifique se a resposta é factual ou não.
- Fonte externa confiável - Use uma fonte externa confiável para validar a correção da resposta. Dependendo da API da sua fonte confiável, você pode usar a fonte confiável sozinha ou com um modelo de linguagem.
Avalie a correção
Quando a correção estiver baixa, execute as seguintes tarefas:
- Certifique-se de que as partes fornecidas ao modelo de linguagem estejam factualmente corretas e que não haja viés de dados. Pode ser necessário corrigir quaisquer problemas nos documentos ou no conteúdo de origem.
- Se os fragmentos estiverem factualmente corretos, avalie o seu prompt.
- Avalie se há imprecisões herdadas no modelo que precisam ser superadas com dados de fundamentação factuais adicionais ou ajustes finos.
Semelhança e métricas de avaliação
Existem centenas de semelhanças e métricas de avaliação que você pode usar em ciência de dados. Alguns algoritmos são específicos de um domínio, como a tradução de fala para texto ou de idioma para idioma. Cada algoritmo tem uma estratégia única para calcular sua métrica.
Os cientistas de dados determinam o que você deseja medir e qual métrica ou combinação de métricas você pode usar para medi-lo. Por exemplo, para a tradução de idiomas, a métrica bilingual evaluation understudy (BLEU) verifica quantos n-gramas aparecem tanto na tradução automática quanto na tradução humana para medir a semelhança com base no fato de as traduções usarem as mesmas palavras. A semelhança cosina usa incorporações entre as traduções automática e humana para medir a semelhança semântica. Se o seu objetivo é ter alta semelhança semântica e usar palavras semelhantes à tradução humana, você quer uma pontuação BLEU alta com alta semelhança de cosseno. Se apenas se preocupa com a semelhança semântica, concentre-se na semelhança de cosseno.
A lista a seguir contém uma amostra de semelhança comum e métricas de avaliação. Observe que as métricas de semelhança listadas são descritas como baseadas em token, em sequência ou em edição. Essas descrições ilustram qual abordagem as métricas usam para calcular a semelhança. A lista também contém três algoritmos para avaliar a qualidade da tradução de texto de um idioma para outro.
- Longest common substring é um algoritmo baseado em sequência que encontra a maior substring comum entre duas strings. A porcentagem de substring comum mais longa pega a substring comum mais longa e a divide pelo número de caracteres da string de entrada menor ou maior.
- Subsequência Comum Mais Longa (LCS) é um algoritmo baseado em sequência que encontra a subsequência mais longa entre duas cadeias de caracteres. O LCS não exige que as subsequências estejam em ordem consecutiva.
- Cosine Semelhança é um algoritmo baseado em tokens que calcula o cosseno do ângulo entre os dois vetores.
- Jaro-Winkler distância é um algoritmo baseado em edição que conta o número mínimo de passos para transformar uma cadeia de caracteres em outra.
- A distância de Hamming é um algoritmo baseado em edição que mede o número mínimo de substituições necessárias para transformar uma cadeia de caracteres em outra.
- índice de Jaccard é um algoritmo baseado em token que calcula a semelhança dividindo a interseção de duas cadeias de caracteres pela união dessas cadeias de caracteres.
- distância de Levenshtein é um algoritmo baseado em edição que calcula a semelhança determinando o número mínimo de edições de um único caractere que são necessárias para transformar uma cadeia de caracteres em outra.
- BLEU avalia a qualidade do texto resultante da tradução automática de uma língua para outra. O BLEU calcula a sobreposição de n-gramas entre uma tradução automática e uma tradução de qualidade humana para fazer esta avaliação.
- ROUGE é uma métrica que compara uma tradução automática de uma língua para outra com uma tradução criada por humanos. Existem várias variantes do ROUGE que usam a sobreposição de n-gramas, skip-bigramas ou subsequência comum mais longa.
- METEOR avalia a qualidade do texto que é o resultado da tradução automática, observando correspondências exatas, correspondências após derivação, sinônimos, paráfrase e alinhamento.
Para obter mais informações sobre semelhança comum e métricas de avaliação, consulte os seguintes recursos:
Usando várias métricas de avaliação juntas
Você deve usar as métricas de avaliação do modelo de linguagem juntas para obter uma melhor compreensão do desempenho da sua solução RAG. Seguem-se vários exemplos de utilização conjunta de várias métricas de avaliação.
Fundamentação e correção
As métricas de fundamentação e correção juntas ajudam a determinar se o sistema está interpretando e usando com precisão o contexto. Se a fundamentação é alta, mas a correção é baixa, isso significa que o modelo de linguagem está usando o contexto, mas fornecendo uma resposta incorreta. A resposta incorreta pode ser devido ao uso inadequado do contexto ou a problemas com os dados de origem. Por exemplo, se a fundamentação for 0,9, mas a correção for 0,4, isso indica que o sistema está referenciando o material de origem correto, mas tirando conclusões incorretas. Considere uma resposta afirmando "Einstein desenvolveu a mecânica quântica" com base em um contexto que menciona separadamente Einstein e a mecânica quântica. Esta resposta é fundamentada, mas factualmente incorreta.
Essa combinação de métricas é aquela em que priorizar um sobre o outro pode ser muito importante para sua carga de trabalho específica. Por exemplo, se os dados de origem contiverem informações potencialmente falsas desde a conceção e pode ser crítico para o sistema reter essas informações falsas nas suas respostas. Nesse caso, você deseja priorizar uma resposta fundamentada sobre uma resposta correta. Em outros casos, sua carga de trabalho prefere que os dados de contexto sejam consultados, mas a correção final ainda é a prioridade.
Utilização e completude
As métricas de utilização e completude juntas ajudam a avaliar a eficácia do sistema de recuperação. Alta utilização (0,9) com baixa completude (0,3) indica que o sistema recupera informações precisas, mas incompletas. Por exemplo, quando questionado sobre as causas da Segunda Guerra Mundial, o sistema pode perfeitamente recuperar informações sobre a invasão da Polônia, mas perder outros fatores cruciais. Esse cenário pode indicar que há partes com informações relevantes que não foram usadas como parte do contexto. Para resolver este cenário, considere retornar mais fragmentos, avaliar a sua estratégia de classificação de fragmentos e avaliar o seu prompt.
Fundamentação, utilização e semelhança
As métricas de fundamentação, utilização e semelhança juntas ajudam a identificar o quão bem o sistema mantém a verdade enquanto transforma as informações. Alta fundamentação (0,9) e utilização (0,9) com baixa similaridade (0,3) indicam que o sistema está a usar dados de fundamentação precisos, mas a fazer paráfrases mal. Para resolver esse cenário, avalie seu prompt. Modifique o prompt e teste os resultados.
Documentação, relatórios e agregação
Você deve documentar os hiperparâmetros escolhidos para um experimento e as métricas de avaliação resultantes para que possa entender como os hiperparâmetros afetam seus resultados. Você deve documentar hiperparâmetros e resultados em níveis granulares, como incorporação ou avaliação de pesquisa, e em um nível de macro, como testar todo o sistema de ponta a ponta.
Durante o design e o desenvolvimento, você poderá acompanhar os hiperparâmetros e os resultados manualmente. No entanto, a execução de várias avaliações em todo o documento de teste e na coleção de consultas de teste pode envolver centenas de execuções de avaliação e milhares de resultados. Você deve automatizar a persistência de parâmetros e resultados para suas avaliações.
Depois que os hiperparâmetros e resultados persistirem, você deve considerar a criação de gráficos para ajudá-lo a visualizar como os hiperparâmetros afetam as métricas. A visualização ajuda a identificar quais opções levam a quedas ou picos de desempenho.
É importante entender que projetar e avaliar sua solução RAG não é uma operação única. A sua coleção de documentos muda ao longo do tempo. As perguntas que seus clientes fazem mudam com o tempo, e sua compreensão dos tipos de perguntas evolui à medida que você aprende com a produção. Deve rever o processo várias vezes. Manter a documentação de avaliações passadas é fundamental para futuros esforços de conceção e avaliação.
O Acelerador de Experiências RAG
Estes artigos orientam você por todas as fases e escolhas de design envolvidas no projeto e na avaliação de uma solução RAG. Os artigos se concentram no que você deve fazer, não em como fazê-lo. Uma equipe de engenharia que trabalha com os principais clientes da Microsoft desenvolveu uma ferramenta chamada RAG Experiment Accelerator. O RAG Experiment Accelerator é uma estrutura de experimentação de última geração. Ele foi projetado para otimizar e melhorar o desenvolvimento de soluções RAG. O RAG Experiment Accelerator capacita pesquisadores e desenvolvedores a explorar e ajustar de forma eficiente os componentes críticos que impulsionam o desempenho do RAG. Esta inovação resulta, em última análise, numa geração de texto mais precisa e coerente.
O RAG Experiment Accelerator usa uma interface de linha de comando, para que você possa experimentar facilmente vários modelos de incorporação, refinar estratégias de fragmentação e avaliar diferentes abordagens de pesquisa para desbloquear todo o potencial do seu sistema RAG. Ele permite que você se concentre nos principais aspetos do desenvolvimento RAG usando uma configuração simples para ajuste de hiperparâmetros.
A estrutura também fornece suporte abrangente para a configuração do modelo de linguagem. Este suporte ajuda-o a encontrar o equilíbrio perfeito entre a complexidade do modelo e a qualidade da geração. Essa ferramenta ajuda você a simplificar o processo de experimentação, economizar tempo e melhorar significativamente o desempenho de seus modelos RAG.
RAG com Vision Application Framework
Grande parte da orientação neste artigo sobre como trabalhar com mídia em sua solução RAG veio de outra equipe de engenharia que trabalha com os principais clientes da Microsoft. Esta equipe escreveu uma estrutura chamada RAG com Vision Application Framework. Esta estrutura fornece um pipeline RAG baseado em Python que processa conteúdo textual e de imagem de documentos MHTML.
A estrutura carrega, fragmenta e enriquece texto e imagens de arquivos MHTML. Em seguida, ingere os fragmentos no Azure AI Search. A estrutura implementa cache para enriquecimento de imagem para processamento e eficiência de custos. A estrutura também incorpora a avaliação como parte do pipeline.
Contribuidores
Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.
- Raouf Aliouat | Engenheiro de Software II
- Rob Bagby | Líder de conteúdo do Centro de Arquitetura Principal
- Paul Butler | Engenheiro de Software
- Prabal Deb | Engenheiro de Software Principal
- Soubhi Hadri | Cientista de Dados Sênior
- Ritesh Modi | Engenheiro Principal
- Ryan Pfalz | Gestor de Programa Técnico Sénior
- Mahdi Setayesh | Engenheiro de Software Principal
- Randy Thurman | Principal Arquiteto de Soluções de Nuvem de IA