模型:
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 |