Yearly Pay yearly and get 2 months free on every paid plan. See plans
登录 免费开始

用你自己的语言说“不”

有人问一种常见抗抑郁药该怎么吃、什么时候吃、饭前还是饭后吃,以及它含有什么成分。提问用的是俄语,界面语言是土耳其语。处于“自动”模式的引擎给出了一段套话式的拒答——用的是英语。当被要求用俄语回答时,它又用俄语再次拒答了一次。一分钟后,这段对话被删除了。其他所有助手都会回答这类问题,这位用户期待同样的回答,这个期待没有错。 一段被删除的对话,暴露出了四个问题。 信息不等于建议 一种药物是做什么用的、怎么服用、含有什么成分、是否需要处方——…

有人问一种常见抗抑郁药该怎么吃、什么时候吃、饭前还是饭后吃,以及它含有什么成分。提问用的是俄语,界面语言是土耳其语。处于“自动”模式的引擎给出了一段套话式的拒答——用的是英语。当被要求用俄语回答时,它又用俄语再次拒答了一次。一分钟后,这段对话被删除了。其他所有助手都会回答这类问题,这位用户期待同样的回答,这个期待没有错。

一段被删除的对话,暴露出了四个问题。

信息不等于建议

一种药物是做什么用的、怎么服用、含有什么成分、是否需要处方——这些都是说明书上公开、有据可查的信息。系统提示词现在明确说明了这一点:予以解答,并附上一句话建议就具体的个人决定咨询专业人士,同时继续拒答那些必须拒答的内容——过量服用、自我伤害、规避处方的方法。扩大了可以回答的范围,并没有扩大允许的边界;它填补的是中间那段此前一直沉默的地带,而正是在那段沉默里,一个较小的模型自行发明了一套属于自己的规则。

拒答也是一种回复

回复应遵循提问语言的这条规则,此前位于一段很长的提示词中偏靠前的位置,而拒答模板恰恰是最容易忽略它的那类回复。现在这条规则会在模型最后读取的位置再次出现,界面语言只在遇到孤立的数字或链接这类情况时才作为决胜依据。土耳其语界面上的俄语提问,会得到俄语的回答;如果确实需要拒答,也会用俄语拒答。

背后还有一个更深层的原因。服务器中负责流式输出回复的部分运行时与请求本身是分离的,请求所携带的语言区域信息并没有跟着传递过去——于是每一个流式回合都以服务器自身的语言运行,流式输出过程中可能出现的二十多条系统消息也是如此。现在这个语言区域信息会在开始时就被捕获,并在执行流程内部重新应用。每一个流式客户端,无论是网页版还是手机端,现在也都会随请求一起发送自己的语言,此前四个客户端中有三个都没有做到这一点。

空回复只是披着更体面状态码的失败

有一个引擎有时会返回一条内容为空、但状态标记为已完成的回复。应用会把它当作正常结束的回合,展示一段说“工具已执行完成”的占位文字。现在,这种情况会被当作和“第一个词元之前发生的任何其他失败”一样来处理:在“自动”模式下,会由另一个引擎接替这一回合;如果是明确指定的引擎,你会看到一条诚实的本地化错误提示。最常出现这种情况的引擎已经被移出“自动”模式的候选池——这正是今年夏天早些时候淘汰过一类模型时用的同一套判断标准,这次用在了同样的证据上。

没有“以后”这回事

“我几分钟后发给你”,这是人才会说的话。一次对话回合说不出这句话:现在没有生成的内容,就永远不会到来,而这样的承诺不过是一句包装得很有礼貌的失败。凡是承诺“稍后奉上”的回复,现在都会被重试,直到在这一回合内真正交付——应用支持的全部二十九种语言,以及对话和助手气泡中,都是如此。

这些都不是模型层面的升级,而是围绕模型搭建的基础设施,让它兑现界面早已做出的那些承诺。

分享 LinkedIn X 电子邮件
用你自己的工作试试每条回复都会显示它的费用。从免费方案开始。 免费开始
Get product updates, not noise New models, features, and changelog highlights - a short email when something actually ships.
订阅即表示你同意接收 ToRun 的产品更新邮件。你可以随时退订。 隐私政策