跳到主内容

EOS 是怎么判定的?模型怎么知道说完了

2026-10-18 发布 来源:我告诉你AI导航 阅读

回答为什么停在那个字上,多一字不少?答案是模型自己生成了一个特殊记号 EOS,表示到此为止。豆包、海螺AI的流畅收束背后,都是这个记号在把关,本文拆解它的判定条件与两种失效方向。

回答为什么停在那个字上,多一字不少?答案是模型自己生成了一个特殊记号 EOS,表示到此为止。豆包、海螺AI的流畅收束背后,都是这个记号在把关,本文拆解它的判定条件与两种失效方向。

特殊记号:句号之外的开关

词表里除了正常文字,还登记着一类控制记号,EOS 是其中管结束的。它和普通字一样参与每一步的概率竞争,赢下那一步,生成循环就终止。logits 是什么那篇讲过,它的胜出同样取决于原始分与温度处理——分布被温度拉平时,EOS 与正文候选站在同一起跑线,谁分高谁上。训练语料里每段范文都以 EOS 收尾,模型由此学会了「说到哪该收」这件事本身,也学会了什么样的问题配多长的回答。

停不下来怎么办:阈值与强制截断

光靠 EOS 赢一局并不保险,工程上有几道保险丝:设定最小长度,起步阶段禁止 EOS 胜出,防止没头没尾的短回答;设定最大长度,到点强制截断,防止死循环;有的接口还允许登记停止词,命中即停。束搜索那篇的多路候选同样适用——任何一条路碰到 EOS 就封路计分。重复惩罚是怎么压制复读的扣分机制也有连带效果:复读被压住后,模型更容易转向收束词,长输出自然收得住。

手段什么时候起作用配错会怎样
EOS 记号模型自己判到该收尾时该停不停,输出拖沓
最小长度起步阶段禁止 EOS 胜出短回答没头没尾
最大长度到点强制截断话没说完被切断
停止词命中即停误登记常用标点会提前断开

输出异常自查清单:先查停止机制

  • 回答戛然而止:可能触发最大长度,未必是模型想说完
  • 回答拖沓不收尾:EOS 分数长期不敌正文,试降温或加重复惩罚
  • 多段输出提前断开:检查停止词是否误登记了常用标点
  • 反馈生成异常前,先按这份清单排除停止配置的嫌疑

提前刹车:另一种误伤

反过来,EOS 也可能来得太早:模型在列举中途收束,该展开的地方一笔带过。常见原因是训练数据里短回答占优,或者解码参数把 EOS 的分数推得偏高。权重文件里的层那篇讲的上游结构决定理解质量,张量是什么那篇讲的数值精度影响分数稳定性,量化过头时 EOS 判定也会跟着抖。多查询注意力是怎么省缓存的那类结构改造若训练配套没跟上,同样可能波及收束行为;量化感知训练是怎么回事讲的压缩路线,正是为少抖动而设计的。

关于EOS的三个常问问题

  • 为什么有时回答在句子中间就断了?:多半撞上最大长度或停止词,未必是模型的意思;把上限调高或检查停止词配置即可验证。
  • EOS 是学出来的还是写死的规则?:记号本身是词表里的约定,但「什么时候该输出它」是模型从训练语料学来的,工程层再叠加最小长度等护栏。
  • 温度高低会影响收束吗?:会。高温把分布压平,EOS 与正文候选的差距被稀释,长回答更拖沓;低温下谁分高谁上,收束更干脆。

把它想成裁判哨:模型吹哨才收工,护栏管住误哨与漏哨。还有个细节:这个记号本身也是一个普通候选,它出现在词表里,得分由模型算出,停止判定只是在每步解码后检查它有没有被选中或超过阈值,并不需要额外的判断模块。这也是为什么不同模型的话痨程度不一样——它的打分倾向是训练数据与对齐阶段塑造出来的。对开发者来说,停止词列表可以自己加,想让模型在特定标记处收工,把它加进停止条件即可;但删停止词要谨慎,容易让模型该停不停,白白烧算力。最后提醒一句:别把停不下来全怪模型,提示词里写了「请详细说明」「尽量展开」这类要求,本身就在压低停止记号的分。

反馈页面信息

请描述需要更正的地方,页面标题和网址会自动附上。

也可以发邮件至 [email protected]