Zurück zum Index
Alago F&E 023 14. APR 2026 EN
Methode № 023 · Benchmark

Graph-RAG schlägt Vektor-Retrieval bei technischen Spezifikationen.

Auf 41.000 DIN-zitierten Absätzen aus dem Pre-Con-Archiv eines Projektsteuerers schlägt strukturiertes Retrieval die Embedding-Ähnlichkeit um 31 % bei Multi-Hop-Anfragen — und der Abstand wächst mit der Tiefe der Frage.

AutorVinzenz Trimborn
Veröffentlicht14. Apr 2026
Lesezeit9 Min.
ThemaRetrieval · Eval

Seit zwei Jahren betreiben wir einen Vektorstore-basierten Retriever für technische Fragen über Pre-Construction-Dokumente. Er ist schnell, einfach und — bei den Fragen, die unsere Nutzer wirklich stellen — frustrierend mittelmäßig. Diese Notiz beschreibt das Experiment, das uns dazu gebracht hat, mit dem Streiten aufzuhören: ein Head-to-head zwischen Embedding-Ähnlichkeit und Graph-RAG auf einem Korpus von einundvierzigtausend Absätzen, die mindestens eine DIN-Norm zitieren, ausgewertet an einem handgebauten Set von 312 Fragen, gestaffelt nach Reasoning-Tiefe.1

Das Ergebnis ist nicht subtil. Vektor-Retrieval gewinnt bei flachen faktischen Lookups — wir nennen sie „1-Hop"-Fragen — und verliert, manchmal katastrophal, bei allem, was die Verbindung von zwei oder mehr Entitäten erfordert. Bei 3-Hop-Fragen („Welche Mängel, von welchem Bauleiter auf Projekt X gemeldet, haben ihre Frist überschritten?") ist der Embedding-Retriever im Wesentlichen Rauschen.

Der Aufbau

Der Korpus ist ein kuratierter Ausschnitt aus unserem internen Projektsteuerer-Protokollarchiv: 41.213 Absätze aus Jour-fixe-Protokollen, Vergabevermerken und Bauprotokollen, jeweils mit mindestens einer DIN-Referenz versehen (DIN 276, DIN 18960, DIN EN 1990, etc.). Die Absätze wurden nach Retrieval-Dichte ausgewählt — kurze Prosa mit mindestens drei benannten Entitäten und mindestens einer Verpflichtung. Die Graph-Version desselben Korpus ist das v0.4-Schema, das in Eintrag № 024 beschrieben wird, mit einem Knoten pro Entitäts-Erwähnung und typisierten Kanten, aufgelöst durch unseren Entity-Linker.

Das Frageset wurde von zwei Engineers und einem Projektsteuerer in einer Woche gebaut. Jede Frage ist mit ihrer Hop-Tiefe annotiert:

Beide Retriever bekamen denselben Downstream-LLM (Claude 3.5 Sonnet, Temperatur 0) und dieselbe Antwort-Auswertungspipeline (exakte Übereinstimmung für Faktantworten, LLM-as-Judge mit Rubrik für analytische Antworten, beide Auswerter blind gegenüber der Retriever-Identität).

ABB. F1 NACH HOP-TIEFE · N=312 ANFRAGEN HÖHER IST BESSER 1,00 0,75 0,50 0,25 0,00 1-HOP ,78 ,81 2-HOP ,42 ,66 3-HOP ,18 ,49 VEKTOR (e5-mistral, top-12) GRAPH-RAG (3-Hop, β=0,6)
ABB. 01 Retrieval-F1 nach Hop-Tiefe der Frage, 312 Anfragen, drei Retriever (nur zwei abgebildet). Vektor und Graph liegen bei 1-Hop im Rauschen. Die Lücke bei 3-Hop ist der ganze Grund, warum wir diese Notiz schreiben.

Warum die Lücke existiert

Zwei Fehlerarten erklären fast alle Verluste des Vektor-Retrievers bei Multi-Hop-Anfragen.

Die erste ist „Anker neben dem Ziel". Embeddings sind extrem gut darin, Absätze zu finden, die aussehen wie die Anfrage — gleiche DIN-Referenz, gleiches Gewerk-Vokabular, gleicher Zahlenbereich — und extrem schlecht darin, Absätze zu finden, die eine Entität mit der Anfrage teilen. Wenn man fragt „Welche Mängel auf Projekt X zitieren DIN 18960?", liefert ein Vektor-Retriever fröhlich zehn Absätze über DIN 18960 aus irgendeinem Projekt, weil sie wie die Anfrage klingen. Ein Graph-Retriever kann nach dem Projekt-Knoten einschränken und nur den relevanten Subgraphen zurückgeben.2

Die zweite sind „abgerissene Ketten". 3-Hop-Fragen erfordern implizit das Durchlaufen typisierter Beziehungen: Projektsteuerer → managed → Projekt → contains → Prüfgegenstand → assigned_to → Gewerk. Vektor-Retrieval kennt keine typisierten Beziehungen; es liefert Absätze und hofft, dass das LLM die Kette rekonstruiert. Das LLM, in unserer Erfahrung, tut das nicht.

„Embedding-Ähnlichkeit ist ein Werkzeug, um Absätze zu finden, die wie eine Anfrage klingen. Eine Anfrage ist selten ein Absatz. Genau diese Diskrepanz ist der Grund, warum wir immer wieder Graphen brauchen."

Wo Vektor gewinnt

Es ist 2026 in Mode, Graph-RAG-Triumph-Posts zu schreiben. Wir versuchen, einen etwas ehrlicheren zu schreiben. Vektor-Retrieval schlägt den Graph an drei Stellen weiterhin:

  1. Cold-Start-Korpora. Die Graph-Version des Korpus erforderte vier Engineer-Wochen Entity-Linking und Kanten-Typisierung. Die Vektor-Indizierung war an einem Nachmittag fertig.
  2. Schema-fremde Fragen. Wenn ein Nutzer etwas fragt, das das Schema nicht zu typisieren weiß — „Finde mir poetische Beschreibungen schlechten Wetters in den täglichen Bauprotokollen" — gibt der Graph-Retriever nichts zurück. Der Vektor-Retriever liefert plausible Kandidaten, auch wenn sie falsch sind.
  3. Latenz im Kleinen. Bei 1-Hop-Anfragen antwortet unser Vektor-Retriever in 80 ms p50, der Graph-Retriever in 240 ms p50. Für interaktive Nutzung ist das relevant.

Unser Produktionssystem ist nun hybrid. Der Router klassifiziert eine Anfrage nach geschätzter Hop-Tiefe (ein kleiner feingetunter Klassifikator, F1 0,91 auf einem Hold-out-Set) und routet zu Vektor bei 1-Hop und zu Graph bei 2+. Unten die Routing-Regel, kürzer als die Diskussion, die sie hervorgebracht hat:

def route(query: str) -> Retriever:
    depth = depth_classifier.predict(query)
    if depth == 1:                  return vector_retriever
    if depth >= 2:                  return graph_retriever
    if confidence(depth) < 0.7:     return ensemble(vector, graph)
    return graph_retriever

Zweite Abbildung: Woher die Lücke kommt

Eine Möglichkeit, den Unterschied zu verstehen, ist, Recall als Funktion der Anzahl unterschiedlicher Entitäten in der Goldantwort zu plotten. Der Recall des Vektor-Retrievers fällt linear ab. Der Graph-Recall hält sich, bis er an der Schemagrenze (Entitäten, an denen der Linker gescheitert ist) abrupt einbricht.

ABB. RECALL VS. ENTITÄTSZAHL N=312 · K=10 1,0 ,75 ,50 ,25 0 1 2 3 4 5+ UNTERSCHIEDLICHE ENTITÄTEN IN DER GOLDANTWORT VEKTOR GRAPH
ABB. 02 Recall@10 als Funktion davon, wie viele unterschiedliche Entitäten die Goldantwort enthält. Das Versagen des Vektor-Retrievers ist mechanisch: jede zusätzliche Entität fügt eine unabhängige Chance hinzu, sie zu verfehlen.

Was wir als Nächstes tun

Drei offene Stränge:

Der Benchmark und die Eval-Harness werden zusammen mit Eintrag № 022 zu Schema-Drift veröffentlicht. Den Datensatz halten wir zurück, bis unsere Kunden der Veröffentlichung der redigierten Bauprotokolle zustimmen, die ihn untermauern.

— V. T., München, 14. April 2026.

Anmerkungen

  1. Der Name „Graph-RAG" stammt von Microsoft; die Technik, die wir verwenden, ist im Geist näher an LangChains GraphCypherQAChain, der Retriever ist jedoch unser eigener und nicht Cypher-basiert.
  2. Das ist auch der Grund, warum Vektor-Retriever auf akademischen QA-Datensätzen so gut abschneiden — diese Datensätze sind dominiert von 1-Hop-Fragen, wo Embeddings glänzen. Echte Nutzer stellen fast nie 1-Hop-Fragen; sie stellen 2-Hop-Fragen in 1-Hop-Sprache.
V
Autor · Vinzenz Trimborn

Mitgründer von Alago. Schreibt über Ontologien, Retrieval und das chaotische Geschäft, Pre-Construction-Arbeit zu modellieren.

Weiterlesen

№ 024 · Featured · 12 Min. Ein Arbeitswortschatz für das Pre-Construction-Büro Featured → № 019 · Feldnotiz · 8 Min. Zeit auf der Baustelle ist keine Zahl Verwandt →