资讯详情

资讯详情

openjev 评测深度解析:NLI 交叉编码器在 MNLI、多选 rerank 与 GSM8K 评判上的方法与结果

人工智能大模型多模态微调NLP【免费下载链接】openjev项目地址https://ai.gitcode.com/hf_mirrors/AlexWortega/openjev点击查看免费下载本篇技术指南以仓库中的 results/summary.md 评测摘要为主体完整讲解 openjev 项目如何把一个 Qwen3.5 文本模型微调成三分类 NLI 交叉编码器jev 模型并用蕴含entailment这一单一原语统一解决 MNLI 校验、多选题无参考 rerank、有参考 grading 以及 GSM8K 最佳-of-k 选择四类任务。读完本文你将掌握这些评测表背后的数据来源、提示词构造、标签映射与可复现的评测命令并能直接在 code/eval.py 中对照源码理解每个数字是如何算出来的。评测定位一个原语四类任务openjev 的核心思想很直接把 Qwen3.5 训练成一个读取Premise和Hypothesis、输出contradiction / entailment / neutral三分类概率的交叉编码器详见 README.md 的 Whats inside 一节与 modeling_openjev.py 的OpenJevCrossEncoder。这个单一原语足以派生出一系列下游能力rerank无参考把问题 候选答案作为蕴含对打分取蕴含概率最高的候选grading有参考把问题 标准答案 候选答案作为蕴含对蕴含即判对GSM8K best-of-k对同一问题的多个采样解做 rerank 或逐条评判。评测摘要中的所有数字都来自同一套评测框架 code/eval.py它参考 dleemiller 的 NLI cross-encoder 博客中 blog #3QA rerank与 blog #6grading两种用法这正是 summary 表格标题中 #3 与 #6 的出处。被评测的模型与实验设置summary.md 共评测了 5 个模型分三类类别模型说明全参微调full FTQwen3.5-0.8B / 2B / 4B在 AllNLISNLI MNLI 训练集上全参训练见 code/train.py 的load_allnli仅训练分类头head-onlyQwen3.5-2B冻结 backbone只训练score头对应 train.py 的--head-only参数外部参考refModernCE-large-nlidleemiller 的公开 NLI 交叉编码器作为对照基线两类关键配置决定了所有数字的含义标签顺序。所有 Qwen 模型统一使用0contradiction, 1entailment, 2neutraldleemiller 顺序见 code/train.py 顶部的ID2LABEL与模型配置文件 qwen3.5-4b-nli/config.json。而 SNLI/MNLI 的原生标签是0entailment, 1neutral, 2contradiction因此训练与评测时都必须做NATIVE2OURS {0: 1, 1: 2, 2: 0}的映射eval.py 的eval_mnli中同样实现。注意 ModernCE 的 config 声称的标签顺序与实际 logits 顺序不一致eval.py 用LABEL_ORDER_OVERRIDES强制修正否则 MNLI 精度会掉约 3 个点。输入模板。文本统一格式化为Premise: {premise}\nHypothesis: {hypothesis}模板写入模型 config 的nli_template字段见 qwen3.5-4b-nli/config.json评测时由NLIScorer.predict读取并格式化。模型以最后一个非 pad token 的隐藏状态做池化因此 tokenizer 必须右对齐填充padding_sideright。数据防泄漏。summary 表涉及的 MNLI、GPQA、MMLU、ARC、WinoGrande、GSM8K 等评测集在训练数据构建时被 code/data_mix.py 的BANNED集合严格禁止进入混合数据保证零样本评测的公正性。NLI sanityMNLI 匹配/非匹配校验第一张表是模型的体检表验证三分类任务本身是否训练到位modelMNLI-mMNLI-mmQwen3.5-0.8B full FT0.8690.874Qwen3.5-2B full FT0.8860.889Qwen3.5-4B full FT0.9040.907Qwen3.5-2B head-only0.8290.841ModernCE-large-nli (ref)0.9090.921观察要点全参微调下模型容量越大精度越高4B 达到 0.904/0.907逼近 ModernCE-large-nli 参考线0.909/0.921head-only 的 2B 模型0.829/0.841明显落后于全参版本约 5 个点说明仅训练分类头无法让 backbone 学会蕴含推理。评测实现见 code/eval.py 的eval_mnli加载nyu-mll/multi_nli的validation_matched/validation_mismatched两个 split过滤掉 label 为 -1标注冲突的样本对每个 (premise, hypothesis) 取 softmax 后 argmax 与 gold 比对求准确率每个 split 约 9800 条样本。原始 JSON 结果可在 results/qwen4b_all.json、results/qwen2b_headonly_all.json 与 results/qwen0.8b_mnli_gpqa.json 中核对。无参考 rerankblog #3premise 问题argmax 蕴含概率第二张表检验模型在不提供标准答案的情况下仅凭蕴含判断从候选里挑答案的能力。提示词构造为premise questionhypothesis The correct answer is: {option}取每个候选的P(entailment)argmax 即为模型选择modelgpqammluarc_easyarc_challengewinograndechessrandom0.2500.2500.2500.2500.5000.250Qwen3.5-0.8B full FT0.2070.3510.5550.3750.5040.280Qwen3.5-2B full FT0.2370.3940.6290.4910.5340.324Qwen3.5-4B full FT0.2730.4720.7690.5920.5860.240Qwen3.5-2B head-only0.2530.3780.5960.4970.5440.334ModernCE-large-nli (ref)0.2420.3540.6070.4160.5690.260数据细节GPQA 使用 198 条 GPQA-diamondMMLU 是完整 14,042 条 testARC-Easy 2,376 条、ARC-Challenge 1,172 条WinoGrande 1,267 条chess 是仓库自造的 500 条合成题随机局面 4 个候选着法其中恰好一个合法。各任务的加载函数都在 code/eval.py 的load_gpqa、load_mmlu、load_arc、load_winogrande、load_chess中例如 chess 通过python-chess从随机棋局生成合法着法与干扰着法并把局面的 PGN 与 FEN 写入问题文本。实现细节见eval_mc对每个问题把 k 个候选拼成 k 对 (q, hyp)一次批量打分除rerank_acc直接 argmax P(ent)外还计算rerank_margin_acc用P(ent) - P(con)的差做 argmax以及label_dist_rerank预测标签分布。从结果看rerank 任务对模型是硬骨头4B 在 GPQA 上仅 0.273、chess 上仅 0.240均低于 2B head-only这类无参考答案的直觉选择接近甚至低于随机基线反映了纯粹蕴含判断在知识型选择题上的局限。有参考 gradingblog #6premise 问题 标准答案蕴含即判对第三张表换了一种玩法把标准答案也拼进 premise让模型判断这个候选答案是否就是标准答案。提示词为premise question Reference answer: {gold}hypothesis Answer: {option}蕴含概率即该候选为正确答案的概率同时报告 accuracy 与 F1正类为与 gold 一致modelgpqammluarc_easyarc_challengewinograndechessQwen3.5-0.8B full FT0.939 / 0.8910.951 / 0.9090.974 / 0.9510.958 / 0.9220.866 / 0.8770.996 / 0.992Qwen3.5-2B full FT0.956 / 0.9180.968 / 0.9400.984 / 0.9700.972 / 0.9470.828 / 0.8520.997 / 0.994Qwen3.5-4B full FT0.968 / 0.9400.974 / 0.9490.993 / 0.9860.987 / 0.9750.843 / 0.8630.997 / 0.993Qwen3.5-2B head-only0.932 / 0.8650.897 / 0.8070.938 / 0.8870.932 / 0.8690.716 / 0.7610.929 / 0.876ModernCE-large-nli (ref)0.912 / 0.8460.953 / 0.9120.969 / 0.9410.964 / 0.9310.916 / 0.9160.975 / 0.948这里的结果与 rerank 形成鲜明对比给出参考后全参微调的 Qwen 模型几乎全面碾压参考基线与 rerank 模式。4B 在 GPQA 上 0.968、ARC-Challenge 0.987、chess 0.9970.8B 在 GPQA 上 0.939 也超过 ModernCE 的 0.912。这说明判断候选是否与标准答案一致正是 NLI 模型最擅长的语义对齐任务也是 openjev 作为评判器judger/grader的核心使用方式——README 中 LLM-AggreFact、RAGTruth、HaluBench 等零样本评判结果正是这种 grading 范式的延伸。注意 WinoGrande 是个例外全参模型0.866~0.866反而低于 ModernCE0.916这与 WinoGrande 的共指消解特性及候选模板把_替换进句子有关。实现上eval_mc的grade_pairs分支对每个候选生成(f{q}\nReference answer: {opts[g]}, fAnswer: {o})gold 标记1 if j g else 0最后用f1_score计算宏平均 F1。grade_rank_acc则检验argmax P(ent) 是否恰好落在 gold 上在多数任务上高达 0.99 以上。GSM8K200 题上的 best-of-k rerank 与解评判第四张表把场景切换到采样多个解题方案再选择。候选答案由 Qwen3.5-4B 生成每道题 1 条 greedytemperature0 4 条采样temperature0.7共 5 个候选然后分别计算modelgreedypass1maj4NLI rerank4oracle4grade acc / F1Qwen3.5-0.8B full FT0.8800.8590.9150.8650.9400.986 / 0.992Qwen3.5-2B full FT0.8800.8590.9150.8550.9400.996 / 0.998Qwen3.5-4B full FT0.8800.8590.9150.8450.9400.996 / 0.998Qwen3.5-2B head-only0.8800.8590.9150.8850.9400.582 / 0.681ModernCE-large-nli (ref)0.8800.8590.9150.8500.9400.940 / 0.940指标含义对应 code/eval.py 的eval_gsm8kgreedy贪心解的准确率0.880pass14 条采样各自的平均正确率0.859maj44 条采样按最终答案多数投票0.915——多数投票显著优于单条采样但没有超过 greedyNLI rerank4premise问题、hypothesis候选解题文本argmax P(ent) 挑选全参模型 0.845~0.865oracle4若有任一采样正确即算对0.940——这是 rerank 的理论上限说明 rerank 没有跑赢 0.940 的上限且略低于多数投票grade acc / F1premise问题 gold 标准解法、hypothesisThe answer is pred判断采样解最终答案是否正确。GSM8K 部分最有信息量的结论在 grading 一列全参微调模型把采样的数字答案是否正确判到了 0.986~0.996 的准确率而 head-only 只有 0.582——head-only 模型的蕴含能力不足以区分解法正确但表述不同与解法有误。这也再次验证full FT 才是让 backbone 获得真实语义判断力的关键。候选生成走本地 llama-serverLLAMA_URL见gen_gsm8k_candidates结果缓存为 jsonl可通过--gsm8k-cache复用避免重复调用。原始数据见 results/qwen0.8b_gsm8k.json、results/qwen2b_full.json、results/qwen4b_all.json。进阶玩法冻结 backbone 的 MLP 头summary 之外的 35B 实验展示了另一种轻量评测路线冻结 Qwen3.5-35B-A3BMoEbackbone仅在最后一 token 的隐状态latent上训练一个小型 MLP 头d - 512 - 1GELU dropout 0.1每个任务一个头。头文件存放在 mlp_heads_35b/如 mlp_heads_35b/arc_challenge/meta.json 记录 d2048、hidden512、eps0.1 与 test_acc0.917实现见 modeling_openjev.py 的LatentMLPHead用 soft BCE 训练BCEWithLogits标签平滑 eps按正例率 (1-p)/p 重加权推理时按问题分组 argmax。这一机制与 train.py 的--head-only只训score头不同前者在冻结交叉编码器的 latent 上再叠一层可训练头评测结果见 results/qwen35b_all.jsonMNLI 0.910/0.911MMLU rerank 0.498、grade 0.965。复现指南一条命令跑完全部评测在仓库根目录执行需先训练或下载 checkpoint并把路径替换为实际 ckpt 目录# MNLI 全部多选任务 GSM8K一次跑完 python code/eval.py --models ckpt/qwen3.5-0.8b-nli ckpt/qwen3.5-2b-nli \ --out results/qwen_all.json --tasks mnli gpqa mmlu arc_easy arc_challenge winogrande chess gsm8k # 只生成 GSM8K 候选本地 llama-server 需先启动在 127.0.0.1:18085 python code/eval.py --models dummy --out /dev/null --tasks gsm8k --gen-only --gsm8k-cache data/gsm8k_cands.jsonl关键参数均见eval.py的 main 解析--models必填可多个、--tasksmnli/gsm8k/ 各 MC 任务名见MC_TASKS字典、--mc-nMMLU 子采样默认全量 14k、--chess-n默认 500、--gsm8k-k采样条数默认 4、--bs默认 32、--max-len默认 4096ConTRoL 类长文档建议加大、--fewshotgpqa_fewshot / mmlu_fewshot 的示范数默认 5。评测结束后除写入--out的 JSON 外还会在终端打印一张汇总表。OPENJEV_DTYPE环境变量可切换推理精度如 V100 上用OPENJEV_DTYPEfloat32。训练侧的命令code/train.pypython code/train.py --model Qwen/Qwen3.5-0.8B --out ckpt/qwen3.5-0.8b-nli python code/train.py --model Qwen/Qwen3.5-2B --out ckpt/qwen3.5-2b-nli-headonly --head-only--head-only冻结 backbone 只训score头--lora/--lora-r/--lora-targets开启 LoRA--data mix --mix-dir dir使用 data_mix.py 构建的多源混合数据含图像 premise 的IMG标记替换、长文档截断保护等逻辑。结论与使用建议从 summary.md 四张表可以提炼三条可操作的结论评判grading是 openjev 交叉编码器的强项给出参考后0.8B~4B 全参模型在 GPQA、MMLU、ARC、chess 上达到 0.93~0.99 的准确率/F1明显优于 ModernCE 参考模型这类候选是否等于标准答案的蕴含判断适合直接用于 RAG 评判、指令遵循检查与幻觉检测。无参考 rerank 仍是难点纯粹从问题直觉选答案的蕴含模式在 GPQA、chess 等任务上接近甚至低于随机基线不适合作为知识选择题的首选方案。full FT 优于 head-onlyhead-only 的 2B 在所有任务上全面落后全参版本尤其在 GSM8K grading0.582 vs 0.996上差距悬殊——要让 backbone 学会真正的蕴含推理必须全参微调。所有数字都可通过 code/eval.py 与 results/ 下的原始 JSON 逐一核对训练侧实现见 code/train.py数据构建与防泄漏规则见 code/data_mix.py。赞分享人工智能大模型多模态微调NLP【免费下载链接】openjev项目地址https://ai.gitcode.com/hf_mirrors/AlexWortega/openjev点击查看免费下载相关推荐openjev v5 结果解读Qwen3.5-4B 交叉编码器的类型化决策、JevBench 评测与诚实边界openjev v5 结果解读Qwen3.5 4B 交叉编码器的类型化决策、JevBench 评测与诚实边界 openjev 是一个将 Qwen3.5 解码器人工智能大模型多模态微调NLPopenjev把 Qwen3.5 训练成 NLI 交叉编码器用“蕴含判断”统一实现决策、重排、判分与游戏控制openjev把 Qwen3.5 训练成 NLI 交叉编码器用“蕴含判断”统一实现决策、重排、判分与游戏控制 openjev 是一个将 Qwen3.5 系列人工智能大模型多模态微调NLPopenjev WebQL 基准实战用 NLI 交叉编码器替代 Gemini 做页面相关性与段落选择openjev WebQL 基准实战用 NLI 交叉编码器替代 Gemini 做页面相关性与段落选择 openjev 是把 Qwen3.5 改造成 jev 人工智能大模型多模态微调NLP上一篇Madeira是研究项目而非产品iOS游戏模拟器的真实预期与10个毛边清单下一篇KAT-Coder-V2.5-Dev 开源模型全解析35B MoE Agentic Coding 架构、后训练管线与多框架部署实践创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →