作者 | Vasek Mlejnsky
编译 | 言征
出品 | 51CTO技术栈(微信号:blog51cto)
构建人工智能代理很难。你将与幻觉作斗争,让agents智商不掉线,并引导他们使用正确的工具。
不过,方法也不难,其中一种就是赋予代理代码执行能力。
以下是为什么你的人工智能代理应该有一个代码解释器的一些原因。
一、额外技能
具有代码解释器的代理可以获得诸如对CSV文件执行统计分析或绘制图表之类的功能。
当你向不同的代理请求相同的东西时,很明显,那些具有底层代码解释器的代理有多大的不同。如果不运行代码,几乎不可能完成以下任务:
- 分析NVIDIA的股票并预测其发展。
- 和人一起玩扑克游戏。
- 订一张机票。
我们先来看一下Perplexity(一个没有代码解释器的代理)如何处理数据分析任务。即使提供了数据文件,代理也无法完成任务——它所能做的最好的事情就是提供关于应该运行什么代码的建议。
图片
以下是带有底层代码解释器的ChatGPT将如何处理相同的任务…
图片
…还包括安装新软件包和生成图表。
图片
请注意,最终用户不需要意识到应用程序在幕后执行编码任务,因为主要目标(如“为我预订航班”)通常不围绕编码。
二、复杂推理
大型语言模型(LLM)擅长生成文本,但难以进行推理和复杂思考。
谷歌的团队对丹尼尔·卡尼曼的名著《思考,快与慢》进行了有趣的类比。执行代码的能力使代理具有慢思考(努力、逻辑和计算)与快思考(直觉和自动)的能力,并通过代理在没有代码解释器的情况下的行为来表示。
在他们的类比中,完全依赖LLM的代理可以被认为是在没有慢思考的情况下操作,即在没有深入思考的情况下来快速生成文本。下面是一个例子,说明即使是简单的任务也可能需要一些系统,而不能凭直觉回答。
图片
三、减少LLM幻觉
最近的一篇论文证实,即使在给出推理提示的情况下,LLM也会对多步骤任务产生幻觉。作为论文研究结果的后续,一位软件工程师展示了使用代码解释器式LLM引擎如何成功地将幻觉减少一个数量级。他发现,代码解释器可以将GPT-4幻觉率从<10%降低到<1%。
代码解释器可以处理上传和下载,编写代码从源文件中查找数据并得出结论,而不是像更简单的代理通常那样自由推理。
对抗LLM幻觉的其他方法包括RAG、微调和增加LLM上下文窗口的大小。
四、自己测试代码
另一个巨大的挑战是LLM代码的生成。当代理不仅可以生成代码,还可以在运行代码时,它就能够测试自己输出的功能并对其进行迭代。
五、使用代码解释器构建
作为围绕LLM构建的新生态系统的一部分,我们将看到代码解释器为更多的人工智能代理和应用程序提供动力,在LLM中,代码解释器代表了代理大脑的关键部分。有关构建的灵感,不妨参阅流行的开源产品,如Open Interpreter或AutoGen。
图片
当然,仍然有一些挑战需要克服,例如找到一种安全和最佳的方式来运行LLM生成的代码,这可以通过在独立的云环境中执行进程来解决。