
評估器雙編碼器所有雙編碼器評估器都位于sentence_transformers.sentence_transformer.evaluation中。選擇合適的評估器任務(wù)評估器檢索nDCG、MRR、Recall——快速默認NanoBEIREvaluator在自有語料庫 / qrels 上檢索InformationRetrievalEvaluatorSTS / 連續(xù)相似度EmbeddingSimilarityEvaluator二分類BinaryClassificationEvaluator三元組準確率TripletEvaluator重排來自檢索候選RerankingEvaluator與教師模型的 MSE蒸餾MSEEvaluator、MSEEvaluatorFromDataFrame釋義挖掘ParaphraseMiningEvaluator翻譯跨語言對齊TranslationEvaluator標簽準確率訓練期間的分類LabelAccuracyEvaluator將多個評估器包裝在SequentialEvaluator中以便一起跟蹤fromsentence_transformers.sentence_transformer.evaluationimportSequentialEvaluator evaluatorSequentialEvaluator([evaluator1,evaluator2,evaluator3])三大評估器NanoBEIREvaluator檢索BEIR 的小型快速子集。在中端 GPU 上典型運行時間 1 分鐘。檢索訓練的默認選擇。fromsentence_transformers.sentence_transformer.evaluationimportNanoBEIREvaluator evaluatorNanoBEIREvaluator(dataset_names[msmarco,nfcorpus,nq],# 默認全部 13 個 NanoBEIR 數(shù)據(jù)集batch_size128,show_progress_barFalse,)默認數(shù)據(jù)集列表覆蓋 13 個任務(wù)訓練期間選擇子集以加快速度。metric_for_best_model的輸出鍵eval_NanoBEIR_mean_cosine_ndcg10雙編碼器默認 余弦相似度。EmbeddingSimilarityEvaluatorSTS 風格計算模型余弦相似度與金標準標簽之間的 Pearson/Spearman 相關(guān)性。fromsentence_transformers.sentence_transformer.evaluationimportEmbeddingSimilarityEvaluatorfromsentence_transformers.util.similarityimportSimilarityFunction evaluatorEmbeddingSimilarityEvaluator(sentences1stsb[sentence1],sentences2stsb[sentence2],scoresstsb[score],main_similaritySimilarityFunction.COSINE,namests-dev,)main_similarity可以是COSINE、DOT_PRODUCT、EUCLIDEAN、MANHATTAN。name用于輸出鍵eval_sts-dev_spearman_cosine、eval_sts-dev_pearson_cosine等。InformationRetrievalEvaluator完整檢索當你擁有自己的語料庫 查詢 qrels不是 NanoBEIR 任務(wù)之一時使用。fromsentence_transformers.sentence_transformer.evaluationimportInformationRetrievalEvaluator evaluatorInformationRetrievalEvaluator(queries{qid:query_textforqid,query_textin...},corpus{doc_id:doc_textfordoc_id,doc_textin...},relevant_docs{qid:{doc_id,...}forqidin...},# qid - 相關(guān) doc_id 的集合namemy-retrieval,mrr_at_k[10],ndcg_at_k[10],accuracy_at_k[1,5,10],precision_recall_at_k[1,5,10],map_at_k[100],show_progress_barFalse,batch_size64,)輸出鍵eval_{name}_cosine_ndcg10、eval_{name}_cosine_mrr10等。對大型語料庫很重——每次評估都會編碼整個語料庫。不要每 100 步就運行它。訓練期間使用NanoBEIREvaluator進行頻繁評估將完整的 IR 評估保留給里程碑 / 訓練后。其他雙編碼器評估器BinaryClassificationEvaluator用于帶標簽的成對分類例如重復檢測、二分類蘊含。報告準確率、F1、精確率/召回率、AP。支持所有距離度量——為每個度量找到最佳閾值。TripletEvaluator用于(anchor, positive, negative)三元組。報告正例比負例更接近錨點的三元組比例。RerankingEvaluator用于自定義重排數(shù)據(jù)集你為每個查詢提供候選評估器計算 MAP 和 MRR。適合衡量留出集上的檢索質(zhì)量。MSEEvaluator/MSEEvaluatorFromDataFrame用于蒸餾設(shè)置。比較學生嵌入與教師嵌入或教師分數(shù)報告 MSE。ParaphraseMiningEvaluator用于釋義挖掘任務(wù)。給定帶標簽的釋義對語料庫計算挖掘質(zhì)量各閾值下的 F1。TranslationEvaluator用于跨語言 /make_multilingual風格對齊檢查。衡量學生是否跨語言對齊句子。LabelAccuracyEvaluator用于SoftmaxLoss訓練的分類頭。報告留出數(shù)據(jù)上的準確率。編寫metric_for_best_model模式feval_{evaluator.primary_metric}。構(gòu)造后檢查print(evaluator.primary_metric)。常見值eval_NanoBEIR_mean_cosine_ndcg10—NanoBEIREvaluatoreval_sts-dev_spearman_cosine—EmbeddingSimilarityEvaluator(namests-dev)eval_{name}_cosine_ndcg10—InformationRetrievalEvaluator(name...)多維評估Matryoshka對于 Matryoshka 訓練的模型在每個目標維度上評估per_dim_evaluators[EmbeddingSimilarityEvaluator(sentences1...,sentences2...,scores...,main_similaritySimilarityFunction.COSINE,namefsts-dev-{dim},truncate_dimdim,)fordimin[768,512,256,128,64]]evaluatorSequentialEvaluator(per_dim_evaluators,main_score_functionlambdascores:scores[0])第一個評估器的分數(shù)驅(qū)動load_best_model_at_end。陷阱訓練前務(wù)必先運行一次evaluator(model)—— 預訓練基線。如果訓練后增量很小說明損失/數(shù)據(jù)/基座有問題。不要使用大型語料庫10 萬文檔的InformationRetrievalEvaluator以頻繁的eval_steps運行——訓練期間使用NanoBEIREvaluator將完整的 IR 評估留到訓練結(jié)束時。greater_is_betterTrue是默認值適合 nDCG / MRR / 準確率。