問題点
- セマンティック/自然言語検索、RAG のためにはベクトル埋め込みが必要
- ほとんどの埋め込みモデルには入力長の制限がある
- 適切な入力長に合わせることが検索品質に直結する
- 入力長の制限により、たいていは段落を分割して保存することになる
- 原文を分割して保存するため、1つの文書が複数の文書に分かれてしまう
- ほとんどの文書は、メタデータや長文の別フィールドなどを含み、単一のテキストデータだけで構成されているわけではない
- 分割されたデータを保存するには、分割した原文と付加情報を重複保存するか、コレクション(またはテーブル)を分けて保存しなければならない
- 重複保存は保存容量の増加による非効率を招き、分離されたコレクションは検索過程での結合、スコア計算、文書数の計算などの複雑さを増大させる
- このような方式は、ほとんどのベクトルストアを使う中で頻繁に直面する問題である
解決
- 原文を分割保存しない別の方法を探した
- 埋め込みデータが保存されるフィールドについて、2次元データを入力できるように DB と関連ライブラリを修正した
- これにより、原文を分割せずに、1つ以上に分割された文書ごとの可変長ベクトルデータを保存できるようになった
- この方法なら、原文と分離されたベクトルデータがコレクションの分割なしに共存でき、データ管理やクエリが簡潔になる
まだコメントはありません。