Vorschau-Umgebung - hier siehst du auch noch nicht freigegebenen Content.

Retrieval

Endlich der Moment, auf den wir hingearbeitet haben - wir suchen mit Bedeutung. Plus: warum eine reine Vektorsuche allein nicht reicht und was Hybrid-Retrieval, Rerank und HyDE uns einkaufen.

Wir haben Embeddings für jeden Chunk, sortiert in einer pgvector-Tabelle. Jetzt kommt der zentrale Move: bei einer Frage embedden wir die Frage selbst, und suchen die K Chunks, deren Vektor dem Frage-Vektor am ähnlichsten ist.

Cosinus-Distanz, kurz erklärt

Zwei Vektoren sind „ähnlich", wenn der Winkel zwischen ihnen klein ist. Gemessen wird das mit der Cosinus-Ähnlichkeit (Wert nahe 1 = sehr ähnlich, 0 = orthogonal, -1 = entgegengesetzt). pgvector schreibt das mit dem Operator <=> als Distanz, also 1 - Cosinus-Ähnlichkeit.

Eine typische Top-K-Abfrage sieht so aus:

SELECT chunk_id, content,
       1 - (vector_768 <=> :query_vec) AS score
FROM rag_embeddings JOIN rag_chunks USING (chunk_id)
ORDER BY vector_768 <=> :query_vec
LIMIT 5;

Der HNSW-Index sorgt dafür, dass auch bei zehntausenden Vektoren die Antwort in unter 50 ms steht.

Vektor allein reicht nicht - Hybrid mit BM25

Vektorsuche ist stark bei Paraphrasen. Sie ist schwach bei seltenen, exakten Begriffen - Eigennamen, Codes, technischen IDs. Da glänzt klassisches BM25.

Hybrid-Retrieval kombiniert beides. Wir holen Top-K aus dem Vektor-Index und Top-K aus dem BM25-Index, und mergen die Ergebnisse mit Reciprocal Rank Fusion (RRF):

RRF-Score(Chunk) = Σ über alle Listen (1 / (60 + Rang in dieser Liste))

RRF ist verblüffend simpel und in der Praxis erstaunlich robust - auch ohne fein justierte Gewichte.

Rerank - der Cross-Encoder hat noch ein Wort

Vektor-Embeddings sind „bi-encoded": Frage und Chunk werden separat encodiert, dann die Distanz gemessen. Schnell, aber grob. Ein Cross-Encoder wie der BGE-Reranker bekommt Frage und Chunk gemeinsam zu sehen und kann viel feiner urteilen - nur eben langsamer.

Daher der Trick: holen wir uns ~20 Kandidaten aus dem Hybrid-Retrieval, und lassen den Reranker daraus die Top-5 sortieren. Beste-aus-zwei-Welten: Geschwindigkeit der Vektorsuche, Präzision des Cross-Encoders.

HyDE - wenn die Frage zu kurz ist

Manche Fragen sind nur ein paar Wörter lang. Der Embedding-Vektor wird entsprechend „dünn" und trifft nicht gut. Idee von HyDE (Hypothetical Document Embeddings): lass das LLM eine plausibel klingende Antwort erfinden, embedde diese, und such damit. Selbst wenn die Antwort halluziniert ist - sie ist semantisch näher an den echten Treffern als die kurze Original-Frage.

Lab: Retrieval-Vergleich

In Lab 4 stellst du dieselbe Frage in vier Modi nebeneinander: Vektor, BM25, Hybrid, Hybrid+Rerank. Du siehst:

  • Wie sich die Reihenfolge der Top-5-Chunks ändert.
  • Welche Modi welche Frage-Typen bevorzugen.
  • Was HyDE mit der Treffer-Liste anstellt.
  • Mit dem „Sprachübergreifend"-Toggle: wie multilinguale Embeddings DE-Fragen auf EN-Dokumenten beantworten - und wo BM25 dabei einbricht.

Und am Ende kannst du die Top-K direkt an das LLM schicken und die generierte Antwort live sehen.

Diskussion· noch keine Beiträge

Unser Kommentar-Agent liest jeden neuen Beitrag, bedankt sich oder empfiehlt passende Inhalte.

Sei die erste Stimme - was denkst du dazu?

Melde dich an, um mitzudiskutieren.

Anmelden