01 / UNDERSTAND
仕組みと使いどころ
複数ベクトル型の検索モデルは、文書全体を一つのベクトルにせず、トークンごとのベクトルを保持します。細かな対応関係を検索に利用できる一方、索引が大きくなります。階層的なトークンプーリングは、トークン間のコサイン類似度に基づくWard法の階層クラスタリングを用いてベクトルを集約し、指定した係数に応じて数を減らします。エンコード時の適用、既存埋め込みの圧縮、モデル処理への組み込みが可能です。ただし、圧縮後はMaxSimスコアや検索精度が変化し得ます。NeoMMEでは非対称量子化と併用され、文書埋め込みの圧縮に利用されています。
02 / IN PRACTICE
Hierarchical Token Poolingの活用例
たとえば、こんな場面で
文書検索用の複数ベクトル索引が大きい場合、文書のエンコード時または索引作成前に階層的なトークンプーリングを適用し、保存するトークンベクトル数を減らす使い方が考えられます。
03 / GOOD TO KNOW
使うときのポイント
プーリング係数ごとに、圧縮後のベクトル数だけでなく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の動向や業務に取り入れるヒントを読む。
