0Pricing
AI Agents · Aula

HyDE: embeddings de documentos hipotéticos

Gere uma resposta “ideal” fictícia com o LLM, gere seu embedding e pesquise com ele — é melhor do que usar embeddings de consultas curtas.

HyDE: embeddings de documentos hipotéticos é uma aula grátis de AI Agents no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Agents, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Agents inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

O problema das incorporações de consultas

As consultas dos usuários geralmente são curtas e não se parecem em nada com os documentos que você deseja recuperar.

  • Consulta: "conserte meu teclado"
  • Documento: "Se as teclas do seu teclado mecânico estiverem prendendo, você pode limpar os interruptores com álcool isopropílico..."

Os vetores ficam semanticamente distantes; a recuperação não encontra o documento.

Ideia do HyDE

HyDE = incorporações de documentos hipotéticos (Gao et al. 2022).

  1. Peça ao LLM para escrever uma "resposta ideal" fictícia para a consulta
  2. Incorpore a resposta fictícia, não a consulta
  3. Use esse vetor para pesquisar o corpus real

Por que funciona

A resposta hipotética se parece com um documento real (vocabulário e estrutura semelhantes). Sua incorporação fica próxima das incorporações de documentos reais — portanto, a recuperação os encontra com mais confiabilidade.

Implementation

def hyde_search(query, k=5):
    # Step 1: hallucinate an answer
    hypo_answer = llm.invoke(f'Please write a passage to answer the question: {query}').content
    # Step 2: embed it
    vec = embed(hypo_answer)
    # Step 3: retrieve
    return vector_db.query(vec, k=k)

É OK que a resposta esteja errada

A resposta hipotética do HyDE pode estar factualmente errada — tudo bem. Usamos apenas sua incorporação para a recuperação. Os documentos REAL recuperados são então usados para gerar a resposta final.

Code Example with LangChain

from langchain.chains import HypotheticalDocumentEmbedder
from langchain_openai import OpenAIEmbeddings, ChatOpenAI

embeddings = HypotheticalDocumentEmbedder.from_llm(
    ChatOpenAI(),
    OpenAIEmbeddings(),
    'web_search'   # built-in prompt template
)
vector = embeddings.embed_query('How do I fix a sticky keyboard?')

Compromisso de custo

O HyDE custa uma chamada extra ao LLM por consulta. Vale a pena quando:

  • A formulação da consulta é muito diferente da formulação dos documentos
  • A revocação da recuperação é o seu gargalo
  • O corpus contém textos técnicos que o usuário parafraseia

HyDE com várias amostras

Gere N respostas hipotéticas, incorpore cada uma, recupere os K principais para cada uma e una os resultados. É mais caro, mas oferece maior revocação em consultas difíceis.

hypos = [llm.invoke(...).content for _ in range(3)]
vecs = [embed(h) for h in hypos]
results = set()
for v in vecs:
    results.update(vector_db.query(v, k=5))

Combinando HyDE com reranqueamento

HyDE para revocação, codificador cruzado para precisão:

  1. HyDE recupera os 50 principais
  2. O codificador cruzado reranqueia, selecionando os 5 principais
  3. O LLM responde usando os 5 principais

Quando NÃO usar HyDE

  • Consultas que já correspondem à linguagem dos documentos (perguntas frequentes)
  • Fluxos críticos quanto à latência
  • Corpora muito pequenos, nos quais a recuperação simples funciona

HyDE para código

Para pesquisa de código: alucine a função que o usuário está procurando, incorpore-a e recupere as funções reais.

code_hypo = llm.invoke(f'Write the Python function that does: {user_request}').content
results = code_index.search(embed(code_hypo))

Variações: solicitação de recuo

Técnica relacionada: peça ao modelo para primeiro derivar uma pergunta mais geral ("Como limpo teclados?" -> "Qual método geral de limpeza se aplica a teclados mecânicos?"), incorpore-a e depois faça a recuperação.

Por que o HyDE funciona

O que faz o HyDE recuperar resultados melhores que a incorporação da consulta bruta?

Recapitulação

HyDE: alucine uma resposta, incorpore THAT e pesquise. Custa uma chamada extra ao LLM, mas melhora a recuperação em consultas difíceis, parafraseadas ou técnicas.

Perguntas Frequentes

A aula “HyDE: embeddings de documentos hipotéticos” é grátis?

Sim — o texto completo de “HyDE: embeddings de documentos hipotéticos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Agents, atualize para CoddyKit PRO. O curso de AI Agents inclui 4 aulas no total.

O que vou aprender em “HyDE: embeddings de documentos hipotéticos”?

Gere uma resposta “ideal” fictícia com o LLM, gere seu embedding e pesquise com ele — é melhor do que usar embeddings de consultas curtas. Você pratica AI Agents com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar AI Agents?

Nenhuma experiência prévia é necessária. AI Agents no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “HyDE: embeddings de documentos hipotéticos”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de AI Agents?

Sim. Cada aula de AI Agents inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Reclassificação com codificadores cruzados
  2. HyDE: embeddings de documentos hipotéticos
  3. Recuperação multivetorial (ColBERT)
  4. Avaliação de RAG (RAGAS, Recall@K)
← Voltar para AI Agents