🚀 DMetaSoul/sbert-chinese-general-v2-distill
此模型是之前開源通用語義匹配模型的蒸餾版本(僅4層 BERT),適用於通用語義匹配場景。從效果來看,該模型在各種任務上泛化能力更好且編碼速度更快。
🚀 快速開始
此模型可通過不同框架進行使用,下面將為你詳細介紹。
📦 安裝指南
使用 Sentence-Transformers 框架
若使用 sentence-transformers 框架,需先進行安裝,命令如下:
pip install -U sentence-transformers
使用 HuggingFace Transformers 框架
若使用 HuggingFace Transformers 框架,可直接通過其載入模型,無需額外安裝依賴。
💻 使用示例
基礎用法
使用 Sentence-Transformers 框架
from sentence_transformers import SentenceTransformer
sentences = ["我的兒子!他猛然間喊道,我的兒子在哪兒?", "我的兒子呢!他突然喊道,我的兒子在哪裡?"]
model = SentenceTransformer('DMetaSoul/sbert-chinese-general-v2-distill')
embeddings = model.encode(sentences)
print(embeddings)
使用 HuggingFace Transformers 框架
from transformers import AutoTokenizer, AutoModel
import torch
def mean_pooling(model_output, attention_mask):
token_embeddings = model_output[0]
input_mask_expanded = attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float()
return torch.sum(token_embeddings * input_mask_expanded, 1) / torch.clamp(input_mask_expanded.sum(1), min=1e-9)
sentences = ["我的兒子!他猛然間喊道,我的兒子在哪兒?", "我的兒子呢!他突然喊道,我的兒子在哪裡?"]
tokenizer = AutoTokenizer.from_pretrained('DMetaSoul/sbert-chinese-general-v2-distill')
model = AutoModel.from_pretrained('DMetaSoul/sbert-chinese-general-v2-distill')
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')
with torch.no_grad():
model_output = model(**encoded_input)
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])
print("Sentence embeddings:")
print(sentence_embeddings)
📚 詳細文檔
評估結果
這裡主要跟蒸餾前對應的 teacher 模型作了對比:
性能對比
屬性 |
詳情 |
模型類型 |
Teacher 模型為 BERT-12-layers (102M),Student 模型為 BERT-4-layers (45M),參數量比例為 0.44x |
計算耗時 |
Teacher 模型為 23s,Student 模型為 12s,耗時降低 47% |
延遲 |
Teacher 模型為 38ms,Student 模型為 20ms,延遲降低 47% |
吞吐量 |
Teacher 模型為 418 sentence/s,Student 模型為 791 sentence/s,吞吐量提升 1.9x |
精度對比
|
csts_dev |
csts_test |
afqmc |
lcqmc |
bqcorpus |
pawsx |
xiaobu |
Avg |
Teacher |
77.19% |
72.59% |
36.79% |
76.91% |
49.62% |
16.24% |
63.15% |
56.07% |
Student |
76.49% |
73.33% |
26.46% |
64.26% |
46.02% |
11.83% |
52.45% |
50.12% |
差距 (絕對值) |
- |
- |
- |
- |
- |
- |
- |
-5.95% |
基於1萬條數據測試,GPU設備是V100,batch_size=16,max_seq_len=256
📄 許可證
文檔中未提及相關許可證信息。
📧 引用與作者
若你需要引用此模型或聯繫作者,可通過以下郵箱:
E-mail: xiaowenbin@dmetasoul.com