Ce este Transformarea interogării: Query Rewriting și HyDE?

Tehnici care schimbă interogarea înainte de căutare: rescrierea ei de către un LLM sau căutarea după embedding-ul unui răspuns ipotetic (HyDE).

Denumire completă

Query transformation – rescrierea întrebării (Rewrite-Retrieve-Read) sau căutarea după un document ipotetic (HyDE) înainte de regăsire

Întrebarea utilizatorului nu este întotdeauna o interogare bună pentru index. Poate fi vagă, poate folosi alți termeni decât documentele sau poate depinde de mesajele anterioare. Transformarea interogării modifică ce se trimite la căutare. Răspunsul final se generează tot pe întrebarea originală.

Rewrite-Retrieve-Read (Ma et al., EMNLP 2023) înlocuiește schema retrieve-then-read: un LLM scrie întâi interogarea de căutare, apoi se caută (în lucrare, cu un motor de căutare web), apoi modelul citește rezultatele. Autorii propun și un rescriitor mic, antrenat prin reinforcement learning pe baza feedback-ului modelului care citește.

HyDE (Hypothetical Document Embeddings; Gao, Ma, Lin și Callan, 2022) cere unui model care urmează instrucțiuni să scrie un document ipotetic care ar răspunde la întrebare. Documentul poate conține detalii false. Un encoder antrenat nesupervizat (în lucrare, Contriever) îl transformă în vector, iar vectorul caută documente reale apropiate. Lucrarea raportează că HyDE depășește Contriever și se apropie de retriever-e ajustate pe date etichetate, fără să folosească etichete de relevanță.

Concepte cheie și caracteristici

Concept / Parametru Descriere practică
Query rewriting Un LLM reformulează întrebarea ca interogare de căutare: cuvinte cheie, termeni din domeniu, fără referințe la mesaje anterioare.
HyDE Se caută după embedding-ul unui răspuns ipotetic, nu după embedding-ul întrebării.
Rescriere pentru căutare web În CRAG, intrarea este rescrisă de ChatGPT în interogări din cuvinte cheie înainte de căutarea web.
Întrebarea originală Rămâne cea folosită la generare. Interogarea transformată servește doar regăsirii.

Exemple practice și scenarii reale

Exemplul 1: Fluxul HyDE

Documentul ipotetic nu se arată utilizatorului; servește doar la căutare.

Întrebare: "Cum resetez parola în aplicația X?"
1. LLM -> document ipotetic: "Pentru a reseta parola, deschide Setări, apoi Cont..."
2. encoder(document ipotetic) -> vector
3. căutare k-NN în index cu acest vector -> documente reale
4. LLM(întrebarea originală + documentele reale) -> răspuns

Exemplul 2: Rescrierea unei întrebări dintr-o conversație

Mesaj anterior: "Cât durează garanția la laptopuri?"
Întrebare nouă: "Și la telefoane?"
Interogare rescrisă pentru căutare: "durata garanției telefoane"
Prompt final: conversația + fragmentele găsite + întrebarea nouă

Greșeli frecvente și capcane

  • Să afișezi documentul ipotetic HyDE ca răspuns. El poate conține detalii false; servește doar la găsirea documentelor reale.
  • Să generezi răspunsul din interogarea rescrisă. Rescrierea poate pierde nuanțe; păstrează întrebarea originală în promptul final.
  • Să adaugi un apel LLM în plus fără să măsori. Fiecare transformare crește latența și costul; compară recall-ul regăsirii cu și fără ea.

Noțiuni și module înrudite