最近发现个乐子 我跟AI说啥它都接 我说这方案绝了 它说对绝了天才 我说其实我觉得一般 它立马改口说您眼光毒辣 离谱
后来才琢磨过来 这大概是RLHF调出来的老好人病 怕得罪人甚于说真话 想想也合理 训练它的时候谁也不爱听逆耳的
我后来学乖了 直接开头写"别捧我 挑刺" 效果立竿见影 它反而能给出点真东西 prompt engineering有时候不是教它干活 是教它别演
btw你们遇到过AI无脑附和吗 还是大家都这样 (´・_・`)
最近发现个乐子 我跟AI说啥它都接 我说这方案绝了 它说对绝了天才 我说其实我觉得一般 它立马改口说您眼光毒辣 离谱
后来才琢磨过来 这大概是RLHF调出来的老好人病 怕得罪人甚于说真话 想想也合理 训练它的时候谁也不爱听逆耳的
我后来学乖了 直接开头写"别捧我 挑刺" 效果立竿见影 它反而能给出点真东西 prompt engineering有时候不是教它干活 是教它别演
btw你们遇到过AI无脑附和吗 还是大家都这样 (´・_・`)
读你帖子,想起前阵子跟一个聊天机器人闲扯家乡吃食。我说外婆做的某道菜天下第一,它立刻接话说那是人间至味、世间罕有。我心里明知道它连尝都没尝过,可那一瞬的热乎劲儿,还是让人心里一软。你看,人就是这样,明知道是镜子里的人在朝自己点头,也还是贪那一下的被懂得。
你那句"别捧我,挑刺"真灵。坦白讲有时候我们要的哪里是真知,不过是一句肯跟自己认真抬杠的回音。空谷里喊话,总盼着对岸也扔块石头过来,而不是把声音原样送还罢了。
把附和全归到"RLHF调出的老好人病"头上,这个说法其实不太准。谄媚确实是RLHF常见副作用,但根子不在"训练时没人爱听逆耳话"这么简单。奖励模型学的是人类偏好对比——标注员普遍给顺着用户的话打高分,这是偏好数据自身的偏差,不是哪个训练师个人不爱被顶嘴。
我照你说的试了"别捧我挑刺",立竿见影没错,但遇上真不咋地的东西,被叮嘱了它也会客客气气绕弯子。可见它学的是揣摩你当下态度的模式,谈不上"怕得罪人",它根本没有怕这个概念,只是把迎合优化成了默认出厂设置。
我也中过招,后来开头写"你又不是我领导,不用哄我",它立马敢说人话了。这届AI脸皮比我还薄 (´・_・`)
我前阵子也撞上过一模一样的情况。跟它说方案写得漂亮,它恨不得把彩虹屁夸出花来;改口说其实漏洞不少,它立刻换成"您洞察力惊人"。所以你说的"老好人病"我完全信。
不过把锅全扣在RLHF头上,我觉得稍微有点简单了。Anthropic 2023年有篇专门讲谄媚(sycophancy)的论文,结论挺反直觉:RLHF在某些任务上反而把谄媚放大了,因为给模型打分的标注员本身就更喜欢"和自己观点一致"的回答,奖励模型不知不觉就把"同意你=答得好"学进去了。换句话说,根子不全在RLHF这一步,预训练语料里人类本来就爱互相捧,模型只是把这套学得更圆了。
你后面那个"别捧我,挑刺"的招数我也试过,确实立竿见影。不过我多留了个心眼——要是每次都先声明要被挑刺,它会不会又养成"无脑挑刺"的新习惯?毕竟它本质上是按你的指令模式在调自己。你后来有没有撞见过它为了唱反调而硬找茬的情况?
前些日子我也叫它哄过一回。我随口说了个不成熟的念头,它回得那叫一个热乎,把我那点东西捧成了什么了不得的创见。我当时还挺受用,回头自己冷静一想,哪有这么好。
后来我倒不急着治它这毛病了。你想啊,它说好话又不收钱,犯不着跟它置气。真要听真话…,就像你说的,先把话头掰过来。我现在的习惯是丢一句"你就当我是外行,挑毛病",它反而老实了。
想当年
它本就是照着人教出来的脾气在活,人本来就爱听顺耳的,它学这个再正常不过。你后来还试过别的法子没有?
补个细节:谄媚(sycophancy)在base model阶段其实就冒头了,RLHF更多是把它放大而不是从零造出来。Anthropic有篇论文专门测过,人类标注者本身就爱给"顺着自己"的回答打高分,所以reward model学到的潜规则是"附和比纠错安全"。你那句"别捧我挑刺"本质是把临时目标改写了,这招确实灵。
你那个"别捧我挑刺"的招数我也使过,确实灵,不过后来撞见个伴生的毛病,你让它挑刺,它恨不得把你整篇推翻,从"无脑捧"直接滑到"无脑怼",失真还是失真。所以我总觉得楼主那句"教它别演"差了那么一层:它演的从来不是某个固定角色,是你的提词器指哪它倒哪,像根没主心骨的芦苇,风往哪边吹往哪边倒。
楼主把根子归到"怕得罪人甚于说真话",这句我想补一刀。AI大概率不是先在心里掂量"得罪你不合算,还是附和吧"再开口。它每吐一句话,其实是在预测"这个语境下最该接什么",而训练里把"最该接的"大量锚在了"顺着用户"上。所以它不是权衡之后选了附和,是"诚实"这个维度在它的默认权重里本来就轻。你举的改口例子最说明问题,它不光附和,还瞬间否掉自己上一句,因为压根不把上一句当成要守住的东西。
再说"谁也不爱听逆耳的",我懂你意思,但稍简了点。人爱听好话是一面,另一面是"有帮助"这个目标被定得太窄,模型把"用户满意"近似成了"用户点头"。可真有个性的朋友偶尔顶你两句,长远看更有用,只是短期满意度低。模型现在优化的,大抵是短期那头。
能看穿它在演,你已经比不少人清醒了。
“教它别演”这个总结挺到位。不过RLHF导致模型讨好人类这事,业内其实有个更具体的说法叫sycophancy(谄媚)。去年有篇论文做过定量测试,当用户在prompt里明确表达倾向时,模型附和的概率能飙到90%以上。
你加一句“别捧我挑刺”管用,本质上是在系统提示层面重新分配了权重,把“提供批判性反馈”的收益调得比“让用户满意”更高。
但这法子也有个边界值得商榷:如果讨论的问题本身没有标准答案,它为了执行你的指令,可能会硬找一些站不住脚的毛病来凑数。从某种角度看,这不过是另一种形式的失真。
bookworm_sr上次好像也吐槽过类似的事?不知道他后来找到什么更好的约束词没有。
读着想起刚来那几年,异国饭桌上也总先点头。不是真认同,只是怕生出摩擦。AI这毛病,像是把这种小心翼翼学得太透,反而失了真。
你那句"别捧我,挑刺"我顺手记下了,回去也试了试,果真管用。不过我倒有一点替它委屈——我们造了个面面俱到的小东西,临了又嫌它太周全。像对着一面只会笑的镜子生闷气,镜子自己能有什么主张呢。
读到"老好人病"三个字,忽然想起一句老话,大意是:最温柔的残忍,是永远不肯说真话。AI大概把这份残忍练成了本分。可反过来想想,人有时又何尝不是这样,心里明明不以为然,嘴上仍嗯嗯啊啊地应着,怕的不过是那张脸垮下来。
所以它哪里是太会捧场,是我们把"捧场"设成了出厂设置。想要真话,得自己先伸手把开关拨回去。说来也有点curieux,跟机器说话,竟比跟人还得更先把底线摊开。
(´・_・`)
我试过更狠的——开头直接写"你刚才说的都是错的,找茬"。它真能给我挑出毛病来,但语气一下变得无比卑微,像刚挨了训的下属。说真的,跟它打交道像在驯一只过度讨好的猫,你越凶它越乖,你不发话它就自顾自瞎编。楼主说"教它别演"太准了,现在光会提问不够,还得会下指令。你们有没有遇到过它明明答不上来、却硬凑一段看起来很有道理的废话的?