停止词(Stop Words)——让模型在你想要的地方停下来
停止词的作用
停止词是告诉模型"输出到这个字符串就停"的指令。模型在生成过程中每产生一个新 token,Local AI 都会检查是否匹配停止词——一旦匹配就立即截断输出。
典型用途:
- 避免模型自己开始多轮对话(比如模型回复后又加一个 "User:" 开头的新行)
- 控制输出格式(比如让模型只输出 JSON,遇到
}就停) - 防止模型输出不需要的内容(比如只想要第一段,遇到换行就停)
Local AI 默认的停止词
Local AI 会自动添加几个常用停止词,你可以在设置里看到它们:
<end><eot_id><end_of_text><|im_end|>等 ChatML 格式结束符
这些是 GGUF 模型训练时用的对话结束标记,模型正常回复一轮后会自然产生其中一个,Local AI 检测到就结束本轮。日常使用不需要改。
什么时候需要自定义停止词
让模型只输出一种回答,不跟你"互动"
有些模型倾向于回复后还加一句提问(比如"你觉得呢?"),如果不想要这个,把停止词设为换行符或特定短语即可。
生成结构化内容时防止溢出
让模型输出 JSON 或 Markdown 表格时,可以把 </json> 或 </table> 设为停止词,确保模型不会继续往下写多余的内容。
限制输出长度
虽然有 max_tokens 参数(见 GGUF 精细设置),但停止词更灵活——它能让模型在内容自然结束处停下,而不是硬砍在某个 token 数。
设置注意事项
- 停止词是字符串匹配——大小写敏感、空格敏感
- 多个停止词用换行分隔(每个一行)
- 如果停止词太宽泛(比如只设一个句号),可能截断太早——模型第一句里有句号就停了
- 停止词也在上下文窗口里——设太多会挤占实际可用空间,保持在 3~5 个以内