AI LAB / KEYWORD DICTIONARY

基礎知識

Hierarchical Token Pooling(階層的なトークンプーリング)とは?

階層的なトークンプーリングは、複数ベクトル検索で文書のトークンベクトルを階層的にまとめ、保存するベクトル数と索引容量を減らす圧縮手法です。

仕組みと使いどころ

複数ベクトル型の検索モデルは、文書全体を一つのベクトルにせず、トークンごとのベクトルを保持します。細かな対応関係を検索に利用できる一方、索引が大きくなります。階層的なトークンプーリングは、トークン間のコサイン類似度に基づくWard法の階層クラスタリングを用いてベクトルを集約し、指定した係数に応じて数を減らします。エンコード時の適用、既存埋め込みの圧縮、モデル処理への組み込みが可能です。ただし、圧縮後はMaxSimスコアや検索精度が変化し得ます。NeoMMEでは非対称量子化と併用され、文書埋め込みの圧縮に利用されています。

Hierarchical Token Poolingの活用例

たとえば、こんな場面で

文書検索用の複数ベクトル索引が大きい場合、文書のエンコード時または索引作成前に階層的なトークンプーリングを適用し、保存するトークンベクトル数を減らす使い方が考えられます。

使うときのポイント

プーリング係数ごとに、圧縮後のベクトル数だけでなくMaxSimスコアや対象データでの検索結果の変化も確認してください。量子化との併用効果は、単独の効果と分けて判断する必要があります。

参考資料

Multi-Vector (Late Interaction) Embedding Models with Sentence Transformers (新しいタブで開きます)sentence-transformers/examples/multi_vector_encoder/compression/token_pooling.py at main · huggingface/sentence-transformers (新しいタブで開きます)NeoMME: A Single-Tower Multimodal-Native Multilingual Foundation Encoder for Efficient Fine-Tuning and Inference (新しいタブで開きます)

用語の説明や活用例に関連する参考資料です。

READ & LEARN

用語を知ったら、活用を知る。

AI LABで、AIの動向や業務に取り入れるヒントを読む。

記事一覧を見る