📝「进化算法」、「Agentic Workflow」与「MAD」
2024-1-26
| 2024-4-12
6482  |  阅读时长 17 分钟
type
status
date
slug
summary
tags
category
icon
password

Model Merging、MoE...模型融合成为开源社区备受关注的新趋势?

  1. 现阶段,LLM 取得了快速进展,但因其数千亿参数规模需要大量的计算资源受到限制。近来,开源社区逐渐将方向转向「创建更小但性能更高的 LLM」,通过将多个较小的 LLM 混合、合并和堆叠在一起产生复合系统,表现出了比各个部分的总和更强大的涌现行为。
  1. 谷歌经典论文《Attention is all you need》的作者 Llion Jones 所创建的公司 Sakana AI 近期提出了一种自动进化模型合并的算法,通过采用进化算法来有效地发现组合不同开源模型的最佳方法,从而自动创建具有用户指定功能的新基础模型:
    1. 该方法能够自动生成新的基础模型,且不需要任何基于梯度的训练,因此需要相对较少的计算资源。
    2. 该方法不仅在参数空间中操作,还在数据流空间中进行优化,允许对模型的权重和推理路径进行调整。
    3. 该方法可以发现合并来自不同领域(例如,非英语语言和数学,非英语语言和视觉)的模型的新方法,可能超越传统人类设计策略所能达到的能力。
    4. 为测试该方法的有效性,研究者通过该方法构建了能够进行数学推理的日语 LLM 和日语 VLM。其中,进行数学推理的日语 LLM 在大量日语 LLM 基准上取得了顶级性能,甚至超过了一些 SOTA 70B 参数 LLM。
  1. 英伟达科学家 Jim Fan 评价该项工作:「基础模型社区几乎完全集中在学习上,但没有把重点放在搜索上。我相信后者在训练(进化算法)和推理(AlphaGo 风格的搜索)阶段都有巨大的潜力。」[1] [2]
  1. 与此同时,混合模型架构 MoE(Mixture of Experts)近期也备受关注。MoE 是一种混合模型,由多个子模型(即专家)组成,每个子模型都是一个局部模型,专门处理输入空间的一个子集。MoE 的核心思想是使用一个门控网络来决定每个数据应该被哪个模型去训练,从而减轻不同类型样本之间的干扰。
    1. Mistral AI 前后推出了多个基于 MoE 架构的模型[2]:
      1. 去年 12 月,Mistral AI 开源了基于 MoE(Mixture-of-Experts,专家混合)架构的模型 Mixtral 8x7B,其性能达到 Llama 2 70B 和 GPT-3.5 的水平。Mixtral 8x7B 是一个 decoder-only 的模型。前馈模块从 8 组不同的参数中进行选择。在每一层网络中,对于每个 token,路由器网络选择 8 组中的两组(专家),来处理 token 并将其输出累加组合。
      2. 4 月 10 日,Mistral AI 开源了其 8x22B MoE 架构的模型,模型共有 56 层,48 个注意力头,8 名专家,2 名活跃专家,上下文长度为 65k。

Model Merging 是什么?

  1. Model Merging (模型合并)是指将多个在特定任务上经过有监督微调(SFT)的模型在参数层面进行整合,从而形成一个统一的融合模型。通俗来说,即将多个 LLM 策略性地结合成一个单一架构。因为不需要额外的训练,成为开发新模型的一种极具成本效益的方法。
  1. Model Merging 可以使融合后的模型具备处理多种任务的能力,因为每个单独的 SFT 模型均是在不同的任务上训练的,各自学习到了不同的特征和模式。
      • 多任务学习中,单一的模型被训练来同时处理多个相关或不相关的任务;类似,融合模型能够同时「学会」多种任务,在性能上取得更好的效果,同时具备更强的泛化能力。
  1. Model Merging 与传统的迁移学习相似但不同:
    1. 传统的迁移学习是针对新任务在预训练模型进一步微调,虽然具备提高性能和更快收敛等优点,但生成的模型通常仅限于单个任务
    2. 而 Model Merging 致力于通过结合多个预训练模型的知识来创建通用且全面的模型,有可能产生能够同时处理各种任务的模型。[3]
  1. Model Merging 常用的几种算法 [3-5] :
    1. Task Vector向量指示预训练权重空间中提升特定任务性能的方向。通过向量间的算术运算,如加法和减法,来编辑模型,优化性能、减少偏差并整合新信息。
    2. SLERP克服传统加权平均在模型合并中的局限,通过平滑转换参数,保留每个父模型在高维空间的独特特征和曲率。这种方法适用于精细合并两个模型,但不支持多模型合并。
    3. TIES:针对传统合并方法中不同模型参数间的干扰问题。TIES 通过最小化参数变化解决符号冲突仅合并对齐参数的三步策略,有效减少干扰,特别是符号干扰,从而提升合并模型的整体性能。
    4. DARE:关注学习相似模型的参数,通过消除微调模型与基础模型间的微小差异并重新放缩权重,来合并语言模型。这种方法通过修剪重新缩放参数来增强和多样化模型功能,减少再训练需求,常与任务算术或 TIES 结合使用。
    5. Frankenmerging:一种不依赖权重合并的方法,能够整合不同架构的模型,通过堆叠不同模型的特定层序列创造新架构。这种方法突破了模型家族的限制,允许从完全不同的模型中创造新的架构,目前仍在探索阶段

Model Merging、Model Fusion、MoE...都是一回事吗?

「模型融合」这一术语的使用存在着一定程度的混淆和不一致性:
  • 「模型融合」虽然被 AI 业内广泛关注和探讨,但其具体的内涵和外延尚未形成统一的标准定义。
  • 一般来说,通过结合多个独立的模型或模型的某些部分,来增强模型的泛化能力、稳健性或解释性的技术或方法都可以被称之「模型融合」,如 Model Merging、Model Fusion、MoE(Mixture of Experts)、模型集成等:
      1. Model Merging:在论文《Evolutionary Optimization of Model Merging Recipes》[6] 中,Model Merging 是指将多个在特定任务上经过有监督微调(SFT)的模型在参数层面进行整合,从而形成一个统一的融合模型。通俗来说,即将多个 LLM 策略性地结合成一个单一架构。
      1. Model Fusion:在论文《Deep Model Fusion: A Survey》[5] 中,Model Fusion 是一种新兴技术,指将多个深度学习模型的参数或预测结果合并为一个单一模型
        1. Model Fusion 结合了不同模型的能力,以弥补单一模型的偏差和错误,从而达到更好的性能。
        2. Model Fusion 的主要做法包括模式连接 (Mode Connectivity)、对齐 (Alignment)、权重平均 (Weight Average)和集成学习 (Ensemble Learning)。
          1. 其中,权重平均是经典的 Model Fusion 方法,通过平均多个模型的权重来获得更接近最优解的精确结果,不需要额外的计算复杂性或训练。
      1. MoE(Mixture of Experts):MoE 是一种混合模型,由多个子模型(即专家)组成,每个子模型都是一个局部模型,专门处理输入空间的一个子集
        1. MoE 的核心思想是使用一个门控网络来决定每个数据应该被哪个模型去训练,从而减轻不同类型样本之间的干扰。[7]
      1. 模型集成:模型集成是通过集成将多个单独训练的模型模型混合在一起,然后在推理中对它们的预测进行平均,以生成一个集成模型
        1. 模型集成是最直接的一种做法,生成的集成模型通常比其组成部分更加稳健和准确。与单个模型相比,平均可以减少噪声和方差。
        2. 模型集成的一大优点是容易并行化,可以单独训练较小的组成模型,然后将其组合起来,从而避免巨型整体模型的大量硬件需求。[9]

用进化算做 Model Merging 更有优势吗?

  1. Sakana AI 的研究者将进化算法引入到了 LLM 模型融合的场景中,研究者通过参数空间融合(parameter space,PS)和数据流空间融合(data flow space,DFS)相结合的方式获得新的融合模型。实现了跨领域模型的合并。具体来说:
    1. 参数空间融合的核心是将具有相同模型结构,但是针对不同任务或场景的模型在同一 Transformer 层按照加权平均的方式直接合并模型参数
    2. 数据流空间融合是将多个模型的 Transformer 层直接堆叠到一起进行融合,但目前该方式往往是人工确定融合方案,而且往往需要再次训练或者微调,以弥补不同模型分布不一致导致的性能下降。
    3. 接下来,是将两种方法融合。简单来说:
      1. 研究者首先使用参数空间融合策略获得一个合并的模型,
      2. 然后将候选模型和合并的模型一起作为候选模型
      3. 最后,基于以上模型进行数据流空间融合
  1. 为了测试该方法的有效性,研究者用 Evolutionary Model Merge 方法演化出能够进行数学推理的日语大语言模型(LLM)和日语视觉语言模型(VLM)。实验结果表明这两个模型在没有经过明确优化的情况下,在多个 LLM 和视觉基准上都取得了 SOTA 结果。其中,进行数学推理的日语 LLM 是一个 7B 参数模型,在大量日语 LLM 基准上取得了顶级性能,甚至超过了一些 SOTA 70B 参数 LLM。
  1. 相比于其他模型合并算法,该工作具有以下优势:
    1. 自动化探索能力:Evolutionary Model Merge 方法能够自动生成新的基础模型,而不需要任何基于梯度的训练;能够自动探索大量可能的模型组合,发现那些可能被人类专家忽视的新颖且有效的模型合并方案。
    2. 跨领域合并:该方法不仅适用于相同领域的模型合并,还能够跨越不同领域(如非英语语言与数学,或非英语语言与视觉)进行有效的模型合并。
    3. 高效率与泛化能力:该方法合并的模型在参数数量较少的情况下,其性能超过了一些参数数量更多的先前最先进的模型,显示出高效率和出色的泛化能力。
    4. 避免过度拟合:与一些模型合并方法可能过度拟合特定基准任务不同,进化算法通过优化多个不同任务的性能,促进了模型的泛化能力。
    5. 探索新模型构建块:进化算法不仅能够优化现有模型的权重,还能够探索不同模型层的堆叠,从而有可能创造出全新的神经架构。

相比 MoE,用进化算法做 Model Merging 更有前景吗?

  1. 用进化算法做模型合并的优势在于其自动化和跨领域的能力,能够发现新颖的模型组合并提升性能,尤其适合于开源社区和资源有限的场景。
  1. MoE 模型的优势在于其稀疏性和可扩展性,能够在不增加推理成本的情况下增加模型的参数,适用于需要处理复杂任务和大规模数据的场景。
  1. MoE 模型更适合于特定任务的优化和提升,而用进化算法做模型合并更适合于探索新的模型结构和跨领域应用
表:用进化算法做模型合并与 MoE 的不同特征对比
用进化算法做模型合并
MoE
1. 适用于不同领域模型的合并
1. 仅支持统一基座模型的混合
2. 合并的模型会继承源模型的局限性,可能会产生缺之逻辑连贯性的响应的情况。
2. 模型可以通过增加专家的数量和种类来扩展,保持或提高性能。
3. 在初期的探索阶段,需要大量的计算资源来探索和评估不同的模型组合。每次迭代都可能涉及多个模型的训练和测试。
3. MoE模型通过稀疏激活机制在推理阶段只激活相关的专家模型,这显著降低了整体的计算成本。这种机制使得MoE模型在处理特定输入时更加高效。
4. 该研究未包括指令微调或对齐,可能会导致模型产生的输出可能存在事实错误
4. MoE 结合指令调优技术,可以在多个任务上表现出色,在处理复杂任务时更加高效。

先做好 Agent 会比期待 GPT-5 更靠谱吗?

日期: 3 月 27 日
事件: 斯坦福大学教授吴恩达在一场演讲[9]中提出,Agentic Workflow 工作流将在今年推动人工智能取得巨大进步,甚至可能超过下一代基础模型。这是一个值得所有人关注的趋势。

为什么需要关注 Agentic Workflow?

吴恩达在一场演讲中分享了他对 AI 智能体中的所见所得,并表示为之感到兴奋。吴恩达表示所有 AI 从业者都应当关注 Agentic Workflow:
  1. 吴恩达表示,Agentic Workflow 在提升人工智能应用性能和输出质量方面拥有巨大潜力。
    1. 在传统零样本(zero-shot)条件下,LLMs 被提示逐个生成最终输出,过程不允许退回修改,类似要求一个人一次性写完一篇文章,但期望得到高质量的结果。
    2. Agentic Workflow 允许 LLMs 多次迭代文档,通过计划大纲、决定是否需要网络搜索、撰写初稿、审阅初稿以及修订草稿等步骤。
    3. 这种迭代过程对于人类写作者来说至关重要,对于 AI 来说同样比单次写作得到的结果更优。
  1. 吴恩达的团队分析了多个研究团队的结果,发现整合了迭代工作流程的 LLM 作为智能体,其表现比采用更强的基础模型提升更大。
      • 在 HumanEval 编码基准测试中,虽然从 GPT-3.5 到 GPT-4 的准确率有所提高,但将迭代代理工作流程整合进来,GPT-3.5 的准确率可以达到 95.1%,这个提升远超从 GPT-3.5 到 GPT-4 的改进。
  1. 吴恩达表示,如果用户当前正期待以零样本条件在 GPT-5、Claude 4 等尚在构建的模型中运行任务,做好 AI 智能体或许能得到类似的更好的结果。

什么是 Agentic Workflow?

  1. 根据吴恩达在演讲及博客中的介绍,Agentic Workflow 是与 LLM 交互和完成任务的一种新方法。
    1. 传统与 LLM 交互的模式会通过直接输入一个提示,然后有 LLM 基于该提示直接输出结果
    2. Agentic Workflow 的交互过程类似将任务拆解为多个子任务,引导 LLM 按步骤完成每个子任务,并将其输出作为下一步的输入,如此循环往复,直到最终生成期望的结果。。
  1. Agentic Workflow 允许模型在执行任务时采取更复杂、更动态的策略,类似于人类在解决问题时的思考和行动过程。
  1. 吴恩达将 Agentic Workflow 的设计模式总结为四种类型:
    1. 反思(Reflection):智能体检查自己的工作,并提出改进方法。例如,智能体可以生成一段代码,然后自我反思代码的正确性、风格和效率,并提出建设性的意见来改进代码。
    2. 工具使用(Tool use):智能体利用外部工具,如网络搜索、代码执行等,来帮助收集信息、采取行动或处理数据。
    3. 规划(Planning):智能体提出并执行一个多步骤计划来实现目标,例如撰写论文大纲、进行在线研究,然后撰写草稿等。
    4. 多智能体协作(Multi-agent collaboration):多个 AI 智能体共同工作,分配任务并讨论和辩论想法,以提出比单个智能体更好的解决方案。
表:吴恩达推荐的 Agentic Fflow 四种设计模式的相关论文
notion image

反思模式很适合写代码吗?

吴恩达在文章《Agentic Design Patterns Part 2, Reflection》[10]中讨论了反思模式在提升大型语言模型(LLM)性能方面的潜力:
  1. 反思模式通过自动化批判性反馈的过程,使得 LLM 能够自我评估并改进其输出。这种方法模仿了人类在接收到批评后改进工作的过程。
  1. 反思模式的关键在于将关键反馈步骤交给自动化程序,让模型自动批评自己的输出并改进其响应
  1. 该文章以 LLM 编写代码为例,通过提示 LLM 直接生成所需的代码来执行某些任务 X,然后可以提示它反思自己的输出。例如:
    1. 提示 LLM 此前生成的代码和建设性反馈。
    2. 要求 LLM 使用反馈来重写代码,从而得到更好的响应。
    3. 这种自我反思过程使 LLM 能够发现差距并改善其在各种任务上的输出,包括生成代码,编写文本和回答问题。
  1. 对于帮助智能体达到更好的反思效果,还可以通过提供 LLM 工具来帮助评估输出,或是采用多智能体框架进行分工。
    1. 例 1:通过单元测试检查代码是否在测试用例上生成正确的结果,或者搜索网络以核实文本输出,然后由智能体反思任何发现的错误并提出改进想法。
    2. 例 2:建立两个智能体,一个负责输出,一个负责对前者的输出提供建议和批评,通过两者之间的讨论来改进响应。

工具使用模式会让 LLM 更具实用性?

吴恩达在文章《Agentic Design Patterns Part 3, Tool Use》[11] 中讨论了工具使用模式对 Agentic Workflow 的影响:
  1. 工具使用指 LLM 不仅仅依赖于其内部知识和能力,而是通过调用外部工具来扩展其功能。这些工具可以用于搜索、代码执行、提高生产力等,从而增强 LLM 的实用性和效率。
  1. 文章表示,当前已有面向消费者的 LLM 整合了网络搜索或执行代码的功能,但工具的使用远远超出了这些例子。
  1. 在 Agentic Workflow 的工具使用中,开发者已经在尝试使用函数来搜索不同的信息源(如网络、Wikipedia、arXiv 等),与生产力工具(如发送电子邮件、读写日历条目等)进行接口,生成或解释图像。
  1. 文章还提到我们可以使用包含详细描述的提示词来指引 LLM 使用不同的工具,比如包含功能文本描述的词或与目标功能有关的参数信息等。
      • LLM 有时会被训练成可访问上百种工具的形式。这种情况下,由于功能的描述过多,无法被整合在模型上下文中,因此还可以使用启发式方法来选择最相关的子集,类似 Gorilla 论文中使用 RAG 的模式。

规划模式带来了什么惊喜?

吴恩达在文章《Agentic Design Patterns Part 4, Planning》[12]中指出,如果在要求 LLM 执行任务前规划必要的步骤,那么 LLM 将成为能够执行复杂任务的智能体。
  1. 规划模式是指让 LLM 来自主决定哪些步骤序列以完成一个更大的任务。例如,当我们要求代理进行在线研究时,我们可能会使用 LLM 将目标分解为较小的子任务,如研究特定子主题、综合发现并编写报告。
  1. 吴恩达在文章中分享了自己在演示智能体时的惊喜,并将其称为「AI Agentic」时刻:
    1. 吴恩达在测试智能体时,该智能体始终使用网络搜索工具来收集信息并撰写摘要。
    2. 在现场演示时,网络搜索 API 意外返回并出现速率限制错误,按智能体以往的行为逻辑可能会演示失败。但智能体巧妙地转向维基百科搜索工具(此前提供过),并使用维基百科而不是网络搜索完成了任务。
  1. 许多智能体的工作流程并不需要规划,比如已经设置好反思或是固定输出步骤的情况,但对于某些无法提前将制定任务拆解的情况,规划模式能够让智能体动态决定执行步骤,完成步骤复杂的任务。
  1. 吴恩达表示,规划是一种很强的能力,但尚不成熟,也会导致难以预测的结果。

多智能体协同带来了哪些机会?

吴恩达在演讲中以清华、北邮和大连理工等机构开发的 ChatDev [14] 为例,分享了多智能体协同带来的机会:
  1. ChatDev 是一个虚拟的、由聊天驱动的软件开发公司,它模仿传统的瀑布模型,将开发过程严格分为设计、编码、测试和文档编写四个阶段。
    1. 每个阶段都涉及一组「软件代理」,如程序员、代码审查员和测试工程师,通过协作对话促进无缝的工作流程。
    2. ChatDev 的多智能体机制包含角色分工、聊天链、记忆流、自我反思、代码管理和思维指导六个主要组成部分。
  1. ChatDev 通过提示词让智能体扮演不同角色,如软件引擎公司 CEO、设计师、产品经理等。它们会相互协作,分工完成写代码、测试、迭代等工作。
  1. ChatDev 生成的应用有时无法运行,有时候十分惊艳,但证明了让多个智能体一起工作也是一个强大的设计模式。
 

参考文献

  1. 离职谷歌的Transformer作者创业,连发3个模型(附技术报告)
  1. 刚刚,Mistral AI最新磁力链放出!8x22B MoE模型,281GB解禁
  1. Merge Large Language Models
  1. 使用mergekit 合并大型语言模型
  1. Deep Model Fusion: A Survey
  1. Evolutionary Optimization of Model Merging Recipes
  1. Mixture of Experts Explained
  1. 开源模型的下一个大跳跃:多个小 LLM “组合” PK 千万亿级大模型
  1. 吴恩达:别光盯着GPT-5,用GPT-4做个智能体可能提前达到GPT-5的效果
  1. Agentic Design Patterns Part 2, Reflection
  1. Agentic Design Patterns Part 3, Tool Use
  1. Agentic Design Patterns Part 4, Planning
  1. Communicative Agents for Software Development
 
机器学习
  • 机器学习
  • 科研
  • 摘抄
  • ICLR2024 | 结合加性个性化的联邦推荐Hierarchical Sequential Transduction Unit