バージョン 2.0.1 Date: 06/30/2024
モデルの説明
slate.30m.english.rtrvrモデルは、バイエンコーダーに基づく標準的な文変換モデルです。このモデルは、与えられた入力(クエリー、パッセージ、文書など)に対する埋め込みを生成する。 例えば、テキストA(クエリテキスト)とテキストB(パッセージテキスト)の間の余弦類似度を最大化するように学習される。 これらの文の埋め込みは、コサイン類似度を用いて比較することができる。
図1: 検索のためのバイエンコーダ埋め込みモデル
基本言語モデル
エンベッディングの言語モデル(LM)は“slate.30m.english”です。 これは、small-RoBERTaトランスフォーマー モデルと同じアーキテクチャ (6層) で、~3,000万個のパラメータと384の埋め込み次元を持ちます。 具体的には、“slate.30m.english”は“slate.125m.english”(以前はWatBERT)から蒸留されたものである。 最終的なモデルの名前はslate.30m.english.rtrvr です。 末尾の接尾辞は、検索ベースのタスクのために基礎となるモデル・アーキテクチャを微調整していることを示す。
トレーニング・アルゴリズム
最先端の、またはMTEB リーダーボードのトップに位置する埋め込みモデルのほとんどは、通常、次の 3 つの段階でトレーニングされます。
- 課題別(検索ベース)事前トレーニング
- 採掘されたペアのタスク別微調整
- 教師付きペアの微調整 我々は同様のアプローチをとり、最後の2つの段階を1つの微調整ステップにまとめる。
slate.30m.english.rtrvr は、“slate.125m.english.rtrvr-06-30-2024”モデルから微調整ステップで蒸留して生成されます(大きな教師モデルの詳細は、この場所にあります)。 知識蒸留は、高パフォーマンスの教師モデルから、より小さな生徒モデルに知識を転送します。これは、生徒の出力確率分布が教師の出力確率分布にできるだけ一致するように訓練することで、生徒のパフォーマンスを単独で微調整するよりも向上させます。
タスク別の事前トレーニング
この段階では、 RetroMAEフレームワークを使用して、基盤となる LM をより検索指向にします。 “slate.30m.english”でベースLMを初期化し、表1のデータを使ってRetroMAEで事前学習を続ける。 ここでは、データからのハードラベルだけを使うのではなく、slate.125m.english.rtrvr で使われている RetroMAE エンコーダーの予測値も抽出します。 ハイパーパラメータは次のとおりである:学習率:2e-5、ステップ数:435000、GPU:8 A100 (80GB) GPUs.
注:これは次の2ステージのベースとなるLMである。
教師なしペアと教師ありペアを用いた蒸留
埋め込みモデルの学習には、図1のようなバイエンコーダの枠組みを用いる。 RetroMAEで初期化し、さらにクエリー、パッセージのテキストペアを用いて、対比的損失の目的語を用いてバッチ内否定で知識蒸留を行う。 知識蒸留は、生徒の出力確率分布を教師の出力確率分布にできるだけ近づけるように訓練する。 レトリーバーモデルの文脈では、出力分布はテキストのペア間の類似度スコアである。 具体的には、クエリ、パッセージの文のペアごとに、クエリとパッセージの埋め込み間の教師の得点の分布、つまり埋め込み間の余弦類似度を生徒に抽出する。
蒸留に使用する教師は、後述の同じデータで学習した"slate.125m.english.rtrvr”モデルです。 教師モデルは、RetroMAEの事前学習済みモデルが事前学習段階で教師なしデータを見るという多段階パラダイムを使って学習され、その後、よりクリーンな、採掘された、またはゴールドラベルのデータで数百ステップにわたって微調整された。 データセット間のロバスト性を確保するため、この微調整されたモデルを、同じデータに対して異なるハイパーパラメットで訓練された別のモデルと融合させた。 詳細はslate.125m.english.rtrvrモデルカードをご参照ください。
知識移転の流れを図2に示す。
図2: 知識の蒸留
トレーニングデータのセクションで示したように、様々なドメインから大規模なペアをマイニングする。 さらに、検索タスクのための高品質なペアも以下のデータセットに含まれている:SQuAD, Natural Questions、Specter、Stack Exchange (Title, Body)のペア、S2ORC、SearchQA, HotpotQA, Fever、Miracl。 これらの教師ありデータセットには、slate.125m.english.rtrvr モデルの前のバージョンで採掘されたハードネガも含まれています。 さらに、`Mixtral-8x7B-Instruct-v0.1`を使用して、質問-回答、事実確認などの良質なペアを作成するために、トリプルを合成的に生成します。IBM固有のユースケースでより良いパフォーマンスを提供するために、IBMソフトウェアサポートデータとIBM Docsから作成されたペアも含まれています。
蒸留ハイパーパラメータは次の通り:学習rate:7e-4、ステップ数:500000, 有効バッチサイズ: 2048, GPUs:4 A100_80GB GPUs.
データの学習
データ・セット | パッセージ |
---|---|
ウィキペディア | 36396918 |
書籍コーパス | 3401308 |
スタックエクスチェンジ | 15999837 |
データ・セット | ペア |
---|---|
SPECTERの3連引用 | 684100 |
Stack Exchange 重複する質問(タイトル) | 304525 |
Stack Exchange 重複する質問(遺体) | 250519 |
Stack Exchange 重複する質問(タイトル+本文) | 250460 |
ナチュラル・クエスチョン(NQ) | 100231 |
SQuAD2.0 | 87599 |
PAQ(質問と回答)ペア | 64371441 |
スタック・エクスチェンジ(タイトル、回答)ペア | 4067139 |
スタック・エクスチェンジ(タイトル、本文)ペア | 23978013 |
スタック・エクスチェンジ(タイトル+本文、回答)ペア | 187195 |
S2ORC 引用ペア(タイトル) | 52603982 |
S2ORC(タイトル、アブストラクト) | 41769185 |
S2ORC_citations_abstracts | 52603982 |
WikiAnswers 重複する質問のペア | 77427422 |
SearchQA | 582261 |
HotpotQA | 85000 |
フィーバー | 109810 |
Arxiv | 2358545 |
ウィキペディア | 20745403 |
PubMed | 20000000 |
ミラクル・エン・ペア | 9016 |
DBPediaタイトルとボディのペア | 4635922 |
総合的なクエリ-ウィキペディアのパッセージ | 1879093 |
シンセティック事実の検証 | 9888 |
IBM:ソフトウェア・サポートが3倍に | 40290 |
IBMです:IBM Docs (タイトル-本文) | 474637 |
IBMです:IBM サポート (タイトル-本文) | 1049949 |
使用法
# make sure you’ve sentence transformers installed
pip install -U sentence-transformers
from sentence_transformers import SentenceTransformer, util
model = SentenceTransformer('path_to_slate_model')
input_queries = [
' Who made the song My achy breaky heart? ',
'summit define']
input_passages = [
" Achy Breaky Heart is a country song written by Don Von Tress. Originally titled Don't Tell My Heart and performed by The Marcy Brothers in 1991. ",
"Definition of summit for English Language Learners. : 1 the highest point of a mountain : the top of a mountain. : 2 the highest level. : 3 a meeting or series of meetings between the leaders of two or more governments."]
query_embeddings = model.encode(input_queries)
passage_embeddings = model.encode(input_passages)
print(util.cos_sim(query_embeddings, passage_embeddings))
このモデルの最大シーケンス長は512トークンである。
評価
ベースライン
公正な比較のために、以下のベースラインと比較する:
BM25(tf-idfに基づく伝統的モデル)
ELSER(Elasticが提供する商用検索アルゴリズム)
all-MiniLM-l6-v2:人気のあるオープンソースの文章変形モデルです。 このモデルはslate.30m.english.rtrvrと同じアーキテクチャーを共有し、商用に適したライセンスなしで、より多くのデータでトレーニングされています。 詳細はハギングフェイスモデルカードをご覧ください
E5-base:最近のオープンソースのトランスフォーマーモデルで、BEIRベンチマークで非常に優れた性能を発揮します。 これはベースサイズのモデルで、slate.125m.english.rtrvrと同じアーキテクチャを持つ。 [参考文献王 et.al、 2022: 弱教師付き対照事前学習によるテキスト埋め込み]. ハギングフェイスモデルカード
E5-small:オープンソースのE5ファミリーの中の小型モデル。 このモデルの埋め込み次元はslate.30m.rtrvr(384)と同じだが、レイヤー数が12であるため、より大きく、わずかに遅い。 [参考文献王 et.al、 2022: 弱教師付き対照事前学習によるテキスト埋め込み]. ハギングフェイスモデルカード
BGE-base:最近のオープンソース変換モデルで、768エンベッディングサイズのBEIRベンチマークで最高の性能を発揮。 ハギングフェイスモデルカード
BGE-small:384エンベッディングサイズのBEIRベンチマークで最高のパフォーマンスを発揮する、最近のオープンソースのトランスフォーマーモデル。 ハギングフェイスモデルカード
また、これらのモデルのパフォーマンスを、スレートモデルの旧バージョンであるslate.125m.english.rtrvr-012024とslate.30m.english.rtrvr-012024と比較する。
当社の評価ベンチマーク: BEIR ( MTEB の検索タブ)
BEIRベンチマークは、ゼロショット設定下で評価された15のオープンソース検索タスクで構成されています。 BEIRは、9つの異なる検索タスクを含む多様性に焦点を当てた:ファクトチェック、引用予測、重複質問検索、議論検索、ニュース検索、質問応答、ツイート検索、バイオ・医療IR、エンティティ検索である。 さらに、多様なテキストドメインのデータセット、幅広いトピック(ウィキペディアのような)と専門的なトピック(COVID-19 出版物のような)をカバーするデータセット、異なるテキストタイプ(ニュース記事対.ツイート)、様々なサイズのデータセット(3.6k - 15M documents)、異なるクエリ長(平均クエリ長は3~192語)とドキュメント長(平均ドキュメント長は11~635語)のデータセットがある。 BEIRは評価に正規化累積割引利益(具体的にはnDCG@10)指標を使用する。
ロングNQ
Long NQはIBMのデータセットで、NaturalQuestionsデータセットのサブセットに基づいて、RAGパイプライン全体を評価するために設計されています。 開発セットには、2,345のウィキペディア文書から178,891の文章をコーパスとする300の回答可能な質問がある。 ロングNQはまた、各問題に関連するゴールド・ウィキペディアの文章も提供している。 検索中、タスクはすべての質問に対してコーパスから関連する金文を取得することである。
結果
モデル | BEIR-15 (NDCG@10) |
---|---|
BM25 | 42.02 |
エルザー | 49.01 |
all-miniLM-L6-v2 | 41.95 |
ES-small-v2 | 49.04 |
ES-base-v2 | 50.29 |
BGE-小 | 51.68 |
BGEベース | 53.25 |
slate.30m.english.rtrvr 01.20.2024 | 46.91 |
slate.125m.english.rtrvr-01.20.2024 | 49.37 |
slate.30m.english.rtrvr 06.30.2024 | 49.06 |
slate.125m.english.rtrvr-06.30.2024 | 51.26 |
図3: BEIRベンチマークでの性能比較(MTEB検索タブ)
モデル | LONGNQ (NDCG@10) |
---|---|
all-miniLM-L6-v2 | 58.10 |
BGE-小 | 59.33 |
BGEベース | 61.29 |
ES-small-v2 | 61.88 |
ES-base-v2 | 63.80 |
slate.30m.english.rtrvr 01.20.2024 | 59.94 |
slate.125m.english.rtrvr-01.20.2024 | 65.01 |
slate.30m.english.rtrvr 06.30.2024 | 62.07 |
slate.125m.english.rtrvr-06.30.2024 | 66.80 |
図4: ロングNQデータセットでの性能比較
ランタイム・パフォーマンス
パフォーマンスの実行時間は、466のクエリーを持つ再ランキングタスクで測定された。 各クエリについて、top-100 によって得られたBM25のパッセージを再ランク付けし、全クエリの平均時間を報告する。 再ランキングはA100_40GB GPUで実行された。
モデル | 時間/クエリー |
---|---|
all-miniLM-L6-v2 | 0.18秒 |
E5-small | 0.33秒 |
E5-base | 0.75秒 |
BGE-小 | 0.34秒 |
BGEベース | 0.75秒 |
slate.125m.english.rtrvr | 0.71秒 |
slate.30m.english.rtrvr | 0.20秒 |