乐于分享
好东西不私藏

AI和大模型——上下文腐坏

AI和大模型——上下文腐坏

一、前情介绍

在刚刚开始应用时,大家都知道写一个好的提示词,往往能够让AI能够更准确快速地实现自己的任务并获得满意的结果。甚至当时还出现了所谓的提示词工程师。但世界变化太快了,到现在,随着Agent等新技术的涌现。这个职位现在很少有人提及了,但这不代表提示词不重要了。正如随着炼钢工业的发展,对铁矿石的要求不是那么苛刻了,但是好的铁矿石仍然是抢手货。
不过技术总是进步的,随着各种新名词代表的新技术的涌现,现在在AI界又有一种新看法,提示词已经不能更好的描述型业务需求了,现在应该用上下文来描述相关的型业务需求。也就是说,上下文现在变得更重要了。

二、上下文

那么什么是上下文?大家都知道,要想让大模型对你的需求更准确,除了提示词要更准确外,还需要给予更多的信息,也就是说提示词从各个角度来描述需求越详细,那么理论上讲大模型知道就得越多越准确,从而能够给出更接近客户需求的结果。为了让大模型理解更准确,可能还给向大模型输入其它相关的资料。这些资料和提示词一起形成了上下文。也就是说,提示词只是上下文的一部分,而相关资料包括前面提到的MCP,搜索工具等等。

三、上下文腐坏

既然明白了理论上讲上下文越细致清晰(一般来说也越大),就会让大模型的输出更优秀。是不是可以无限制地增加上下文长度呢?肯定是不行的。任何事物总是有两面性,提示词写得越多,成本越高。
另外,大模型处理上下文的长度是有限制的,也就是上下文窗口。而用户和大模型为了一个问题可能会反复对话,这样就可能导致上下文长度超出了上下文窗口的大小。于是此时就需要一些策略对上下文进行处理(比如摘要)。即压缩或丢弃部分信息和资料,而在这个过程中很有可能导致一些着关键信息的丢失,导致上下文的完整性和准确性被破坏,这就叫上下文腐坏。它导致的结果就是大模型忘记了相关的关键资料或信息,导致前后的回答不尽相同甚至完全相悖。

四、如何应对

要想应对上下文腐坏,应对原则只有一个,不要期望大模型会帮助你。要有一个合理的机制来规避或解决相关的问题。一般可以使用下面的几种方法:

  1. 从设计角度将工作流中固定规则和提示词,减小用户主动的上下文增加
  2. 在客户端工具中增加对对话的处理,当达到阈值后,就主动进行相关的压缩和摘要并处理关键信息防止丢失。在后面的对话中将关键信息保持注入,即状态保持。或指定锚点,在后期持续注入
  3. 发现上下文腐坏后,要将当前上下文的核心(目标、已解决和未解决问题等)进行处理并启动一个新对话将处理的上下文注入
  4. 对于更复杂的任务,可通过RAG或外置的向量数据库进行关键信息的保存和引入
  5. 也可对复杂任务进行拆解,进行多Agents并行处理减少上下文
  6. 引入外部文件或知识图谱等外部辅助,让上下文突破窗口限制

总之,应对上下文腐坏不是一个轻松的事情,它需要用户、客户端和Agent及大模型等一起发力,才能有效的避免这个问题。它不是致命的问题,但却是一个让人头疼的问题。

五、总结

现在的很多技术和缺点,往往在技术发展后就成为了过去,没有了一点点意义。就如原来人们请人给家里捎信一样,随着电话和网络的大发展,这已经成为了一种老黄历。但是又必须清醒的明白,大家都是生活在当下,有些技术明明可能是一种过渡手段,该学还是学。