🚀 multi-qa_v1-distilbert-cls_dot
SentenceTransformersは、与えられたデータから文埋め込みをトレーニングし生成することができる一連のモデルとフレームワークです。生成された文埋め込みは、クラスタリング、意味検索などのタスクに利用できます。このモデルでは、事前学習済みのdistilbert-base-uncasedモデルを使用し、シアメーズネットワークの設定と対照学習の目的でトレーニングしました。StackExchangeの質問と回答のペアをトレーニングデータとして使用し、質問/回答の埋め込みの類似性に対してロバストなモデルを作成しました。このモデルでは、文埋め込みとして平均プーリングではなくcls出力を使用しました。学習目的のために、類似度の計算にはドット積を使用しました。
このモデルは、Hugging Faceによって主催されたCommunity week using JAX/Flax for NLP & CVの間に開発されました。このモデルは、Train the Best Sentence Embedding Model Ever with 1B Training Pairsというプロジェクトの一環として開発されました。このプロジェクトを実行するために、7台のTPU v3 - 8という効率的なハードウェアインフラストラクチャを利用するとともに、GoogleのFlax、JAX、およびCloudチームのメンバーから効率的な深層学習フレームワークに関する支援を受けました。
🚀 クイックスタート
モデルの概要
SentenceTransformersは、与えられたデータから文埋め込みをトレーニングし生成するための一連のモデルとフレームワークです。生成された文埋め込みは、クラスタリング、意味検索などのタスクに利用できます。事前学習済みのdistilbert-base-uncasedモデルを使用し、シアメーズネットワークの設定と対照学習の目的でトレーニングしました。StackExchangeの質問と回答のペアをトレーニングデータとして使用し、質問/回答の埋め込みの類似性に対してロバストなモデルを作成しました。このモデルでは、文埋め込みとして平均プーリングではなくcls出力を使用し、学習目的のためにドット積を使用して類似度を計算しました。
想定される用途
このモデルは、検索エンジンの文エンコーダとして使用することを想定しています。入力文が与えられると、文の意味情報を捉えたベクトルを出力します。この文ベクトルは、意味検索、クラスタリング、または文の類似性タスクに使用できます。
使い方
SentenceTransformersライブラリを使用して、与えられたテキストの特徴を取得する方法は次のとおりです。
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('flax-sentence-embeddings/multi-qa_v1-distilbert-cls_dot')
text = "Replace me by any question / answer you'd like."
text_embbedding = model.encode(text)
🔧 技術詳細
事前学習
事前学習済みのdistilbert-base-uncasedを使用しています。事前学習手順の詳細については、モデルカードを参照してください。
ファインチューニング
対照学習の目的でモデルをファインチューニングしました。正式には、バッチ内のすべての可能な文のペアからコサイン類似度を計算し、真のペアと比較してクロスエントロピー損失を適用します。
ハイパーパラメータ
このモデルはTPU v3 - 8でトレーニングされました。バッチサイズ1024(TPUコアあたり128)で80kステップトレーニングしました。学習率のウォームアップは500ステップとし、シーケンス長は128トークンに制限しました。AdamWオプティマイザを使用し、学習率は2e - 5としました。完全なトレーニングスクリプトは、現在のリポジトリで入手できます。
トレーニングデータ
複数のStackexchangeの質問と回答のデータセットを連結して、モデルをファインチューニングするために使用しました。MSMARCO、NQ、その他の質問と回答のデータセットも使用されました。
データセット |
論文 |
トレーニングペアの数 |
Stack Exchange QA - Title & Answer |
- |
4,750,619 |
Stack Exchange |
- |
364,001 |
TriviaqQA |
- |
73,346 |
SQuAD2.0 |
論文 |
87,599 |
Quora Question Pairs |
- |
103,663 |
Eli5 |
論文 |
325,475 |
PAQ |
論文 |
64,371,441 |
WikiAnswers |
論文 |
77,427,422 |
MS MARCO |
論文 |
9,144,553 |
GOOAQ: Open Question Answering with Diverse Answer Types |
論文 |
3,012,496 |
Yahoo Answers Question/Answer |
論文 |
681,164 |
SearchQA |
- |
582,261 |
Natural Questions (NQ) |
論文 |
100,231 |