Descriere & Utilizare
Căutarea vectorială (Bi-Encoder) este extrem de rapidă deoarece compară pre-calculat doi vectori independenți, însă această compresie pierde nuanțele fine dintre întrebare și document.
Tehnica standard pentru RAG de înaltă precizie este Two-Stage Retrieval (Extragere în două trepte):
1. Extragi un număr generos de candidați din index (ex: similarity_top_k=15 sau 20).
2. Îi treci printr-un Reranker (Cross-Encoder) – cum este CohereRerank sau modelul gratuit local BAAI/bge-reranker-v2-m3 – care citește simultan întrebarea și fiecare pasaj cuvânt cu cuvânt, acordând un scor exact de relevanță și păstrând doar primele top_n=3 sau 5 noduri pentru LLM.
Cum să o reții ușor
💡 Ca procesul de recrutare la o companie: mai întâi un filtru rapid selectează 20 de CV-uri din 10.000 după cuvinte cheie (Retriever), iar apoi un manager tehnic îi intervievează în detaliu pe cei 20 și îi alege pe cei mai buni 3 (Reranker).
Opțiuni și parametri tehnici
- Intervine în pipeline după
Retrieverși înainte deResponseSynthesizer. - Evaluează perechile
(query, node_text)prin atenție încrucișată (Cross-Attention). - Poate fi înlănțuit cu
SimilarityPostprocessor(similarity_cutoff=0.7)pentru a arunca complet rezultatele sub un anumit prag.
Exemple practice și cazuri de utilizare
- Filtru simplu de prag fără model extern:
qe = index.as_query_engine(node_postprocessors=[SimilarityPostprocessor(similarity_cutoff=0.75)]) - Reranking comercial prin API:
from llama_index.postprocessor.cohere_rerank import CohereRerank
reranker = CohereRerank(api_key='...', top_n=4)
Sfaturi de configurare & capcane
Adăugarea unui Reranker este adesea cea mai eficientă optimizare pe care o poți aduce unui sistem RAG: crește dramatic acuratețea și scade costul LLM-ului deoarece trimiți în prompt doar 3-4 fragmente ultra-relevante în loc de 15.
Comenzi și ghiduri înrudite
hybrid-search-bm25: Resursă asociată din acest modul.query-engine: Resursă asociată din acest modul.sentence-splitter-node-parser: Resursă asociată din acest modul.