0Pricing
AI Agents · Leçon

HyDE : embeddings de documents hypothétiques

Générez avec le LLM une réponse « idéale » fictive, produisez son embedding et effectuez la recherche à partir de celui-ci : les résultats dépassent ceux des embeddings de requêtes courtes.

HyDE : embeddings de documents hypothétiques est une leçon AI Agents gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage AI Agents, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AI Agents comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

Le problème des vectorisations de requêtes

Les requêtes des utilisateurs sont généralement courtes et ne ressemblent guère aux documents que vous souhaitez récupérer.

  • Requête : « réparer mon clavier »
  • Document : « Si les touches de votre clavier mécanique restent enfoncées, vous pouvez nettoyer les commutateurs avec de l’alcool isopropylique… »

Les vecteurs sont sémantiquement éloignés : la récupération ne trouve pas le document.

Idée de HyDE

HyDE = Hypothetical Document Embeddings (Gao et al. 2022).

  1. Demandez au LLM de rédiger une « réponse idéale » fictive à la requête
  2. Vectorisez la réponse fictive, et non la requête
  3. Utilisez ce vecteur pour effectuer une recherche dans le corpus réel

Pourquoi cela fonctionne

La réponse hypothétique ressemble à un véritable document (vocabulaire et structure similaires). Sa vectorisation est proche de celles des documents réels : la récupération les trouve donc plus fiablement.

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)

Ce n’est pas grave si la réponse est incorrecte

La réponse hypothétique de HyDE peut être factuellement incorrecte — ce n’est pas un problème. Nous utilisons uniquement sa vectorisation pour la récupération. Les documents réels récupérés sont ensuite utilisés pour générer la réponse finale.

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?')

Compromis lié au coût

HyDE coûte 1 appel supplémentaire au LLM par requête. Cela en vaut la peine lorsque :

  • La formulation de la requête est très différente de celle des documents
  • Le rappel de la récupération constitue votre goulot d’étranglement
  • Le corpus contient des textes techniques que l’utilisateur reformule

HyDE multi-échantillons

Générez N réponses hypothétiques, vectorisez chacune d’elles, récupérez les K meilleurs résultats pour chacune, puis réunissez les résultats. Cette méthode est plus coûteuse, mais améliore le rappel pour les requêtes difficiles.

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))

Combiner HyDE et le réordonnancement

HyDE pour le rappel, CrossEncoder pour la précision :

  1. HyDE récupère les 50 meilleurs résultats
  2. Le CrossEncoder les réordonne pour en conserver 5
  3. Le LLM répond en utilisant ces 5 résultats

Quand NE PAS utiliser HyDE

  • Les requêtes correspondent déjà au langage des documents (FAQ)
  • Les chemins d’exécution sont sensibles à la latence
  • Les corpus sont très courts et une récupération naïve suffit

HyDE pour le code

Pour la recherche de code : imaginez la fonction recherchée par l’utilisateur, vectorisez-la, puis récupérez les fonctions réelles.

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

Variantes : invite de prise de recul

Technique associée : demandez au modèle de formuler d’abord une question plus générale (« Comment nettoyer les claviers ? » → « Quelle méthode générale de nettoyage s’applique aux claviers mécaniques ? »), vectorisez-la, puis effectuez la récupération.

HyDE : pourquoi cela fonctionne

Pourquoi HyDE récupère-t-il de meilleurs résultats que la vectorisation de la requête brute ?

Récapitulatif

HyDE : imaginez une réponse, vectorisez-la, puis effectuez la recherche. Cette méthode coûte un appel supplémentaire au LLM, mais améliore la récupération pour les requêtes difficiles, reformulées ou techniques.

Questions Fréquemment Posées

La leçon « HyDE : embeddings de documents hypothétiques » est-elle gratuite ?

Oui — le texte complet de « HyDE : embeddings de documents hypothétiques » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours AI Agents, passe à CoddyKit PRO. Le cours AI Agents comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « HyDE : embeddings de documents hypothétiques » ?

Générez avec le LLM une réponse « idéale » fictive, produisez son embedding et effectuez la recherche à partir de celui-ci : les résultats dépassent ceux des embeddings de requêtes courtes. Tu pratiques AI Agents avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer AI Agents ?

Aucune expérience préalable n'est requise. AI Agents sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « HyDE : embeddings de documents hypothétiques » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon AI Agents ?

Oui. Chaque leçon AI Agents inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Reclassement avec des encodeurs croisés
  2. HyDE : embeddings de documents hypothétiques
  3. Recherche multi-vectorielle (ColBERT)
  4. Évaluation de RAG (RAGAS, Recall@K)
← Retour à AI Agents