LLMs Python解释器程序辅助语言模型(PAL)Program-aided language models (PAL)

LLMs Python解释器程序辅助语言模型(PAL)Program-aided language models (PAL)

正如您在本课程早期看到的,LLM执行算术和其他数学运算的能力是有限的。虽然您可以尝试使用链式思维提示来克服这一问题,但它只能帮助您走得更远。即使模型正确地通过了问题的推理,对于较大的数字或复杂的运算,它仍可能在个别数学操作上出错。这是您早些时候看到的一个示例,其中LLM试图像计算器一样工作,但得到了错误的答案。

www.zeeklog.com - LLMs Python解释器程序辅助语言模型(PAL)Program-aided language models (PAL)

请记住,这个模型实际上没有进行任何真正的数学运算。它只是尝试预测完成提示的最有可能的标记。模型在数学上出错可能会对您的用例产生许多负面影响,具体取决于您的用例,例如向客户收取错误的总额或获取食谱中的测量值不正确。

您可以通过允许您的模型与擅长数学的外部应用程序(例如Python解释器)进行交互来克服这一限制。一种有趣的增强LLM的框架是称为“辅助编程语言模型Program-aided language models ”(PAL)的程序。这项工作首次由卡内基梅隆大学的Luyu Gao和合作者于2022年提出,将LLM与外部代码解释器配对以执行计算。该方法利用链式思维提示来生成可执行的Python脚本。模型生成的脚本将传递给解释器以执行。右侧的图像来自论文,显示了一些示例提示和完成。

www.zeeklog.com - LLMs Python解释器程序辅助语言模型(PAL)Program-aided language models (PAL)

您稍后将在示例中了解这些示例,所以现在不必担心阅读所有细节。

PAL背后的策略是使LLM生成包含计算机代码的推理步骤的完成。然后将此代码传递给解释器以执行解决问题所需的计算。您可以通过在提示中包含一些单个或少量推理的示例来指定模型的输出格式。

让我们更详细地看一下这些示例提示的结构。

您将继续使用Roger购买网球的故事作为单次示例。此设置现在应该看起来很熟悉。这是一个链式思维示例。
您可以在突出显示为蓝色的行上以文字形式看到推理步骤。

www.zeeklog.com - LLMs Python解释器程序辅助语言模型(PAL)Program-aided language models (PAL)

与您之前看到的提示不同之处在于,粉红色显示的Python代码行包含了将涉及计算的推理步骤转化为代码的行。

www.zeeklog.com - LLMs Python解释器程序辅助语言模型(PAL)Program-aided language models (PAL)

基于每个推理步骤中的文本声明变量。它们的值可以直接分配,就像这里的第一行代码一样,

www.zeeklog.com - LLMs Python解释器程序辅助语言模型(PAL)Program-aided language models (PAL)

或者使用推理文本中的数字进行计算,正如您在第二行Python代码中看到的那样。

www.zeeklog.com - LLMs Python解释器程序辅助语言模型(PAL)Program-aided language models (PAL)

模型还可以使用它在其他步骤中创建的变量,就像您在第三行中看到的那样。

www.zeeklog.com - LLMs Python解释器程序辅助语言模型(PAL)Program-aided language models (PAL)

请注意,每个推理步骤的文本以井号(#)开始,以便Python解释器可以将其跳过作为注释。

www.zeeklog.com - LLMs Python解释器程序辅助语言模型(PAL)Program-aided language models (PAL)

这个提示以要解决的新问题结束。在这种情况下,目标是确定一个面包店在一天的销售后和从一家杂货店合作伙伴那里退回一些面包后剩下多少面包。

www.zeeklog.com - LLMs Python解释器程序辅助语言模型(PAL)Program-aided language models (PAL)

在右侧,您可以看到LLM生成的完成。再次,链式思维的推理步骤显示为蓝色,Python代码显示为粉红色。正如您所看到的,模型创建了多个变量来跟踪烘焙的面包、一天中各个时间段销售的面包

www.zeeklog.com - LLMs Python解释器程序辅助语言模型(PAL)Program-aided language models (PAL)

以及杂货店退回的面包。

www.zeeklog.com - LLMs Python解释器程序辅助语言模型(PAL)Program-aided language models (PAL)

然后通过在这些变量上执行算术运算来计算答案。

www.zeeklog.com - LLMs Python解释器程序辅助语言模型(PAL)Program-aided language models (PAL)

模型正确地确定了应该添加或减去哪些术语以获得正确的总数。

现在您知道如何构建示例,以告诉LLM根据其推理步骤编写Python脚本,让我们来看看PAL框架如何使LLM能够与外部解释器进行交互。

www.zeeklog.com - LLMs Python解释器程序辅助语言模型(PAL)Program-aided language models (PAL)
  1. 为了准备使用PAL进行推理,您将格式化提示以包含一个或多个示例。
  2. 每个示例应包含一个问题,后面是解决问题的Python代码行的推理步骤。
  3. 接下来,您将附加您希望回答的新问题到提示模板中。
  4. 您生成的PAL格式提示现在包含示例和要解决的问题。
  5. 接下来,您将传递此组合提示给您的LLM,
  6. 然后LLM将生成一个以示例中的提示为基础的Python脚本形式的完成。
    现在,您可以将脚本交给Python解释器,用于运行代码并生成答案。
www.zeeklog.com - LLMs Python解释器程序辅助语言模型(PAL)Program-aided language models (PAL)

对于前一幻灯片上看到的面包店示例脚本,答案是74。您现在将附加包含答案的文本,因为您知道答案是正确的,因为计算是在PAL格式的提示中进行的。到此为止,您的提示包含了上下文中的正确答案。

www.zeeklog.com - LLMs Python解释器程序辅助语言模型(PAL)Program-aided language models (PAL)

现在,当您将更新后的提示传递给LLM时,它将生成包含正确答案的完成。鉴于面包店面包问题中的数学相对简单,模型可能已经使用链式思维提示正确地得出了答案。

但是对于更复杂的数学问题,包括大数的算术、三角学或微积分,PAL是一种强大的技术,允许您确保您的应用程序执行的任何计算都是准确可靠的。

您可能想知道如何自动化此过程,以便不必手动在LLM和解释器之间传递信息。这就是您之前看到的编排器的用处。

www.zeeklog.com - LLMs Python解释器程序辅助语言模型(PAL)Program-aided language models (PAL)

所示的编排器作为黄色框是一个技术组件,可以管理信息流和对外部数据源或应用程序的调用的启动。它还可以根据LLM输出中包含的信息来决定采取什么行动。

www.zeeklog.com - LLMs Python解释器程序辅助语言模型(PAL)Program-aided language models (PAL)

请记住,LLM是您的应用程序的推理引擎。最终,它会创建编排器将解释和执行的计划。

在PAL中,只有一个要执行的操作,即执行Python代码。LLM实际上不必决定运行代码,它只需要编写脚本,然后编排器将其传递给外部解释器以运行。

www.zeeklog.com - LLMs Python解释器程序辅助语言模型(PAL)Program-aided language models (PAL)

但是,大多数现实世界的应用程序可能会比简单的PAL架构复杂得多。

www.zeeklog.com - LLMs Python解释器程序辅助语言模型(PAL)Program-aided language models (PAL)

您的用例可能需要与多个外部数据源进行交互。正如您在商店示例中看到的,您可能需要处理多个决策点、验证操作和对外部应用程序的调用。您如何使用LLM来支持更复杂的应用程序?让我们在下一个视频中探讨一种策略。

Reference

https://www.coursera.org/learn/generative-ai-with-llms/lecture/6jh5Z/program-aided-language-models-pal

Read more

WebAgent详解+实战:用开源AI智能体搞定产品与竞品市场调研

WebAgent详解+实战:用开源AI智能体搞定产品与竞品市场调研

在市场调研场景中,产品及竞品分析往往需要投入大量人力,手动浏览网页、提取信息、整理数据,不仅效率低下,还容易出现信息遗漏、误差等问题。WebAgent作为通义实验室开源的端到端自主网页智能体,凭借强大的中文语义理解、多步骤推理和结构化输出能力,可完全本地部署且永久免费,能高效替代人工完成网页信息采集、竞品数据提取、产品信息汇总等调研工作。本文将从WebAgent核心介绍、部署要点入手,聚焦产品与竞争对手调研场景,一步步实现实战示例,让无论是开发者还是市场从业者,都能快速上手,用AI提升调研效率,摆脱重复劳动。 一、初识WebAgent:阿里开源的网页智能体“神器” 1.1 什么是WebAgent? WebAgent是阿里巴巴通义实验室开源的自主网页智能体框架,核心定位是“模拟人类浏览网页的完整流程”,能理解自然语言指令、规划浏览路径、执行网页操作(点击、翻页、搜索等)、提取关键信息并结构化输出,无需人工干预即可完成复杂的网页相关任务。 与国外的AgentQL相比,WebAgent最大的优势的是完全开源免费、支持本地部署、中文语义优化,无需调用云端API,数据可完全保存在内网,

By Ne0inhk

前端转型AI的“第一公里”:如何建立正确的AI心智模型?

前端转型AI的“第一公里”:如何建立正确的AI心智模型? 在过去的一年里,我见证了太多前端同行的焦虑与迷茫。AI浪潮袭来,很多人匆忙上阵,学会了调用OpenAI的API,甚至跑通了LangChain的Demo,但在实际落地时却频频踩坑。 我们习惯了确定性的世界:输入1 + 1,输出必然是2;写了display: flex,布局必然改变。然而,AI开发是一个概率性的世界:同样的Prompt,两次调用可能得到截然不同的结果。这种底层逻辑的冲突,是前端转型AI最大的“拦路虎”。 很多前端工程师把大模型仅仅当成一个“智能API接口”,试图用传统的硬编码逻辑去控制它,结果往往是Prompt越写越长,系统却越来越不稳定。这并非技术能力不足,而是心智模型尚未完成迁移。 从“函数思维”到“上下文思维” 传统前端开发的核心是“函数思维”:我们定义输入、处理逻辑和输出,追求的是精准控制。但在AI应用开发中,这种思维必须升级为“上下文思维”。 大模型本质上是一个“概率预测机”。它不像函数那样执行指令,而是像人一样理解语境。前端开发者转型AI的第一步,不是去学Python深度学习框架,而是学会如

By Ne0inhk
前端科技新闻(WTN-4)你用了免费的 Trae 编辑器吗?排队多少名?我排在1584名

前端科技新闻(WTN-4)你用了免费的 Trae 编辑器吗?排队多少名?我排在1584名

写在前面,怎么说呢?首先是为了支持国产,用于偷懒写git摘要和部分内容的代码补充还是有些效率提升的,但是plan模式,基本上没怎么完成过。可能是项目不太标准的原因,要是做已经成熟的产品副本或许更简单- 突然有了个点子,找那些收费高卖的贵的,出青春版,或许有搞头。 也是首次,发现需要排队了,哈哈哈哈哈哈哈哈哈,让我想起某些游戏,付费插队 一、技术快讯|一次普通的 i18n 任务,却排到 1500 名之后 最近在使用 Trae 编辑器(免费版) 时,遇到了一件颇具“时代特色”的小插曲。 我只是想让 AI 帮忙做一个非常常规的工程任务: * 扫描页面组件 * 提取未国际化的中文文案 * 生成 key-value * 替换为统一的 $t('xxx') 调用 * 保证多语言资源文件结构一致 点击执行后,编辑器并没有立刻开始处理,而是弹出了一条提示:

By Ne0inhk