Se você encontrar recuperação incompleta de conhecimento ou conteúdo impreciso com o recurso de geração aumentada por recuperação (RAG) no Alibaba Cloud Model Studio, consulte as sugestões e exemplos neste tópico para melhorar o desempenho do RAG.
1. Fluxo de trabalho de RAG
RAG (Geração Aumentada por Recuperação) é uma técnica que combina recuperação de informações com geração de texto. Ela permite que um modelo use informações relevantes de uma base de conhecimento externa ao gerar respostas.
Seu fluxo de trabalho inclui várias etapas principais, incluindo análise e fragmentação, armazenamento vetorial, recuperação e recall, e geração de resposta.

As seções a seguir abordam técnicas para otimizar cada etapa: análise e fragmentação, recuperação e recall, e geração de resposta.
2. Otimize o desempenho do RAG
2,1 Preparação
Primeiro, garanta que os documentos importados para a base de conhecimento do Model Studio atendam aos seguintes requisitos:
Inclua conhecimento relevante: Se a base de conhecimento não tiver informações relevantes, o modelo pode falhar em responder a perguntas relacionadas. Para resolver isso, atualize a base de conhecimento e adicione o conhecimento necessário.
-
Use o formato Markdown (recomendado): Arquivos PDF frequentemente têm layouts complexos, o que pode levar a resultados de análise ruins. Converta PDFs para um formato de texto como Markdown, DOC ou DOCX primeiro. Por exemplo, use DashScopeParse para converter um PDF para Markdown e, em seguida, use um modelo para limpar a formatação. Consulte o capítulo sobre RAG do curso ACP de modelo grande da Alibaba Cloud.
Como devo lidar com ilustrações em documentos?
Atualmente, a base de conhecimento não consegue analisar conteúdo de vídeo ou áudio em documentos.
Use redação clara, estrutura razoável e sem estilos especiais: O layout do seu documento também afeta significativamente o desempenho do RAG. Para detalhes, consulte Como os documentos devem ser formatados para beneficiar o RAG?.
Corresponda ao idioma do prompt: Se os prompts dos usuários forem principalmente em um idioma, como inglês, garanta que o conteúdo do seu documento esteja no mesmo idioma. Se necessário, como para termos técnicos no documento, use dois ou mais idiomas.
-
Desambiguação de entidades: Unifica diferentes expressões para a mesma entidade em um documento. Por exemplo, "ML" e "Machine Learning" podem ser padronizados como "Machine Learning".
Insira o documento em um modelo e peça que ele padronize os termos. Se o documento for longo, divida-o em várias partes e insira-as uma por uma.
Após concluir essas etapas, otimize cada etapa da sua aplicação RAG.
2,2 Análise e fragmentação
Esta seção descreve apenas os itens de configuração no Model Studio para otimizar a etapa de fragmentação do RAG.
Primeiro, a base de conhecimento analisa e fragmenta os documentos importados. O objetivo principal da fragmentação é reduzir o ruído durante o processo subsequente de vetorização, preservando a integridade semântica. Portanto, a estratégia de fragmentação de documentos selecionada ao criar uma base de conhecimento tem um impacto significativo no desempenho do RAG. Se o método de fragmentação for inadequado, pode levar aos seguintes problemas:
|
Trechos curtos |
Trechos longos |
Truncamento semântico |
|
|
|
|
|
Trechos curtos podem carecer de informações semânticas, causando falha na recuperação. |
Trechos longos podem incluir tópicos irrelevantes, fazendo com que o processo de recall retorne informações ruidosas ou irrelevantes. |
O truncamento semântico forçado pode causar falta de conteúdo durante o recall. |
Para obter melhores resultados, mantenha os trechos de texto semanticamente completos, evitando ruído excessivo. O Model Studio recomenda o seguinte:
Ao criar uma base de conhecimento, selecione intelligent chunking para o método de fragmentação de documentos.
Após importar documentos com sucesso para a base de conhecimento, revise e corrija manualmente o conteúdo dos trechos de texto.
2,2,1 Fragmentação inteligente
Escolher o comprimento ideal do trecho de texto para sua base de conhecimento pode ser desafiador porque depende de múltiplos fatores, como:
Tipo de documento: Para literatura profissional, trechos mais longos geralmente ajudam a reter mais contexto. Para postagens em redes sociais, trechos mais curtos podem capturar a semântica com mais precisão.
Complexidade do prompt: Geralmente, se o prompt de um usuário for complexo e específico, trechos mais longos podem ser necessários. Caso contrário, trechos mais curtos podem ser mais apropriados.
Essas conclusões não se aplicam necessariamente a todas as situações. Escolha as ferramentas certas e experimente repetidamente para encontrar o comprimento correto do trecho de texto. Por exemplo, o LlamaIndex fornece funções de avaliação para diferentes métodos de fragmentação. No entanto, esse processo pode ser complexo e demorado.
Para uma solução rápida e eficaz, defina Document Chunking como Intelligent Splitting ao criar uma base de conhecimento.

Quando essa estratégia é aplicada, a base de conhecimento:
Primeiro usa delimitadores de frases integrados para dividir o documento em parágrafos.
Com base nos parágrafos divididos, seleciona adaptativamente limites de fragmentação com base na relevância semântica (fragmentação semântica), em vez de usar um comprimento fixo.
Esse processo garante a integridade semântica de cada parte do documento e evita divisões desnecessárias. Essa estratégia aplica-se a todos os documentos nesta base de conhecimento, incluindo documentos importados posteriormente.
2,2,2 Corrija o conteúdo do trecho
Naturalmente, durante o processo real de fragmentação, divisões inesperadas ou outros problemas ainda podem ocorrer (por exemplo, spaces no texto às vezes são analisados como %20 após a fragmentação).

Portanto, o Model Studio recomenda verificar manualmente o conteúdo do trecho quanto à integridade semântica e correção após importar um documento. Se encontrar trechos inesperados ou outros erros de análise, edite os trechos de texto diretamente para corrigi-los. Após salvar, o conteúdo original do trecho de texto torna-se inválido, e o novo conteúdo é usado para recuperação na base de conhecimento.
Observe que esta ação modifica apenas os trechos de texto na base de conhecimento, não o documento original ou tabela de dados no seu gerenciamento de dados (armazenamento temporário). Portanto, se reimportar o documento, deverá realizar a verificação e correção manual novamente.
2,3 Recuperação e recall
Esta seção descreve apenas os itens de configuração no Model Studio para otimizar a etapa de recuperação e recall.
O principal desafio na etapa de recuperação e recall é encontrar os trechos de texto mais relevantes na base de conhecimento que contenham a resposta.
|
Tipo de problema |
Estratégia de melhoria |
|
Em cenários de conversa com múltiplas turnos, o prompt do usuário pode estar incompleto ou ambíguo. |
Ative a reescrita de conversas com múltiplas turnos. A base de conhecimento automaticamente reescreve o prompt do usuário para ser mais completo, melhorando a correspondência de conhecimento. |
|
A base de conhecimento contém documentos de várias categorias. Quando uma busca é focada na Categoria A, os resultados de recall também incluem trechos de texto de outras categorias, como a Categoria B. |
Adicione tags aos documentos. Durante a recuperação, a base de conhecimento primeiro filtra documentos relevantes com base em tags antes de pesquisar. Apenas bases de conhecimento de busca de documentos suportam a adição de tags aos documentos. |
|
A base de conhecimento contém vários documentos com estruturas semelhantes, por exemplo, todos contêm uma seção "Visão Geral dos Recursos". Você deseja pesquisar na seção "Visão Geral dos Recursos" do Documento A, mas os resultados de recall incluem informações de outros documentos semelhantes. |
Use a extração de metadados. A base de conhecimento executa uma busca estruturada com metadados antes da recuperação vetorial para encontrar com precisão o documento alvo e extrair as informações relevantes. Apenas bases de conhecimento de busca de documentos suportam metadados de documentos. |
|
Os resultados de recall estão incompletos e não incluem todos os trechos de texto relevantes. |
Reduza o limiar de similaridade e aumente o número de trechos recuperados para recuperar informações que foram perdidas anteriormente. |
|
Os resultados de recall contêm uma grande quantidade de trechos de texto irrelevantes. |
Aumente o limiar de similaridade para excluir informações com baixa similaridade em relação ao prompt do usuário. |
2,3,1 Reescrita de conversas com múltiplas turnos
Em uma conversa com múltiplas turnos, um usuário pode fazer uma pergunta com um prompt curto, como "Model Studio Phone X1". Isso pode fazer com que o sistema RAG não tenha o contexto necessário durante a recuperação pelos seguintes motivos:
Um produto telefônico frequentemente tem várias gerações à venda ao mesmo tempo.
-
Para a mesma geração de um produto, o fabricante geralmente oferece várias opções de armazenamento, como 128 GB e 256 GB.
...
Essas informações essenciais podem ter sido fornecidas em turnos de conversa anteriores. Usá-las efetivamente ajuda o RAG a recuperar informações mais precisas.
Para resolver isso, use o recurso Multi-round Conversation Rewriting no Model Studio. O sistema reescreve automaticamente o prompt do usuário em uma forma mais completa com base no histórico de conversas.
Por exemplo, o usuário pergunta:
Model Studio Phone X1.
Com a reescrita de conversas com múltiplas turnos ativada, o sistema reescreve o prompt do usuário com base no histórico de conversas antes da recuperação (apenas exemplo):
Provide all available versions of Model Studio Phone X1 in the product library and their specific parameters.
Esse prompt reescrito ajuda o RAG a entender melhor a intenção do usuário e fornecer uma resposta mais precisa.
A figura a seguir mostra como ativar o recurso de reescrita de conversas com múltiplas turnos. Esse recurso também é ativado quando você seleciona a Recommended Configuration.

Observe que o recurso de reescrita de conversas com múltiplas turnos está vinculado à base de conhecimento. Uma vez ativado, aplica-se apenas a consultas relacionadas à base de conhecimento atual. Essa configuração não pode ser alterada posteriormente; recrie a base de conhecimento para ativá-la.
2,3,2 Filtragem por tags
Esta seção aplica-se apenas a bases de conhecimento de busca de documentos .
Ao usar um aplicativo de música, filtre músicas por artista para encontrar rapidamente todas as músicas desse artista.
Da mesma forma, adicionar tags aos seus documentos não estruturados introduz informações estruturadas adicionais. Ao recuperar da base de conhecimento, a aplicação pode primeiro filtrar documentos com base em tags, o que melhora a precisão e a eficiência da recuperação.
O Model Studio suporta os dois métodos a seguir para definir tags:
Defina tags ao carregar documentos: Para etapas do console, consulte Importar dados.
-
Edite tags na página Data Management: Para documentos carregados, clique em Tag à direita do documento para editar suas tags .

O Model Studio suporta os dois métodos a seguir para usar tags:
Ao chamar uma aplicação do Model Studio usando uma API, especifique tags no parâmetro de solicitação
tags.-
Defina tags ao editar uma aplicação no console. No entanto, este método é aplicável apenas a aplicações de agente.
Observe que esta configuração aplica-se a todas as perguntas e respostas subsequentes do usuário para esta aplicação de agente.

2,3,3 Extração de metadados
Esta seção aplica-se apenas a bases de conhecimento de busca de documentos .
Incorporar metadados em trechos de texto pode aprimorar efetivamente o contexto de cada trecho. Em cenários específicos, esse método pode melhorar significativamente o desempenho do RAG de bases de conhecimento de busca de documentos .
Considere o seguinte cenário:
Uma base de conhecimento contém muitos manuais de produtos telefônicos. Os nomes dos documentos são os modelos dos telefones (como Model Studio X1 e Model Studio Zephyr Z9), e todos os documentos incluem um capítulo "Visão Geral dos Recursos".
Se os metadados não estiverem ativados para esta base de conhecimento, um usuário pode inserir o seguinte prompt para recuperação:
Feature overview of Model Studio Phone X1.
Um teste de recuperação revela os trechos recuperados. Como todos os documentos contêm "Visão Geral dos Recursos", a base de conhecimento recupera alguns trechos de texto que não estão relacionados à entidade da consulta (Model Studio Phone X1), mas são semelhantes ao prompt, como Trecho 1 e Trecho 2 na figura. Suas classificações são até mais altas do que a do trecho de texto necessário, o que impacta negativamente o desempenho do RAG.
Os resultados do teste de recuperação garantem a classificação, mas a pontuação absoluta de similaridade serve apenas como referência. Quando a diferença nos valores absolutos é pequena (dentro de 5%), a probabilidade de recall pode ser considerada a mesma.

Em seguida, defina o nome do telefone como metadado seguindo as etapas em extração de metadados. Isso anexa as informações correspondentes do nome do telefone aos trechos de texto de cada documento. Depois, execute o mesmo teste para comparação.

Neste ponto, a base de conhecimento adiciona uma camada de busca estruturada antes da busca vetorial. O processo completo é o seguinte:
Extrair metadados {"key": "name", "value": "Model Studio Phone X1"} do prompt.
Com base nos metadados extraídos, encontrar todos os trechos de texto que contenham o metadado "Model Studio Phone X1".
Em seguida, realizar uma busca vetorial (semântica) para encontrar os trechos de texto mais relevantes.
Após ativar os metadados, a base de conhecimento agora consegue encontrar com precisão o trecho de texto relacionado ao "Model Studio Phone X1" e que contém "Visão Geral dos Recursos".

Outra aplicação comum de metadados é incorporar informações de data em trechos de texto para filtrar conteúdo recente. Consulte extração de metadados.
2,3,4 Limiar de similaridade
Quando a base de conhecimento encontra trechos de texto relacionados ao prompt do usuário, ela primeiro os envia para o modelo Rank (configurado em Custom parameter settings ao criar a base de conhecimento) para reordenação. O limiar de similaridade é então usado para filtrar os trechos de texto reordenados. Apenas trechos de texto com pontuação de similaridade que exceda esse limiar podem ser fornecidos ao modelo.

Reduzir esse limiar pode recuperar mais trechos de texto, mas também pode causar a recuperação de alguns trechos menos relevantes. Aumentar esse limiar pode reduzir o número de trechos de texto recuperados.
Se o limiar for definido muito alto, pode fazer com que a base de conhecimento descarte todos os trechos de texto relevantes. Isso limita a capacidade do modelo de obter informações contextuais suficientes para gerar uma resposta.

O limiar ideal depende do seu cenário. Experimente diferentes limiares de similaridade por meio de testes de recuperação, observe os resultados de recall e encontre a solução que melhor atenda às suas necessidades.
|
Etapas recomendadas para teste de recuperação |
|
|
|
2,3,5 Número de trechos recuperados
O número de trechos recuperados é o valor K na estratégia de recall multicanal. Após a filtragem pelo limiar de similaridade, se o número de trechos de texto exceder K, o sistema seleciona os K trechos de texto com as maiores pontuações de similaridade para fornecer ao modelo. Devido a isso, um valor K inadequado pode fazer com que o RAG perca trechos de texto corretos, o que afeta a capacidade do modelo de gerar uma resposta completa.
Por exemplo, um usuário recupera informações com o seguinte prompt:
What are the advantages of the Model Studio X1 phone?
Existem 7 trechos de texto na base de conhecimento alvo que são relevantes para o prompt do usuário e devem ser retornados (marcados em verde à esquerda). No entanto, como esse número excede o número máximo de trechos recuperados atualmente definido (K), os trechos de texto contendo a vantagem 5 (standby ultra-longo) e a vantagem 6 (fotos nítidas) são descartados e não fornecidos ao modelo.
Como o RAG não consegue determinar quantos trechos de texto são necessários para fornecer uma resposta "completa", o modelo gerará uma resposta com base nos trechos fornecidos, mesmo que estejam incompletos.
Muitos experimentos mostram que, em cenários como "Liste...", "Resuma..." e "Compare X e Y...", fornecer mais trechos de texto de alta qualidade (por exemplo, K=20) ao modelo é mais eficaz do que fornecer apenas os 10 ou 5 principais. Embora isso possa introduzir ruído, se a qualidade do trecho de texto for alta, um modelo capaz geralmente consegue lidar com isso.
Ajuste o Number of Recalled Chunks ao editar uma aplicação no Model Studio.

No entanto, um número maior de trechos recuperados nem sempre é melhor. Às vezes, após os trechos de texto recuperados serem montados, seu comprimento total pode exceder o limite de comprimento de entrada do modelo, causando truncamento e afetando negativamente o desempenho do RAG.
Selecione Intelligent Assembly. Essa estratégia recupera o máximo possível de trechos de texto relevantes sem exceder o comprimento máximo de entrada do modelo.
2,4 Geração de resposta
Esta seção descreve apenas os itens de configuração que o Model Studio suporta para otimização na etapa de geração de resposta.
Ao usar o recurso Monitoramento de Uso e Análise de Desempenho de Aplicações, visualize e analise o processo completo de geração de resposta do RAG de ponta a ponta.
Neste ponto, o modelo pode gerar a resposta final com base no prompt do usuário e no conteúdo recuperado da base de conhecimento. No entanto, o resultado retornado ainda pode não atender às suas expectativas.
|
Tipo de problema |
Estratégia de melhoria |
|
O modelo não entende a relação entre o conhecimento e o prompt do usuário. A resposta parece ser costurada a partir de pedaços díspares de texto. |
Selecione um modelo adequado para entender efetivamente a relação entre o conhecimento e o prompt do usuário. |
|
O resultado retornado não segue as instruções ou não é abrangente. |
|
|
O resultado retornado não é preciso o suficiente. Contém o conhecimento geral do próprio modelo e não é totalmente fundamentado na base de conhecimento. |
Ative a rejeição para restringir as respostas apenas ao conhecimento recuperado da base de conhecimento. |
|
Para prompts semelhantes, você deseja que os resultados sejam consistentes ou variados. |
|
2,4,1 Seleção de modelo
Diferentes modelos grandes têm capacidades diferentes em áreas como seguimento de instruções, suporte a idiomas, texto longo e compreensão de conhecimento. Isso pode levar à seguinte situação:
O Model A falhou em entender efetivamente a relação entre o conhecimento recuperado e o prompt, e a resposta gerada não conseguiu abordar com precisão o prompt do usuário. Mudar para o Model B, que tem mais parâmetros ou capacidades especializadas mais fortes, pode resolver esse problema.
Selecione Select Model ao editar uma aplicação no Model Studio com base nas suas necessidades reais.

Ao editar uma aplicação do Alibaba Cloud Model Studio, selecione Select Model com base nas suas necessidades reais. Selecione um modelo comercial do Qwen, como Qwen-Max e Qwen-Plus. Esses modelos grandes comerciais têm as capacidades e melhorias mais recentes em comparação com suas versões de código aberto.
Para consultas e resumos simples de informações, modelos grandes com um pequeno número de parâmetros são suficientes, como
Qwen-Turbo.Se quiser que o RAG realize raciocínio lógico mais complexo, selecione um modelo grande com mais parâmetros e capacidades de raciocínio mais fortes, como
Qwen-Max.Se sua consulta exigir referência a muitos trechos de documentos, selecione um modelo grande com um comprimento de contexto mais longo, como
Qwen-Plus.Se construir uma aplicação RAG para um domínio especializado, como o domínio jurídico, use um modelo treinado para esse domínio específico, como
Qwen-Legal.
2,4,2 Otimização do modelo de prompt
Influencie o comportamento de um modelo e melhore o desempenho do RAG projetando o prompt que orienta como ele usa o conhecimento recuperado.
A seguir estão três métodos comuns de otimização:
Método 1: Restrinja o conteúdo de saída
Forneça informações contextuais, instruções e o formato de saída esperado no modelo de prompt para instruir o modelo. Por exemplo, adicione a seguinte instrução de saída:
If the information provided is not sufficient to answer the question, state clearly, "Based on the existing information, I cannot answer this question." Do not invent an answer.
Isso reduz a probabilidade de alucinações do modelo.
Método 2: Adicione exemplos
Use o método few-shot prompting para adicionar exemplos de perguntas e respostas ao prompt para o modelo imitar. Isso orienta o modelo a usar corretamente o conhecimento recuperado. O exemplo a seguir usa Qwen-Plus.
|
Modelo de prompt |
Resultado |
|
|
|
|
Método 3: Adicione delimitadores de conteúdo
Se trechos de texto recuperados forem misturados aleatoriamente em um modelo de prompt, é difícil para um modelo grande entender a estrutura geral do prompt. Separe claramente o prompt da variável ${documents}.
Além disso, para garantir os melhores resultados, certifique-se de que a variável ${documents} apareça apenas uma vez no seu modelo de prompt. Para referência, veja o exemplo correto à esquerda abaixo.
|
Exemplo correto |
Exemplo incorreto |
|
|
Para saber mais sobre métodos de otimização de prompt, consulte Engenharia de prompt.
2,4,3 Rejeição
Se desejar que os resultados retornados pela sua aplicação Model Studio sejam estritamente baseados no conhecimento recuperado da base de conhecimento, e excluir a influência do conhecimento geral do próprio modelo, defina o escopo da resposta como Knowledge Base Only ao editar a aplicação.
Para casos em que nenhum conhecimento relevante é encontrado na base de conhecimento, defina uma resposta fixa e automática.
|
Answer scope: Knowledge Base + LLM Knowledge |
Answer scope: Knowledge Base Only |
|
|
|
|
O resultado retornado pela aplicação Model Studio será uma combinação de conhecimento recuperado da base de conhecimento e o conhecimento geral do próprio modelo. |
O resultado retornado pela aplicação Model Studio será estritamente baseado no conhecimento recuperado da base de conhecimento. |
Para determinar o escopo do conhecimento, escolha o método Search Threshold + LLM Judgement. Essa estratégia primeiro filtra trechos de texto potenciais usando um limiar de similaridade. Em seguida, um modelo atua como árbitro, usando o Judgment Prompt definido para conduzir uma análise profunda da relevância. Isso melhora ainda mais a precisão do julgamento.

A seguir está um exemplo de prompt de determinação para sua referência. Além disso, quando nenhum conhecimento relevante for encontrado na base de conhecimento, defina uma resposta fixa: Sorry, no relevant phone models were found.
# Judgment rules:
- The premise for a match between the question and the document is that the entity involved in the question is exactly the same as the entity described in the document.
- The question is not mentioned at all in the document.
|
Consulta bem-sucedida |
Consulta malsucedida |
|
|
|
2,4,4 Parâmetros do modelo
Para controlar se o modelo fornece respostas consistentes ou variadas para prompts semelhantes, modifique o Configure Parameters para ajustar os parâmetros do modelo ao editar a aplicação.

O parâmetro temperature na figura anterior controla a aleatoriedade do conteúdo gerado pelo modelo. Quanto maior a temperatura, mais diversificado é o texto gerado; inversamente, o texto é mais determinístico.
Texto diversificado é adequado para escrita criativa (como romances e textos publicitários), brainstorming e cenários de aplicações de chat.
Texto determinístico é adequado para cenários com respostas claras (como análise de problemas, questões de múltipla escolha e busca de fatos) ou que exigem redação precisa (como documentos técnicos, textos legais, reportagens e artigos acadêmicos).
Os outros dois parâmetros são:
Maximum response length: Este parâmetro controla o número máximo de tokens gerados pelo modelo. Aumente esse valor para gerar descrições detalhadas ou diminua-o para gerar respostas curtas.
Number of context turns: Este parâmetro controla o número de turnos históricos de conversa aos quais o modelo faz referência. Quando definido como 1, o modelo não faz referência a informações históricas de conversa ao responder.













