在大模型领域,COT(Chain of Thought,思维链)技术是提示词工程的常见方法.
简单来说就是多想几步。
一个常见COT示例:
1 | 思考过程: |
如果不使用COT的话,相当于:
1 | 思考过程: |
不用说,使用长COT肯定是能提升智力的,相对的回复速度和消耗的tokens量会增大
用时间换质量
COT允许AI模型像人类一样,通过步骤化思考来解决复杂问题。这种方法在数学推理、逻辑分析等领域表现出色。但是,COT也面临着以下限制:
为什么写这篇文章呢?
因为我在做Beyond Books,有个特殊事件触发,我想下放给每个Agent自己去判断,结果发现在评估条件、触发条件上,角色就像是决策带宽已经占满了,就做不好,特别是数学敏感的条件。
其实也就是Agent自己思考的COT已经带宽不够了,只是它还限于文学性的时候问题还没暴露出来。
但是事实上我感觉不对
好像是我对“特殊事件”的理解与大模型不同,它不是一个阶段性的东西,而是一个触发式的东西,就是到达条件,就加点什么影响因素进来。它不是一个持续性的东西,而大模型可能认为需要进行阶段管理,所以它会迟迟不肯触发事件。specialEvents
和sonnet的对话记录:
我发现大模型很难理解这个“特殊事件触发”的逻辑,对于COT里面的currentProgress经常牛头不对马嘴
我理解您的担忧。确实,大模型可能在处理复杂的逻辑结构时会遇到困难,尤其是在理解和生成特定格式的数据时。针对这个问题,我们可以对代码进行一些调整,以简化逻辑并提高模型的理解能力。以下是一些建议:
。。。
特殊事件列表:
1 | ${specialEvents.filter(event => !event.consumed).map(event => ` |
。。。
我们简化了currentProgress的描述,使用更直观的状态描述,如”未开始”、”进行中”、”即将触发”和”已触发”。
实际上我这些事件是单次触发式的,不是一个有阶段管理需求的东西。更像是“到了这个条件,就添加一些新内容进来”这种逻辑,我是不是命名让人误解了?
然后我发现
我把specialEvents的命名改成plotTriggers
bug就修好了,大模型突然理解currentProgress要填“触发条件满足的进度”了
类似问题还有:
大模型觉得时停抗性:无 是“不被时停影响”