🚀 LaBSE
LaBSE(Language-agnostic BERT Sentence Encoder)是一個基於BERT的模型,可對109種語言進行句子嵌入處理。其預訓練過程結合了掩碼語言建模和翻譯語言建模,能有效獲取多語言句子嵌入,適用於雙語檢索任務。
🚀 快速開始
LaBSE模型可用於獲取多語言句子嵌入和進行雙語檢索。你可以通過以下鏈接獲取相關資源:
此模型從TF Hub上的v2模型遷移而來,使用基於字典的輸入。兩個版本模型生成的嵌入是等效的。
✨ 主要特性
- 多語言支持:支持109種語言,包括但不限於英語、意大利語、日語、中文等。
- 句子嵌入:能夠將句子轉換為向量表示,便於進行相似度計算等任務。
- 雙語檢索:可用於雙語檢索場景,提高檢索效率。
📦 安裝指南
文檔未提及具體安裝步驟,你可參考HuggingFace模型中心的相關說明進行安裝。
💻 使用示例
基礎用法
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)
高級用法
獲取句子嵌入
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
計算句子相似度
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))
📚 詳細文檔
關於數據、訓練、評估和性能指標的詳細信息,請參考原始論文。
🔧 技術細節
預訓練過程結合了掩碼語言建模和翻譯語言建模,使得模型能夠學習到跨語言的語義信息。
📄 許可證
本項目採用Apache-2.0許可證。
引用信息
@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}
}
信息表格
屬性 |
詳情 |
模型類型 |
BERT-based模型 |
訓練數據 |
CommonCrawl、Wikipedia |
支持語言 |
af、am、ar等109種語言 |
標籤 |
bert、sentence_embedding、multilingual、google、sentence-similarity |
許可證 |
apache-2.0 |