首页 / 资讯中心 / 文章详情

train-sentence-transformers - evaluators_cross_encoder

train-sentence-transformers - evaluators_cross_encoder ★ FEATURED ARTICLE
评估器交叉编码器所有交叉编码器评估器都位于sentence_transformers.cross_encoder.evaluation中。选择合适的评估器任务评估器重排检索结果BM25 top-N 上的 nDCGk——快速默认CrossEncoderNanoBEIREvaluator使用每个查询的自定义候选项重排CrossEncoderRerankingEvaluator二分类 / 多分类成对分类CrossEncoderClassificationEvaluator连续成对打分STS 风格CrossEncoderCorrelationEvaluator将多个评估器包装在SequentialEvaluator来自sentence_transformers.base.evaluation中以便一起跟踪fromsentence_transformers.base.evaluationimportSequentialEvaluator evaluatorSequentialEvaluator([nano_beir_eval,custom_rerank_eval])默认评估器CrossEncoderNanoBEIREvaluatorNanoBEIREvaluator对重排器的类比。取每个 NanoBEIR 查询的 BM25 top-100并衡量交叉编码器对它们的重排效果。fromsentence_transformers.cross_encoder.evaluationimportCrossEncoderNanoBEIREvaluator evaluatorCrossEncoderNanoBEIREvaluator(dataset_names[msmarco,nfcorpus,nq],# 默认13 个 NanoBEIR 数据集中的 11 个排除 arguana、touche2020batch_size64,rerank_k100,# 对 BM25 top-K 重排)metric_for_best_model的输出键eval_NanoBEIR_R100_mean_ndcg10。R100表示重排 top-100如果更改rerank_k前缀会变化例如R50。每个单独的数据集也会贡献eval_Nano{DatasetName}_R100_ndcg10例如eval_NanoMSMARCO_R100_ndcg10。使用你自己的候选进行自定义重排当你有不属于 NanoBEIR 的查询 正例 干扰项候选时使用fromsentence_transformers.cross_encoder.evaluationimportCrossEncoderRerankingEvaluator samples[{query:...,positive:[the gold answer],documents:[...,...,...]}for...]evaluatorCrossEncoderRerankingEvaluator(samplessamples,batch_size64,namemy-rerank,always_rerank_positivesFalse,# 默认是 True为真实评估覆盖为 False)always_rerank_positivesTrue库默认值会强制将正例纳入候选池即使检索器漏掉了它。重排器只针对它实际能打分的候选被评分因此该指标反映的是纯重排器质量。always_rerank_positivesFalse只有当正例已在documents中时才重排它。如果检索器漏掉了它排名计为 N1。这反映的是端到端的检索器重排器质量。检索器漏掉的正例就丢失了无论重排器多厉害。输出键eval_{name}_ndcg10、eval_{name}_map、eval_{name}_mrr10。分类风格交叉编码器CrossEncoderClassificationEvaluator同时适用于二分类num_labels1和多分类num_labels2交叉编码器。内部有分支num_labels1二分类模式。扫描阈值以报告准确率、F1、精确率、召回率以及average_precision主指标。num_labels2多分类模式例如 NLI蕴含 / 中性 / 矛盾。报告f1_macro主指标、f1_micro、f1_weighted 以及每类的精确率 / 召回率。fromsentence_transformers.cross_encoder.evaluationimportCrossEncoderClassificationEvaluator evaluatorCrossEncoderClassificationEvaluator(sentence_pairs[(premise,hypothesis),...],labels[0,1,2,...],batch_size64,namenli-dev,)输出键二分类num_labels1eval_{name}_accuracy、eval_{name}_f1、eval_{name}_average_precision主指标。输出键多分类num_labels2eval_{name}_f1_macro主指标、eval_{name}_f1_micro、eval_{name}_f1_weighted。CrossEncoderCorrelationEvaluator用于连续分数交叉编码器如输出相似度分数的 STS 交叉编码器。报告与金标准分数的 Pearson/Spearman 相关性。fromsentence_transformers.cross_encoder.evaluationimportCrossEncoderCorrelationEvaluator evaluatorCrossEncoderCorrelationEvaluator(sentence_pairs[(a,b),...],scores[0.4,0.8,...],namestsb-dev,)输出键eval_{name}_spearman、eval_{name}_pearson。编写metric_for_best_model模式feval_{evaluator.primary_metric}。构造后检查print(evaluator.primary_metric)。常见值eval_NanoBEIR_R100_mean_ndcg10—CrossEncoderNanoBEIREvaluator默认eval_{name}_ndcg10—CrossEncoderRerankingEvaluatoreval_{name}_average_precision—CrossEncoderClassificationEvaluator二分类num_labels1eval_{name}_f1_macro—CrossEncoderClassificationEvaluator多分类num_labels2eval_{name}_spearman—CrossEncoderCorrelationEvaluator陷阱训练前务必先运行一次evaluator(model)—— 预训练基线。训练后增量很小意味着损失/数据/基座有问题。CrossEncoderClassificationEvaluator同时接受num_labels1二分类主指标average_precision和num_labels2多分类主指标f1_macroCrossEncoderCorrelationEvaluator需要num_labels1。默认的dataset_namesNone排除了arguana和touche2020论证检索任务与其他不同传入来自sentence_transformers.cross_encoder.evaluation.nano_beir的list(DATASET_NAME_TO_HUMAN_READABLE)以实际运行全部 13 个。训练期间使用 NanoBEIR 数据集的子集3–4 个以保持评估廉价训练后在更广泛的数据集上运行。
阅读完成 · 觉得有帮助?
咨询建站