Tag

#embeddings

2 articles

Search & Retrieval13 min read

pgvectorで実装するバイナリ量子化 — 768次元を96バイトに圧縮する2段階検索

fp32の768次元埋め込みは1本3KB。コーパスが伸びるとメモリにもインデックスにも載らなくなります。Marianは符号1bit量子化(768次元→96バイト、32分の1)とHamming距離のHNSWインデックスで粗探索し、fp32コサインでリランクする2段階検索をpgvectorだけで実装しました。量子化の式、POPCOUNTテーブル、PostgreSQLのRPC、既存埋め込みからのゼロコストバックフィルまで、実装をそのまま解説します。

Engineering11 min read

インジェストパイプラインとcontent-hashキャッシュ — 再インデックスを差分だけにする

ドキュメントをRAGに載せる経路は「分割→埋め込み→格納」の3手に見えますが、運用で効くのは2回目以降の再インデックスです。Marianはチャンク内容のFNV-1aデュアルハッシュをembeddingsテーブルに併置し、変更のないチャンクの再埋め込みをスキップします。チャンクサイズの実定数(1400字/256トークン)、ファイル種別ごとの分割戦略、planReindexによる差分計画の実装を解説します。