Sentence Transformers 2.2 : 事前訓練済みモデル (翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 11/24/2022 (v2.2.2)
* 本ページは、UKPLab/sentence-transformers の以下のドキュメントを翻訳した上で適宜、補足説明したものです:
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
- 人工知能研究開発支援
- 人工知能研修サービス(経営者層向けオンサイト研修)
- テクニカルコンサルティングサービス
- 実証実験(プロトタイプ構築)
- アプリケーションへの実装
- 人工知能研修サービス
- PoC(概念実証)を失敗させないための支援
- お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
◆ お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。
- 株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
- sales-info@classcat.com ; Web: www.classcat.com ; ClassCatJP
Sentence Transformers 2.2 : 事前訓練済みモデル
様々な事前訓練済みモデルを提供しています。これらのモデルの使用は簡単です :
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('model_name')
すべてのモデルは HuggingFace モデルハブ にホストされています。
モデル概要
以下の表は (選択された) モデルの概要を示しています。それらは埋め込まれたセンテンスの品質 (性能センテンス埋め込み) と埋め込まれた検索質問 & パラグラフの品質 (性能意味検索) について広範囲に評価されました。
すべての利用可能な訓練データ (10 億以上の訓練ペア) で訓練された all-* モデル は 汎用目的な モデルとして設計されています。all-mpnet-base-v2 モデルはベストな品質を提供する一方で、all-MiniLM-L6-v2 は 5 倍高速でなおかつ良い品質を提供します。すべての評価モデルを見るには All モデルをトグルするか、
すべての既存の sentence-transformers モデルを見るために HuggingFace モデルハブ にアクセスしてください。
- 多くのユースケースに対して調整された万能モデル。10 億以上の訓練ペアの大規模で多様なデータセットで訓練されました。
- ベースモデル: microsoft/mpnet-base (サイズ: 420 MB)
- 訓練データ: 1B+ 訓練ペア。詳細は、モデルカード参照。
- 次元: 768
- 最大シークエンス長: 384
- プーリング: 平均プーリング
- このモデルは意味検索のために調整されました: クエリ/質問が与えられたとき、関連パッセージ (節・句) を見つけることができます。(question, answer) ペアの大規模で多様なセットで訓練されました。
- ベースモデル: – (サイズ: 420 MB)
- 訓練データ: 多様なソースからの 215M (question, answer) ペア。
- 次元: 768
- 最大シークエンス長:512
- プーリング: CLS プーリング
- 多くのユースケースに対して調整された万能モデル。10 億以上の訓練ペアの大規模で多様なデータセットで訓練されました。
- ベースモデル: distilroberta-base (サイズ: 290 MB)
- 訓練データ: 1B+ 訓練ペア。詳細は、モデルカード参照。
- 次元: 768
- 最大シークエンス長: 512
- プーリング: 平均プーリング
all-MiniLM-L12-v2
- 多くのユースケースに対して調整された万能モデル。10 億以上の訓練ペアの大規模で多様なデータセットで訓練されました。
- ベースモデル: microsoft/MiniLM-L12-H384-uncased (サイズ: 120 MB)
- 訓練データ: 1B+ 訓練ペア。詳細は、モデルカード参照。
- 次元: 384
- 最大シークエンス長: 256
- プーリング: 平均プーリング
- このモデルは意味検索のために調整されました: クエリ/質問が与えられたとき、関連パッセージを見つけることができます。(question, answer) ペアの大規模で多様なセットで訓練されました。
- ベースモデル: distilbert-base (訳注: リンク切れ) (サイズ: 250 MB)
- 訓練データ: 多様なソースからの 215M (question, answer) ペア。
- 次元: 768
- 最大シークエンス長: 512
- プーリング: 平均プーリング
- 多くのユースケースに対して調整された万能モデル。10 億以上の訓練ペアの大規模で多様なデータセットで訓練されました。
- ベースモデル: nreimers/MiniLM-L6-H384-uncased (サイズ: 80 MB)
- 訓練データ: 1B+ 訓練ペア。詳細は、モデルカード参照。
- 次元: 384
- 最大シークエンス長: 256
- プーリング: 平均プーリング
- このモデルは意味検索のために調整されました: クエリ/質問が与えられたとき、関連パッセージを見つけることができます。(question, answer) ペアの大規模で多様なセットで訓練されました。
- ベースモデル: nreimers/MiniLM-L6-H384-uncased (サイズ: 80 MB)
- 訓練データ: 多様なソースからの 215M (question, answer) ペア。
- 次元: 384
- 最大シークエンス長: 512
- プーリング: 平均プーリング
paraphrase-multilingual-mpnet-base-v2
- ベースモデル: Teacher: paraphrase-mpnet-base-v2; Student: xlm-roberta-base (サイズ: 970 MB)
- 訓練データ: paraphrase-mpnet-base-v2 の多言語モデルで、50+ 言語に拡張されています。
- 次元: 768
- 最大シークエンス長: 128
- プーリング: 平均プーリング
- ベースモデル: nreimers/albert-small-v2 (サイズ: 43 MB)
- 訓練データ: AllNLI, sentence-compression, SimpleWiki, altlex, msmarco-triplets, quora_duplicates, coco_captions,flickr30k_captions, yahoo_answers_title_question, S2ORC_citation_pairs, stackexchange_duplicate_questions, wiki-atomic-edits
- 次元: 768
- 最大シークエンス長: 256
- プーリング: 平均プーリング
paraphrase-multilingual-MiniLM-L12-v2
- ベースモデル: Teacher: paraphrase-MiniLM-L12-v2; Student: microsoft/Multilingual-MiniLM-L12-H384 (サイズ: 420 MB)
- 訓練データ: paraphrase-multilingual-MiniLM-L12-v2 の多言語モデルで、50+ 言語に拡張されています。
- 次元: 384
- 最大シークエンス長: 128
- プーリング: 平均プーリング
- ベースモデル: nreimers/MiniLM-L3-H384-uncased (サイズ: 61 MB)
- 訓練データ: AllNLI, sentence-compression, SimpleWiki, altlex, msmarco-triplets, quora_duplicates, coco_captions,flickr30k_captions, yahoo_answers_title_question, S2ORC_citation_pairs, stackexchange_duplicate_questions, wiki-atomic-edits
- 次元: 384
- 最大シークエンス長: 128
- プーリング: 平均プーリング
distiluse-base-multilingual-cased-v1
- ベースモデル: Teacher: mUSE; Student: distilbert-base-multilingual (サイズ: 480 MB)
- 訓練データ: 多言語モデル of Universal センテンス・エンコーダ for 15 言語: Arabic, Chinese, Dutch, English, French,
- 次元: 512
- 最大シークエンス長: 128
- プーリング: 平均プーリング
distiluse-base-multilingual-cased-v2
- ベースモデル: Teacher: mUSE; Student: distilbert-base-multilingual (サイズ: 480 MB)
- 訓練データ: 多言語モデル of Universal センテンス・エンコーダ for 50 言語.
- 次元: 512
- 最大シークエンス長: 128
- プーリング: 平均プーリング
意味検索
以下のモデルは 意味検索 (Semantic Search) のために特に訓練されました : 質問 / 検索クエリが与えられたとき、これらのモデルは関連するテキストパッセージを見つけることができます。詳細は 使用方法 – 意味検索 をご覧ください。
from sentence_transformers import SentenceTransformer, util
model = SentenceTransformer('multi-qa-MiniLM-L6-cos-v1')
query_embedding = model.encode('How big is London')
passage_embedding = model.encode(['London has 9,787,426 inhabitants at the 2011 census',
'London is known for its finacial district'])
print("Similarity:", util.dot_score(query_embedding, passage_embedding))
マルチ QA モデル
以下のモデルは StackExchange, Yahoo Answers, Google & Bing 検索クエリ等々を含む、様々なソースとドメインから 215 M の質問応答ペア で訓練されました。
これらのモデルは多くの検索タスクとドメインで上手く動作します。
これらのモデルは長さ 1 の正規化ベクトルを生成し、これはドット積、コサイン類似度とユークリッド距離と共に利用できます :
MSMARCO パッセージモデル
MSMARCO Passage Ranking データセット は、Bing 検索からの 500k の実際の質問を様々な web ソースからの関連パッセージと共に含みます。MSMARCO データセットの多様性を前提として、モデルはまた他のドメインでも上手く動作します。
モデルはドット積とともに使用するように調整されています :
これらのモデルは長さ 1 の正規化ベクトルを生成し、これはドット積、コサイン類似度とユークリッド距離と共に利用できます :
多言語モデル
以下のモデルはアラインされた (位置合わせされた) ベクトル空間を生成します、つまり、異なる言語での類似の入力はベクトル空間で近接してマップされます。入力言語を指定する必要はありません。詳細は私たちの出版物 Making Monolingual Sentence Embeddings Multilingual using Knowledge Distillation (知識蒸留を使用して単一言語センテンス埋め込みを多言語化する) にあります。以下の 50+ 言語を使用しました : ar, bg, ca, cs, da, de, el, en, es, et, fa, fi, fr, fr-ca, gl, gu, he, hi, hr, hu, hy, id, it, ja, ka, ko, ku, lt, lv, mk, mn, mr, ms, my, nb, nl, pl, pt, pt-br, ro, ru, sk, sl, sq, sr, sv, th, tr, uk, ur, vi, zh-cn, zh-tw.
意味的類似性
これらのモデルは1 つの言語や言語に渡り意味的に類似のセンテンスを検索します。
- distiluse-base-multilingual-cased-v1: 多言語 Universal センテンスエンコーダ の多言語知識蒸留版。15 言語をサポートします : Arabic, Chinese, Dutch, English, French, German, Italian, Korean, Polish, Portuguese, Russian, Spanish, Turkish.
- distiluse-base-multilingual-cased-v2: 多言語 Universal センテンスエンコーダ の多言語知識蒸留版。このバージョンは 50+ 言語をサポートしますが、v1 モデルよりも少し弱い性能で遂行します。
- paraphrase-multilingual-MiniLM-L12-v2 – paraphrase-MiniLM-L12-v2 の多言語版で、50+ 言語に対する parallel データで訓練されました。
- paraphrase-multilingual-mpnet-base-v2 – paraphrase-mpnet-base-v2 の多言語版で、50+ 言語に対する parallel データで訓練されました。
Bitext マイニング
Bitext マイニングは 2 つの言語で翻訳されたセンテンスペアを見つけるプロセスを說明しています。これが貴方のユースケースに当てはまるのであれば、以下のモデルはベストな性能を与えます :
- LaBSE – LaBSE モデル。109 言語をサポートします。複数の言語で翻訳ペアを見つけるために上手く動作します。ここで詳述されているように、LaBSE は互いの翻訳ではないセンテンスペアの類似度を評価するためにはあまり上手く動作しません。
モデルの新しい言語への拡張は ここの說明 に従うことにより簡単です。
画像 & テキストモデル
以下のモデルは画像とテキストを結合ベクトル空間 (joint vector space) に埋め込むことができます。text2image-検索, image2image-検索, 画像クラスタリングとゼロショット画像分類に対してどのように使用するかの詳細は画像検索をご覧ください。
以下のモデルは、ゼロショット ImageNet 検証データセット上の個々の Top 1 精度によって利用可能です。
- clip-ViT-B-32 : 63.3 (Top 1 性能)
- clip-ViT-B-16 : 68.1
- clip-ViT-L-14 : 75.4
更にこの多言語テキスト-画像モデルを提供しています :
- clip-ViT-B-32-multilingual-v1 – 多言語知識蒸留 を使用した clip-ViT-B-32 モデルに対する多言語テキストエンコーダ。このモデルは、clip-ViT-B-32 モデルの画像ベクトルにマッチするように 50+ 言語のテキストをエンコードすることができます。
他のモデル
科学文献
SPECTER は科学の引用の上で訓練されたモデルで、2 つの公表文献の類似性を推定するために使用できます。類似の論文を見つけるために利用できます。
- allenai-specter – 意味検索 Python サンプル / 意味検索 Colab サンプル
Natural Questions (NQ) データセットモデル
以下のモデルは Google の Natural Questions データセット で訓練されました、Google 検索の 100k の実際の質問と Wikipedia からの関連パッセージを伴うデータセットです。
- nq-distilbert-base-v1: MRR10: 72.36 on NQ dev set (small)
from sentence_transformers import SentenceTransformer, util
model = SentenceTransformer('nq-distilbert-base-v1')
query_embedding = model.encode('How many people live in London?')
#The passages are encoded as [ [title1, text1], [title2, text2], ...]
passage_embedding = model.encode([['London', 'London has 9,787,426 inhabitants at the 2011 census.']])
print("Similarity:", util.cos_sim(query_embedding, passage_embedding))
ここ で示されるようにパッセージをインデックスできます。
Note : NQ モデルは上手く動作しません。Use the above mentioned Multi-QA models to achieve the optimal performance.
詳細。
DPR-Models
Dense Passage Retrieval for Open-Domain Question Answering で Karpukhin et al. は Google の Natural Questions データセットに基づいてモデルを訓練しました :
- facebook-dpr-ctx_encoder-single-nq-base
- facebook-dpr-question_encoder-single-nq-base
彼らはまた Natural Questions, TriviaQA, WebQuestions と CuratedTREC の組み合わせでもモデルを訓練しました。
- facebook-dpr-ctx_encoder-multiset-base
- facebook-dpr-question_encoder-multiset-base
Note: DPR モデルは比較的性能が悪いです。Use the above mentioned Multi-QA models to achieve the optimal performance.
平均単語埋め込みモデル
以下のモデルは幾つかの良く知られた単語埋め込み手法に対して平均的な単語埋め込みを計算します。それらの計算速度は transformer ベースのモデルよりもかなり速いですが、埋め込みの品質は悪いです。
- average_word_embeddings_glove.6B.300d
- average_word_embeddings_komninos
- average_word_embeddings_levy_dependency
- average_word_embeddings_glove.840B.300d
以上