ColBERT(コルバート)とは

ColBERTとは、AIが言葉の意味をとらえて文書を探す検索モデルのひとつで、照合の工程をあえて最後まで遅らせる「late interaction(後期相互作用)」という設計により、精度と速度を両立させた手法です。ChatGPT公開(2022年11月30日)より前の2020年に論文が発表され、スタンフォード大学の研究グループがソフトウェアを公開しています。

英語表記:Contextualized Late Interaction over BERT

なぜ「後回し」にすると速くて正確なのか

一般的なベクトル検索は、文書全体を1本のベクトル(意味を表す数値の並び)に要約してから比べます。要約は速い半面、細かな言い回しの違いを取りこぼしやすいのが弱点です。では、どう両立させるのか。

ColBERTは単語ごとのベクトルを残したまま保存しておき、検索の瞬間に細かく照合します。料理にたとえるなら、文書側の下ごしらえを先に済ませておき、注文(検索の言葉)が来たら仕上げの照合だけを行うイメージです。重い計算が事前に終わっているため、大規模な文書の集まりでも数十ミリ秒単位で検索できるとされています。RAG(検索拡張生成)の検索部分を強化する部品として、BM25のようなキーワード検索やベクトル検索と並ぶ、有力な選択肢のひとつ。検索の精度に悩んだとき、思い出す価値のある名前かもしれません。

Topic精度はそのままで、計算量を約1万分の1にした発想とは?

2020年の論文は、BERT(Googleが2018年に発表した言語AI)をそのまま検索に使う方式と比べ、同水準の精度を保ったまま約100倍高速化し、検索1回あたりの計算量を約1万分の1に減らしたと報告しています。AIの進歩というと賢さの競争を思い浮かべますが、「計算をどの順番でやるか」の工夫だけで桁違いの差が生まれるという好例でしょう。

ColBERTに関するよくある質問

ColBERTはどう読みますか?名前の由来は?
コルバートと読みます。Contextualized Late Interaction over BERTの頭文字をつないだ名前で、土台のBERTはGoogleが2018年に発表した言語AIです。ChatGPT公開(2022年11月)より前から、検索を賢くする研究は続いていました。
ColBERTは2020年の研究ですが、その後も続いていますか?
続いています。改良版のColBERTv2が発表されたほか、2022年までの主要な国際学会で関連研究の発表が続いたことが公開リポジトリで確認できます。ソフトウェアは無料で公開されています。

あわせて読みたい記事