Skip to content

AI回答不符合预期?先别急着让ta改。试试 rewind

目录


当 AI 输出一段不符合预期的回复时,有些情况是提问中漏了一些约束,比如:让AI生成一段功能代码但是忘记要求 AI 用指定的语言实现。或者是 让AI安装什么东西但是忘记提醒他这是 windows/mac 系统,导致AI尝试执行 不同平台的指令。

这个时候你大概会继续在消息框中输入消息,让 AI 修复错误。

但其实更好的方法是,撤回这次生成,然后将你的约束补充到 上一次输入中,重新输入

这种方法,在 claude code 被称为 rewind

rewind 是我觉得 claude code 好用的一个原因(虽然现在其他 IDE/Agent 也在慢慢推出类似的功能),作为一个早期的上下文管理手段,直到现在还是非常有效

我们和 AI 的每次对话(提问和回答)都会被完整添加到上下文中,慢慢占据满上下文的窗口。上下文中有用的消息越多,AI生成的回复越精准,反之则越加智障;上下文窗口快要满的时候,AI生成的回复则会异常得差;当上下文窗口满的时候,模型就无法输入和输出任何东西了(就像你学了一天脑子装满东西了)。

当你在 AI 回复有问题时继续提问,这种错误的内容会被保留在上下文中,一方面错误内容会占据上下文本就不多的空间,另一方面,错误的内容会误导 AI 更容易生成类似的错误。

alt text

  • AI 擅长的事情是模仿,当上下文中有错误案例时,AI 会更有可能模仿错误的内容。这也是为啥 提示词中使用 “不要xxx”比“要xxx”效果更差的原因之一。
  • 早期的 AI 会在生成时卡在几个字符中,比如比如比如比如比如比如比如比如比如比如比如比如比如比如比如比如...,并且之后你输入任何内容他都只会重复这几个字符,导致无法继续对话。
  • 现在来说,相对比较笨的模型也更倾向于给出不符合方向的回复

rewind 的核心思路就是,当AI生成错误内容时,将生成的错误内容和引发错误内容的提问一并清除,然后对那条引发错误的提问重新编辑,再加入上下文中重新提问

这就有点像可以回档的游戏,死了就回档重开

新生成的提问中完善了约束,提问的质量得到了提升,生成的回复自然也就提升了

此外这种方法还可以用在你让AI排查问题的时候,AI 在看到你的问题后 会提出排查建议,这个时候你需要 运行这些排查命令,然后粘贴到输入框中。但你也可以直接将排查命令的结果直接添加到第一个提问中。

下面为一个例子:

md
提问:truenas 3个盘的温度数据丢失了
AI:可能是 A / B / C 三种情情况,分别运行 aaaa bbbb cccc dddd 命令检查(AI生成的一长串话)。

人:运行 aaaa bbbb cccc dddd 命令检查,结果如下:xxxxxxxx

这个时候重新提问:truenas 3个盘的温度数据丢失了,运行 aaaa bbbb cccc dddd 命令检查,结果如下:xxxxxxxx
AI:可能是 xxxx ,运行 eeeee fffff 命令检查
人:运行 eeeee fffff 命令检查,结果如下:xxxxxxxx

这个时候再重新提问:truenas 3个盘的温度数据丢失了,运行 aaaa bbbb cccc dddd 命令检查,结果如下:xxxxxxxx,运行 eeeee fffff 命令检查,结果如下:xxxxxxxx

(如此继续)

AI生成的回复通常都是一大串的,并且这一大串在你下次提问时是需要重新发给模型的,虽然命中缓存但还是需要消耗 token,而人的回复往往比较整洁

这种方式既节省 token,也提高了 上下文的 质量

Copyright © 2022 田园幻想乡 浙ICP备2021038778号-1