軽量Embeddingモデルの可能性と現実:Gemma-300M vs CPU推論
lsh-cascade-poc プロジェクトでは、これまでスケーラブルな検索システムの構築を目指して様々な実験を行ってきました。
今回は、GitHubリポジトリの Notebooks 91番以降 で実施した、最新の 軽量Embeddingモデル に関する実験結果と、そこから得られた知見を共有します。
2026年に入り、Embeddingモデルのトレンドは大きく変化しています。
BERTベースからLLMベースへのシフト
これまでのベクトル検索では、BERTベースのモデル(e5-base や multilingual-e5 など)が主流でした。しかし最近では、LLM(大規模言語モデル)をベースにした軽量なEmbeddingモデルが次々と登場しています。
今回の実験では、特に以下のモデルに注目しました。
- Google/EmbeddingGemma-300M
- Qwen/Qwen3-Embedding-0.6B
これらはパラメータ数が数億〜十数億と、LLMとしては非常に小型ですが、従来のBERTモデルとは異なる特性を持っています。
特徴1:入力文字数制限の大幅な緩和
従来のBERTモデル(512トークン制限)と異なり、これらの新世代モデルは 8192トークン などの長いコンテキストを扱えるようになっています。 これにより、ドキュメントを細切れにチャンク化することなく、ある程度の塊としてベクトル化することが容易になりました。
特徴2:異方性の改善と「Gemma-300M」の発見
実験で特筆すべき発見は、異方性(Anisotropy) の変化です。 従来のモデルはベクトルが特定の方向に偏りやすく、コサイン類似度が全体的に高止まりする傾向がありました。
しかし、今回検証した Gemma-300M は、驚くほど高い「等方性(Isotropy)」を示しました。 ベクトル空間全体を効率よく使って分布しており、これにより互いの距離が適切に分離され、検索精度やハッシュ化(LSH)との相性が非常に良くなっています。
発見された課題と成果
実験を通じて、期待通りだった点と、予想外の壁にぶつかった点がありました。
課題:CPUでの高速化は困難
「軽量モデル」という名前に期待して、CPU環境(ONNX Runtimeなど)での高速動作を検証しました。 しかし結果として、LLMベースのモデルは計算構造が複雑であり、CPU推論では 1〜3 docs/sec 程度しか出ないことがわかりました。
従来のBERTベースモデル(MiniLM等)と比較すると圧倒的に遅く、実用的な速度を出すにはやはり GPUが必須 であるという現実が浮き彫りになりました。CPUのみの環境で運用する場合は、依然として旧来のモデルに分があります。
成果:Gemma-300M + ITQ-LSH の優位性
今回の実験の最大の収穫は、量子化(圧縮)に関する知見です。
Gemma-300Mなどの最新モデルは、Matryoshka表現学習によって出力を単純にバイナリ化(Sign関数で0/1化)しても性能が出るとされています。 しかし、我々のプロジェクトで採用している ITQ (Iterative Quantization) を用いた 128ビット LSH(Locality Sensitive Hashing) と比較実験を行ったところ、以下のことが判明しました。
- モデルネイティブのバイナリ化よりも、ITQを用いたアプローチの方が検索精度(再現率など)において同等、あるいは上回る 結果となった。
これは、lsh-cascade-poc で開発してきた「ITQによる再量子化パイプライン」が、最新のモデルに対しても極めて有効であることを示しています。
Gemma-300Mの持つ高い等方性と、ITQの最適化能力が組み合わさることで、非常にコンパクトかつ高精度なインデックスが構築可能です。
まとめ
- トレンド: EmbeddingモデルはBERTからLLMベースへ移行し、入力長と表現力が向上している。
- モデル: Gemma-300M は特にベクトルの分布(等方性)が優秀。
- ハードウェア: 軽量とはいえLLMベースモデルの実運用には GPU がほぼ必須。
- 手法: ITQ-LSH による128ビット化は、最新モデルに対しても依然として最強の圧縮手法の一つである。
今後の実験では、この新しいベクトル生成パイプラインを、より大規模なデータセットやGraph RAGへの応用に繋げていく予定です。