自学内容网 自学内容网

《生成式 AI》课程 第4講:訓練不了人工智慧?你可以訓練你自己 (中)

资料来自李宏毅老师《生成式 AI》课程,如有侵权请通知下线

Introduction to Generative AI 2024 Springicon-default.png?t=O83Ahttps://speech.ee.ntu.edu.tw/~hylee/genai/2024-spring.php

摘要

这一系列的作业是为 2024 年春季的《生成式 AI》课程设计的,共包含十个作业。每个作业都对应一个具体的主题,例如真假难辨的世界、AI 应用开发、AI催眠大师、LLM 微调等。

幻灯片主要内容总结

承接上一讲: 《生成式 AI》课程 第3講:訓練不了人工智慧嗎?你可以訓練你自己-CSDN博客

作业代码 ( 后续增加)

  1. 强化语言模型的方法 - 拆解任务
    • 复杂任务可拆解为多个步骤,如先写大纲再生成摘要,以提升模型处理任务的能力。在数学问题中,模型先详细列式再得出答案,这有助于理解模型思考过程(Chain of Thought - CoT),但 GPT3.5 解数学题预设会列式,所以 CoT 对其帮助有限。
    • 模型可像考试检查考卷一样检查自己的错误,许多问题得到答案难但验证答案容易,例如鸡兔同笼问题(笼子里有鸡和兔子共 35 个头、94 只脚,计算鸡兔数量),模型可进行自我反省和修正。通过台大玫瑰花节信息介绍及检查的例子(GPT-4 和 GPT-3.5 的不同表现),展示了模型检查错误并修正信息的过程,同时提到 Constitutional AI 中模型根据批判和修正请求处理有害内容的方式,但未深入阐述如何从自我反省中学习。
  2. 强化语言模型的方法 - 使用工具
    • 语言模型虽有不擅长之事(如算数),但可借助工具,如将其当作搜索引擎(如 ChatGPT 介绍 OpenAI 的 Sora,第一次未上网搜索回答不准确,第二次搜索后给出更准确信息),使用专业搜索引擎或数据库可补充额外信息(Retrieval Augmented Generation - RAG)。
    • 模型还可写程序解决问题,如通过 Program of Thought(PoT)解决鸡兔同笼问题(设未知数列出方程并求解),也可用于简单文本处理(如重复 “哈哈哈” 一百次)。此外,能调用文字生图 AI(如 DALL-E)生成图片(如过年贺卡),还可通过插件(如 GPT Plug-in)实现多种功能(如创建社交媒体卡片、分析 PDF、网页搜索等)。以计算 5 美金可兑换多少新台币为例,展示了模型使用工具(搜索汇率并计算)的过程,且使用工具本质也是文字接龙(通过特殊符号呼叫工具并计算)。
  3. 强化语言模型的方法 - 模型彼此合作
    • 语言模型可专业分工,未来无需打造全能模型,不同模型有不同能力和成本,可根据任务选择合适模型。例如在展示平台上,不同任务可能由不同模型处理。
    • 模型可以彼此讨论,如在计算圆 A 绕圆 B 滚动一圈时圆 A 的自转圈数问题上,通过 Multi - Agent Debate,模型进行自我反思和相互讨论,一方最初认为圆 A 转 3 圈(仅考虑绕圆 B 的旋转),另一方认为转 4 圈(考虑绕圆 B 和自身旋转),最终得出更准确答案。多模型讨论可提高准确性,不同任务有不同合适的讨论方式(如 Exchange - of - Thought),讨论可通过引入裁判模型决定是否达成共识停止,也存在为反对而反对的情况(通过不同提示影响讨论长度)。还可引入不同角色(如 CEO、AI project manager、AI programmer、AI user 等),根据角色完成项目任务(如先做 A、再做 B、然后 C 等),并根据贡献度打分,分数低的角色之后可不参与工作,目前学术论文多在简单任务上进行测试。

幻灯片 1:封面(承接上一讲)

  • 继续探讨在不训练模型的情况下强化语言模型的方法,强调多种技巧组合使用的重要性。

强化语言模型的方法 - 拆解任务

幻灯片 2:拆解任务 - 复杂任务拆解示例(大纲与摘要)

  • 以生成报告为例,展示复杂任务可拆解为先写大纲(包含重要性、种类、技术等要点),再根据大纲生成摘要的步骤,说明这种拆解方式有助于模型更好地处理复杂任务。

幻灯片 3:拆解任务 - 模型思考(Chain of Thought - CoT)在数学问题中的应用(一)

  • 提出数学问题,展示模型通过详细列式来解决问题的过程,体现 CoT 在引导模型逐步思考、得出答案方面的作用。

幻灯片 4:拆解任务 - 模型思考(Chain of Thought - CoT)在数学问题中的应用(二)

  • 进一步通过另一个数学问题,强调模型先列式再计算答案的思考方式,同时指出对于 GPT3.5,由于其解数学题预设会列式,所以 CoT 对其帮助相对有限。

幻灯片 5:拆解任务 - 模型检查错误(鸡兔同笼问题初始回答)

  • 给出鸡兔同笼问题(已知头和脚的数量,求鸡兔数量),展示模型的初始回答(20 只鸡、20 只兔子,答案错误),为后续模型检查错误做铺垫。

幻灯片 6:拆解任务 - 模型检查错误(模型可自我反省)

  • 说明模型像人考试后检查考卷一样,有能力检查自己的错误,尽管有些问题得到答案难,但验证答案相对容易,引出模型自我反省的概念。

幻灯片 10:拆解任务 - Constitutional AI 中模型自我反省及修正示例(一)

  • 介绍 Constitutional AI 中模型自我反省的方式,以涉及入侵他人 wifi 的回答为例,展示模型根据批判请求(Critique Request)识别回答中的有害内容(侵犯隐私、可能违法),但未详细说明如何从自我反省中学

幻灯片 11:拆解任务 - Constitutional AI 中模型自我反省及修正示例(二)

  • 展示模型根据修正请求(Revision Request)改写回答,将有害内容去除(改为强烈建议不要入侵邻居 wifi,否则可能陷入法律麻烦),强调这是模型自我反省并修正的过程。

幻灯片 12:再次考考大家的观念(玫瑰花节信息检查)

  • 再次提及台大玫瑰花节信息介绍,引导思考模型在面对此类问题时的反应,即模型可能会进行自我反省,可能出现最初提供信息、检查后发现错误并修正或确认信息正确等不同情况,且强调反省过程中模型未被训练,函数固定。

幻灯片 13:为什么同一问题每次答案不同(以台湾大学相关问题为例)

  • 以台湾大学相关问题(如什么是大型语言模型)为例,探讨同一问题每次答案不同的原因,包括模型的不确定性(类似掷骰子有概率选择不同答案)以及模型在不同运行中的变化(尽管函数固定,但内部处理过程可能导致结果差异)。

幻灯片 14:为什么同一问题每次答案不同(以数学问题为例)

  • 以数学问题输入模型后答案不同(如答案为 3、5 等)为例,进一步说明同一问题答案的多样性,同时提及 Self - Consistency 方法可用于处理这种不一致情况,提高答案准确性。

幻灯片 15:复杂任务拆解成多步骤(模型处理复杂任务流程及检查答案)

  • 展示模型处理复杂任务的流程,包括任务输入、分解为多个步骤(步驟一、步驟二、步驟三等)、任务输出,以及模型检查自己答案的过程,强调复杂任务拆解和答案检查有助于提高模型处理任务的能力。

幻灯片 16:语言模型 - Tree of Thoughts (ToT)

  • 介绍 ToT 算法,通过相关论文链接,说明该算法可将复杂任务拆解成多步骤处理,帮助模型更好地解决问题,但未详细解释算法具体实现细节。

幻灯片 17:语言模型 - Graph of Thoughts (GoT)

  • 介绍 GoT 算法,展示其关键创新在于基于任意图形的思想转换(如聚合思想成新思想、循环改进思想等),并给出相关论文链接,但未深入阐述算法操作方式。
  • 试想 如果用 AoT来做股票预测?

https://arxiv.org/abs/2308.10379 算法思维(Algorithm of Thoughts, AoT)

这篇论文 有兴趣的人可以参考链接 https://arxiv.org/pdf/2308.10379

“Algorithm of Thoughts: Enhancing Exploration of Ideas in Large Language Models” 由 Bilgehan Sel 等人撰写,提出了一种名为 “算法思维(Algorithm of Thoughts, AoT)” 的新型提示策略,旨在解决大语言模型(LLMs)在推理任务中面临的挑战,通过最小化查询次数来提高其推理能力。

  1. 研究背景与问题提出
    • LLMs 在自然语言处理任务中取得了显著进展,但随着任务复杂性增加,如需要深度规划和广泛思考探索的任务,传统方法(如 Chain - of - Thought, CoT)逐渐暴露出局限性。这些方法往往依赖大量查询请求,导致成本增加、计算资源消耗大以及效率降低,同时还可能面临模型误导和环境影响等问题123。
    • 作者旨在通过提出 AoT 策略,显著减少当代多查询推理方法的查询次数,同时保持或提高任务性能,从而更高效地利用 AI 资源14。
  2. 相关工作回顾
    • 标准提示(Standard Prompting):提供任务的输入输出示例,让语言模型生成答案,但性能相对较差5。
    • 思维链(Chain - of - Thought, CoT):通过展示推理步骤的示例,引导模型逐步解决问题,提高了推理基准测试的性能。Self - Consistency 是一种常用的解码策略,通过多数投票选择最终答案,但需要额外生成6。
    • 从少到多提示(Least - to - Most prompting, L2M):受教育心理学启发,将中心问题分解为子问题并依次解决,但对于问题分解复杂的任务灵活性不足78。
    • 思维树(Tree of Thoughts, ToT):使用外部树搜索机制探索每个子问题的多种选择,通过评估节点潜力来指导搜索,但计算成本高且需要复杂的提示工程9。
  3. 算法思维(AoT)策略
    • 核心原理:基于当前上下文学习范式的局限性,CoT 在中间推理步骤可能出现错误,且模型可能受上下文示例影响产生偏差。AoT 通过在上下文中引入类似深度优先搜索(DFS)或广度优先搜索(BFS)的算法示例,利用模型的递归能力,将推理过程转化为算法搜索61011。
    • 关键组件
      • 搜索步骤划分:类似于 CoT 或 L2M,识别中间搜索层,生成搜索过程示例,重点在于选择正确的推理路径12。
      • 子问题解决方案提议:采用不间断的解决方案创建过程,直接生成子问题的解决方案,避免单独查询和评估,提高效率13。
      • 子问题潜力评估:依靠上下文示例引导模型优先选择有潜力的路径,减少对复杂提示工程的需求14。
      • 回溯到更有希望的节点:主要采用 DFS 方法并辅以剪枝,根据树搜索算法决定下一步探索的节点,模型能从上下文示例中获取信息15。
  4. 实验设置与结果
    • 实验任务
      • 24 点游戏:给定四个数字,使用四则运算得到 24。AoT 在该任务中表现出色,成功率高,且查询次数远少于 ToT,同时对错误类型进行了分析161718。
      • 5×5 迷你填字游戏:根据线索填充 5×5 的方格。AoT 在该任务中也取得了较好的成绩,超过了之前的方法,且查询次数大幅减少192021。
      • 微调实验:对 GPT - 3.5 - Turbo 进行微调,结果表明 AoT 在微调后仍具有优势,说明 LLMs 需要显式探索选项来解决问题221123。
    • 实验结果分析
      • AoT 在多个任务中优于其他单提示方法(如标准提示、CoT/-SC 提示)和外部机制策略(如 ToT)。
      • 对错误类型的分析有助于进一步改进模型和提示策略。
  5. 讨论与分析
    • AoT 能够超越其模仿的 DFS 算法,通过模型的启发式搜索减少访问节点数量24。
    • 算法示例中的搜索步骤数量会影响 AoT 的行为,较长的搜索步骤可能导致更长的生成过程,但强调探索有希望的方向25。
    • AoT 在问答任务中表现出竞争力,略微提升了性能26。
    • AoT 在解决传统动态规划问题时,性能优于其他方法,但 ToT 在某些情况下性能与 CoT 相同27。
    • AoT 对其他先进的 LLMs(如 Claude 3 和 Gemini 1.5 Pro)也有一定的性能提升28。
  6. 研究结论与展望
    • 提出的 AoT 是一种开创性的提示策略,显著提高了 LLMs 的推理能力,减少了查询次数,平衡了成本和计算需求29。
    • 未来工作包括设计更高效的算法示例、开发自适应机制以加速搜索,以及从理论角度深入理解这种新的上下文学习模式29。
  7. 研究局限性
    • AoT 虽然减少了查询次数,但由于通过生成大量标记来广泛探索想法,其资源需求超过了标准提示和 CoT。未来需要研究如何创建更高效的算法示例30。
    • 实验仅在 GPT - 4 上进行,其他能力较弱的模型可能无法获得类似的性能提升30。

https://arxiv.org/abs/2308.09687

思维图(Graph of Thoughts, GoT) 这篇论文 有兴趣的人可以参考链接 https://arxiv.org/pdf/2308.09687

“Graph of Thoughts: Solving Elaborate Problems with Large Language Models” 提出了一种名为 “思维图(Graph of Thoughts, GoT)” 的新框架,旨在提升大语言模型(LLMs)的提示能力,以解决复杂问题。

  1. 研究背景与动机
    • LLMs 在 AI 领域发展迅速,但随着任务复杂性增加,传统提示方法(如 Chain - of - Thought 等)暴露出局限性,如推理能力受限、成本高、效率低等。人类推理过程常形成复杂网络,而现有方法(如 Chain - of - Thought、Tree of Thoughts 等)无法充分体现这种复杂性。因此,需要一种更强大的提示方法,GoT 应运而生123。
  2. GoT 框架
    • 推理过程建模:将 LLM 的推理过程建模为有向图,其中顶点表示问题的解决方案(初始、中间或最终),边表示思想之间的依赖关系。在某些情况下,图节点可属于不同类(如写作任务中,顶点可表示写作计划或实际段落),采用异构图建模。通过对图应用思想转换(如合并高分思想、循环改进思想等)来推进推理过程456。
    • 思想转换
      • 聚合转换:可以将任意思想聚合为新思想,结合多个思想的优点,消除缺点。在基本形式中,通过创建新顶点并添加来自多个思想的入边来实现,也可聚合推理路径(更长的思想链)7。
      • 精炼转换:通过修改当前思想的内容来精炼它,在图中表现为添加一个与原思想有相同连接的循环8。
      • 生成转换:基于现有单个思想生成一个或多个新思想,类似于早期方案(如 ToT 或 CoT - SC)中的推理步骤9。
    • 评分与排名思想:思想评分函数用于评估当前思想的好坏,考虑整个推理过程状态以获得更全面的评估。GoT 还可以使用排名函数选择个最高排名的思想,通常采用简单有效的策略,即返回得分最高的个思想1011。
    • 系统架构与扩展性:GoT 架构包括多个交互模块,如 Prompter(准备发送给 LLM 的提示)、Parser(从 LLM 思想中提取信息)、Scoring 模块(验证和评分 LLM 思想)和 Controller(协调整个推理过程)。Controller 包含 Graph of Operations(GoO,指定任务的图分解和思想操作顺序)和 Graph Reasoning State(GRS,维护 LLM 推理过程的状态)。这些模块提供了可扩展的 API,方便实现不同的提示方案,用户可通过构建 GoO 实例指定任务的执行计划121314。
  3. 实验结果与分析
    • 实验设置:使用 100 个输入样本对每个任务和比较基线进行评估,设置温度为 1.0,上下文大小为 4k(除非另有说明)。针对不同任务(如排序、集合操作、关键词计数、文档合并)设计了具体的实验方案,包括操作步骤、评分方法等,并详细列出了 GoT 在不同任务中的配置(如生成、评分、聚合等操作的次数和顺序)151617。
    • 实验结果
      • GoT 与 ToT 对比:GoT 在所有考虑的问题实例中显著优于 ToT,提高了结果质量,同时降低了成本(例如,在排序任务中,对于,GoT 将中位数误差降低了约 62%,成本降低了)18。
      • GoT 与 IO 和 CoT 对比:GoT 的结果质量始终高于 IO/CoT,但成本也更高。随着问题规模增加,GoT 在质量提升方面的优势更加明显(如在排序任务中,随着增大,GoT 相对于 ToT2 的优势逐渐增大)19。
    • 任务分解讨论:将任务分解为子任务可降低响应和输入的大小,但可能增加提示中少量示例的开销。总体目标是将任务分解到 LLM 能在大多数情况下用单个提示正确解决的程度,然后合并子结果,这样通常比从头解决大任务更容易成功2021。
  4. 相关工作:总结了 GoT 与其他相关工作的关系,包括不同的提示范式和方法(如 Plan - and - Solve、Self - Consistency 等)、自我反思和自我评估在 LLMs 中的应用、LLMs 在复杂任务规划中的研究以及图在计算和 AI 领域的广泛应用等。GoT 与这些工作有一定联系,但在将 LLM 推理建模为图以实现更强大的提示能力方面具有独特性222324。
  5. 研究结论与展望:GoT 是一种新的范式,通过将 LLM 推理建模为任意图,实现了思想的新颖转换(如聚合),在解决不同任务时表现出色,优于其他提示方案(如在排序任务中提高质量并降低成本)。同时,提出了 “思想体积” 这一新颖指标来衡量提示方案的有效性,GoT 在该指标上也表现优异。未来工作将探索更高效的算法示例、开发自适应机制以加速搜索,并从理论上深入理解这种新的上下文学习模式2425。

幻灯片 18:使用工具 - 语言模型计算示例(乘法运算)

  • 以计算 “533215×251349” 为例,展示语言模型进行乘法运算的结果(给出具体计算答案),同时指出语言模型在某些计算方面存在不擅长的情况(如算数),引出语言模型能否使用工具的思考。

幻灯片 19:使用工具 - 语言模型当作搜索引擎(介绍 OpenAI 的 Sora - 初次回答)

  • 要求语言模型介绍 OpenAI 的 Sora,模型首次回答未进行网络搜索,解释 Sora 是用于提高大型语言模型在特定领域性能的技术,通过专家反馈优化模型回答,但该解释不够准确全面。

幻灯片 20:使用工具 - 语言模型当作搜索引擎(介绍 OpenAI 的 Sora - 搜索后回答)

  • 再次要求介绍 OpenAI 的 Sora 并上网搜索后回答,模型给出更准确信息,说明 Sora 是文本转视频模型,旨在生成模拟物理世界运动的视频,目前处于有限测试阶段,有特定人群参与测试和反馈,OpenAI 分享研究进展以与社区互动并展示人工智能未来能力,体现使用搜索引擎补充信息的重要性。

幻灯片 21:使用工具 - 语言模型使用搜索引擎的方式(示意图)

  • 通过示意图展示语言模型将专业问题当作搜索引擎使用的方式,即从网络或数据库中搜索信息,强调借助外部资源可帮助模型处理专业问题,补充知识。

幻灯片 22:使用工具 - 额外信息(Retrieval Augmented Generation - RAG)

  • 提及额外信息获取方式 RAG,指出 3/29 NVIDIA 团队将讲解如何进行 RAG,强调获取额外信息对语言模型处理任务的辅助作用。

幻灯片 23:使用工具 - 语言模型写程序(鸡兔同笼问题)

  • 以鸡兔同笼问题为例,展示语言模型通过写程序解决问题的过程,包括设未知数、列方程(根据头和脚的数量关系列出二元一次方程组)、使用 Python 的 sympy 库解方程组,得出鸡兔数量的准确答案,体现语言模型写程序解决实际问题的能力。

幻灯片 24:使用工具 - 语言模型写程序(重复文本)

  • 要求语言模型重复 “哈哈哈” 一百次,模型通过写程序(使用字符串拼接方式)完成任务,展示了语言模型在简单文本处理任务中写程序的应用,进一步说明语言模型使用工具(写程序)的多样性。

幻灯片 25:使用工具 - 文字生图 AI(DALL - E) - 过年贺卡示例(一)

  • 展示过年时收到的长辈图贺卡,引出可使用文字生图 AI(如 DALL - E)生成图片的话题,为后续生成过年贺卡在做铺垫。

幻灯片 26:使用工具 - 文字生图 AI(DALL - E) - 过年贺卡示例(二)

  • 要求语言模型使用 DALL - E 生成过年贺卡(图片上不要出现文字),展示模型调用 DALL - E 进行图片生成的过程,体现语言模型借助文字生图工具拓展功能的能力。

幻灯片 27:使用工具 - 文字生图 AI(DALL - E) - 视频链接(用 ChatGPT 玩文字冒险游戏)

  • 提供视频链接,展示用 ChatGPT 和 Midjourney 玩文字冒险游戏的相关内容,说明语言模型与其他工具结合可实现更多有趣应用,但未详细介绍视频内容。

幻灯片 28:使用工具 - GPT Plug - in(插件功能示例)

  • 展示 GPT 插件的多种功能,如创建社交媒体卡片(Bestever Ad Ma)、与 Confluence 或 Notion 等平台交互(A chat with Conflu...、A chat with Work)、网络监测(A Monitoring Exp)、生成文档摘要(A&B Summarize!)、网页搜索(A&B Web Search!)等,体现插件可扩展语言模型的功能,满足不同需求。

幻灯片 29:使用工具 - 语言模型使用工具的方式(计算汇率示例)

  • 以 “5 美金可以换多少新台幣” 为例,展示语言模型使用工具的过程,即先搜索美金台幣匯率(1 美金 = 31.5 台幣),然后进行计算(5 x 31.5 = 157.5),得出可兑换新台幣的金额,强调使用工具本质也是文字接龙(通过特殊符号呼叫工具并计算)。

幻灯片 30:延伸阅读(能够使用工具的 AI)

  • 提供视频链接(https://youtu.be/ZID220t_MpI?feature=shared),介绍能够使用工具的 AI(如 New Bing、WebGPT、Toolformer 等),引导进一步了解相关内容,但未详细说明视频内容。

幻灯片 31:回顾 - 整理 GPT 模型参数和训练数据表格(应要求再次整理)

  • 应要求再次整理 GPT、GPT - 2、GPT - 3 的模型参数和训练数据表格,展示模型参数(分别为 0.117 亿、1.5 亿、175 亿)和训练数据量(GPT 和 GPT - 2 未明确,GPT - 3 约为 570GB),与之前的整理结果一致,起到回顾和强化记忆的作用。

幻灯片 32:语言模型彼此合作 - 整体概念

  • 提出语言模型彼此合作的概念,类比 “三个臭皮匠胜过一个诸葛亮”,指出未来无需打造全能模型,语言模型可进行专业分工,不同团队可专注于打造专业领域的语言模型,以提高整体效率和效果。

https://arxiv.org/pdf/2402.04253

“AnyTool: Self-Reflective, Hierarchical Agents for Large-Scale API Calls” 提出了 AnyTool,这是一种旨在通过利用大量工具(APIs)来处理用户查询的大语言模型智能体,主要包含三个关键元素,并在实验中展现出优于其他方法的性能1225。
 

我们介绍了 AnyTool,这是一个大型语言模型代理,旨在彻底改变解决用户查询的大量工具的使用。我们利用了来自 Rapid API 的 16,000 多个 API,假设这些 API 的子集可以潜在地解决查询。AnyTool 主要包含三个元素:具有分层结构的 API 检索器,旨在使用一组选定的 API 候选解决用户查询的求解器,以及自我反射机制,如果初始解决方案被证明不可行,它会重新激活 AnyTool。AnyTool 由 GPT-4 的函数调用功能提供支持,无需训练外部模块。我们还重新审视了以前工作引入的评估协议,并确定了该协议中导致人为高通过率的限制。通过修改评估协议以更好地反映实际应用场景,我们引入了一个额外的基准,称为 AnyToolBench。各种数据集的实验证明了我们的 AnyTool 优于强大的基线,例如 ToolLLM 和专为工具利用率量身定制的 GPT-4 变体。例如,AnyTool 在 ToolBench 上的平均通过率方面优于 ToolLLM+35.4%。代码将在GitHub - dyabel/AnyTool提供。

总结

在这项工作中,我们介绍了 AnyTool,这是一种能够利用 16K+ API 来有效处理实际用户查询的高级代理。AnyTool 的核心是与求解器耦合的分层 API 检索器。此外,它还集成了独特的自我反思机制,提高了其响应用户查询的熟练程度。我们还修改了之前的评估协议,以更好地反映实际应用场景。在 ToolBench 和我们的 AnyToolBench 上进行的严格实验证明了我们的方法优于已建立的模型。最后,我们强调了两个未来的研究方向:1) 优化 API 的组织以提高性能和效率;2) 开发专门用于 API 利用的高级开源 LLM,这可以促进本地部署。

  1. 研究背景与动机
    • 人类在发展过程中不断掌握新工具以提升能力和效率,如今在人工智能时代,如何让大语言模型(LLMs)有效使用工具成为关键挑战。当前 LLMs 在处理查询时存在事实性错误等问题,利用工具可缓解,但现有方法存在准确性低、缺乏反馈机制等局限性。AnyTool 旨在填补这些空白,通过合理利用工具提升处理用户查询的能力345。
  2. AnyTool 的设计与实现
    • 整体架构:AnyTool 由 GPT - 4 驱动,主要包含 API retriever(具有层次结构)、solver 和 self - reflection mechanism 三个部分,通过闭环操作处理用户查询,无需训练外部模块,直接利用 GPT - 4 的函数调用功能126。
    • API retriever
      • 结构化组织:基于 Rapid API 的分层结构(category、tool、API 三个层级)设计,包含 meta - agent、category agents 和 tool agents,各层级通过特定函数协同工作,以从大量 APIs 中识别与用户查询最相关的候选 APIs7829。
      • 生成候选 API 池:接收用户查询后,通过多线程方式,利用 GPT - 4 的函数调用功能,让各层级 agent 交互协作,将相关 APIs 添加到全局 API 候选池,直至满足终止条件,同时记录历史上下文和 agent 状态9。
    • Solver:利用生成的 API 候选池解决用户查询,可采用 Depth - First Search - Based Decision Tree(DFSDT)或 Chain of Thought(CoT)方法,通过函数调用与 GPT - 4 交互,根据 “finish” 函数的不同结果决定下一步操作,若初始解决方案失败,会触发 self - reflection mechanism101120。
    • Self - reflection mechanism
      • API retriever 中的自反思:当查询未解决时,根据 solver 的放弃原因或 GPT - 4 对解决方案的评估,确定未解决原因,将其融入历史上下文,按 tool agents、category agents、meta - agent 的顺序重新激活相关 agent,扩大 API 候选池121314。
      • Solver 中的自反思:solver 放弃时,先从 API 候选池中移除无关 APIs,清理历史上下文,然后使用新的引导提示、更新后的 API 候选池和清理后的历史上下文重新激活 solver15。
  3. 实验设置与结果
    • 实验设置
      • 基准测试:在 ToolBench(包含六个子集,经过筛选去除不可解查询)和自行设计的 AnyToolBench(包含 400 个实例)上进行实验16。
      • 评估指标:采用通过率(pass rate)作为评估指标,使用 GPT - 4 - 32K 判断解决方案是否能解决查询,并验证了 GPT - 4 与人类评估者决策的一致性(96.5%),因此主要使用 GPT - 4 进行评估1718。
      • 对比方法:与 ToolLLM 及其变体、不同的 GPT - 4 模型(采用不同的 API 检索和求解策略)进行对比1921。
    • 实验结果
      • ToolBench 上的结果:AnyTool 在筛选后的 ToolBench 数据集上显著优于 ToolLLM 及其变体和 GPT - 4 使用参考 APIs 的方法,平均通过率分别提高了 +32.6 和 +19.3 个百分点。主要得益于 API retriever 的层次结构有效识别相关 APIs,以及 self - reflection mechanism 的闭环优化22。
      • AnyToolBench 上的结果:AnyToolBench 评估智能体利用整个 API 池解决用户查询的能力,AnyTool 在该基准测试中也表现出色,优于其他对比方法,进一步证明了其在实际场景中的有效性23。
      • 消融研究
        • 主要元素有效性:层次结构和自反思机制对 AnyTool 性能有显著积极影响,选择 CoT 替代 DFSDT 会导致通过率下降24。
        • 自反思机制:重新激活所有类型的 agent(tool agents、category agents、meta - agent)能获得最佳性能24。
        • API 池大小影响:更大的 API 池更有可能成功解决用户查询,随着 API 池规模增大,通过率提高26。
        • API 候选池最大大小:API 候选池大小为 64 时性能接近饱和26。
        • tool agent 管理工具数量:tool agent 管理工具数量存在权衡,过多或过少都可能影响性能27。
  4. 研究结论与展望
    • AnyTool 通过分层 API retriever、solver 和自反思机制的协同工作,能有效利用 16K + APIs 处理用户查询。修订后的评估协议更符合实际场景,实验证明 AnyTool 优于现有模型。未来将优化 API 组织以提升性能和效率,开发专门用于 API 利用的先进开源 LLM 以促进本地部署2528。

幻灯片 33:语言模型彼此合作 - 任务分配与合作方式(一)

  • 以任务输入为例,说明不同能力和成本的语言模型可根据任务需求进行分配,合适的模型做合适的事情,如在展示平台上,不同任务可能由不同模型处理,展示了模型之间的任务分配逻辑。

幻灯片 34:语言模型彼此合作 - 任务分配与合作方式(二)

  • 进一步阐述模型之间的合作方式,通过模型 A、B、C 的示例,展示如何判断任务该分配给哪个模型,强调模型之间相互协作可更好地完成任务。

https://arxiv.org/pdf/2303.17071icon-default.png?t=O83Ahttps://arxiv.org/pdf/2303.17071

“DERA: Enhancing Large Language Model Completions with Dialog-Enabled Resolving Agents” 提出了 DERA(Dialog-Enabled Resolving Agents)这一框架,旨在通过对话形式提升大语言模型(LLMs)在自然语言任务中的表现,特别是在医疗领域的应用。

  1. 研究背景与动机
    • LLMs 在自然语言处理任务中发挥重要作用,但在医疗等安全关键应用中,其输出的准确性和完整性至关重要。现有方法在解决实际问题时存在局限性,如生成的文本可能包含事实性错误(幻觉和遗漏),且提示架构受限。因此,作者提出 DERA,通过迭代改进和引入顾问来提高生成质量123。
  2. DERA 框架概述
    • DERA 是一种通用聊天框架,利用具有对话能力的智能体迭代完成任务。它包含两个主要智能体:研究者(Researcher)负责审查信息并提出关键问题组件的建议,决策者(Decider)负责整合信息并决定最终输出。这两个智能体通过对话来处理知识源(内部或外部),从而提高输出质量456。
  3. 实验任务与结果
    • 医疗对话摘要任务:从聊天式远程医疗平台抽取 500 个医疗对话,评估 DERA 生成摘要的能力。在人类专家评估中,DERA 生成的摘要在临床实用性、信息完整性和准确性方面优于 GPT - 4 基线;在定量评估中,DERA 能有效纠正合成引入的错误,提高 GPT - F1 分数789。
    • 护理计划生成任务:使用与医疗对话摘要任务相同的 50 个医疗对话,评估 DERA 生成护理计划的能力。人类专家评估表明,DERA 生成的护理计划更受医生偏好,包含更多必要管理步骤且建议更合理101112。
    • 开放式医学问答任务:扩展 MedQA 数据集为开放式,评估 DERA 在短格式医学推理中的表现。DERA 在该任务中与 GPT - 4 单轮表现相似,虽略有改进但不显著,且生成答案的特异性和长度仍面临挑战131415。
  4. 研究结论与展望
    • DERA 框架通过智能体间的对话,有效减少了 GPT - 4 生成文本中的幻觉和遗漏,提高了生成质量,尤其适用于长文本生成任务。然而,在问答任务中改进有限,未来可探索纳入人类输入或根据不同问题调整智能体类型。此外,还需进一步研究自动评估 LLM 输出的指标161718。
  5. 研究局限性
    • 实验主要使用 GPT - 4 模型,对其训练数据缺乏了解,且结果可能因模型版本更新而难以重现。自动评估生成文本的任务仍需改进,临床文本数据集存在局限性,包括特定于单一远程医疗服务的患者群体、数据隐私和许可问题导致部分数据集无法公开等192021。

这篇来自清华2023年的论文 https://arxiv.org/pdf/2305.19118icon-default.png?t=O83Ahttps://arxiv.org/pdf/2305.19118

该论文提出了多智能体辩论(Multi-Agent Debate, MAD)框架,以解决大语言模型(LLMs)自我反思中的思维退化(Degeneration-of-Thought, DoT)问题,提升其在复杂推理任务中的表现。

  1. 研究背景与问题提出
    • LLMs 在通用语言任务表现出色,但复杂推理任务仍具挑战,自我反思方法受限于 DoT 问题,即模型对答案建立信心后,即便初始错误也难以通过反思产生新想法。这可能由偏差和扭曲的感知、僵化和抗拒改变、外部反馈有限等因素导致123。
  2. MAD 框架
    • 包含元提示(Meta Prompts)、辩论者(Debaters)和法官(Judge)三个组件。元提示介绍辩论主题等要求,营造辩论氛围;辩论者依序表达观点;法官有判别和提取两种模式,决定辩论是否结束及提取最终答案489。
  3. 实验设置与结果
    • 实验任务
      • 常识机器翻译(Common MT):数据集含中文 - 英文翻译示例,考察翻译模型解决歧义能力,MAD 框架使 GPT - 3.5 - Turbo 在该任务上超越 GPT - 41014。
      • 反直觉算术推理(Counter - Intuitive AR):数据集含多步推理问题,测试 LLMs 深度推理能力,MAD 框架下 GPT - 3.5 - Turbo 表现优于同类方法,但不及 GPT - 41115。
    • 实验对比方法:与 Self - Reflect、Rerank、MAPS、CoT、Self - Consistency 等方法对比,评估指标包括准确率、COMET、BLEURT 及人工评估等1213。
  4. 分析讨论
    • DoT 缓解:MAD 框架通过引入其他智能体观点,有效纠正翻译偏差,提高答案多样性,缓解 DoT 问题1617。
    • 法官分析:强大辩论者搭配弱法官效果可能更好,且不同 LLMs 作辩论者时,法官可能有偏好,影响结果公正性1819。
    • 辩论者分析:增加辩论者数量可能因长文本处理能力限制降低性能;适度 “针锋相对” 利于辩论;复杂问题需更多辩论轮次,自适应中断策略有助于适时结束辩论202122。
  5. 研究结论与展望
    • MAD 框架能有效探索不同思维链,提升 LLMs 在复杂任务中的表现,但存在耗时、长文本建模能力有限、法官可能有偏好等局限。未来工作包括优化辩论调度、探索多智能体在其他领域应用及改进模型评估等567。

幻灯片 35:语言模型彼此合作 - 模型彼此讨论(示例问题)

  • 提出一个圆 A 绕圆 B 滚动一圈时圆 A 自转圈数的问题,作为模型彼此讨论的示例,为后续展示模型讨论过程和结果做准备。

幻灯片 36:语言模型彼此合作 - 模型彼此讨论(Chain - of - Thought 与 Self - Reflection)

  • 展示模型在解决上述圆问题时的 Chain - of - Thought(设圆 A 半径为 r,圆 B 半径为 3r,计算圆 A 沿圆 B 滚动的距离和自转圈数)和 Self - Reflection(一方认为圆 A 转 3 圈,另一方认为转 4 圈并阐述理由)过程,体现模型在讨论中的思考和观点碰撞。

幻灯片 37:语言模型彼此合作 - 多模型讨论(准确率与讨论轮数、模型数量关系)

  • 通过图表展示数学准确率与辩论轮数、模型数量的关系,说明多模型讨论可提高准确率,且不同任务可能有不同的最佳讨论轮数和模型数量组合。

幻灯片 38:语言模型彼此合作 - 多模型讨论(Exchange - of - Thought 及不同可见性方式)

  • 介绍多模型讨论的 Exchange - of - Thought 方式,以及不同的可见性方式(如 Fully Visible、Central Visible、Neighbor Visible、Peers Visible),强调不同任务适合不同讨论方式,但未详细解释各种可见性方式的区别。

幻灯片 39:语言模型彼此合作 - 讨论停止条件(一)

  • 以语言模型 A 和 B 的讨论为例,展示讨论未达成共识时(如双方意见不同,一方表示不同意并继续阐述观点)讨论继续的情况,说明讨论停止需要达成共识,引出如何确定讨论是否停止的思考。

幻灯片 40:语言模型彼此合作 - 讨论停止条件(二)

  • 展示讨论达成共识时(如一方表示有道理,双方得出结论)的情况,同时提到可引入裁判模型来判断讨论是否停止,但未详细说明裁判模型的工作方式。

幻灯片 41:语言模型彼此合作 - 讨论可能存在的问题(为反对而反对)

  • 通过不同提示(Short 和 Long)对模型讨论的影响,说明讨论中可能存在为反对而反对的情况,即模型的回答可能受到提示影响而改变讨论方向或深度,影响讨论结果。

幻灯片 42:语言模型彼此合作 - 引入不同角色(概念阐述)

  • 提出创造不同角色的概念,如 CEO、AI project manager、AI programmer、AI user 等,说明不同模型有不同专长,通过赋予角色不同任务(如完成项目先做 A、再做 B、然后 C 等),可实现更高效的协作,同时给出相关论文链接。

幻灯片 43:语言模型彼此合作 - 引入不同角色(任务执行与贡献度打分)

  • 以完成某项目为例,展示不同角色(如 Programmer、User、Project manager 等)在项目中的任务(如写程式、试用、给建议等),并根据角色表现进行贡献度打分(如 Programmer: 10, User: 8 等),分数低的角色之后可不参与工作,体现通过角色分工和评估优化模型协作的方式,但强调目前学术论文多在简单任务上测试。


原文地址:https://blog.csdn.net/chenchihwen/article/details/143829219

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!