给AI打标签时,名字比规则更重要

资讯 网易科技 作者:网易 全文 7190 字 · 约 18 分钟读完 配图 1 张

sina qqZone renren ydCloud 0

给AI打标签时,名字比规则更重要(配图 1)

2026年9月,一类叫做"类型化决策模型"的新系统悄悄上线了。

它们不像ChatGPT那样写长篇大论,而是干一件很窄的事:你给它一段文字,再给它几个选项,每个选项带一个名字和一句定义,它直接返回每个选项的概率。比如判断一张工单该转给哪个部门,你告诉它"billing"代表"发票、付款和退款","technical"代表"故障和系统错误",它算完直接吐出一个概率分布。整个过程只需要一次前向计算,不用像生成文本那样一个字一个字往外蹦,所以成本能比大模型低一到两个数量级。

这类系统的开创者叫Jev,上线之后几天内就冒出了好几个开源实现,想法都一样:开发者把规则写进"定义"里,标签只是用来认领这个选项的名字而已。听起来很合理对不对?谁会在乎一个选项叫"A"还是叫"billing",只要模型读懂了定义里写的规则就行。

但这篇来自南加州大学的论文发现了一件让人意外的事:至少在三个开源系统里,模型压根没怎么看定义,它几乎只认标签。

这事儿要是放在现实场景里会有多离谱?想象你给客服系统写了条规则:"企业版客户要求退款时,应该升级处理。"你把这句话一字不差地写进"escalate"这个选项的定义里。结果模型压根没读这句话,它一看到"escalate"这个词本身,就觉得"这大概率是要升级处理的意思",直接按标签字面意思猜,完全不管你写的定义是什么。

这不是夸张的比方,论文里真做了这个实验。

**标签说了算,定义只是摆设**

研究团队测试了三个基于ModernBERT架构的开源系统,统称LAYA家族,以及一个独立实现的系统VON。他们做了件很直接的事:把一个分类请求里的所有定义全部删掉,只留标签,看准确率会不会掉。

结果让人意外:LAYA-TD删掉定义后,准确率不仅没降,反而从0.8487微微升到了0.8559。

这就像你把一本菜谱里所有的烹饪步骤说明全撕掉,只留菜名,结果厨师做出来的菜味道完全没变。这说明厨师压根没看步骤,全靠看到"宫保鸡丁"四个字就凭记忆去做了。而如果菜谱写的其实是"鱼香肉丝的做法"却起名叫"宫保鸡丁",按论文的发现,厨师大概率还是会做出宫保鸡丁的味道,完全不管步骤里写的是什么。

更有意思的对照实验是:如果把标签换成毫无意义的"A"和"B",只留定义,模型反而能达到0.7971的准确率,远高于什么信息都没有的随机水平0.569。

这说明定义其实是能被模型读懂的,只是只要有一个像模像样的标签在旁边,模型就懒得去看定义了。

当标签和定义彻底唱反调时,情况更糟。研究者设计了一个"误导"场景:把两个选项的名字对调,定义还留着原本正确的内容。这时候LAYA-TD的准确率暴跌到0.1357,比瞎蒙(50%)还差。

类型化决策模型*:一类不生成文本、只针对预设选项返回概率分布的轻量AI模型,设计初衷是用一次前向计算代替生成式模型的多步解码,追求低成本高速度。

**专门搭的实验场:PolicyBench**

光看现有的分类任务还不够有说服力,因为很多任务里标签本身就是答案的提示,比如"billing"这个词天然就暗示了账单类问题,所以没法干净地把"标签影响"和"定义影响"分开。

于是研究团队自己搭了一个叫PolicyBench的合成测试集。

这个测试集里,每条工单的真实归类完全由几个可控属性决定,规则只写在选项的定义里,标签要么叫A和B(没有任何含义),要么叫真实有意义的名字比如"escalate"和"hold",要么故意起反了。七条规则涵盖单一条件、并列条件、析取条件和否定条件,覆盖了各种逻辑组合。

这就好比考试时出的不是常规题,而是专门设计来检验学生是不是真的理解概念、而不是靠蒙题技巧的题目。如果一个学生平时考试成绩不错,但碰到这种专门设计的题就露馅了,说明他之前的好成绩可能一直是蒙对的。

结果在这个干净的测试场里,效果更明显。LAYA-TD在选项叫A、B时准确率是0.893,选项叫真实名字(aligned)时反而跌到0.742,差距高达0.1511个百分点。更诡异的是,故意把标签起反的"misleading"条件下,准确率是0.836,比用正确名字还要高!

这说明"escalate"和"hold"这两个词本身对模型来说带有某种天然倾向,不管这个倾向跟当前规则到底对不对得上,模型都会被这种天然倾向带偏,而不是去读你辛辛苦苦写的定义。

PolicyBench*:论文自建的合成路由测试集,决策规则只出现在选项定义里,标签可以人为控制成一致、无关或误导性的,用于纯净地衡量模型到底依赖标签还是定义。

但三个LAYA checkpoint对"误导性标签"的反应方向并不一致。另一个叫laya-en的模型,误导标签反而把准确率从0.7911砸到0.5297,跌了超过26个百分点。方向不一样,但共同点是,它们都受标签摆布,只是摆布的方向因模型而异。

**VON完全免疫,原因藏在一行代码里**

论文里有个系统叫VON,它的表现截然不同。

不管选项叫什么名字,aligned也好,arbitrary也好,misleading也好,VON返回的概率精确到小数点后六位完全一致。研究者专门做了个对照实验:同一个问题换了五种不同的标签方式问VON,返回的结果是"0到机器精度"的零差异。

这背后的原因一开始让人摸不着头脑:同样是基于ModernBERT架构训练的模型,为什么VON就不受标签影响?

答案出乎意料地简单,不是训练数据不同,不是模型参数量差异,而是一行代码的区别。

LAYA在把选项信息喂给模型的时候,是这么拼的:"{标签}: {定义}",也就是把标签硬生生焊在了定义前面。而VON只把定义本身喂给模型,标签仅仅是程序内部用来记录这个答案该叫什么名字的一个字典键,根本没进到模型的输入里。

这就好比两个老师批改同一份匿名试卷。一个老师阅卷前先看了一眼学生写在卷头的署名(哪怕系统设计上要求匿名阅卷),另一个老师压根没看到署名那一栏,只看了答题内容。前者批改成绩很可能受署名影响(比如看到"学霸张三"的名字就倾向给高分),后者则完全公平,因为他从头到尾就没见过那个名字。而如果不做这个"隐藏署名"的设计,老师的评分偏差根本无从追查,因为他自己可能都没意识到自己被署名影响了。

研究团队没有止步于观察这个代码差异,他们直接做了双向实验:把LAYA的"标签+定义"拼接方式改成"只喂定义",结果三个LAYA checkpoint全部变得对标签完全免疫,准确率在各种标签条件下精确相等,差值是整整齐齐的0.0000。反过来,把标签硬塞进VON的输入里,VON立刻"学会"了被标签带偏,在分类任务上准确率从0.8511骤降到0.2281。

这个双向验证非常关键,因为单看"VON不受影响"这一个证据,可能只是巧合,也可能是VON本身的解码方式天生免疫。但当你能够在不改变任何模型权重的情况下,通过改一行渲染代码就让效果出现或消失,这就说明问题根本不出在模型的"脑子"里,而出在喂给模型嘴里的那份"菜单"是怎么写的。

ModernBERT*:一种现代化的双向编码器架构,是LAYA和VON两个系统共同的底层骨架,本身不负责生成文本,而是输出每个选项对应的打分。

**这锅不能甩给"受限解码头"**

之前有一篇论文(Sun等人2026年的工作)也发现了类似现象,是在Jev这个闭源商用模型上观察到的,重命名选项会改变答案。但那篇论文把原因归结为这类模型用的"受限解码头"这种特殊架构,意思是说正常的语言模型用文本生成的方式回答问题,而这些类型化决策模型是靠一个特制的小部件给每个选项打分,这个部件本身可能有什么天然缺陷导致它认标签不认定义。

这篇论文用实验直接推翻了这个解释。

研究者找了一个完全没有这种特殊解码头的普通语言模型Qwen2.5-7B,让它用最普通的方式给选项打分:把每个选项当成一段文字,计算语言模型觉得这段文字有多大概率是续写。结果呢?同样的标签偏好效应照样出现,而且幅度跟LAYA-TD差不多,用A、B这种无意义标签比用有意义标签高出0.1203个百分点,跟LAYA-TD的0.1511几乎在同一量级。

研究团队还追加测试了Llama-3.1-8B和Mistral-7B两个完全不同训练来源的模型,Mistral-7B同样表现出+0.1531的提升幅度。这说明这不是某一种架构或者某一次训练偶然产生的怪癖,而是某种更普遍的现象:只要是通过"比较几个候选字符串谁的分数更高"这种方式来做决策的模型,都容易把名字本身的分量看得比内容定义更重。

这就好比你怀疑某个特定品牌的秤不准,于是找了另外三个完全不同品牌的秤来称同一样东西,结果发现只要是秤,只要是靠"比较轻重"这种方式工作,都会出现类似的偏差。这说明问题不在某个牌子的做工,而在"称重"这件事本身的某种共性缺陷里。

论文还专门区分了两种打分方式:一种是看完整个选项词的平均对数概率,另一种只看选项词开头第一个不同的字符,两种方式结果高度一致。但如果换成让模型真正生成一段文字再去匹配属于哪个选项,结果反而有时候不一样,在某个没有做对照控制的测试版本里甚至逆转了。这提示了一个更细的结论:问题出在"靠比较候选字符串打分"这种机制上,跟到底是哪种打分公式关系不大。

**连问题被反过来问都读不懂**

论文还抓到了另一个独立的毛病,这个毛病连VON也没能幸免。

研究者把一堆是非题的问法加上"是否错误"这样的否定前缀,比如把"这个请求是否已授权"改成"是否错误地认为这个请求未授权",逻辑上答案应该反过来。结果呢,LAYA家族的三个模型在97%左右的题目上,决策根本没跟着改变,返回的概率几乎和没加否定词之前一模一样。

这就意味着准确率从一开始的0.64左右直接跌到了0.36左右,而且两个数字加起来几乎正好等于1,这是一个很明确的信号:模型根本没有理解"否定"这个词的含义,它只是把问题整体当成一个固定的东西去匹配一个固定答案,完全没解析句子里那个"不"字到底该不该翻转结果。

就连对标签完全免疫的VON,在这个测试里也栽了跟头,97.1%的否定题目决策没变。

这说明"读懂标签偏见"和"读懂否定句"是两个互不相关的毛病,一个模型解决了前者不代表后者也解决了。VON靠着不把标签塞进输入这个设计躲开了第一个坑,但对否定词视而不见这个坑,它照样掉了进去。

有意思的是,对照的那个普通语言模型Qwen2.5-1.5B在否定题上虽然也受影响,但只有79.72%的决策翻车了,比类型化决策模型的96%到98%要轻一些。论文直接把这个结论挑明了:这类专门为了省钱省时间设计的轻量模型,在这两项测试里没有一项比普通语言模型更强,一项打平,一项更差。它们唯一的优势只剩下速度和成本,这篇论文完全没有去测这两项,也没打算否定这部分价值。

**自信分数在撒谎**

这篇论文还有一处让我读完倒吸一口凉气的发现。

这些类型化决策模型除了返回每个选项的概率,通常还会附带一个"置信度"分数,意思是模型对自己这次判断有多大把握。行业里一个很常见的做法是:置信度高就直接采纳这个模型的答案,置信度低就转给更贵更强的大模型复核,以此来省钱。

论文测了一下,在标签和定义相符的正常情况下,LAYA-TD的置信度分数确实管用,能够以0.8123的AUROC(一种衡量"分得清对错"能力的指标,1.0代表完美区分,0.5代表完全瞎猜)区分出哪些判断是对的、哪些是错的。

但当标签和定义故意对着干、模型的准确率已经掉到0.1357的惨状时,置信度分数的AUROC变成了0.2433,低于0.5。

AUROC低于0.5是什么概念?意味着这个分数不仅没用,反而是反着来的,模型报告"我很有把握"的那些答案,恰恰更可能是错的。

这就好比一个总是信心满满夸下海口的朋友,你发现他越是拍着胸脯说"这事儿我绝对靠谱",结果往往越是翻车,而他说"我不太确定"的时候反而靠谱。如果你继续用"听他语气有没有信心"来决定要不要相信他,你的决策系统本身就是在帮倒忙,而且因为置信度分数看起来像是个客观数字,比一个人说话的语气更有迷惑性,容易让人忽略这个陷阱。

VON再次成为干净的对照组:它在正常和误导两种条件下的AUROC都是0.8055,完全相等,因为它的决策压根没被标签影响过,自信分数自然也不会跟着一起乱。这进一步印证了,问题的根源确实出在"标签被喂进了模型输入"这一个点上,牵一发动全身地影响了后续所有的输出,包括看起来毫不相关的置信度评分。

**两次调用就能测出自家模型有没有这个毛病**

这篇论文给出的实操建议挺简单,不需要你懂模型内部原理,也不需要有权限去改代码。

只需要两次调用:把同一个问题问两遍,第二遍只改选项的名字,定义完全不动,然后比较两次返回的概率分布。如果两次结果一模一样,说明你用的模型跟VON一样,是个"只认定义不认标签"的系统,这时候你需要把全部心思放在把定义写得足够清楚、自洽,因为模型根本不会借助标签这根拐杖;如果两次结果差异很大,说明你的模型跟LAYA一样容易被标签带偏,这时候论文给了几条经过实测的应对办法。

第一条办法最简单粗暴也最有效:把选项名字换成A、B这种没有意义的占位符,把规则全部塞进定义里。在PolicyBench上这招能带来+0.1511的提升,但有代价,如果你的任务里类名本身就是很好的线索(比如分类任务里"billing"这个词本身确实暗示账单类别),强行换成A、B反而会让准确率下降,所以这招不是无脑适用的。

第二条办法叫"空状态先验校正":先拿一个空白输入问一次模型,看看它在"什么信息都没有"的情况下倾向哪个选项,把这个倾向当成背景噪音,从后续每次真实的回答里除掉再重新归一化。这个办法对那些真的在用标签的模型有效,能带来几个百分点的提升,但对VON这种本来就没有标签偏见的模型反而有害,会把它的准确率硬生生拉到0.5,因为VON用来做出正确判断的那部分"不对称性"恰恰就藏在空白输入的那次打分里,一除就把真正有用的信号也删掉了。

第三条办法是在提示词里加一句话,明确告诉模型"标签只是随意起的名字,答案应该看定义",但实测效果很弱,只带来0.0138的提升,远不如直接换成A、B标签的效果好。

第四条办法是"双重渲染比对":把同一个问题用两种不同的标签方式各问一遍,如果两次答案不一致,就把这道题标记为存疑,转交人工或者更强的模型复核。这个办法在覆盖率0.81的情况下能把保留下来的那部分答案的准确率从0.742提到0.8921,但代价是多花一次调用的成本,而且论文也提醒了,这招不能替代直接改标签这个更根本的解法,它更适合那种标签必须保留原本含义、没法随便改成A、B的场景。

AUROC*:一种评估分类好坏的指标,数值范围从0到1,0.5代表瞎猜,1.0代表完美区分正确和错误。

Qwen2.5*:阿里巴巴开源的一系列语言模型,论文里用它和Llama、Mistral一起作为对照组,证明这个标签偏见现象不是某个特定模型的独有毛病。

写在后面

读完这篇论文,最让我意外的不是"模型会被标签带偏"这件事本身,毕竟语言模型对词语表面含义敏感不算新闻。真正让我愣住的是那行代码的发现过程:研究者没有满足于"观察到两个系统表现不同",而是坚持把差异缩小到了唯一一行渲染逻辑,然后用双向实验去证实因果关系,而不是相关关系。这种较真的劲头,比发现问题本身更值得学。

还有一个细节我反复琢磨了很久:论文里提到他们最初设计PolicyBench时,给"不符合规则"的那个分支写的定义是一句很懒的话,"none of the above applies"(不属于以上任何情况)。结果这个偷懒直接制造了一个假象,让人误以为模型存在"位置偏好",实际上只是因为两个选项的定义详细程度不对等。他们后来专门补了一个对照版本来戳穿自己的这个坑。这个坑我觉得特别真实,因为写测试用例的时候,"图省事随便填一个默认值"这种选择,恰恰是最容易悄悄污染实验结论的地方,而且往往是实验设计者自己最难发现的,因为那是他自己写的,他会天然觉得这个默认值"无所谓"。

这篇论文留了一个没解的问题,我觉得特别值得往下追:既然标签偏见和否定词盲区是两个相互独立的毛病,那是不是还存在第三个、第四个类似的"输入渲染陷阱",只是现在还没被发现?如果渲染这一层本身就是个高风险区域,那是不是意味着,任何一个把结构化信息塞进语言模型输入的系统,都值得被这样拷问一遍:你到底是在喂给模型该看的内容,还是在无意中塞进去了一些它会优先捕捉、却根本不该依赖的噪音?

Q&A

Q1:类型化决策模型为什么会被选项的标签带偏而不看定义?

A:论文发现根源在于代码渲染方式,像LAYA系统把标签和定义拼接成"标签:定义"一起喂给模型,标签因此和定义产生竞争;而VON只把定义喂给模型,标签不进入模型输入,所以完全不受影响。改这一行拼接代码就能让效果出现或消失。

Q2:PolicyBench是什么,为什么要专门搭建这个测试集?

A:PolicyBench是论文自建的合成路由测试集,规则只写在选项定义里,标签可以设成一致、无关或故意误导。因为常规分类任务里标签本身常带有提示信息,没法干净地分离"标签影响"和"定义影响",所以需要这样一个纯净的测试场。

Q3:发现标签偏见后,普通开发者该怎么应对?

A:论文给出两次调用测试法:同一问题只改标签名字问两遍,比较结果是否一致。如果不一致,可以把标签换成A、B这类无意义占位符(效果最好但可能牺牲类名本身的提示价值),或做空状态先验校正,也可以用双重渲染比对法标记存疑答案转人工复核。

本文由本站编辑组整理与排版,内容基于公开信息核实后归纳发布,与文中提及的产品、公司无隶属关系。我们持续跟踪 AI 领域的模型、产品与行业动态,力求信息准确、表述清晰;文中涉及的名称、价格与功能细节可能随官方调整而变化,请以官方最新说明为准。如发现疏漏或表述有误,欢迎通过站内渠道反馈指正。

相关推荐 按相关度与热度排序

全部资讯 →
  1. 沃顿教授:转行技工难以抵御 AI 冲击,四类核心能力才是破局关键

    IT之家 11 月 2 日消息,人工智能不会消失。我们该如何与它共存?说得更准确一点:在人工智能时代,我们要靠什么谋生? 常见的答案无非两种:“学会使用人工智能”,或是找一份人工智能无法替代、不会被自动化取代的职业,最好是动手类工作。 据 Business Insider 报道,伊桑 · 莫利克(Ethan Molli

    来源 AI 行业观察
  2. AI资本开支见顶?高盛:拐点近了,AI正从“超级主题”变成“常规叙事”

    持续三年的AI超级周期叙事,或许正在悄然切换档位。高盛三位资深人士在最新一期播客对话中判断:AI资本开支的峰值增速已近在眼前,市场对AI主题的定价,已经从“只往好处想”的单边乐观转向“好坏两面都要算”的双面博弈。而与此同时,美联储的实际加息幅度很可能低于市场当前的定价预期。 录制于10月29日的这期《The Break

    来源 AI 行业观察
向下滚动自动加载更多