🚀 LaBSE
LaBSEは、文の類似度を計算するためのモデルです。多言語に対応しており、15種類の言語での文埋め込みを生成できます。
🚀 クイックスタート
Smaller Language-agnostic BERT Sentence Encoder (LaBSE) は、元のLaBSEモデル から、論文 'Load What You Need: Smaller Versions of Multilingual BERT' で説明されている手法を用いて、15言語(元の109言語から)にディスティレーションされたBERTベースのモデルです。この論文は Ukjae Jeong によるものです。
💻 使用例
基本的な使用法
import torch
from transformers import BertModel, BertTokenizerFast
tokenizer = BertTokenizerFast.from_pretrained("setu4993/smaller-LaBSE")
model = BertModel.from_pretrained("setu4993/smaller-LaBSE")
model = model.eval()
english_sentences = [
"dog",
"Puppies are nice.",
"I enjoy taking long walks along the beach with my dog.",
]
english_inputs = tokenizer(english_sentences, return_tensors="pt", padding=True)
with torch.no_grad():
english_outputs = model(**english_inputs)
文の埋め込みを取得するには、pooler出力を使用します。
english_embeddings = english_outputs.pooler_output
他の言語の出力例:
italian_sentences = [
"cane",
"I cuccioli sono carini.",
"Mi piace fare lunghe passeggiate lungo la spiaggia con il mio cane.",
]
japanese_sentences = ["犬", "子犬はいいです", "私は犬と一緒にビーチを散歩するのが好きです"]
italian_inputs = tokenizer(italian_sentences, return_tensors="pt", padding=True)
japanese_inputs = tokenizer(japanese_sentences, return_tensors="pt", padding=True)
with torch.no_grad():
italian_outputs = model(**italian_inputs)
japanese_outputs = model(**japanese_inputs)
italian_embeddings = italian_outputs.pooler_output
japanese_embeddings = japanese_outputs.pooler_output
文間の類似度を計算するには、類似度を計算する前にL2ノルムを適用することをおすすめします。
import torch.nn.functional as F
def similarity(embeddings_1, embeddings_2):
normalized_embeddings_1 = F.normalize(embeddings_1, p=2)
normalized_embeddings_2 = F.normalize(embeddings_2, p=2)
return torch.matmul(
normalized_embeddings_1, normalized_embeddings_2.transpose(0, 1)
)
print(similarity(english_embeddings, italian_embeddings))
print(similarity(english_embeddings, japanese_embeddings))
print(similarity(italian_embeddings, japanese_embeddings))
📚 ドキュメント
データ、トレーニング、評価、およびパフォーマンス指標に関する詳細は、元の論文 で確認できます。
BibTeXエントリと引用情報
@misc{feng2020languageagnostic,
title={Language-agnostic BERT Sentence Embedding},
author={Fangxiaoyu Feng and Yinfei Yang and Daniel Cer and Naveen Arivazhagan and Wei Wang},
year={2020},
eprint={2007.01852},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
📄 ライセンス
このモデルは、Apache-2.0ライセンスの下で提供されています。
📦 モデル情報
属性 |
详情 |
パイプラインタグ |
文の類似度 |
対応言語 |
アラビア語、ドイツ語、英語、スペイン語、フランス語、イタリア語、日本語、韓国語、オランダ語、ポーランド語、ポルトガル語、ロシア語、タイ語、トルコ語、中国語 |
タグ |
bert、sentence_embedding、multilingual、google、sentence-similarity、labse |
モデルタイプ |
BERTベースのモデル |
トレーニングデータ |
CommonCrawl、Wikipedia |