🚀 SHerbert large - 波蘭語 SentenceBERT
SentenceBERT 是預訓練 BERT 網絡的一種改進,它使用孿生網絡和三元組網絡結構來導出語義上有意義的句子嵌入,這些嵌入可以使用餘弦相似度進行比較。訓練基於原始論文 用於語義文本相似度 (STS) 任務的孿生 BERT 模型,並對訓練數據的使用方式進行了輕微修改。該模型的目標是根據給定文本的語義和主題相似度生成不同的嵌入。
語義文本相似度分析兩個文本片段的相似程度。
在我們的 博客文章 中瞭解更多關於該模型的製備方法。
基礎訓練模型是波蘭語 HerBERT。HerBERT 是一個基於 BERT 的語言模型。更多詳情,請參考:“HerBERT: Efficiently Pretrained Transformer-based Language Model for Polish”。
✨ 主要特性
- 基於 SentenceBERT 架構,能生成語義有意義的句子嵌入。
- 以波蘭語 HerBERT 為基礎訓練模型。
- 可用於句子相似度分析。
📦 安裝指南
文檔未提及安裝步驟,跳過此章節。
💻 使用示例
基礎用法
from transformers import AutoTokenizer, AutoModel
from sklearn.metrics import pairwise
sbert = AutoModel.from_pretrained("Voicelab/sbert-large-cased-pl")
tokenizer = AutoTokenizer.from_pretrained("Voicelab/sbert-large-cased-pl")
s0 = "Uczenie maszynowe jest konsekwencją rozwoju idei sztucznej inteligencji i metod jej wdrażania praktycznego."
s1 = "Głębokie uczenie maszynowe jest sktukiem wdrażania praktycznego metod sztucznej inteligencji oraz jej rozwoju."
s2 = "Kasparow zarzucił firmie IBM oszustwo, kiedy odmówiła mu dostępu do historii wcześniejszych gier Deep Blue. "
tokens = tokenizer([s0, s1, s2],
padding=True,
truncation=True,
return_tensors='pt')
x = sbert(tokens["input_ids"],
tokens["attention_mask"]).pooler_output
print(pairwise.cosine_similarity(x[0], x[1]))
print(pairwise.cosine_similarity(x[0], x[2]))
📚 詳細文檔
語料庫
該模型僅在 維基百科 上進行訓練。
分詞器
與原始 HerBERT 實現一樣,訓練數據集使用字符級字節對編碼(CharBPETokenizer)將其分詞為子詞,詞彙表大小為 50k 個標記。分詞器本身使用 tokenizers 庫進行訓練。
我們強烈建議您使用分詞器的快速版本,即 HerbertTokenizerFast。
結果
模型 |
準確率 |
來源 |
SBERT-WikiSec-base (EN) |
80.42% |
https://arxiv.org/abs/1908.10084 |
SBERT-WikiSec-large (EN) |
80.78% |
https://arxiv.org/abs/1908.10084 |
sbert-base-cased-pl |
82.31% |
https://huggingface.co/Voicelab/sbert-base-cased-pl |
sbert-large-cased-pl |
84.42% |
https://huggingface.co/Voicelab/sbert-large-cased-pl |
🔧 技術細節
文檔未提供具體技術細節,跳過此章節。
📄 許可證
CC BY 4.0
📖 引用
如果您使用此模型,請引用以下論文:
👥 作者
該模型由 Voicelab.ai 的 NLP 研究團隊訓練。
您可以 在此 與我們聯繫。