用途
scienceclaw-benchmark-for48 是一个合同证据识别(ContractNLI)基准任务工具,用于在合同或保密协议(NDA)中定位支持或反驳固定自然语言假设的条款片段。任务将合同切分为有序候选片段,并对每个(合同,假设)对给出二分类标签和片段级证据分数。
主要能力
- 输入处理:合同以有序候选片段形式提供(doc_id、span_texts,或文本加字符区间);假设以固定集合形式提供(key、text、简短描述);训练合同带有每个(合同,假设)对的标注,标签为 Entailment / Contradiction / NotMentioned,并附证据片段索引。
- 输出:对每个请求对,按给定顺序输出一个字典,包含标签("Entailment" 或 "Contradiction")和 span_scores(每个片段一个 [0, 1] 浮点数,按片段顺序)。请求对均为合同提及的对,因此标签为二分类,不输出 NotMentioned。
- 质量指标:主要指标为片段分数相对金标准证据片段的平均精度(mAP,越高越好);次要指标为 80% 召回率下的精度和标签准确率。基线方法为假设内容词与片段的词汇重叠,加上每个假设的多数标签。
使用方式
核心工具为 scilib.contracts.fit_predict(train_documents, train_annotations, hypotheses, items, documents, seed=0):对每个假设在片段上训练 TF-IDF 逻辑回归(使用邻居上下文、按合同分组的折外分数),再用 LightGBM 重排序器基于相似度(余弦、BM25、重叠)、位置和最近训练证据特征进行重排;标签模型读取顶部片段。对应类型化算子 contract_evidence_identification。
scilib.contracts.cross_validate(...) 提供按合同分组的 k 折估计(map、p_at_r80、nli_binary_accuracy、per_hypothesis_map);annotation_pairs、evaluate_predictions、average_precision、precision_at_recall 用于指标计算(算子 contract_evidence_metrics)。
可选的 ContractModel(plm=True)(或 PLM_GROUPS 的子集:rerank、nli、cos、emb_lr、emb_knn)通过 scilib.textenc 添加预训练特征:BGE-large 句子嵌入、BGE-reranker-large 相关性、DeBERTa-v3-large NLI(权重 id 为 bge_large_en、bge_reranker_large、nli_deberta_v3_large)。使用前先检查 scilib.textenc.available() 或 scienceclaw_tools(operation=weights);该方式开销较大(每个片段对每个假设都要计算;需要 GPU 或远程 worker)。
适用场景
适用于合同与 NDA 的条款证据定位任务,例如判断某条款是否支持或反驳给定假设,并给出片段级证据分数。适合需要可解释证据片段的法律文本分析场景。
限制
- 不得在正在预测的对上拟合或调参;验证折必须按合同划分,而非按对或片段划分。
- span_scores 必须为有限值、在 [0, 1] 内、每个片段一个;标签只能是 Entailment 或 Contradiction。
- 需检查 per_hypothesis_map:训练对较少的假设会回退到与假设无关的模型,效果较弱。
- 预训练编码器未在本任务标签上训练,但其公开预训练文本可能与合同文本重叠;使用时需披露这一点。
- 关于收费、价格、平台等具体信息暂未提供。