【免费下载链接】deepopen非自回归System 1决策引擎专为结构化类型决策场景设计 DeepOpen Multilingual, non-autoregressive System 1 decision engine.项目地址https://gitcode.com/gh_mirrors/de/deepopen点击查看免费下载本篇围绕 DeepOpen 项目在 CLINC150150 类闭集意图识别上的实测结果展开逐项解读 Accuracy 均值、种子标准差、macro-F1、NLL、ECE 五类指标的生成方式并说明classifier_only、selected、calibrated_selected、retrieval及排除训练重复文本变体之间的区别与正确解读方式。读完本文你将掌握如何从该项目的评测产物test_metrics.json、test_predictions.npz、test_summary.json中准确读出并复述每个方法的真实成绩也能区分训练目标带来的收益与原型融合带来的收益两类完全不同的改进来源。1. 评测设定固定划分的完整 150 类闭集评测clinc150/RESULTS.md开篇即明确两条硬性前提结果来自固定划分的完整 150 类闭集评测即使用官方 CLINC 数据集原始 train / val / test 划分不额外采样、不筛选子集表中所有数值由程序从预测文件生成而不是人工报告或估计值。对应到仓库实现[train_clinc.py](https://link.gitcode.com/i/c817074cecc85698187284823269829f)的read_data()在加载data/data_full.json时会硬性断言四个约束类别数必须为 150、train 必须为 15,000 条、val 必须为 3,000 条、test 必须为 4,500 条且每个划分必须覆盖全部 150 个类别。任何一条不满足都会直接中断从机制上杜绝用不完整数据出结果的可能。关于数据集的来源与审计细节可参考 clinc150/README.md 中的准备模型与数据一节训练 / 验证 / 测试划分严格保持官方原始划分不变并且对规范化文本做过重复审计train/val 重复 3 个、train/test 重复 2 个、val/test 无重复这与后文排除训练重复文本的补充指标直接相关。OOSout-of-scope样本不纳入主任务因此闭集结果不能被解释为 OOS 检测效果。2. 五类指标的含义与源码级计算方式结果表共六列Accuracy 均值、种子标准差、macro-F1、NLL、ECE。前三者容易理解后两者需要结合源码确认定义列含义计算要点Accuracy 均值三个种子seed 13 / 42 / 87测试准确率的算术平均单位是百分比%如 97.326%种子标准差三个种子成绩的样本标准差ddof1单位是百分点pp衡量跨种子稳定性macro-F1150 类逐一计算 F1 后取算术平均类别不均衡时比 Accuracy 更能反映全类覆盖能力NLL负对数似然log losssklearn.metrics.log_loss值越小说明预测概率分布与真实标签越吻合ECE期望校准误差Expected Calibration Error将置信度分 15 个区间16 个边界统计置信度与正确率的平均偏差其中 Accuracy、macro-F1、NLL、ECE 的逐项计算集中在 train_clinc.py 的metrics(prob, y)函数中预测取prob.argmax(1)macro-F1 显式指定labelsnp.arange(150)、zero_division0避免 150 类中出现缺失类别导致除零ECE 的实现是用np.linspace(0, 1, 16)把置信度区间切成 15 段对每一段计算区间占比 × |平均置信度 − 区间内正确率|后累加——这是标准的 ECE 近似口径区间内有样本才计入n字段记录样本数保证不同子集如排除训练重复后的 test之间可对比。种子标准差的计算可见 round2_finish.py 的families统计段np.std(scores, ddof1)即三个种子的样本标准差单位是百分点。它衡量的是同一方法在不同随机种子下的波动幅度标准差越小方法对初始化越鲁棒。3. 完整实测结果表继承自 RESULTS.md以下数值均来自 clinc150/RESULTS.md由程序从预测文件生成方法预测方式Accuracy 均值种子标准差macro-F1NLLECEfrozenclassifier_only78.074%0.151 pp0.778791.622690.45138ceclassifier_only97.015%0.100 pp0.970090.138680.01308ceselected96.956%0.156 pp0.969470.165420.01684cecalibrated_selected96.956%0.156 pp0.969470.132460.00860ceretrieval97.030%0.084 pp0.970200.132000.00897ceclassifier_excluding_train_duplicates97.058%0.100 pp0.970530.135670.01265ceselected_excluding_train_duplicates96.999%0.156 pp0.969910.162290.01646ceretrieval_excluding_train_duplicates97.073%0.084 pp0.970640.129620.00865supconclassifier_only97.326%0.046 pp0.973170.132570.01353supconselected97.311%0.038 pp0.973000.168650.03576supconcalibrated_selected97.311%0.038 pp0.973000.126310.00884supconretrieval97.230%0.134 pp0.972190.164020.00779supconclassifier_excluding_train_duplicates97.362%0.056 pp0.973540.129850.01319supconselected_excluding_train_duplicates97.347%0.046 pp0.973360.166180.03569supconretrieval_excluding_train_duplicates97.273%0.134 pp0.972630.161690.00739读表时有一个容易踩的坑同一方法ce 或 supcon下的多行是同一批模型在不同预测方式下的成绩不是相互独立的模型。例如 ce 的classifier_only、selected、retrieval共享同一组训练权重差异只来自推理时的后处理原型混合、检索融合、温度校准所以它们的种子标准差相近。比较训练目标带来的收益时应使用classifier_only行比较后处理方式带来的收益时才使用selected/calibrated_selected/retrieval行。这正是 RESULTS.md 原文强调的原型融合收益与训练目标收益必须分别解释。4. 预测方式逐个拆解从训练产物到推理后处理4.1 classifier_only训练所得的分类头这是最朴素的预测方式直接把 logits 做 softmax取 argmax 作为类别。在 train_clinc.py 中模型结构为文本 → Laya 编码器严格加载预训练权重→ masked mean pooling → dropout → 150 类线性头前向时返回两个东西分类头的 logits 和归一化后的特征zF.normalize。推理时classifier_only只用 logitsselected才额外使用特征z做原型匹配。frozen行则是完全冻结 Laya 编码器、只训练分类头的对照基线78.074%NLL1.62269ECE0.45138——三项均显著差于全参数微调说明编码器参数更新对该任务必不可少。4.2 selected验证集选择的温度 训练集原型混合selected在分类头输出的基础上混合了基于训练集原型的相似度分布。原型从训练集特征均值构造train_clinc.py 的make_prototypes每类特征均值后做 L2 归一化混合公式为P_final (1 − alpha) × softmax(logits / logit_temperature) alpha × softmax(z prototypesᵀ / prototype_temperature)四个超参数alpha、logit_temperature、prototype_temperature全部只在验证集上搜索train_clinc.py 的choose_validation搜索网格为logit_temperature ∈ {0.5, 1.0, 2.0}、alpha ∈ {0.0, 0.25, 0.5, 0.75, 1.0}、prototype_temperature ∈ {0.05}alpha0 时或 {0.02, 0.05, 0.1}。选择标准是(accuracy, -nll)字典序最大且测试集标签完全不参与选择selection.json中显式记录test_used_for_selection: false。从结果看selected并没有稳定提升 Accuracyce 从 97.015% 略降到 96.956%supcon 从 97.326% 略降到 97.311%但这是验证集选择的合理代价——原型融合的收益主要是改善分布形态而非提升硬预测这点从selected的 NLL 普遍升高0.16542 / 0.16865可以看出混合分布更平坦argmax 不变但整体概率质量被稀释。4.3 calibrated_selected温度校准calibrated_selected在selected基础上再做一步温度校准公式为P_calibrated softmax(log(P_selected) / calibration_temperature)温度calibration_temperature同样来自验证集。对比selected与calibrated_selected两行可见Accuracy 与 macro-F1 完全不变96.956% / 97.311%——因为温度校准不改变 argmaxNLL 显著下降ce 从 0.16542 → 0.13246supcon 从 0.16865 → 0.12631ECE 大幅下降supcon 从 0.03576 → 0.00884降低约 4 倍。这说明温度校准的价值不在准确率而在概率质量的可靠性校准后置信度与真实正确率更吻合适合对概率值本身敏感的下游应用。4.4 retrieval训练集检索kNN 式融合retrieval走的是另一条后处理路径用测试特征在训练集特征库中检索 top-k 近邻将近邻标签分布与分类头输出按权重混合并做检索温度校准。推理时若目录存在retrieval_selection.jsoninfer_clinc.py 会执行(z memory[features].T).topk(k)取 top-k 近邻按softmax(scores / temperature)得到近邻权重scatter_add_把近邻标签概率累加并归一化得到检索证据分布P (1 − alpha) × P_classifier alpha × P_retrieval再做检索温度校准softmax(log(P) / calibration_temperature)。结果中 ce/retrieval 达到97.030%是 ce 方法下最高的 Accuracy 之一同时种子标准差最低0.084 pp。但需要注意检索融合同样未带来决定性提升因此 clinc150/README.md 在改进的点一节明确写了原型与近邻融合没有稳定提高 test未将其包装为必然有效的改进。4.5 excluding_train_duplicates排除训练重复文本的稳健性检查由于数据审计发现 train/test 之间存在 2 条重复文本规范化后匹配仓库提供了一组排除训练重复的变体只在与训练文本不重复的 test 子集上重新计算指标。实现见 train_clinc.py构造clean掩码text.strip().lower() not in seen后对子集重算四项指标。对比可见这 2 条重复文本的影响很小ce/classifier_only 从 97.015% → 97.058%supcon/classifier_only 从 97.326% → 97.362%说明主结果没有依赖见过测试文本的侥幸。主结果仍采用完整官方 test排除重复的结果只作为稳健性佐证不替换主指标。5. 两类收益必须分开解读RESULTS.md 原文特别强调原型融合收益与训练目标收益必须分别解释。这是读表的核心方法论收益类型比较对象表内证据训练目标收益训练时引入frozen vs ce vs supcon 的classifier_only行frozen 78.074% → ce 97.015% → supcon 97.326%0.311 pp后处理收益推理时引入同方法的classifier_onlyvsselected/calibrated_selected/retrieval准确率提升有限±0.1 pp 内主要改善 NLL / ECE其中训练目标收益的机制在 train_clinc.py 的supcon()函数中可见SupCon 损失在普通 CE 之外额外鼓励 batch 内同类样本的特征表示彼此靠近。其实现细节包括排除自配对eye掩码相似度除以温度 0.1 后做 logsumexp 归一化没有同类正对的 anchor 不参与损失valid pos.sum(1) 0最终加权为L CE 0.1 × SupCon。supcon 的种子标准差0.046 pp远低于 ce0.100 pp说明监督对比目标让训练对种子初始化更不敏感这是比平均准确率提升更有说服力的稳健性证据。6. 统计检验与可信度summary.json 里有什么RESULTS.md 指出统计检验见 summary.json。对应产物是第二轮评测生成的artifacts/round2/test_summary.json其统计检验逻辑在 round2_finish.py 的paired()函数中包含两类检验配对差异逐样本比较新方法与基准第一轮supcon_87的对错差异统计新对旧错gained与旧对新错lost条数bootstrap 95% 置信区间固定随机种子20260921对逐样本差异做 10,000 次有放回重采样得到准确率增量的 2.5%97.5% 分位数McNemar 精确检验binomtest(gained, gainedlost, 0.5)双侧 p 值。以 clinc150/ROUND2_REPORT.md 记录的第二轮结果为例验证选中的单模型 97.7556% 相对第一轮 SupCon 单模型 0.3778 个百分点配对修正 37 条、退步 20 条bootstrap 95% 区间 [0.0444, 0.7111] pp双侧 McNemar p0.033144未做多重比较校正。这类统计口径在 RESULTS.md 的语境下意味着表内零点几个百分点的差异并非都能被判定为显著需要以 summary 中的配对区间和 McNemar p 值为准。7. 这些结果在生产流程中的位置RESULTS.md 中的结果是第一轮实验CE / SupCon 各三个种子共 6 个 run的汇总位于完整复现流程的中间位置。在 clinc150/README.md 的训练第一轮基础对照步骤中这 6 个 run 通过以下命令产出for method in ce supcon; do for seed in 13 42 87; do python train_clinc.py train \ --method $method --seed $seed \ --output artifacts/runs/${method}_${seed} done done默认训练配置为 8 epochs、batch64、max_length64、encoder LR2e-5、head LR2e-4AdamWweight_decay0.01、10% warmup、BF16 混合精度。每个 run 完成后会生成selection.json、model.safetensors、validation.npz、prototypes.safetensors、validation_search.json等产物随后单独执行测试命令for method in ce supcon; do for seed in 13 42 87; do python train_clinc.py evaluate \ --output artifacts/runs/${method}_${seed} done done每个 run 的测试产出test_metrics.json和test_predictions.npztrain_clinc.py。test_metrics.json中同时包含selected与classifier_only两套指标与 RESULTS.md 上表比较时务必读取classifier_only.accuracy不要混用原型融合后的selected指标——这与第 3 节的解读原则完全一致。逐样本预测另存为可读的test_predictions.jsonl含 text、gold、prediction、confidence方便人工核查。8. 边界与限制什么话不能说根据 clinc150/RESULTS.md 与 clinc150/README.md 的明确声明引用这些结果时须注意以下边界闭集评测无 OOS完整 150 类 in-scope 闭集结果不包含 OOS 检测不能将闭集成绩解释为 OOS 效果不等于榜单提交原文明确这些结果不等于已完成榜单提交正式上榜需要平台回执这是项目自主评测不构成独立盲测或正式榜单成绩不算独立盲测第一轮测试汇总成绩在第二轮开发前已知第二轮虽未做 test-error-driven 调参但属于同一测试集上的后续研究收益归因有限R-Drop 实验同时修改编码器 dropout 与一致性目标未单独消融不能把全部收益归因于 KL 项frozen / ce / supcon 的比较则相对干净跨硬件可复现性README 声明结果不保证跨硬件逐 bit 一致且调整 batch 会改变 SupCon 的正负样本集合无法保证复现原分数。9. 延伸阅读clinc150/README.md完整复现指南含环境准备、数据下载、三轮训练与异构集成步骤clinc150/ROUND2_REPORT.md第二轮 R-Drop / 成组 SupCon / 权重平均的完整结果与配对统计clinc150/ROUND2_METHODS.md第二轮方法细节说明clinc150/HYBRID_REPORT.mdLaya 三个 DeBERTa-v3-large 的异构概率融合98.0222%clinc150/TECHNICAL_REPORT.md第一轮详细技术报告含冻结探针、检索、校准实验clinc150/train_clinc.py指标计算、SupCon 损失、验证选择与测试评测的实现clinc150/round2_finish.py冻结选择、完整测试与配对统计检验的实现clinc150/infer_clinc.py分类头 / 原型混合 / 检索融合 / 温度校准的统一推理入口。赞分享【免费下载链接】deepopen非自回归System 1决策引擎专为结构化类型决策场景设计 DeepOpen Multilingual, non-autoregressive System 1 decision engine.项目地址https://gitcode.com/gh_mirrors/de/deepopen点击查看免费下载相关推荐DeepOpen Laya CLINC150 第四轮实验候选意图联合判别重排系统的设计与冻结评测DeepOpen Laya CLINC150 第四轮实验候选意图联合判别重排系统的设计与冻结评测 导读 本文以 DeepOpen 仓库 clinc150/RODeepOpen 项目实战Laya 编码器适配 CLINC150 150 类意图分类全流程复现指南DeepOpen 项目实战Laya 编码器适配 CLINC150 150 类意图分类全流程复现指南 导读 本文是 DeepOpen 仓库中 clinc150/PaddleOCR 端到端评测指南文本检测 文本识别 Pipeline 的指标计算与结果可视化PaddleOCR 端到端评测指南文本检测 文本识别 Pipeline 的指标计算与结果可视化 端到端End to end评测衡量的是检测 识别人工智能计算机视觉OCR深度学习大模型RAG创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
