🚀 DMetaSoul/sbert-chinese-qmc-finance-v1
此模型聚焦於金融領域的問題匹配場景,基於 bert-base-chinese 版本的 BERT 模型,在大規模銀行問題匹配數據集(BQCorpus)上進行訓練調優,能有效處理金融相關問題的匹配。例如:
- 8千日利息400元? VS 10000元日利息多少錢
- 提前還款是按全額計息 VS 還款扣款不成功怎麼還款?
- 為什麼我借錢交易失敗 VS 剛申請的借款為什麼會失敗
注:此模型的輕量化版本,也已經開源啦!
🚀 快速開始
模型信息
屬性 |
詳情 |
模型類型 |
基於 BERT 的句子相似度模型 |
訓練數據 |
大規模銀行問題匹配數據集(BQCorpus) |
安裝指南
使用 sentence-transformers 框架
通過 sentence-transformers 框架來使用該模型,首先進行安裝:
pip install -U sentence-transformers
使用示例
使用 sentence-transformers 框架
from sentence_transformers import SentenceTransformer
sentences = ["到期不能按時還款怎麼辦", "剩餘欠款還有多少?"]
model = SentenceTransformer('DMetaSoul/sbert-chinese-qmc-finance-v1')
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-qmc-finance-v1')
model = AutoModel.from_pretrained('DMetaSoul/sbert-chinese-qmc-finance-v1')
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)
📚 詳細文檔
評測結果
該模型在公開的幾個語義匹配數據集上進行了評測,計算了向量相似度跟真實標籤之間的相關性係數:
模型 |
csts_dev |
csts_test |
afqmc |
lcqmc |
bqcorpus |
pawsx |
xiaobu |
sbert-chinese-qmc-finance-v1 |
77.40% |
74.55% |
36.01% |
75.75% |
73.25% |
11.58% |
54.76% |
引用與作者
E-mail: xiaowenbin@dmetasoul.com