pipeline_tag: 句子相似度
tags:
- 句子转换器
- 特征提取
- 句子相似度
- 转换器
- 语义搜索
- 中文
DMetaSoul/sbert-chinese-qmc-finance-v1-distill
此模型是之前开源金融问题匹配模型的蒸馏轻量化版本(仅4层BERT),专为金融领域的问题匹配场景优化,例如:
- "8千日利息400元?" vs "10000元日利息多少钱"
- "提前还款是按全额计息" vs "还款扣款不成功怎么还款?"
- "为什么我借钱交易失败" vs "刚申请的借款为什么会失败"
原始大模型若直接部署线上,对计算资源要求极高且难以满足业务延迟和吞吐量需求。通过蒸馏技术将12层BERT压缩至4层后,模型参数量减少至44%,推理延迟降低约50%,吞吐量提升近一倍,精度损失控制在5%左右(详见下方评估章节)。
使用指南
1. Sentence-Transformers
通过sentence-transformers框架使用:
pip install -U sentence-transformers
文本向量提取示例:
from sentence_transformers import SentenceTransformer
sentences = ["到期不能按时还款怎么办", "剩余欠款还有多少?"]
model = SentenceTransformer('DMetaSoul/sbert-chinese-qmc-finance-v1-distill')
embeddings = model.encode(sentences)
print(embeddings)
2. HuggingFace Transformers
直接使用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-qmc-finance-v1-distill')
model = AutoModel.from_pretrained('DMetaSoul/sbert-chinese-qmc-finance-v1-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)
评估结果
性能对比:
|
教师模型 |
学生模型 |
差异 |
参数量 |
BERT-12层 (102M) |
BERT-4层 (45M) |
0.44倍 |
计算耗时 |
23秒 |
12秒 |
-47% |
延迟 |
38毫秒 |
20毫秒 |
-47% |
吞吐量 |
418句/秒 |
791句/秒 |
1.9倍 |
精度对比:
|
csts_dev |
csts_test |
afqmc |
lcqmc |
bqcorpus |
pawsx |
xiaobu |
平均 |
教师模型 |
77.40% |
74.55% |
36.00% |
75.75% |
73.24% |
11.58% |
54.75% |
57.61% |
学生模型 |
75.02% |
71.99% |
32.40% |
67.06% |
66.35% |
7.57% |
49.26% |
52.80% |
精度差距 |
- |
- |
- |
- |
- |
- |
- |
-4.81% |
测试环境:V100 GPU,batch_size=16,max_seq_len=256,1万条测试数据
引用与作者
联系邮箱:xiaowenbin@dmetasoul.com