模型:
dangvantuan/CrossEncoder-camembert-large
句子相似性的交叉编码器
该模型是使用 sentence-transformers 个交叉编码器类进行训练的。
该模型是在 STS benchmark dataset 上进行训练的。该模型将预测两个句子之间的语义相似度得分,范围在0到1之间。
如果已经安装完 sentence-transformers ,则使用该模型变得非常简单:
pip install -U sentence-transformers
然后可以按照以下方式使用该模型:
from sentence_transformers import CrossEncoder
model = CrossEncoder('dangvantuan/CrossEncoder-camembert-large', max_length=128)
scores = model.predict([('Un avion est en train de décoller.', "Un homme joue d'une grande flûte."), ("Un homme étale du fromage râpé sur une pizza.", "Une personne jette un chat au plafond") ])
可以按照以下方式对法语 stsb 的测试数据进行评估。
from sentence_transformers.readers import InputExample
from sentence_transformers.cross_encoder.evaluation import CECorrelationEvaluator
from datasets import load_dataset
def convert_dataset(dataset):
dataset_samples=[]
for df in dataset:
score = float(df['similarity_score'])/5.0 # Normalize score to range 0 ... 1
inp_example = InputExample(texts=[df['sentence1'],
df['sentence2']], label=score)
dataset_samples.append(inp_example)
return dataset_samples
# Loading the dataset for evaluation
df_dev = load_dataset("stsb_multi_mt", name="fr", split="dev")
df_test = load_dataset("stsb_multi_mt", name="fr", split="test")
# Convert the dataset for evaluation
# For Dev set:
dev_samples = convert_dataset(df_dev)
val_evaluator = CECorrelationEvaluator.from_input_examples(dev_samples, name='sts-dev')
val_evaluator(model, output_path="./")
# For Test set
test_samples = convert_dataset(df_test)
test_evaluator = CECorrelationEvaluator.from_input_examples(test_samples, name='sts-test')
test_evaluator(models, output_path="./")
测试结果:使用皮尔逊和斯皮尔曼相关性进行性能衡量:
在开发集上
| Model | Pearson correlation | Spearman correlation | #params |
|---|---|---|---|
| 1236321 | 90.11 | 90.01 | 336M |
在测试集上
| Model | Pearson correlation | Spearman correlation |
|---|---|---|
| 1236321 | 88.16 | 87.57 |