🚀 英語とドイツ語の文章埋め込み用クロス言語RoBERTa
このモデルは、英語とドイツ語の文章(テキスト)の埋め込みを計算することを目的としています。これらの埋め込みは、コサイン類似度を用いて比較することで、意味が類似した文章を見つけることができます。例えば、意味的な文章の類似度判定や、意味検索、言い換えマイニングなどに役立ちます。これを行うには、Sentence Transformers Pythonフレームワークを使用する必要があります。
このモデルの特長は、クロス言語でも動作することです。言語に関係なく、文章はその意味に応じて非常に類似したベクトルに変換されます。つまり、例えばドイツ語で検索を行い、ドイツ語だけでなく英語の意味に基づく結果も見つけることができます。xlmモデルと「言語交差を伴う多言語微調整」を使用することで、現在の最高の英語用大型モデルを上回る性能を達成しています(下記の評価セクションを参照)。
Sentence-BERT (SBERT) は、事前学習されたBERTネットワークを変更したもので、シアミーズネットワークとトリプレットネットワーク構造を使用して、コサイン類似度を用いて比較できる意味的に意味のある文章埋め込みを導き出します。これにより、最も類似したペアを見つけるための労力が、BERT / RoBERTaでは65時間かかっていたものが、SBERTでは約5秒に短縮され、かつBERTの精度を維持します。
出典: Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
このモデルは、Philip Mayによって微調整され、T-Systems-onsiteによってオープンソース化されています。素晴らしいオープンソース作品であるSentence Transformers、モデル、そしてGitHubでの支援に対して、Nils Reimersに特別な感謝を申し上げます。
🚀 クイックスタート
このモデルを使用するには、sentence-transformers
パッケージをインストールしてください(詳細はこちら: https://github.com/UKPLab/sentence-transformers)。
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('T-Systems-onsite/cross-en-de-roberta-sentence-transformer')
使用方法の詳細と例については、以下を参照してください:
✨ 主な機能
- 英語とドイツ語の文章埋め込みを計算できる。
- クロス言語で動作し、言語に関係なく意味に基づく検索が可能。
- 「言語交差を伴う多言語微調整」により、高性能を達成。
📦 インストール
このモデルを使用するには、sentence-transformers
パッケージをインストールする必要があります。
pip install sentence-transformers
💻 使用例
基本的な使用法
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('T-Systems-onsite/cross-en-de-roberta-sentence-transformer')
sentences = ["This is an example sentence", "Each sentence is converted"]
embeddings = model.encode(sentences)
print(embeddings)
📚 ドキュメント
訓練
ベースモデルはxlm-roberta-baseです。このモデルは、Nils Reimersによって50以上の言語の大規模な言い換えデータセットでさらに訓練されました。
Nils ReimersはGitHubで以下のように述べています:
言い換えモデルに関する論文が近日公開されます。
これらのモデルは、主にWikipediaの編集履歴、WikipediaとSimpleWikiから採掘された言い換え、ニュースレポートからの言い換え、バッチ内負例損失を伴うAllNLIエンテイルメントペアなど、数百万の言い換えの例を含む様々なデータセットで訓練されました。
内部テストでは、これらのモデルはNLI+STSbモデルよりもはるかに良い性能を示します。NLI+STSbモデルはドメインが狭く、特定のドメインの単語や文章(化学、コンピュータサイエンス、数学など)を含まないという問題があります。言い換えモデルは様々なドメインの多数の文章を見ています。
設定、すべてのデータセット、およびより広範な評価の詳細は、近日公開されます。
結果として得られたモデルxlm-r-distilroberta-base-paraphrase-v1
はここで公開されています: https://github.com/UKPLab/sentence-transformers/releases/tag/v0.3.8
このクロス言語モデルを基に、英語とドイツ語についてSTSbenchmarkデータセットで微調整しました。ドイツ語については、German STSbenchmark datasetのデータセットを使用し、deepl.comで翻訳しました。ドイツ語と英語の訓練サンプルに加えて、英語とドイツ語を交差させたサンプルも生成しました。これを「言語交差を伴う多言語微調整」と呼びます。これにより訓練データサイズが2倍になり、テストではさらに性能が向上することが示されました。
Optunaを使用して33回の自動ハイパーパラメータ検索を行いました。deepl.comのテストおよび開発データセットで10分割交差検証を行い、以下の最適なハイパーパラメータを見つけました:
- batch_size = 8
- num_epochs = 2
- lr = 1.026343323298136e-05
- eps = 4.462251033010287e-06
- weight_decay = 0.04794438776350409
- warmup_steps_proportion = 0.1609010732760181
最終的なモデルは、これらのハイパーパラメータを使用して、英語、ドイツ語、およびそれらの交差の訓練データセットと開発データセットの組み合わせで訓練されました。テストセットはテストに使用されました。
評価
評価は、英語、ドイツ語、および両言語の交差について、STSbenchmarkのテストデータを使用して行われました。評価コードはColabで利用可能です。評価指標として、文章埋め込みのコサイン類似度とSTSbenchmarkのラベルとのスピアマンの順位相関係数を使用します。
📄 ライセンス
Copyright (c) 2020 Philip May, T-Systems on site services GmbH
この作品は、MITライセンス(「ライセンス」)の下でライセンスされています。ライセンスに準拠しない限り、この作品を使用することはできません。ライセンスのコピーは、リポジトリ内のLICENSEファイルを確認することで取得できます。