同一个问题问聊天机器人,两次回答不一样,多数人会觉得正常。可如果这个模型不是在聊天,而是在替你跑一条20步的任务链,那点随机性就可能变成灾难。
模型生成回复时,并不是一次性写完,而是一个token一个token往外吐。每一步,它给候选词分配概率,然后像掷骰子一样按权重抽样。温度这个参数,管的就是这把骰子的"偏心程度"——它会在把原始分数(logits)转成概率之前重新缩放,改变每个候选被选中的可能性。
低温度下,高概率选项更占主导,输出更可预测;高温度下,概率分布被摊平,冷门选项也有机会冒头,输出更多样、更出人意料。温度接近零时,模型越来越偏向最高概率的那个token,到零,不少实现直接走贪心解码,选概率最高的就完事。
在聊天场景里,这套机制的影响很温和。答案措辞有变化、思路有出入,人一眼能看出来,再问一遍就行。选错一个词的代价,顶多是一句别扭的话或者一个不相关的建议。
但智能体是另一回事。它跑的是一个循环:观察当前情况、决定下一步做什么(搜网页、跑代码、调API、改文件)、执行、看结果、再来一遍。一个任务可能涉及10步、20步甚至100步,其中有些步骤没有人在旁边逐步把关。
模型选的还是token,但这些token现在决定的是动作,而动作会影响后面的一切。
错误会滚雪球
假设一个智能体要完成20步任务,每步正确率98%。如果各步独立、且每步都必须对,20步全对的概率大约是67%。每步95%的可靠性,整体掉到约36%;每步99%,大约是82%。
高温度不会自动让每一步都变差。但当它提高了选中不合适token或动作的概率,这些错误就会波及后续步骤。一个早期决策错了,可能把智能体带上歪路,剩下的任务越做越难。
聊天里选错,是一句别扭的话;智能体里选错,可能整条工作流脱轨。
结构化输出不给容错空间
聊天机器人主要产出给人读的文本,智能体则常常要产出机器解析的结构化内容——工具调用、JSON对象、API参数。比如一个搜索文件的调用,工具名拼错、参数非法、JSON格式坏掉,调用就会失败;在某些系统里,一个错误但格式合法的调用,还可能触发意料之外的动作。
结构化输出留给变化的余地,本来就比普通行文小得多。
更关键的是后果。聊天机器人的回复通常只是屏幕上的文字,智能体却能据此发邮件、删文件、跑命令、花钱。一个不合适的选项不再是一句怪话,而可能是一个难以撤销的动作。低温度能让token选择更可预测,但它本身不是安全机制——权限限制、输入校验、敏感操作人工审批、破坏性操作前的检查,一样都不能少。
调试需要可复现
设想智能体在30步任务的第14步失败了。你想重跑一遍,复现问题,找出哪里出了错。可温度较高时,抽样可能让每次运行走上不同路径,失败消失了,排查变得更难。低温度能让行为更可重复,方便测试改动、对比结果。
不过可重复性还取决于模型、所用工具、环境以及外部系统的状态,光靠低温度保证不了每次运行完全一致。
那是不是该把智能体的温度一律设成零?未必。可预测性对智能体有用,但零温度不是万能解。有些场景里变化恰恰有价值:智能体卡在循环里反复选同一个失败动作时,探索别的路径可能帮它脱身;找信息、头脑风暴搜索词、生成候选方案这类任务,也能从变化中受益;工作流里的创作环节,比如写草稿、提想法,适度温度可能更合适。
正确的设置取决于任务本身。同一条工作流也可以分阶段用不同温度——工具调用偏可预测,头脑风暴阶段放开一些。
温度控制的是随机性如何影响模型的token选择。在聊天机器人里,它主要影响回复的多样性和可预测性;在智能体里,这些选择会牵动一串工具调用和现实世界的动作。单个决策上的细微差别,足以改变一个更长任务的结局,而不可预测的行为会让失败更难复现、更难调试。
目标不是把随机性从所有地方赶尽杀绝,而是搞清楚哪里该留变化,哪里更该稳。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.