HeadlinesBriefing HeadlinesBriefing.com

Zeilenebene-Tabellen-Chunks für RAG-Abruf

Towards Data Science •
×

Wenn eine Frage eine einzelne Zeile innerhalb einer Tabelle betrifft, zwingt das Abrufen der gesamten Tabelle das Generierungsmodell, 39 irrelevante Zeilen zu filtern. Die Einheit, die zur Frage passt, ist eine Zeile, nicht das ganze Rechteck. Dieser Artikel baut einen Index auf Zeilenebene, der jede Datenzeile in einen eigenen abrufbaren Chunk umwandelt, sodass eine Abfrage wie „Deckungslimit für Fahrzeugdiebstahl?“ genau diese eine Zeile samt ihrer Spaltenüberschriften zurückgibt.

Die Funktion serialize_table_rows durchsucht das line_df des Parsers, gruppiert aufeinanderfolgende Pipe-Zeilen zu Tabellen, liest die Kopfzeile über dem Trennzeichen und erzeugt eine Ausgabezeile pro Datenzeile. Jeder Chunk wird als col: val | col: val serialisiert, was ein LLM natürlich liest und das sich ohne Änderungen mit vorhandenen Keyword- und Embedding-Retrievern kombinieren lässt.

Der Index auf Zeilenebene ist eine zweite Skala, kein Ersatz. Ein Dispatcher leitet gezielte Nachschlagevorgänge an den Index auf Zeilenebene weiter, Synthese-Fragen werden über alle Zeilen derselben Tabelle ausgelöst (erkennbar an der gemeinsamen table_id), und gemischte Abfragen kombinieren beides. Downstream-Retriever, die die Indizierung auf Zeilenebene nie aktivieren, funktionieren unverändert weiter, während diejenigen, die sie aktivieren, den zweiten Frame explizit lesen.

Ausführbarer Code ist in doc-intel/notebooks-vol1 verfügbar und demonstriert serialize_table_rows an Tabelle 1 des Attention-Papiers, wobei eine Zeile statt der ganzen Tabelle zurückgegeben wird.

Quelle: Towards Data Science · Zusammengefasst von HeadlinesBriefing