A primeira fase do desenvolvimento e experimentação da Geração Aumentada de Recuperação (RAG) é a fase de preparação. Durante essa fase, você define o domínio de negócios para sua solução. Depois de definir o domínio, você reúne documentos, executa a análise de documentos e reúne exemplos de perguntas pertinentes ao domínio. Você faz essas etapas em paralelo porque elas estão inter-relacionadas. Por exemplo, a análise de documentos ajuda a determinar quais documentos de teste e consultas de teste você deve coletar. As perguntas que você faz devem ser respondidas pelo conteúdo dos documentos, e os documentos devem responder às perguntas relevantes.
Este artigo faz parte de uma série. Leia a introdução.
Determinar o domínio da solução
A primeira etapa desse processo é definir claramente os requisitos de negócios para a solução ou caso de uso. Esses requisitos ajudam a determinar que tipo de perguntas a solução deve responder e quais dados ou documentos de origem ajudam a responder a essas perguntas. Em fases posteriores, o domínio da solução ajuda a informar sua estratégia de modelo de incorporação.
Análise documental
O objetivo da análise de documentos é reunir informações suficientes sobre sua coleção de documentos para ajudá-lo a entender:
As diferentes classificações dos documentos. Por exemplo, pode ter especificações de produtos, relatórios trimestrais, contratos de seguro automóvel ou contratos de seguro de saúde.
Os diferentes tipos de documentos. Por exemplo, você pode ter PDFs, arquivos Markdown, arquivos HTML ou arquivos DOCX.
As restrições de segurança. Por exemplo, você pode precisar de autenticação e autorização para acessar os documentos, dependendo se eles são acessíveis publicamente.
A estrutura dos documentos. Por exemplo, a extensão dos documentos pode variar. Ou podem ter quebras de tópico, imagens contextualmente relevantes ou dados tabulares.
As seções a seguir descrevem como essas informações ajudam você a escolher suas estratégias de carregamento e fragmentação.
Classificação dos documentos
Você precisa entender as diferentes classificações de documentos para ajudá-lo a determinar o número de documentos de teste necessários. Esta parte da análise deve informá-lo sobre as classificações de alto nível, como seguros ou finanças. Deve também informá-lo sobre subclassificações, tais como documentos de seguro de saúde ou documentos de seguro automóvel. Você também quer saber se as subclassificações têm estruturas ou conteúdo diferentes.
O objetivo é entender todas as diferentes variantes de documentos que você tem. Em seguida, você pode determinar o número e o detalhamento dos documentos de teste necessários. Você não quer representar mais ou menos uma classificação de documento específica em sua experimentação.
Tipos de documentos
Compreender os diferentes formatos de arquivo em sua coleção ajuda a determinar o número e a divisão dos documentos de teste. Por exemplo, se você tiver tipos de documento PDF e Open XML para relatórios trimestrais, precisará de documentos de teste para cada um desses tipos de documento. Compreender os tipos de documentos também ajuda a compreender os requisitos técnicos para carregar e fragmentar os documentos. Esses requisitos técnicos incluem bibliotecas específicas que podem processar esses formatos de arquivo.
Restrições de segurança
Compreender as restrições de segurança é crucial para determinar suas estratégias de carregamento e fragmentação. Por exemplo, você precisa identificar se alguns ou todos os seus documentos exigem autenticação, autorização ou visibilidade na rede. Se os documentos estiverem dentro de um perímetro seguro, certifique-se de que seu código possa acessá-los ou implementar um processo para replicar os documentos com segurança para um local acessível para seu código de processamento.
Por vezes, os documentos fazem referência a multimédia, como imagens ou áudio, que são importantes para o contexto do documento. Esses meios de comunicação podem também estar sujeitos a controlos de acesso semelhantes aos do próprio documento. Se essa mídia exigir autenticação ou linha de visão de rede, você precisará certificar-se de que seu código pode acessar a mídia ou que você tem um processo em vigor que tem acesso e pode replicar o conteúdo.
Se sua carga de trabalho exigir que usuários diferentes só tenham acesso a documentos ou segmentos de documentos distintos, certifique-se de entender como manter essas permissões de acesso em sua solução de fragmentação.
Estrutura dos documentos
Você precisa entender a estrutura do documento, incluindo seu layout e os tipos de conteúdo no documento. Compreender a estrutura e o conteúdo dos seus documentos ajuda-o a tomar as seguintes determinações:
Se o documento requer pré-processamento para limpar ruídos, extrair mídia, reformatar conteúdo ou anotar itens a serem ignorados
Se pretende ignorar ou excluir conteúdo no documento
Que partes do documento pretende capturar
Como você deseja fragmentar o documento
Como você deseja lidar com imagens, tabelas, gráficos e outras mídias incorporadas
As seções a seguir listam perguntas categorizadas que você pode usar para ajudá-lo a fazer algumas dessas determinações.
Determinar os itens que você pode ignorar
Alguns elementos estruturais podem não adicionar significado ao documento e podem ser ignorados com segurança ao fragmentar. Em algumas situações, esses elementos podem adicionar contexto valioso e melhorar a relevância das consultas ao seu índice, mas não todos. Faça as seguintes perguntas sobre recursos comuns de documentos para ver se eles adicionam relevância ou devem ser ignorados.
O documento contém um índice?
Existem cabeçalhos ou rodapés?
Existem direitos de autor ou isenções de responsabilidade?
Existem notas de rodapé ou notas de fim?
Existem marcas d'água?
Existem anotações ou comentários?
Determinar uma estratégia de pré-processamento e fragmentação
As perguntas a seguir sobre a estrutura do documento podem ajudá-lo a decidir se você precisa pré-processar o documento para facilitar o processamento. Eles também ajudam você a escolher uma estratégia de fragmentação.
Existem dados com várias colunas ou parágrafos com várias colunas? Você não deseja analisar o conteúdo de várias colunas da mesma forma que o conteúdo de coluna única.
Como está estruturado o documento? Por exemplo, os arquivos HTML às vezes usam tabelas que precisam ser diferenciadas dos dados tabulares incorporados.
Quantos parágrafos existem? Qual é a duração dos parágrafos? Os parágrafos têm uma extensão semelhante?
Que línguas, variantes linguísticas ou dialetos estão nos documentos?
O documento contém caracteres Unicode?
Como são formatados os números? Incluem vírgulas ou decimais? São consistentes?
Que partes do documento são uniformes e que partes não são uniformes?
Existe uma estrutura de cabeçalho onde o significado semântico pode ser extraído?
Existem marcadores ou recuos significativos?
Determinar os requisitos de processamento de imagem
Compreender as imagens no seu documento pode ajudá-lo a escolher uma estratégia de processamento de imagens. Você precisa saber que tipo de imagens você tem, se elas têm resolução suficiente para processar e se a imagem contém todas as informações necessárias. As perguntas a seguir ajudam você a entender seus requisitos de processamento de imagem.
O documento contém imagens?
Qual a resolução das imagens?
Há texto incorporado nas imagens?
Existem imagens abstratas que não agregam valor? Por exemplo, os ícones podem não adicionar nenhum valor semântico. Adicionar uma descrição para ícones pode ser prejudicial para sua solução porque o ícone geralmente não é relevante para o conteúdo do documento.
Qual é a relação entre as imagens e o texto circundante? Determine se as imagens têm conteúdo autônomo ou se há contexto em torno da imagem que você deve usar ao passá-la para um modelo de linguagem. As legendas são um exemplo de texto circundante que pode ter um contexto valioso que não está incluído na imagem.
Existe uma representação textual rica, como descrições de acessibilidade das imagens?
Determinar seus requisitos de tabela, gráfico e outros requisitos de processamento de mídia
Compreender quais informações são encapsuladas em tabelas, gráficos e outras mídias pode ajudá-lo a decidir como deseja processá-las. As perguntas a seguir ajudam você a entender seus requisitos de tabela, gráfico e outros requisitos de processamento de mídia.
O documento tem gráficos que incluem números?
O documento contém tabelas?
As tabelas são complexas, como tabelas aninhadas, ou não complexas?
Existem legendas para as tabelas?
Qual é a duração das mesas? Tabelas longas podem exigir cabeçalhos repetidos em partes.
Existem outros tipos de mídia incorporada, como vídeos ou áudio?
Existem equações matemáticas ou notações científicas no documento?
Reúna documentos de teste representativos
Nesta etapa, reúna os documentos que melhor representam os documentos que você usa em sua solução. Os documentos devem abordar o caso de uso definido e responder às perguntas que você reuniu na fase paralela de coleta de perguntas.
Considerações
Considere as seguintes áreas ao avaliar documentos de teste de potenciais representantes:
Pertinência: Os documentos devem atender aos requisitos de negócios do aplicativo de conversação. Por exemplo, se você criar um bot de chat que ajude os clientes a realizar operações bancárias, os documentos deverão atender a esse requisito. Por exemplo, os documentos devem mostrar como abrir ou fechar uma conta bancária. Os documentos devem ser capazes de abordar as perguntas do teste que você reúne na etapa paralela. Se os documentos não tiverem informações relevantes para as perguntas, sua solução não poderá produzir uma resposta válida.
Representação: Os documentos devem representar os diferentes tipos de documentos que a sua solução utiliza. Por exemplo, um documento de seguro automóvel contém informações diferentes de um documento de seguro de saúde ou de vida. Suponha que o caso de uso exija a solução para suportar todos esses três tipos de seguro, mas você só tem documentos de seguro de carro. Sua solução pode ter um desempenho ruim para operações de seguro de vida e saúde. Você deve ter pelo menos dois documentos para cada variação.
Qualidade física do documento: Os documentos precisam estar em forma utilizável. As imagens digitalizadas, por exemplo, podem não permitir extrair informações utilizáveis.
Qualidade do conteúdo do documento: Os documentos devem ter conteúdo de alta qualidade. Não devem conter erros ortográficos ou gramaticais. Os modelos linguísticos não têm um bom desempenho se lhes fornecermos conteúdo de baixa qualidade.
Para reunir documentos de teste com sucesso, você deve estar qualitativamente confiante que os documentos de teste representam de forma completa e precisa seu domínio específico.
Orientações para documentos de teste
Escolha documentos reais em vez de sintéticos. Os documentos reais devem passar por um processo de limpeza para remover dados pessoais.
Considere aumentar seletivamente seus documentos com dados sintéticos. Esse processo ajuda a garantir que seus documentos abranjam todos os tipos de cenários, incluindo cenários futuros previstos. Se você precisar usar dados sintéticos, faça o possível para que eles se pareçam o máximo possível com dados reais.
Certifique-se de que os documentos podem responder às perguntas que recolher.
Ter pelo menos dois documentos para cada variante de documento.
Utilize modelos linguísticos ou outras ferramentas para o ajudar a avaliar a qualidade dos documentos.
Reunir consultas de teste
Nesta etapa, você reúne consultas de teste que usa para avaliar suas partes, sua solução de pesquisa e sua engenharia de prompt. Faça esta etapa enquanto reúne os documentos representativos. Você deve reunir as consultas e determinar como os documentos representativos abordam essas consultas ao mesmo tempo. Ao ter as consultas de exemplo e as partes dos documentos de exemplo que abordam essas consultas, você pode avaliar cada estágio da solução RAG enquanto experimenta diferentes estratégias e abordagens.
Reunir saída de consulta de teste
A saída desta fase inclui conteúdo do reunir consultas de teste representativas etapa e o reunir documentos de teste representativos etapa. A saída é uma coleção que contém os seguintes dados:
Consulta: A pergunta, que representa o prompt potencial de um usuário legítimo.
Contexto: Uma coleção de todo o texto real nos documentos que abordam a consulta. Para cada bit de contexto, você deve incluir a página e o texto real.
Resposta: Uma resposta válida à consulta. A resposta pode ser conteúdo diretamente dos documentos ou pode ser reformulado a partir de uma ou mais partes do contexto.
Criar consultas sintéticas
Muitas vezes, é um desafio para os especialistas no assunto (PMEs) para um domínio específico montar uma lista abrangente de perguntas para o caso de uso. Uma solução para esse desafio é gerar perguntas sintéticas a partir dos documentos de teste representativos que você coleta. As etapas a seguir descrevem uma abordagem do mundo real para gerar perguntas sintéticas a partir de documentos representativos:
Fragmente os documentos. Divida os documentos em partes. Não use a estratégia de fragmentação para sua solução geral. Use esta etapa única que você usa para gerar consultas sintéticas. Você pode fazer o fragmento manualmente se o número de documentos for razoável.
Gere consultas para cada bloco. Para cada bloco, gere consultas manualmente ou usando um modelo de linguagem. Quando você usa um modelo de linguagem, geralmente começa gerando duas consultas para cada bloco. Você também pode usar o modelo de linguagem para criar a resposta. O exemplo a seguir mostra um prompt que gera perguntas e respostas para um bloco.
Please read the following CONTEXT and generate two question and answer JSON objects in an array based on the CONTEXT provided. The questions should require deep reading comprehension, logical inference, deduction, and connecting ideas across the text. Avoid simplistic retrieval or pattern-matching questions. Instead, focus on questions that test the ability to reason about the text in complex ways, draw subtle conclusions, and combine multiple pieces of information to arrive at an answer. Ensure that the questions are relevant, specific, and cover the key points of the CONTEXT. Provide concise answers to each question, and directly quote the text from the provided context. Provide the array output in strict JSON format as shown in the output format. Ensure that the generated JSON is completely structurally correct, including proper nesting, comma placement, and quotation marks. There shouldn't be a comma after the last element in the array. Output format: [ { "question": "Question 1", "answer": "Answer 1" }, { "question": "Question 2", "answer": "Answer 2" } ] CONTEXT:
Verifique a saída. Verifique se as perguntas são pertinentes para o caso de uso e se as respostas abordam a pergunta. Uma PME deve efetuar esta verificação.
Consultas não resolvidas
É importante reunir consultas que os documentos não abordam e as consultas que eles abordam. Ao testar sua solução, e especialmente quando você testa o modelo de linguagem, você precisa determinar como a solução deve responder a consultas que não tem contexto suficiente para responder. Para responder a consultas que a solução não pode resolver, a solução pode:
Diga que não sabe a resposta.
Declare que não sabe a resposta e forneça um link onde o usuário possa encontrar mais informações.
Reunir consultas de teste para mídia incorporada
Como no texto, você deve reunir um conjunto diversificado de perguntas que envolvem o uso da mídia incorporada para gerar respostas altamente relevantes. Se você tiver imagens com gráficos, tabelas ou capturas de tela, certifique-se de ter perguntas que abranjam todos os casos de uso. Se você determinar na parte imagens da etapa de análise de documentos que o texto antes ou depois da imagem é necessário para responder a algumas perguntas, certifique-se de ter essas perguntas em suas consultas de teste.
Reunir orientações de consultas de teste
Determine se há um sistema que contém perguntas reais dos clientes que você pode usar. Por exemplo, se você criar um bot de bate-papo para responder às perguntas dos clientes, poderá usar as perguntas dos clientes do suporte técnico, das perguntas frequentes ou do sistema de emissão de tíquetes.
O cliente ou PME para o caso de uso deve agir como uma porta de qualidade para determinar se os documentos coletados, as consultas de teste associadas e as respostas às consultas dos documentos são abrangentes, representativas e corretas.
Revise o corpo de perguntas e respostas periodicamente para garantir que elas continuem a refletir com precisão os documentos de origem.