SQLiteの公式ソースツリーに新しいベクトル検索拡張「vec1」— まだ「標準搭載」ではない理由
投稿日:2026.10.17
CATEGORY
- AI開発
SQLiteの公式ソースリポジトリ(fossil)に、新しいベクトル検索拡張「vec1」のソースコードが取り込まれたことがわかりました。2026年9月30日のコミット(3a0876d9)でext/vec1/ディレクトリへインポートされており、翌日10月1日のコミット(92709f54)でも同内容が記録されています。
「SQLiteにベクトル検索が標準搭載された」と早合点したくなる見出しですが、実態は少し違います。vec1はSQLite本体のamalgamation(sqlite3.c)には含まれておらず、make vec1.soを明示的に実行してビルドする必要がある、独立したloadable extensionです。

vec1の中身 — 仮想テーブルとIVFADC索引
vec1は仮想テーブル(virtual table)として実装された拡張です。距離関数はL2距離とコサイン距離の2つに対応し、索引方式にはIVFADC(クラスタに分割したうえで直積量子化を組み合わせる方式)を採用、量子化にはOPQ(最適化された直積量子化)を使っています。
実装はC言語の単一ファイルvec1.c(約1万3千行)で、外部依存はありません。テストは約50ファイル・約6,700行にのぼります。検索の高速化にはx86でAVX2、ARMでNEONによるSIMD最適化が組み込まれており、vec1_train()を使えば学習済みのインデックスを作成できます。検索時にどれだけのクラスタを調べるかを指すnprobeの既定値は0.05(5%)です。
距離関数・索引方式・量子化・SIMD最適化まで揃っているのは、簡易な実験実装の範囲を超えた索引設計です。
まだ発展途上 — バージョン0.8、ARM/WASMは未対応
vec1は現時点でも開発が継続しています。2026年10月6日のコミット(97014dfa)では、vec1_info()が返すバージョン番号が0.8に更新されました。10月13日時点でもbranch-3.54へのマージ(コミット2ca1a93f)などの修正コミットが続いており、trunkへの取り込み後も安定化作業が続いています。
SQLiteフォーラムの開発者投稿(2026年3月30日付)では、正式リリース前の課題として、x86向けのSIMD最適化パスがARMやWASMではまだ使われていないこと、テストが不十分であることが挙げられていました。本体のソースツリーに入ったからといって、全環境ですぐ同じ性能が出るわけではない、ということです。
混同注意 — 「sqlite-vec」とは別物
もう一つ注意したいのが名前の似た拡張です。「sqlite-vec」というベクトル検索拡張は、Alex Garcia(asg017)氏によるサードパーティ製のコミュニティ拡張であり、SQLite公式のvec1とは別系統です。検索すると両方が出てくるため、どちらについて書かれた情報かを確認する必要があります。

まとめ
外部のベクトルDBを別途導入せず、SQLiteの拡張一本でRAGや埋め込み検索を完結させる可能性は、IVFADC索引やSIMD最適化といった実装から見えてきています。ただし現時点のvec1は、ソースツリーに取り込まれて開発が進んでいる公式拡張であり、ビルドも別、バージョンは0.8、ARM/WASM対応やテストの拡充もこれからという段階です。読者がこれから見ておく価値があるのは、正式リリースのアナウンスと、ARM/WASM向けSIMD対応の進捗、そして今回触れた「sqlite-vec」との呼び分けです。
関連
AI エージェントを業務で回すときの設計と運用については、CTO の note に書いています。
出典
- SQLite 公式ソースリポジトリ(fossil)検索結果(vec1関連コミット一覧) https://sqlite.org/src/search?s=vec1
- mattn氏によるvec1解説記事(2026-10-16付) https://zenn.dev/mattn/articles/6e9996319ac099
※ この記事は AI を使用しています。Leadeas が自社開発した AI エージェント基盤で下書きを作成し、人間のレビューを経て公開しています。AI ネイティブ開発会社として自社の技術をそのまま実演する目的で、この手法を用いています。(詳しくは AI 利用ポリシー)

