跳到正文
原文
论文追踪· arXiv:2610.06366·本站收录· 原文发表

VERA:结构化审计发现约 60% 正确漏洞判定伴随虚构推理

Correct Verdicts, Flawed Reasoning: Structured Auditing of LLM-based Vulnerability Reasoning

论文速读

评测与基准

据论文 PDF 整理(AI 生成),以原文为准

VERA用结构化推理记录审计LLM漏洞解释;B1对VERA标出的确定性阶段错误假阴性率为86.8%。

问题
安全分析需要漏洞在何处、为何存在的解释,而不只是二分类。自由CoT可以在正确裁决下夹带虚构路径和不可核验假设,整体LLM评判也会漏掉这些错误。
方法
VERA把漏洞写成状态序列,要求检测模型输出含范围、路径状态、属性检查和裁决的SRR,再由八阶段评判器核对;语义步骤才调用LLM,并用变异测试测评判器。
实验与结果
在SVEN的64对CWE-416上,四模型CWE recall为3%–16%。主实验里裁决正确与错误的阶段错误率之差不超过0.05;B1对VERA确定性阶段错误的假阴性率为86.8%。
局限与可以继续做的
作者指出评测限于五类C/C++内存与资源生命周期CWE,切片内审计不做完整过程间分析,稀疏SRR可能少报错误。作者计划扩展到语义类缺陷并改进别名召回。
实验设置sonnet-5、gemma-4-26b 等 · SVEN、PrimeVul 等 · binary accuracy、CWE recall 等
被测模型
sonnet-5gemma-4-26bllama-4-mavericknemotron-3-nanoglm-5.3-flashqwen-3.8-27bGPT-5.5GPT-5.6-sol
基准
SVENPrimeVulnewly collected paired functions
指标
binary accuracyCWE recallFPBoth V%stage failure ratemutation recalloff-target FPSRR success rate
AI 导读研究者提出 VERA 框架,用于审计大语言模型在软件漏洞分析中的推理过程。人工审计发现,约 60% 正确的漏洞判定伴随虚构或无法验证的论断,而自由形式的解释让推理错误逃过 LLM-as-a-judge 的评估。VERA 要求模型输出结构化推理记录(SRR),用机器可读字段编码指针追踪、内存操作和状态转换,再由多阶段评审器针对八种推理失败模式做确定性检查,仅在语义解释环节调用 LLM。该标准化模式还支持自动化变异测试,无需人工标注即可大规模评测评审器。评估显示,正确判定与错误判定中出现推理缺陷的频率相当,VERA 能暴露自由形式 LLM-as-a-judge 系统性漏掉的 87% 推理错误。

研究者提出 VERA 框架,用于审计大语言模型在软件漏洞分析中的推理过程。人工审计发现,约 60% 正确的漏洞判定伴随虚构或无法验证的论断,而自由形式的解释让推理错误逃过 LLM-as-a-judge 的评估。VERA 要求模型输出结构化推理记录(SRR),用机器可读字段编码指针追踪、内存操作和状态转换,再由多阶段评审器针对八种推理失败模式做确定性检查,仅在语义解释环节调用 LLM。该标准化模式还支持自动化变异测试,无需人工标注即可大规模评测评审器。评估显示,正确判定与错误判定中出现推理缺陷的频率相当,VERA 能暴露自由形式 LLM-as-a-judge 系统性漏掉的 87% 推理错误。

深度解读

6个问题,点开问题读完整回答

  1. 这篇论文试图解决什么问题?

    自由CoT常在正确漏洞裁决下夹带难以核对的推理,VERA用结构化记录来审计。

    LLM可以给出正确的漏洞裁决,同时附带难以核对的错误推理。

    • 场景:作者称LLM已被用于自动化漏洞检测,但分诊和修补需要知道漏洞在何处、为何存在;安全关键设置里,信任取决于最终裁决和底层推理,不只是二分类。
    • 现有不足:标准做法是无约束Chain-of-Thought。作者称自由文本没有可解析的中间步骤,逻辑跳跃、虚构执行步骤和内部矛盾可以藏在通顺文字后面。Fig. 1的例子是:模型按过期注释认定一次释放,把UAF指到错误位置,整体LLM评判也被该注释带偏。
    • 数字口径:摘要称约60%的正确裁决伴随虚构或不可核验主张。Table 1(SVEN,64对CWE-416)直接给出的是二分类准确率46%–60%、CWE recall 3%–16%、含糊主张19%–34%、Both V% 33%–58%。正文另写外部知识事实错误55%–61%、成对样本最高80%被标为有漏洞;这两句与表对不齐,以表为准。
    • 观察与做法:作者认为可检查步骤对应程序状态转移,一类漏洞可写成到达坏状态的状态序列。为此提出VERA:用Structured Reasoning Record(SRR)记下指针、内存操作和状态转移,再按八种失败模式做多阶段审计;多数阶段是确定性句法检查,并用变异测试衡量评判器。

    审计对象(论文未按攻击者威胁模型书写):

    • 输入:给定项目切片(如关键函数定义)上的漏洞推理。作者称这样做不必有完整可编译环境。
    • 代码依从:主张是否被切片在句法和语义上支持,例如追踪中的名字是否真有声明。
    • 内部一致性:中间步骤是否连贯,并严格支持最终裁决。
    • 不做的事:两项检查都不需要真实推理标注;作者称这与确认漏洞是否存在、能否在运行时触发不是同一目标。
  2. 有哪些相关研究?

    检测与核验工作问的是漏洞是否成立;VERA审计解释是否依代码且内部自洽。

    引言和Sec. 6把相关工作分成检测、报告核验、推理检查和评判器评测。

    LLM漏洞检测

    • 从程序表示上的神经网络检测器,到代码微调的大模型,再到知识检索(Vul-RAG)、代码属性图引导(LLMxCPG)和污点推断(IRIS)。作者称这些系统优化检测准确率;VERA不是检测器,而是审计SRR里的推理。
    • 引言称基准研究只看最终检测指标、把推理当黑盒;传统静态工具做规则检测,常以高假阳性淹没分诊且不解释根因。动态方法(模糊测试、sanitizer)和LLM漏洞核验的目标是确认缺陷是否存在或能否执行,不是审计解释。

    核验LLM报出的漏洞是否真实

    • LLift用规则复查回答;LLMSAN丢掉未通过数据流检查的报告;LLMDFA用SMT查路径可行性,RepoAudit让模型在路径条件之间找矛盾。
    • BugScope用LLM-as-a-judge查可行性及假设是否被代码支持;VulInstruct和DAGVul用LLM-as-a-judge对照真值。作者称这些方法问漏洞是否真实,VERA问解释是否成立,二者互补。

    检查推理与LLM评判

    • 作者称自由CoT在一般任务和代码推理上被指出并不总是忠实的;LLM评判被用于代码生成和软件工程输出,但会被表面线索影响。
    • VulInstruct与DAGVul也查推理,但是对照补丁或人工标注,并用整体LLM-as-a-judge。作者称VERA直接对照切片检查范围、状态转移和假设,不需要推理真值,并能对一部分失败做确定性检查。

    评测推理评判器

    • 作者称推理质量没有检测器那种带标签真值。FBI变异自然语言输出质量,Delcourt等人向UML图注入结构缺陷。作者称这不能直接迁到代码推理:变异必须定位具体主张、相对源码确认它是错的,并挂上失败类,而自由CoT没有这些锚点。

    基线与基准

    • 基线是B1(自由CoT+整体LLM评判)、B2(自由CoT+按八类失败分阶段的LLM评判)、B3(SRR+同一套分阶段LLM评判)。数据是SVEN、PrimeVul及新收集的漏洞/修补函数对,覆盖CWE-416、476、401、415、772。

    作者把本文放在审计解释是否贴着代码、是否自洽,而不是再做一个检测器,或再确认漏洞能否触发。

  3. 论文如何解决这个问题?

    VERA要求输出状态转移形式的SRR,再用八阶段混合评判审计八类失败。

    VERA先把漏洞写成状态序列,再强制检测模型输出可检查的SRR,最后用八阶段评判器核对代码依从和内部一致性。

    状态规格与失败分类

    • 状态规格:正文把堆内存资源的状态写成NULL、ALLOC、FREED。分配进入ALLOC,释放进入FREED,别名与资源同状态。CWE-416是在FREED上访问,CWE-415是在FREED上再次free,CWE-401是仍为ALLOC时变得不可达。作者称同一写法可推广到开关型资源;指针有效性、文件描述符等定义在补充材料。评测用到的CWE-476、CWE-772规格未印在正文。
    • 八类失败:F1范围错误,F2无依据的外部假设,F3状态转移错误,F4别名错误,F5追踪不完整,F6路径编造,F7依赖死代码,F8裁决不一致(Table 2)。F1、F2、F3、F5、F6、F7查代码依从;F4、F8查内部一致性。
    • 与记录的对应:对照源码查Block 1–2可得词法与证据问题以及别名识别;Block 2查状态和路径;比较Block 2–4查裁决是否自洽。

    SRR的四块

    • Block 1范围:变量、假定初态、观察到的操作、别名等价集。
    • Block 2追踪:哪条路径上、以何顺序、发生何种状态变化。Fig. 2把“cache_remove释放e”写成显式字段,供后续阶段检查。
    • Block 3属性:按CWE记录是否认定违规,使判断依据可查看。
    • Block 4结论:VULNERABLE或SAFE,以及所引violation_condition。作者称把结论和前三块分开,才能检查裁决是否与模型自己的中间主张一致。

    八阶段评判

    阶段顺序是S1–S2定范围,S3–S4查路径,S5–S6查转移,S7查别名,S8查裁决。

    • S1(确定性,F1):用Tree-Sitter从AST抽出与CWE相关的变量和会改状态的操作,检查Block 1是否虚构或漏报。切片外被调用者中的操作标MISSING_CONTEXT。局部变量在相应操作出现前被写成已分配或已释放,算范围错误;缺少调用者时,参数初态只警告、不判错。
    • S2(LLM,F2):对Block 1–2的主张做定向LLM调用,看理由是否只靠记录和切片中的证据。作者称隐式自然语言假设不能靠确定性解析解决。
    • S3–S5(确定性):S3检查追踪引用的Path ID是否已声明(F6)。S4只标句法上不可执行的死代码,例如if (0)、while (false)(F7);作者称更准确的死代码检测需要控制流图,留作后续。S5只对正在追踪的变量,检查Block 1已声明的操作是否在追踪中被跳过(F5)。
    • S6–S8:S6按状态规格和源码顺序检查每次转移;CWE-401与CWE-772另查函数结束时是否仍未释放。S7用LLM查别名及状态是否传到共指指针,作者称原因是别名可能来自指针运算、字段、类型双关或不透明返回值。S8先查违规主张是否有对应转移,再用LLM核对Block 3的理由与Block 2,最后确定性核对Block 4与Block 3:认定任一CWE则为有漏洞,否则为安全。

    结局与变异测试

    • 四类结局:NO_ERROR为无硬失败;MINOR_ERRORS为只有警告,例如无法核验的被调用者上下文或未确认的别名;MAJOR_ERRORS为至少一阶段硬失败,并报告阶段和对应主张;INCOMPLETE_RECORD为无法解析,不进入推理质量评估,标记重查。作者称正确的二分类可以与MAJOR_ERRORS同时出现。
    • 变异测试:13个算子对应F1–F8(Table 3),包括增删变量或操作、错误初态、注入无依据假设、颠倒转移或插入多余free、增删别名步、增删追踪步、含糊或未声明的路径、把证据包进死代码、翻转裁决或同时翻转CWE状态。作者称并非每个算子都能用到每条SRR。召回是命中目标阶段的变异体比例;FP是其他阶段的变异体被误标到该阶段的比例。
    • 实现边界:评判直接处理未编译切片。S1的完整性检查限于已知C/C++内存函数的显式调用,如malloc、free、realloc;隐式操作记警告而非硬失败。作者称这是为结构检查避免假阳性,代价是S1和S5召回中等。全程序死代码、直接赋值以外的别名和形式化可达性不在当前范围。
  4. 论文做了哪些实验?

    正确与错误裁决的阶段错误率接近;整体LLM评判漏掉VERA标出的大部分确定性错误。

    实验设置

    • 检测模型:主实验为sonnet-5、gemma-4-26b、llama-4-maverick、nemotron-3-nano、glm-5.3-flash、qwen-3.8-27b。Sec. 2另由两名安全专家人工审计GPT-5.5、GPT-5.6-sol、Gemma-4-26b、Sonnet-5。
    • 评判模型:GPT-4.1、Mistral-Large-2512、DeepSeek-V3。作者称来自与检测模型不同的提供方。
    • 数据:C/C++漏洞与修补函数对。CWE-416为184对(SVEN 64、PrimeVul 100、新收集20),CWE-476为277对(77、100、100),CWE-401为200对(100、100),CWE-415为110对(65、45),CWE-772为80对(76、4)。
    • 配置:B1为自由CoT加整体LLM评判;B2为自由CoT加八阶段LLM评判;B3为SRR加同一套分阶段LLM评判;VERA为SRR加混合评判。作者称正文只放子集,其余在补充材料。
    • 指标:变异召回是被标到目标阶段的变异体比例;FP是针对其他阶段的变异体被误标到该阶段的比例。RQ3另报阶段失败率、SRR可解析率,以及相对VERA的假阴性。
    • 抽样:RQ1为10个不少于50个函数的组合、每组合50条、六模型,共3000条自然SRR。RQ2为每个数据集每个CWE 20条,优先无错误、否则轻微错误;Table 5的底稿都是Sonnet-5,注入前已有错误不计入。论文未报告重复次数,也未报告两名专家的一致性。

    主结果

    Table 6e是各检测模型的阶段失败率。论文未在该表按数据集或CWE拆开格子。S4六行均为0.00,未列入。行名按该表;Sec. 5.1的全名未逐行写进表内。Nemotron的不可解析记录已排除(Sec. 5.4)。

    表格较宽,可左右滑动

    模型S1S3S5S6S8
    Sonnet-50.590.180.220.430.66
    Gemma0.480.340.330.230.50
    GLM0.510.190.270.420.69
    Llama0.480.260.260.440.54
    Nemotron0.470.210.110.320.51
    Qwen0.480.130.160.470.67
    • 表中S8高于同模型的S3和S5。作者称把推理与最终裁决对齐是各模型的共同薄弱点,应按失败阶段诊断,而不是只看二分类。
    • Table 6d中,裁决正确与错误的阶段错误率绝对差不超过0.05;真漏洞与真安全同样接近。作者称正确裁决同样频繁地带有推理缺陷。
    • 路径类阶段与状态转移阶段的高低并不一致:Table 6e里Gemma的S6为0.23,低于Sonnet-5的0.43和Qwen的0.47,但其S3、S5更高。

    人工审计与分类覆盖

    Table 1是自由CoT、SVEN、64对CWE-416。外部知识Wrong%只对Sonnet-5给出。

    表格较宽,可左右滑动

    模型AccCWE recallFPBoth V%Vague%
    GPT-5.560%16%49%44%19%
    GPT-5.6-sol59%13%38%33%28%
    Gemma-4-26b46%3%74%58%22%
    Sonnet-559%13%46%42%34%
    • Sonnet-5的外部知识Seen为44%、Wrong%为61%;其余Seen为0%或2%,Wrong%为—,表注称n<3。正文的55%–61%和“最高80%”与此表对不齐,以表为准。
    • RQ1用三个评判模型对3000条未注入SRR做开放式列错,得到324个标签、41365次出现。313个标签映射到F1–F8;未映射21次(<0.05%),八类覆盖>99.95%(Table 4说明)。作者称Mistral标出的F2、F4、F8多于GPT-4.1或DeepSeek。

    与自由文本评判的对照

    • 假阴性:作者报告B1对VERA已标出确定性阶段错误的记录,假阴性率为86.8%(Sec. 5.4)。摘要和结论写成87%。
    • 分阶段标出率(Table 6b):S8上VERA为65%,三个评判的B1均为0%,B2为0%、5%、2%。S1上VERA为59%,B1均为4%;B2的GPT为29%,低于VERA,DeepSeek与Mistral为64%和51%。S5上VERA为26%,B2为76%、76%、97%。作者称B2在几乎所有阶段过标、却漏掉S8;GPT的S1是表上的例外。
    • 一致性(Table 6c,仅确定性阶段):VERA与B1的不一致为61%、72%、55%(GPT、DeepSeek、Mistral);VERA与B2为20%、9%、8%;B1与B2为58%、76%、57%。作者称同一自由文本换提示就会改判。disk_seqf_stop一例中,SRR把指针写成NULL后再解引用,仍把CWE-476标成满足;VERA的S8标出矛盾,B1判为无错误。

    评判器的变异测试

    Table 5按CWE合并数据集,底稿均为Sonnet-5。变异体数:CWE-416为711,CWE-476为1006,CWE-415为332,CWE-401为541,CWE-772为178。

    • VERA的确定性阶段:S3召回1.00、FP 0.00。S6召回1.00,FP为0.01–0.05。S8召回1.00,仅CWE-401的FP为0.02。S1召回0.53–0.68、FP 0.00。S5召回0.59–0.71、FP 0.00。S4召回0.44–0.91、FP 0.00,CWE-772为0.44、CWE-401为0.58。作者称S3、S6、S8的FP为0.00,与S6及S8的CWE-401对不上;又称S5上VERA为91.5%、B3为72.8%,与表中0.59–0.71对不上。两处以表为准。
    • B3对照:同一格上三个评判模型相差大。CWE-416的S6,B3的GPT-4.1召回为0.00(FP 0.09),DeepSeek为0.62(FP 0.26),Mistral为1.00(FP 0.00)。作者举SVEN中CWE-416的SMB2_read:GPT-4.1的B3在作者称为无错误的链上编造了不存在的状态转移,VERA判通过。
    • S2与S7:表注标为依赖LLM。S2上VERA的GPT列召回约0.20–0.47,Mistral列约0.90–1.00。作者称S2召回为0.20–0.47,该区间对不上Mistral列。S7的GPT列多在0.17–0.33;CWE-772没有S7变异体。作者认为这两阶段上VERA与B3的差别来自LLM波动。

    正确裁决、成对函数与CWE-772

    • 与二分类脱开:Table 6d的绝对差不超过0.05。作者称模型经常因错误理由得到正确二分类,表面准确率看不到这些矛盾。
    • 一致误报:六模型都评过的1468个函数中,103个安全函数被全部标为有漏洞,37个真漏洞被全部漏掉。作者称VERA在这些过标安全函数的98%上标出推理错误,S8占82%。777对里,同一阶段失败在S1为51.1%、S6为27.7%、S8为56.9%,32.3%的对在全部阶段共享完全相同的错误。Table 6d的Both Same Err列是0.44、0.23、0.50(S1、S6、S8),与这组百分数不是同一列。
    • CWE-772:作者称模型标出75%的真实泄漏,同时误标73%的安全函数;S5失败率30.8%(CWE-476为17.6%),S6为58.2%(对比38.6%)。作者的解释是释放点可能在切片外,模型会补上切片里没有的生命周期操作。

    其他消融与分析

    • SRR可解析率(Table 6a):Sonnet-5 97.2%(1649条中46条不完整),Gemma与GLM均为99.6%,Llama 97.8%,Qwen 98.5%,Nemotron 74.6%(1564条中398条)。
    • 真实SRR上S4失败率为0%(Table 6b、6d、6e),与变异注入时0.44–0.91的召回不是同一测量。
    • S5失败样本相对无错误样本:循环1.66倍、空指针检查1.52倍、分配调用0.49倍(均p<0.01,Mann-Whitney U)。S6与循环、分支、free调用的p>0.05。S8:空指针检查1.61倍、分配调用0.63倍、显式赋NULL为0.54倍(均p<0.001)(Sec. 5.4)。
    • 作者称用训练日期之后的额外CVE数据复查,推理错误率未见差别,并据此认为污染本身解释不了这些失败(Sec. 5.5;论文未给该比较的检验或p值)。
    • 作者称Mistral在若干阶段接近全召回,但FP最高到0.26;DeepSeek更保守、FP最高到0.38(Table 5可见对应格子)。VERA的程序化阶段不随这三个评判模型改变,方差只在S2和S7。
  5. 有什么可以进一步探索的点?

    作者指出范围停在五类C/C++漏洞,并写明切片审计与稀疏SRR的边界。

    作者指出的局限与后续方向

    • 免构建的切片边界:为跨语言、大规模部署,评判直接处理未编译切片,不做全程序构建。类型转换、结构体字段或不透明被调用者引入的隐式操作超出AST匹配;S1完整性检查限于已知C/C++内存函数的显式调用,隐式操作记警告而非硬失败。作者称这是刻意权衡:结构检查上避免假阳性,代价是S1和S5召回中等(Sec. 4 Scope and Limitations)。
    • 过程间分析在范围外:精确死代码、直接指针赋值以外的别名、形式化路径可达性需要全程序编译,目前不做。作者称与全程序控制流和points-to求解器集成是后续方向(Sec. 4)。
    • 训练数据污染:公开基准可能在预训练中见过。作者用训练日期之后收集的额外CVE数据缓解,称推理错误率未见差别,并认为污染本身解释不了所观察的失败(Sec. 5.5)。
    • CWE范围:评测覆盖五类C/C++内存与资源生命周期CWE。作者称扩展到其他CWE留作未来工作(Sec. 5.5)。Sec. 7进一步写,将超出C/C++内存漏洞,扩到语义缺陷类。
    • 只能检查写下的内容:稀疏或欠指定的SRR给VERA的可查主张更少,可能抬高无错误比例。作者称在较小开源模型上见过这一点;所评五个前沿模型能遵守模式(Sec. 5.5)。论文未点名这五个是哪几个。
    • 变异是否偏向确定性检查:作者承认算子可能偏向VERA的确定性检查,并称RQ1的开放标注表明M1–M8对应真实未变异推理中的F1–F8,因而不是为偏向VERA而构造(Sec. 5.5)。Sec. 7还计划用过程间分析提高指针别名召回,并把分阶段诊断用作对齐的细粒度训练信号。

    实验覆盖范围

    • 主实验检测模型为sonnet-5、gemma-4-26b、llama-4-maverick、nemotron-3-nano、glm-5.3-flash、qwen-3.8-27b;评判模型为GPT-4.1、Mistral-Large-2512、DeepSeek-V3(Sec. 5.1)。Sec. 2的人工审计对象是GPT-5.5、GPT-5.6-sol、Gemma-4-26b、Sonnet-5。
    • 数据是C/C++成对函数:CWE-416 184对、CWE-476 277对、CWE-401 200对、CWE-415 110对、CWE-772 80对,来自SVEN、PrimeVul和新收集样本(Sec. 5.1)。
    • 对照配置为B1、B2、B3与VERA。变异测试有13个算子;RQ2对每个数据集每个CWE抽20条SRR,Table 5的底稿均由Sonnet-5生成(Sec. 5.1–5.3)。
    • RQ1覆盖10个不少于50个函数的数据集–CWE组合、每组合50条、六模型共3000条,由三个评判模型开放列错(Sec. 5.2)。
    • 论文未报告Sec. 2两名专家的一致性,也未报告主实验重复次数;作者称因页数限制正文只给出部分结果,其余在补充材料(Sec. 5.1)。
  6. 总结一下论文的主要内容

    VERA用SRR审计漏洞解释,裁决对错两侧的阶段错误率之差不超过0.05。

    VERA审计的是LLM在源码切片上的漏洞解释是否贴着代码、是否自洽,而不是再训练一个检测器。

    • 问题:自由CoT可以在正确二分类下包含虚构路径、外部知识和不可核验假设,整体LLM评判也会跟着漏掉。摘要称约60%的正确漏洞裁决伴随这类主张。Table 1在SVEN的64对CWE-416上给出的是另一组数:二分类准确率46%–60%,CWE recall 3%–16%,含糊主张19%–34%。
    • 做法:把内存类漏洞写成状态转移,要求模型输出含范围、路径上的状态变化、CWE属性检查和最终裁决的SRR,再由八阶段评判器核对。S1、S3–S6和S8的主体是确定性检查,S2、S7以及S8的一部分调用LLM。13个变异算子用来在没有推理真值时测评判器。
    • 裁决与推理分开:Table 6d中,裁决正确与错误的阶段错误率之差不超过0.05,真漏洞与真安全也接近。作者称模型经常因错误理由得到正确二分类。
    • 相对自由文本评判:Sec. 5.4中,B1对VERA已标出的确定性阶段错误,假阴性率为86.8%(摘要与结论写87%)。Table 6b里S8上VERA为65%,三个评判模型的B1均为0%。六模型一致误报的103个安全函数中,作者称98%被VERA标出推理错误。
    • 作者的结论:推理质量与二分类正确性是分开的;分阶段结果可以把失败定位到范围、追踪或裁决一致性。作者称分析人员可在采信前滤掉虚构报告,开发者可按阶段做定向诊断。后续包括语义类缺陷、过程间别名分析,以及把阶段诊断用作训练信号。
阅读原文arxiv.org