一句话定义:停止序列是调用大语言模型(LLM)时传给接口的一组字符串,模型在生成过程中一旦要输出其中任意一个字符串,就立即停止,不再往下写。
它怎么工作:LLM 本质是逐字/逐 token 预测下一个词。你给的停止序列像会议室里的暗号:发言者一听到“下一个议题”,就自动闭嘴。比如让模型写商品短评,设置 stop=["###"],提示词要求“每条评论以 ### 结尾”。模型输出“很好用,物流快。###”时,到 ### 就停住。多数接口默认不把停止序列本身放进返回文本,具体行为以官方文档为准。
和相邻概念的区别:
| 概念 | 作用 | 特点 |
|---|---|---|
| 停止序列 | 遇到指定字符串就停 | 你自定义,像软边界 |
| 最大 token 数 | 到数量上限就停 | 硬上限,可能截断在句子中间 |
| 模型自带的结束符 | 模型认为回答完了就停 | 内部机制,不可指定 |
| JSON Schema/结构化输出 | 强制字段和类型 | 更严格,配置更重 |
实际用途:
1. 切分多段结果:一次只生成一条,用 ### 或 <|end|> 分隔,循环调用,方便入库。
2. 控制格式:生成 SQL 时停在 ;,生成单行标题时停在换行符。
3. 防止跑题:角色对话里设 stop=["用户:"],避免模型自己扮演用户继续编。
4. 降低后处理:有了明确终点,解析代码不用再猜哪里是结尾。
注意:停止序列是普通字符串,通常不是正则;多个序列任意命中都会停。如果它在正常内容里出现,比如用 return 当停止词,代码生成会被过早截断。所以选罕见分隔符,并考虑大小写和空格。
对从业者与普通人的意义:对开发者,它是便宜、确定、好调试的输出控制器,尤其适合批量生成、Agent 流程和格式约束;对普通职场人,它解释了为什么有些工具能稳定“一条一条给”,而不是一口气写一大段。下次设计提示词时,除了说“请只输出……”,也可以想一下:能不能给它一个明确的停止暗号?具体支持哪些参数,以所用平台的官方页面为准。
