Quando chegar a essa fase, você já terá gerado seu índice de pesquisa e determinado as pesquisas que deseja realizar. Esta fase aborda o processo de avaliação de sua solução de Geração Aumentada de Recuperação (RAG) da perspectiva de avaliar os prompts de usuário esperados contendo os dados de fundamentação recuperados em relação ao modelo de linguagem grande. Antes de alcançar essa fase, você deve concluir a fase de preparação em que coleta seus documentos de teste e consultas, agrupa seus documentos de teste, enriquece os agrupamentos, incorpora os agrupamentos, cria um índice de pesquisa e implementa uma estratégia de pesquisa. Você deve avaliar cada uma dessas fases e ficar satisfeito com os resultados. Nesse ponto, você deve se sentir confortável que sua solução retorna dados de fundamentação relevantes para uma consulta do usuário.
Esses dados de fundamentação formam o contexto do prompt que você envia ao modelo de linguagem grande para abordar a consulta do usuário. Estratégias de engenharia de prompt estão além do escopo deste artigo. Este artigo aborda a avaliação da chamada projetada para o modelo de linguagem grande, a partir da perspectiva dos dados de fundamentação. Este artigo aborda algumas métricas comuns de avaliação de modelos de linguagem grande e algumas métricas específicas de similaridade e de avaliação que podem ser usadas nos cálculos de avaliação de modelos de linguagem grande ou como métricas autônomas.
Este artigo não tenta fornecer uma lista exaustiva de métricas de modelo de linguagem grande nem de métricas de similaridade e de avaliação. O número dessas métricas cresce a cada dia. O que é importante você aprender com este artigo é que existem várias métricas, cada uma com seu próprio caso de uso distinto. Você é o único com uma compreensão holística da sua carga de trabalho. Você e seus cientistas de dados devem determinar o que você deseja medir e quais métricas o ajudam a realizar essa tarefa.
Este artigo faz parte de uma série. Leia a introdução.
Métricas de avaliação de modelos de linguagem grande
Há várias métricas que você pode usar para avaliar a resposta do modelo de linguagem grande, incluindo fundamentação, integridade, utilização e relevância.
Importante
As respostas do modelo de linguagem grande não são determinísticas, o que significa que o mesmo prompt para um modelo de linguagem grande pode e geralmente retornará resultados diferentes. Isso é importante entender ao usar um modelo de linguagem grande como parte do seu processo de avaliação. Considere o uso de um intervalo de destino em um único destino, ao avaliar o uso de um modelo de linguagem grande.
Fundamentação
O fundamento, às vezes chamado de fidelidade, mede se a resposta é completamente baseada 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 grande pode estar indo para um território imaginativo ou sem sentido, conhecido como alucinações.
Calculando
- A fundamentação baseada no Serviço AACS (Segurança de Conteúdo de IA do Azure) é um modelo personalizado que usa a NLI (Inferência de Linguagem Natural) para determinar se as declarações, neste caso, fragmentos, são implicadas ou não por um documento de origem.
- A fundamentação baseada em modelo de linguagem grande usa um modelo de linguagem grande para determinar o nível de fundamentação da resposta.
- Biblioteca de fidelidade de Ragas
- Cálculo de fidelidade Mlflow
Avaliação
Se a fundamentação for baixa, isso indica que o modelo de linguagem grande não vê os fragmentos como relevantes. Você deve avaliar se precisa adicionar dados ao seu corpus, ajustar sua estratégia de fragmentação ou tamanho de fragmentação ou ajustar seu prompt.
Integridade
A integridade mede se a resposta está respondendo a todas as partes da consulta. A integridade ajuda a entender se os fragmentos no contexto são pertinentes e diretamente relacionados à consulta e fornecem uma resposta completa.
Calculando
- Assistido por IA: solicitação de pontuação de recuperação
- Um modelo de linguagem grande pode ajudá-lo a medir a qualidade da resposta do modelo de linguagem grande. Você precisa da pergunta, do contexto e da resposta gerada para realizar essa medição. A seguir, temos o processo de alto nível:
- Use o modelo de linguagem grande para reformular, resumir ou simplificar a pergunta. Essa etapa identifica a intenção.
- Pergunte ao modelo para verificar se a intenção ou a resposta à intenção é encontrada ou pode ser derivada de documentos recuperados, nos quais a resposta pode ser "Não" ou "Sim" para cada documento. As respostas que começam com "Sim" indicam que os documentos recuperados são relevantes para a intenção ou resposta para a intenção.
- Calcule a proporção das intenções que têm uma resposta começando com "Sim".
- Eleve a pontuação ao quadrado para destacar os erros.
Avaliação
Se a integridade for baixa, comece avaliando seu modelo de incorporação. Compare o vocabulário do seu conteúdo com o vocabulário do modelo de incorporação escolhido. Determine se você precisa de um modelo de incorporação específico de domínio ou se precisa ajustar um modelo existente. Como próximo passo, avalie sua estratégia de fragmentação. Se estiver usando comprimento fixo, considere aumentar o tamanho da parte. Você também pode avaliar se os dados de teste têm dados suficientes para resolver completamente a questão.
Utilização
A utilização mede até que ponto a resposta é composta de informações dos blocos no contexto. O objetivo é determinar até que ponto cada fragmento faz parte da resposta. Utilização baixa, indica que seus resultados podem não ser relevantes para a consulta. A utilização deve ser avaliada ao longo da integridade lateral.
Calculando
Você pode usar um modelo de linguagem grande para calcular a utilização. Você pode passar a resposta e o contexto que contém os fragmentos para o modelo de linguagem grande. Você pode pedir ao modelo de linguagem grande para determinar o número de fragmentos que implicam a resposta.
Avaliação
A tabela a seguir fornece orientação, considerando a integridade e a utilização juntas.
Alta utilização | Baixa utilização | |
---|---|---|
Alta integridade | Nenhuma ação necessária | Nesse caso, os dados retornados são capazes de resolver a questão, mas fragmentos irrelevantes foram retornados. Considere reduzir o valor do parâmetro top-k para produzir resultados mais prováveis/determinísticos. |
Baixa integridade | Nesse caso, as partes que você está fornecendo estão sendo usadas, mas não estão abordando totalmente a questão. Considere o seguinte:
|
Nesse caso, você não está respondendo totalmente à pergunta e as partes que você está fornecendo não estão sendo bem utilizadas. Considere o seguinte para resolver esses problemas:
|
Relevância
Mede até que ponto a resposta do modelo de linguagem grande é pertinente e relacionada à consulta.
Calculando
- Assistido por IA: relevância no Estúdio de IA do Azure - Você pode usar o Estúdio de IA do Azure para executar os cálculos ou usar as diretrizes deste artigo para calcular a relevância para si mesmo.
- Biblioteca de relevância de resposta de Ragas
- Cálculo de relevância do Mlflow
Avaliação
Quando a relevância for baixa, avalie o seguinte:
- Certifique-se de que os fragmentos fornecidos para o modelo de linguagem grande sejam relevantes.
- Determine se há partes viáveis que são relevantes que não foram retornadas. Se houver, 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 fragmentos relevantes foram retornados, avalie seu prompt.
Outros métodos de avaliação, como integridade, devem ser calculados e devem gerar pontuações semelhantes às observadas na medida de relevância.
Similaridade e métricas de avaliação
Como mencionado na introdução, existem centenas de métricas de similaridade e de avaliação usadas na ciência de dados. Alguns algoritmos são específicos para um domínio, como conversão de fala em texto ou tradução de idioma para idioma. Cada algoritmo tem uma estratégia única para calcular sua métrica.
O cientista de dados determina o que você deseja medir e qual métrica ou combinação de métricas você pode usar para essa medição. Por exemplo, na área de tradução de idiomas, a métrica Bleu verifica quantos n-gramas aparecem na tradução automática e na tradução humana para medir a semelhança com base no uso das mesmas palavras. A similaridade de cosseno usa incorporações entre as traduções de máquina e humana para medir a semelhança semântica. Se o seu objetivo era ter alta similaridade semântica e usar palavras semelhantes à tradução humana, seu objetivo seria uma pontuação Bleu alta com alta semelhança de cosseno alta. Se você se preocupasse apenas com a semelhança semântica, você se concentraria na semelhança de cosseno.
A lista a seguir contém uma pequena amostra de similaridade comum e de métricas de avaliação. Observe que as métricas de similaridade listadas são descritas como baseadas em token, em sequência ou em edição, ilustrando como elas usam abordagens muito diferentes para calcular a similaridade. Observe também que a lista contém três algoritmos para avaliar a qualidade da tradução de texto de um idioma para outro.
- Substring comum mais longa - Algoritmo baseado em sequência que localiza a substring comum mais longa entre duas cadeias de caracteres. A porcentagem de substrings comuns mais longas pega a substring comum mais longa e a divide pelo número de caracteres da string de entrada menor ou maior.
- LCS (Longest common subsequence, Subsequência comum mais longa) - Algoritmo baseado em sequência que localiza a subsequência mais longa entre duas strings. O LCS não exige que as subsequências estejam em ordem consecutiva.
- Similaridade de cosseno - Algoritmo baseado em token que calcula o cosseno do ângulo entre os dois vetores.
- Jaro Winkler - Algoritmo baseado em edição que conta o número mínimo de passos para transformar uma string em outra.
- Hamming - Algoritmo baseado em edição que mede o número mínimo de substituições necessárias para transformar uma string em outra.
- Jaccard - Algoritmo baseado em token que calcula a similaridade dividindo a interseção de duas strings pela união dessas strings.
- Levenshtein - Algoritmo baseado em edição que calcula a similaridade, determinando o número mínimo de edições de um único caractere necessárias para transformar uma string em outra.
- BLEU - Avalia a qualidade do texto que é o resultado da tradução automática de um idioma para outro. Bleu calcula a sobreposição de n-gramas entre uma tradução automática e uma tradução de qualidade humana para fazer essa avaliação.
- ROUGE - Compare uma tradução automática de um idioma para outro 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.
Consulte os seguintes recursos para obter métricas comuns de similaridade e de avaliação:
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 o impacto dos hiperparâmetros nos 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 macro, como testar todo o sistema de ponta a ponta.
Durante o design e o desenvolvimento, você poderá controlar os hiperparâmetros e os resultados manualmente. No entanto, ao executar várias avaliações em todo o documento de teste e corpus de consulta 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 seus hiperparâmetros e resultados tiverem persistido, você deve considerar a criação de tabelas e de gráficos para permitir que você visualize mais facilmente os efeitos que as opções de hiperparâmetros têm sobre as métricas. A exibição ajuda a identificar quais escolhas levam a quedas ou picos de desempenho.
É importante que você entenda que projetar e avaliar sua solução RAG não é uma operação única. Seu corpus de documentos mudará com o tempo. As perguntas que seus clientes estão fazendo mudarão com o tempo e sua compreensão dos tipos de perguntas evoluirá, à medida que você aprende com a produção. Você deve revisitar esse processo várias vezes. Manter a documentação de avaliações passadas é fundamental para futuros esforços de projeto e de avaliação.
O acelerador de experimentos RAG
Estes artigos o orientam por todas as fases e opções 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 Acelerador de experimento RAG. O Acelerador de experimento RAG é uma estrutura de experimentação de última geração projetada para otimizar e aprimorar o desenvolvimento de soluções de Geração Aumentada de Recuperação (RAG). O Acelerador de experimento RAG capacita pesquisadores e desenvolvedores a explorar e ajustar eficientemente os componentes críticos que impulsionam o desempenho do RAG, levando a uma geração de texto mais precisa e coerente.
Com sua interface baseada em CLI, você pode experimentar sem esforço 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 aspectos centrais do desenvolvimento do RAG, enquanto abstrai as complexidades do ajuste de hiperparâmetros usando uma configuração simples.
Além disso, a estrutura fornece suporte abrangente para configuração de modelo de linguagem grande, permitindo que você encontre o equilíbrio perfeito entre a complexidade do modelo e a qualidade da geração. Essa ferramenta permite agilizar o processo de experimentação, poupar tempo valioso e melhorar significativamente o desempenho dos seus modelos RAG.
Seja você um pesquisador experiente que ultrapassa os limites do reconhecimento de linguagem natural ou um profissional da indústria que busca aprimorar os recursos de geração de texto, essa estrutura de experimentação é a solução definitiva para acelerar sua jornada de desenvolvimento RAG. Abrace o futuro da experimentação RAG e desbloqueie o verdadeiro potencial de seus modelos com essa ferramenta de ponta.
RAG com Vision Application Framework
Grande parte das diretrizes 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. Essa equipe escreveu uma estrutura chamada RAG com Vision Application Framework. Essa estrutura fornece um pipeline de geração aumentada por recuperação (RAG) baseado em Python que processa conteúdo textual e de imagem de documentos MHTML.
A estrutura carrega, fragmenta e enriquece o texto e as imagens de arquivos MHTML e ingere as partes no Azure Search. A estrutura implementa o cache para enriquecimento de imagem para processamento e eficiência de custos. A estrutura também incorpora a avaliação como parte do pipeline.
Colaboradores
- Ritesh Modi
- Rob Bagby
- Ryan Pfalz
- Raouf Aliouat
- Randy Thurman
- Prabal Deb
- Mahdi Setayesh
- Soubhi Hadri
- Paul Butler