🚀 LaBSE
このモデルは、setu4993/LaBSE をコピーしたもので、文の埋め込み (pooler_output) を返し、キャッシュを実装しています。LaBSE は、109 言語の文埋め込み用に学習された BERT ベースのモデルで、多言語の文埋め込みの取得やバイテキスト検索に役立ちます。
🚀 クイックスタート
このモデルは、多言語の文埋め込みを取得するために使用できます。以下の手順で使用できます。
✨ 主な機能
- 109 言語の文埋め込みを生成できます。
- バイテキスト検索に役立ちます。
- キャッシュ機能を実装しています。
📦 インストール
このモデルを使用するには、transformers
ライブラリが必要です。以下のコマンドでインストールできます。
pip install transformers
💻 使用例
基本的な使用法
import torch
from transformers import BertModel, BertTokenizerFast
tokenizer = BertTokenizerFast.from_pretrained("setu4993/LaBSE")
model = BertModel.from_pretrained("setu4993/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))
📚 ドキュメント
モデル情報
プロパティ |
詳細 |
モデルタイプ |
BERTベースの文埋め込みモデル |
学習データ |
CommonCrawl、Wikipedia |
関連リンク
このモデルは、TF Hub の v2 モデルから移行されたもので、辞書ベースの入力を使用しています。両方のバージョンのモデルが生成する埋め込みは 同等 です。
🔧 技術詳細
データ、学習、評価、およびパフォーマンス指標に関する詳細は、元の論文 を参照してください。
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 ライセンスの下で提供されています。