質問がテーブル内の1行を対象とする場合、テーブル全体を検索すると、生成モデルは39の無関係な行をフィルタリングする必要があります。質問に一致する単位は1行であり、長方形全体ではありません。本記事では、各データ行をそれ自体で検索可能なチャンクに変換する行レベルのインデックスを構築します。これにより、「車両盗難の上限は?」のようなクエリは、その1行と列ヘッダーだけを正確に返します。
serialize_table_rows 関数はパーサーの line_df をスキャンし、連続するパイプ行をテーブルにグループ化し、セパレータの上のヘッダー行を読み取り、データ行ごとに1つの出力行を生成します。各チャンクは col: val | col: val としてシリアライズされ、LLMが自然に読める形式であり、既存のキーワード検索や埋め込み検索を変更なしにそのまま組み合わせられます。
行レベルのインデックスは第2のスケールであり、置き換えではありません。ディスパッチャーは対象を絞ったルックアップを行レベルのインデックスにルーティングし、総合的な質問は同じテーブルのすべての行に対して発火し(共有された table_id で検出)、混合クエリは両方を組み合わせます。行レベルのインデックス化を有効にしないダウンストリームの検索器は変更されずに動作し続け、有効にする検索器は第2のフレームを明示的に読み取ります。
実行可能なコードは doc-intel/notebooks-vol1 で入手でき、Attention 論文の表1で serialize_table_rows を実演し、テーブル全体ではなく1行を返します。
出典: Towards Data Science · 要約:HeadlinesBriefing