分类: 🌏

  • 自进化智能体:符号学习的力量

    引言

    人工智能领域正在探索通向通用人工智能(AGI)的道路,其中一个重要方向是开发”语言智能体”。语言智能体是复杂的大型语言模型(LLM)管道,涉及提示技术和工具使用方法。虽然语言智能体在许多现实世界任务中展现了令人印象深刻的能力,但当前语言智能体研究的一个根本局限性在于它们是以模型为中心或以工程为中心的。也就是说,语言智能体的提示、工具和管道的进展需要人类专家而非自动从数据中学习进行大量的手动工程努力。

    我们认为,语言智能体从以模型为中心或以工程为中心向以数据为中心的转变,即语言智能体在环境中自主学习和进化的能力,是它们可能实现AGI的关键。

    智能体符号学习

    为了实现这一目标,本文介绍了智能体符号学习,这是一个系统框架,能够使语言智能体以数据为中心的方式使用符号优化器自我优化。具体而言,我们将智能体视为符号网络,其中可学习的权重由提示、工具以及它们的堆叠方式定义。智能体符号学习旨在通过模仿连接主义学习中的两个基本算法来优化语言智能体中的符号网络:反向传播和梯度下降。与处理数值权重不同,智能体符号学习使用自然语言模拟权重、损失和梯度。

    智能体符号学习框架的主要组成部分包括:

    1. 智能体管道(Agent Pipeline):类似于神经网络中的计算图,表示智能体处理输入数据的节点(或步骤)序列。
    2. 节点(Node):智能体管道中的单个步骤,类似于神经网络中的层。每个节点接收输入,使用LLM、提示和工具进行处理,然后输出结果。
    3. 轨迹(Trajectory):存储前向传播过程中的所有信息,包括每个节点的输入、输出、提示和工具使用情况。
    4. 语言损失(Language Loss):通过精心设计的提示实现的自然语言损失函数,用于评估智能体的输出结果。
    5. 语言梯度(Language Gradient):用于更新智能体中每个组件的文本分析和反思。

    智能体符号学习的工作流程如下:

    1. 前向传播:执行标准智能体操作,同时将信息存储在轨迹中。
    2. 语言损失计算:使用精心设计的提示模板计算语言损失。
    3. 语言梯度反向传播:从最后一个节点到第一个节点迭代,计算每个节点的梯度。
    4. 基于语言梯度的更新:使用符号优化器更新每个节点中的提示和工具,以及整体智能体管道。

    实验结果

    为了验证智能体符号学习框架的有效性,我们在标准LLM基准测试和复杂的智能体任务上进行了一系列实验。

    标准LLM基准测试结果

    在HotpotQA、MATH和HumanEval等标准LLM基准测试上,智能体符号学习框架始终优于所有比较方法。特别是在MATH(一个竞赛级别的基准测试)上,性能提升尤为显著。相比之下,传统的基于LLM的提示优化方法和基于搜索的提示优化方法并不稳定:在某些情况下会带来良好的性能提升,但在其他情况下会导致显著的性能下降。这表明智能体符号学习框架更加稳健,能够更有效地优化语言智能体的整体性能。

    复杂任务结果

    在软件开发和创意写作这两个复杂任务上,我们的方法显著优于所有比较基线,性能差距比在常规LLM基准测试上更大。有趣的是,我们的方法在创意写作任务上甚至超过了精心设计的思维树(Tree-of-Thought)提示工程和推理算法。我们发现,我们的方法成功地找到了计划、写作和修订的管道,并且每个步骤中的提示都得到了很好的优化。我们还发现,智能体符号学习框架恢复了类似于MetaGPT(一个专门为软件开发设计的智能体框架)中开发的标准操作程序。

    案例研究与分析

    我们展示了智能体符号学习框架在创意写作任务上的优化动态案例研究。结果表明,我们的方法能够有效地进行提示工程并设计智能体管道,方式类似于人类专家开发语言智能体的方式。

    此外,我们发现智能体系统的初始化对最终性能有不可忽视的影响,就像神经网络的初始化对训练很重要一样。总的来说,我们发现以最简单的方式初始化智能体,然后让符号优化器进行优化通常是有帮助的。相比之下,如果初始智能体系统过度工程化,性能往往会变得不稳定。

    结论

    本文介绍了智能体符号学习,这是一个能够联合优化智能体系统内所有符号组件的智能体学习框架。智能体符号学习框架借鉴了标准连接主义学习程序的灵感来进行符号学习。它使用基于语言的损失、梯度和优化器来优化提示、工具和智能体管道,以提高智能体系统的整体性能。

    我们的框架是首次尝试优化能够使用复杂管道解决复杂现实世界任务的智能体。我们的框架使语言智能体能够”从数据中学习”并在创建和部署后在野外进行”自我进化”。我们进行了几个概念验证实验,表明智能体符号学习框架可以有效地优化不同任务复杂度的智能体。

    我们相信,从以模型为中心到以数据为中心的智能体研究转变是朝着通用人工智能迈进的一个有意义的步骤。我们开源了智能体符号学习框架的代码和提示,以加速这一转变。

    参考文献

    1. Zhou, W. et al. (2023). Symbolic Learning Enables Self-Evolving Agents. arXiv preprint arXiv:2406.18532v1.
    2. Brown, T. et al. (2020). Language models are few-shot learners. Advances in Neural Information Processing Systems, 33, 1877-1901.
    3. Park, J. S. et al. (2023). Generative agents: Interactive simulacra of human behavior. arXiv preprint.
    4. Khattab, O. et al. (2023). Dspy: Compiling declarative language model calls into self-improving pipelines. arXiv preprint arXiv:2310.03714.
    5. Zhang, S. et al. (2024). Offline training of language model agents with functions as learnable weights. arXiv preprint.
  • 解锁基础模型的黑盒:CCE 助力概念学习的组合性

    人工智能的快速发展催生了强大的基础模型,但其“黑盒”性质也带来了调试、监控和信任方面的挑战。概念解释作为一种新兴方法,试图用人类可理解的概念来解释模型行为,例如将狗的图像嵌入分解成代表其毛皮、鼻子和尾巴的概念向量。

    然而,现有的无监督概念提取方法,如 PCA 或 KMeans,虽然能提取基本概念,却无法保证概念的组合性。例如,能识别“白色鸟类”和“小型鸟类”的概念,却无法组合出“小型白色鸟类”。

    概念组合性的重要性

    概念的组合性对多个 AI 应用至关重要。它可以解释模型预测,编辑模型行为,并训练模型组合基本概念以完成新任务。

    本文研究了组合概念的无监督提取,并评估了现有方法的不足。我们发现,来自不同属性的概念(例如颜色和形状)大致正交,而来自相同属性的概念则不正交。这些性质对于概念的组合性至关重要,而现有方法未能强制执行这些性质,导致提取的概念表示往往不可组合。

    CCE:一种新的组合概念提取方法

    为了解决这个问题,我们提出了组合概念提取 (CCE)。CCE 的关键在于一次性搜索整个概念子空间,而不是单个概念,并强制执行组合概念的正交性。

    CCE 采用两步过程:LearnSubspace 和 LearnConcepts。LearnSubspace 优化子空间,使数据在该子空间内根据固定的质心变得很好地聚类。LearnConcepts 则在该子空间内执行球形 K-Means 聚类来识别概念。通过联合学习子空间和聚类质心,CCE 确保了概念之间的正交性,并通过正则化防止过拟合。

    实验结果:CCE 的有效性验证

    我们在视觉和语言环境中的五个数据集上评估了 CCE,包括 CLEVR、CUB、HAM10000、Truth 和 News。实验结果表明:

    • 在受控环境中,CCE 的组合性分数优于所有基线方法,并与真实概念表示的分数相当,表明 CCE 学习到的概念与真实概念高度一致。
    • 在真实数据环境中,CCE 能够识别出合理的概念,例如“白色鸟类”、“带框的鸟类”和“以“…’”结尾的文本”,甚至可以发现数据集中未标记的概念,如“手中鸟类”。
    • 在下游任务中,随着概念数量的增加,CCE 逐渐获得性能优势,最终优于所有无监督基线方法,甚至超过了直接使用样本嵌入的性能。

    结论

    CCE 是一种有效的组合概念提取方法,它不仅可以学习组合概念,还可以提高下游性能。我们的研究表明,无需大型数据集或巨大的计算能力即可开发出极具竞争力的多模态对话模型。未来工作将探索更复杂的模态自适应架构,以进一步增强 CCE 的功能。

    参考文献

    (1) Hello GPT-4o. URL https://openai.com/index/hello-gpt-4o/.

    Zou et al. (2023b) Zou, A. , Phan, L., Chen, S., Campbell, J., Guo, P., Ren, R., Pan, A., Yin, X., Mazeika, M., Dombrowski, A.-K., et al. Representation engineering: A top-down approach to ai transparency. arXiv preprint arXiv:2310.01405, 2023b.

  • PrExMe:大规模提示探索用于机器翻译和摘要评估的开源LLM

    引言

    近年来,大型语言模型(LLMs)的迅速发展为自然语言处理(NLP)领域带来了范式转变。特别是,这些模型的上下文学习能力使其能够作为自然语言生成(NLG)任务的评估指标,从而在低资源场景和时间受限的应用中表现尤为出色。在本文中,我们介绍了PrExMe,一种大规模的提示探索方法,旨在评估超过720种开源LLM提示模板在机器翻译(MT)和摘要数据集上的表现,总共进行了超过6.6百万次评估。这项广泛的比较研究不仅作为最近开源LLM性能的基准,还探讨了不同提示策略的稳定性和变异性。我们发现,虽然在某些场景中提示是稳定的,但在其他场景中,提示和模型排名的稳定性可能会受到看似无害的变化的影响。例如,将请求的输出格式从“0到100”更改为“-1到+1”会显著影响我们的评估排名。我们的研究有助于理解不同提示方法对LLM评估指标性能的影响,突出了最稳定的提示模式及其潜在的局限性。我们公开了代码,供进一步研究使用:https://github.com/Gringham/PrExMe

    相关工作

    基于提示的评估指标

    基于LLM的NLG评估指标的最新进展通常依赖于上下文学习,直接从生成的文本中预测质量判断。Li等人(2024b)和Gao等人(2024a)的调查提供了这些指标的全面概述。然而,许多现有的方法都依赖于封闭源模型。在Eval4NLP 2023共享任务中,研究人员限制了使用选定的开源LLM,并禁止对这些模型进行微调。这些提交中提出了许多有趣的技术,但它们仅探讨了少数几种提示,缺乏对提示模式的全面分析。

    提示技术

    近年来,许多成功的提示技术被提出(例如,Liu等人,2023a)。我们的工作主要依赖于已建立的方法,如零样本链式推理(Zero-Shot CoT)和检索增强生成(RAG)。此外,Li等人(2023)提出了情感诱导提示,以提高LLM性能。我们首次分析了这种技术在评估指标中的应用。

    提示稳定性

    我们的工作在广泛的提示、数据集和任务的网格搜索基础上,扩展了LLM对提示扰动的响应研究。Webson和Pavlick(2022)、Leidinger等人(2023)、Weber等人(2023)和Sclar等人(2023)发现自然语言推理和情感分类的性能变化范围很大。为了解决这个问题,Sclar等人(2023)建议提供不同提示扰动下的完整结果范围。我们是首个研究这些稳定性问题对开源LLM评估指标影响的团队,并探索如何选择最佳提示。

    实验设置

    提示模板

    我们的提示是基于层级模板构建的,即一个大模板由多个小模板组成。每个提示由以下部分组成:(1)源文本和要评分的生成假设文本,(2)基础提示,(3)任务描述,(4)格式要求,以及(5)可选的一次性示例。基础提示是我们提示层级的顶层,包含其他组件。

    MQM基础方法

    除了层级模板,我们还测试了GEMBA-MQM的提示。GEMBA-MQM通常使用GPT-4进行评分,我们称其开源实现为LocalGemba。

    分数提取与评估

    我们将生成限制为180个标记,并提取作为分数的最后一个正则匹配。当没有找到结果时,我们将其他提示模板的平均分赋给该样本。我们在段落级别评估提示模板,即对于每个指标,我们计算指标分数与人工判断之间的相关性。我们使用肯德尔、皮尔逊和斯皮尔曼相关性作为主要度量,并计算肯德尔相关性结果的显著性测试(p≤0.075)。

    模型

    我们选择了在Eval4NLP 2023中表现出色的指令调优LLM进行评估,包括Platypus2-70B-GPTQ、Nous-Hermes-13b和OpenOrca-Platypus2-13B等。

    数据集和阶段

    我们的实验分为两个阶段,使用不同的数据集进行评估。第一阶段在Eval4NLP 2023的训练集上进行评估,第二阶段在开发集和测试集上进行评估。通过这种方式,我们可以评估提示在不同数据集和任务中的泛化性能。

    基线

    我们还提供了两个基线指标的相关性,包括BARTScore和XComet。

    结果

    在第一阶段,我们运行了超过665万次零样本提示和71,280次一次性提示。在第二阶段,我们评估了550多万次零样本提示和130多万次一次性提示。表2展示了每个LLM在不同任务和数据集上的肯德尔相关性。

    提示模式和模型的最佳表现

    我们发现不同模型对提示模式有独特的偏好。例如,Platypus-70B在9个任务中表现最佳,而Tower-13B在3个任务中表现出色。不同模型对提示模式的偏好也不同,例如Orca更喜欢PZS提示,而Tower更适合ZS-CoT和ZS-CoT-EM提示。

    提示稳定性

    我们量化了提示模式在数据集、模型和其他提示组件变化时的稳定性。结果表明,某些提示模式在不同数据集间具有较高的稳定性,而其他提示模式则表现出显著的变异性。

    建议

    通过我们的研究,我们为使用开源提示基准指标提供了一些建议。Platypus2-70B在评估任务中表现最佳,对于13B模型,Tower和Orca在MT和摘要任务中表现出色。我们建议使用这些模型中最常见的提示模式作为初始选择,并根据实际需求进行调整。

    结论

    我们引入了PrExMe,一种大规模提示探索方法,用于提示基准的开源NLG指标。我们评估了720种不同的提示模板和超过6.6百万个提示,并提供了使未来这种类型的指标更加稳健的建议。此外,我们的研究成果为最近的开源LLM在此任务中的应用提供了比较和分析。

    以上是对PrExMe研究的详细介绍和分析,希望能为未来的研究提供有价值的参考。

  • 驾驭语言模型:大型语言模型应用的生产实践挑战与展望

    导语: 近年来,大型语言模型(LLM)在人工智能领域掀起了一场革命,其强大的文本生成和理解能力为众多应用场景带来了新的可能性。然而,将LLM应用从酷炫的演示转化为可实际部署的生产系统并非易事。本文将深入探讨LLM应用生产实践所面临的挑战,并结合实例分析解决方案,最后展望LLM应用的未来发展方向。

    一、生产环境下LLM应用面临的挑战

    1. 自然语言的模糊性

    不同于精确的编程语言,自然语言本身就带有模糊性。这种模糊性在LLM应用中主要体现在用户指令和模型输出两个方面。

    首先,用户指令的灵活性可能导致难以察觉的错误。例如,对代码进行微小的修改,例如添加字符或删除一行,通常会导致明显的错误提示。但如果对LLM的指令进行类似的修改,程序仍然可以运行,但输出结果可能大相径庭。

    其次,LLM输出结果的模糊性是更大的挑战。这会导致两个问题:

    • 输出格式不一致: LLM的后续应用通常需要解析特定格式的输出结果。虽然我们可以通过精心设计的指令来明确输出格式,但这并不能保证模型始终遵循预期的格式。
    • 用户体验不一致: 用户期望应用程序具有一致性。例如,我们不希望每次查询保险报价时都得到不同的结果。然而,LLM本身具有随机性,无法保证相同的输入每次都能得到相同的输出。

    为了解决这个问题,OpenAI等机构正在积极探索提高模型可靠性的方法。一些经验丰富的LLM开发者建议,我们需要适应这种模糊性,并围绕它构建工作流程。此外,通过尽可能提高工程严谨性,例如采用本文接下来讨论的各种方法,可以有效缓解LLM应用中的模糊性问题。

    2. Prompt工程的挑战

    Prompt工程是指设计和优化LLM输入指令的过程,其目标是引导模型生成符合预期的输出。

    • Prompt评估:
      • 评估LLM是否理解Prompt中给出的示例。例如,在情感分析任务中,可以输入一些带有情感标签的文本,观察模型是否能输出正确的情感得分。
      • 评估LLM是否对Prompt中的示例过拟合。可以通过使用独立的测试集来评估模型的泛化能力。
    • Prompt版本控制:
      Prompt的微小变化可能会导致输出结果的显著差异。因此,对Prompt进行版本控制和性能跟踪至关重要。可以使用Git等工具来管理Prompt的不同版本及其性能指标。
    • Prompt优化:
      • 使用“思维链”(Chain-of-Thought,COT)技术,引导模型解释其推理过程,从而提高输出结果的可解释性和准确性。
      • 生成多个输出结果,并选择最佳结果作为最终输出。例如,可以使用多数投票法或让LLM自身选择最佳结果。
      • 将复杂的Prompt分解成多个更小、更简单的Prompt,可以降低模型理解和推理的难度。

    3. 成本和延迟

    • 成本:
      OpenAI等API服务提供商通常根据输入和输出token的数量收费。更长的Prompt和输出意味着更高的成本。
    • 延迟:
      输出token的生成是顺序进行的,因此输出长度会显著影响延迟。此外,网络延迟和工程开销也会影响LLM应用的整体延迟。

    4. Prompting、微调和替代方案

    • Prompting: 为每个样本提供明确的指令,告诉模型如何响应。
    • 微调: 在特定任务的数据集上训练模型,使其学习如何响应,而无需在Prompt中明确说明。

    选择Prompting还是微调取决于数据可用性、性能要求和成本限制。

    • 数据量少: Prompting更易于上手,但Prompt的长度有限,无法包含大量示例。
    • 数据量大: 微调可以利用更多数据,并获得更好的性能。

    5. 其他挑战

    • 嵌入和向量数据库: 使用LLM生成文本嵌入,并将其存储在向量数据库中,可以高效地进行语义搜索和推荐。
    • 向后和向前兼容性: LLM模型会不断更新迭代,因此需要确保Prompt和应用逻辑的兼容性。

    二、任务组合能力

    实际应用中,LLM应用通常需要执行多个任务,并按照一定的控制流程进行组合。

    1. 多任务应用

    例如,“与数据对话”应用需要执行以下任务:

    1. 将用户的自然语言输入转换为SQL查询(LLM)。
    2. 在数据库中执行SQL查询(SQL执行器)。
    3. 将SQL结果转换为自然语言响应(LLM)。

    2. 代理、工具和控制流程

    • 代理:
      能够根据给定的控制流程执行多个任务的应用程序。
    • 工具:
      代理可以利用的外部程序或服务,例如搜索引擎、数据库、计算器等。
    • 控制流程:
      定义任务执行顺序和条件的逻辑,例如顺序执行、并行执行、条件分支、循环等。

    3. 使用LLM代理进行控制流程

    可以使用LLM来决定控制流程的条件。例如,可以训练LLM根据用户输入选择不同的工具或执行不同的任务。

    4. 代理测试

    为了确保代理的可靠性,需要对每个任务以及整个控制流程进行测试。

    三、LLM应用的未来发展方向

    • AI助手:
      能够帮助用户完成各种任务的智能助手,例如日程安排、笔记记录、编程辅助等。
    • 聊天机器人:
      能够与用户进行自然对话的智能程序,例如虚拟伴侣、游戏角色等。
    • 编程和游戏:
      LLM可以用于代码生成、代码调试、游戏开发等领域。
    • 学习:
      LLM可以用于自动生成测验、评估学生答案、提供学习建议等教育场景。
    • 与数据对话:
      LLM可以帮助用户使用自然语言查询和分析数据。
    • 搜索和推荐:
      LLM可以改善搜索结果的相关性和推荐系统的个性化程度。
    • 销售:
      LLM可以用于自动生成销售邮件、分析客户信息等。
    • SEO:
      LLM可以用于生成SEO优化内容,但同时也带来了新的挑战,例如如何区分人工编写和机器生成的内容。

    结语

    LLM应用仍处于早期发展阶段,技术和应用场景都在快速迭代。Prompt工程、成本控制、延迟优化、任务组合等方面都面临着挑战。然而,LLM也为AI助手、聊天机器人、编程、教育、数据分析、搜索推荐等领域带来了前所未有的机遇。相信随着技术的进步和应用的深入,LLM将为我们带来更加智能和便捷的未来。

    参考文献

    • Huyen, C. (2023). Building LLM applications for production. Retrieved from https://huyenchip.com/2023/04/11/llm-engineering.html
  • “毕昇”开源:为大模型应用开发按下“加速键”

    近年来,大型语言模型(LLM)的迅速发展彻底改变了人工智能领域,为智能应用的开发带来了前所未有的机遇。然而,将这些强大的模型转化为实际应用并非易事,开发者需要克服诸多挑战,例如高昂的开发成本、复杂的模型部署流程以及对专业知识的依赖等。在此背景下,一款名为“毕昇”(Bisheng)的开源大模型应用开发平台应运而生,旨在为广大开发者提供便捷、灵活、可靠的工具,助力他们快速构建和部署基于大模型的智能应用。

    “毕昇”是什么?

    “毕昇”是一款由 DataElem Inc. 公司开发的开源大模型应用开发平台,其名称源于中国古代活字印刷术的发明人——毕昇。活字印刷术的发明极大地促进了人类知识的传播,而“毕昇”平台也承载着同样的愿景,即推动智能应用的广泛落地,让更多人能够从大模型技术中受益。

    “毕昇”平台致力于解决当前大模型应用开发面临的痛点,为开发者提供以下核心功能:

    • 可视化应用编排: “毕昇”提供直观易用的可视化界面,即使不具备深厚技术背景的业务人员也能轻松构建大模型应用。
    • 丰富的组件库: 平台内置数百种预置组件,涵盖了大模型应用开发的各个方面,例如数据处理、模型调用、结果展示等,开发者可以像搭积木一样快速组装应用。
    • 灵活的流程编排: “毕昇”支持自由的流程编排,开发者可以根据实际需求灵活组合不同组件,构建复杂的大模型应用。
    • 企业级特性: 与其他主要面向实验测试场景的开源项目不同,“毕昇”平台提供了高可用、持续优化、实用功能等企业级特性,能够满足真实业务场景的需求。
    • 非结构化数据治理: “毕昇”平台集成了 DataElem Inc. 公司在非结构化数据治理领域积累的丰富经验,为开发者提供了强大的数据处理能力,能够有效应对企业内部数据质量参差不齐的挑战。

    “毕昇”能做什么?

    “毕昇”平台的应用场景十分广泛,可以用于构建各类基于大模型的智能应用,例如:

    • 分析报告生成: 合同审核报告、信贷调查报告、招股书分析报告、智能投资顾问报告、文档摘要等。
    • 知识库问答: 用户手册问答、研报知识库问答、规章制度问答、《中华药典》知识问答、股价数据库问答等。
    • 对话: 扮演面试官对话、小红书文案助手、扮演外教对话、简历优化助手等。
    • 要素提取: 合同关键要素提取、工程报告要素提取、通用元数据提取、卡证票据要素提取等。

    除了上述应用场景外,“毕昇”平台还将持续拓展更多应用形态的支持,例如流程自动化、搜索等,以满足不断变化的市场需求。

    如何使用“毕昇”?

    “毕昇”平台的安装和使用非常简单,开发者可以参考官方文档快速上手:

    “毕昇”平台的开源,为大模型应用的开发和落地提供了强大的助力,将进一步推动人工智能技术的普及和应用,为各行各业带来新的发展机遇。

    参考文献

    [1] Bisheng Github Repository. https://github.com/dataelement/bisheng/raw/main/README.md

  • LangChain:ChatGPT插件会干掉这位“Model as a Service”粘合剂吗?

    引言:AI 应用开发的新手村

    LangChain,一个在2022年10月底横空出世的开源 Python 库,凭借其对大量 LLM 应用开发逻辑和工具的封装,迅速成为了 AI 应用开发领域的热门话题。它就像一位新手村的导师,为初入 AI 应用开发领域的开发者们指明了方向。

    01 构建 AI 应用的挑战:不止于调用模型 API

    仅仅调用 LLM 的 API 并不能满足构建真正实用 AI 应用的需求。现阶段的 LLM 模型存在两大局限:

    1. 缺乏与外部世界的交互能力: 无法搜索网页、调用 API 或查询数据库。
    2. “记忆”有限且不完美: 训练数据截止日期限制和缺乏私有数据,导致模型无法获取最新信息,甚至可能给出与事实相悖的答案。

    02 LangChain 的解决方案:为 LLM 插上“手臂”、注入“上下文”

    LangChain 的出现为解决上述问题提供了有效方案,它通过以下方式增强了 LLM 的能力:

    • 注入“上下文”: 利用 Map Reduce 思想,将长文本切片、使用 Embedding 引擎和向量数据库,突破 token 数量限制,为模型提供更丰富的背景信息。
    • 赋予“行动能力”: 集成搜索引擎、数据库、API 等外部工具,让 LLM 能够与外部世界交互,执行更复杂的任务。

    以构建 300 页书籍问答机器人为例:

    1. 将书籍切分为多个文本块,并利用 Embedding 引擎将其转换为向量。
    2. 将向量存储在向量数据库(例如 Pinecone)中。
    3. 当用户提问时,将问题转换为向量,并在向量数据库中搜索语义最接近的文本块作为答案。

    LangChain 在这一过程中提供了完整的工具集成和逻辑封装,大大简化了开发流程。

    03 LangChain 的核心身份:LLM 的增强器和粘合剂

    LangChain 扮演着多重角色,其中最重要的是:

    • 让 LLM 拥有上下文和行动能力的首选工具: 通过 Chain、Agent、Memory 等模块,为 LLM 提供了与外部世界交互、获取信息和执行复杂任务的能力。
    • 所有 LLM Ops 工具的粘合剂: LangChain 集成了各种 LLM、Embedding 引擎、向量数据库等工具,并提供统一的接口,方便开发者灵活选择和组合使用。
    • 快速崛起的开源社区: LangChain 拥有庞大且活跃的开源社区,不断贡献新的功能和集成,推动着 LLM 应用开发的发展。

    04 面临的挑战:Prompt Ops 的质疑和商业化困境

    尽管 LangChain 发展迅速,但也面临着一些挑战:

    • 商业化困境: 作为一个开源项目,LangChain 的商业模式尚不明确,难以吸引大型企业付费使用。
    • Prompt Ops 的局限性: 过度依赖 Prompt Engineering,可能导致应用逻辑过于复杂,难以维护和扩展。

    05 竞争格局:以和为贵,各展神通

    LangChain 的竞争对手主要包括 GPT-Index、Microsoft Semantic Kernel、Dust 等。这些工具各有优劣,LangChain 凭借其灵活性和强大的功能,在开发者群体中保持着领先地位。

    06 未来展望:Harrison 的雄心壮志

    LangChain 创始人 Harrison Chase 并不满足于仅仅做一个开源项目,他希望构建更强大的开发者工具,推动 AI 应用开发的普及。

    结语:

    LangChain 作为 LLM 应用开发领域的先驱者,为开发者们提供了一套强大的工具和框架。尽管面临着一些挑战,但 LangChain 的未来依然充满希望。

    参考文献:

  • RLHF 家族的奇巧魔改:On Policy 与 Off Policy 路线大PK

    随着 [Llama3] 的开源,Alignment 的重要性日益凸显,而作为 Alignment 中坚力量的 RLHF 家族也愈发繁荣。今天,我们就来一起探索一下 RLHF 领域中那些令人拍案叫绝的魔改思路吧!

    On Policy vs. Off Policy:究竟谁更胜一筹?

    在 LLM 领域,RLHF 主要分为两大路线:

    • On Policy 路线: 以 [PPO] 为代表,需要 LLM 在训练过程中实时生成文本。
    • Off Policy 路线: 以 [DPO] 为代表,不需要 LLM 在训练过程中实时生成文本,而是利用已有的数据进行学习。

    On Policy 方法通常需要更大的算力支持,训练时间也更长,但理论上具有更高的效果上限。

    On Policy:让模型亲自上阵

    On Policy 方法强调让模型在训练过程中“亲力亲为”,根据自身生成结果的好坏来学习改进。

    举个例子,想象一下你正在学习玩王者荣耀:

    • On Policy: 你亲自上阵,旁边有一位教练实时指导你的操作,当你成功推塔时给予鼓励,当你失误被杀时及时提醒。
    • Off Policy: 你观看大量职业选手和青铜玩家的对局视频,学习前者的优秀操作,避免后者的低级失误。

    On Policy 方法的优势在于训练数据与模型能力完全匹配,因为所有数据都是由当前模型生成的。

    Off Policy:站在巨人的肩膀上学习

    Off Policy 方法则侧重于利用已有数据进行学习,模型不需要亲自生成答案,因此训练速度更快,对算力要求更低。

    然而,Off Policy 方法的效果很大程度上取决于训练数据的质量和与模型能力的匹配程度。如果数据质量不高,或者与模型能力相差太远,那么训练效果就会大打折扣。

    1. On Policy 路线:PPO 及其优化

    1.1 ReMax:丢掉 Critic,轻装上阵

    [ReMax] 提出了一种大胆的想法:丢弃 PPO 中的 Critic 网络,让 Actor 直接与 Reward Model 对齐。

    这样做的好处显而易见:

    • 减少模型参数: 从 4 个模型减少到 3 个,参数量大幅降低。
    • 加速训练: 不再需要更新 Critic 网络,反向传播速度更快。

    ReMax 的核心在于使用“当前策略”认为最好的行为来作为 baseline,从而在没有 Critic 的情况下降低方差,稳定训练。

    1.2 GRPO:暴力求均值,效果依旧惊艳

    [DeepSpeek-v2] 中提出的 [GRPO] 算法则采取了另一种思路:保留 PPO 中 importance sampling 和 clip 等先进机制,但使用暴力采样求均值的方式来代替 Critic 网络。

    GRPO 的优势在于:

    • 简化模型结构: 无需 Critic 网络,降低了模型复杂度。
    • 保留 PPO 优势: 保留了 PPO 中的优秀机制,保证了训练效果。

    1.3 其他 On Policy 优化方向

    除了 ReMax 和 GRPO 之外,研究人员还探索了其他优化 PPO 算法的方向,例如:

    • 分布式 PPO: 将训练任务分配到多个 GPU 或 TPU 上,加快训练速度。
    • 基于 Transformer 的 PPO: 利用 Transformer 模型强大的表征能力,提升策略网络的性能。

    2. Off Policy 路线:DPO 及其改进

    2.1 DPO:最大化概率差,简单高效

    [DPO] 算法的思路非常直观:对于同一个 prompt,通过降低“坏答案”的采样概率,提升“好答案”的采样概率,从而训练模型。

    DPO 的优势在于:

    • 训练高效: 无需模型生成文本,训练速度快。
    • 数据利用率高: 可以充分利用已有的 pair 数据。

    2.2 DPOP:添加正则项,防止模型“训崩”

    DPO 算法存在一个问题:在某些情况下,”好答案” 和 “坏答案” 的采样概率会同时降低,导致模型效果不佳。

    为了解决这个问题,[DPOP] 算法在 DPO loss 的基础上加入了一个正则项,旨在:

    • 当模型对 “好答案” 拟合不足时,鼓励模型更多地学习 “好答案”。
    • 当模型对 “好答案” 拟合较好时,着重降低 “坏答案” 的采样概率。

    2.3 TDPO:引入 KL 惩罚,平衡效率与多样性

    与 PPO 类似,[TDPO] 算法也在 DPO 的 loss 函数中引入了 KL 惩罚项,用于限制模型更新幅度,防止过拟合。

    与 PPO 不同的是,TDPO 使用的是 forward KL,而不是 backward KL。这样做的好处是:

    • 输出多样性更高: forward KL 鼓励模型覆盖更广泛的概率分布,从而生成更多样化的文本。

    2.4 ORPO:抛弃参考模型,化繁为简

    [ORPO] 算法则更进一步,试图连 reference model 也一并省去。

    ORPO 的 loss 函数由两部分组成:

    • SFT Loss: 保证模型对 chosen response 的基本拟合。
    • Odds Ratio Loss: 通过最大化“好答案”与“坏答案”的 odds 值之比,来提升模型对“好答案”的偏好。

    结语

    无论是 On Policy 还是 Off Policy,RLHF 家族的“魔改”之路都充满了奇思妙想。相信随着研究的深入,RLHF 技术将会在 Alignment 领域发挥越来越重要的作用。

  • PowerInfer-2: Unlocking High-Speed Large Language Model Inference on Smartphones

    In the rapidly evolving landscape of artificial intelligence, Large Language Models (LLMs) have become indispensable tools, offering unparalleled capabilities in understanding and generating human-like text. Traditionally, these models have been deployed in data centers equipped with powerful GPUs, but there’s a growing trend to bring these capabilities to more ubiquitous devices like smartphones. This shift aims to leverage rich personal data while maintaining privacy by keeping computations local. However, deploying LLMs on smartphones presents significant challenges due to their limited processing power and memory. Enter PowerInfer-2, a groundbreaking framework from the Institute of Parallel and Distributed Systems (IPADS) at Shanghai Jiao Tong University, designed to tackle these challenges head-on.

    Introduction to PowerInfer-2

    PowerInfer-2 is an innovative framework specifically engineered for high-speed inference of LLMs on smartphones, even for models whose sizes exceed the device’s memory capacity. The key to PowerInfer-2’s success lies in its ability to utilize the heterogeneous computation, memory, and I/O resources available in modern smartphones. By decomposing traditional matrix computations into fine-grained neuron cluster computations, PowerInfer-2 significantly enhances inference speed and efficiency.

    Key Features of PowerInfer-2

    1. Polymorphic Neuron Engine: Adapts computational strategies for various stages of LLM inference.
    2. Segmented Neuron Caching: Minimizes and conceals I/O overhead.
    3. Fine-Grained Neuron-Cluster-Level Pipelining: Reduces computational delays caused by I/O operations.
    4. Support for Large Models: Capable of running models with up to 47 billion parameters.

    Technical Insights

    Heterogeneous Computation Utilization

    PowerInfer-2 leverages the heterogeneous hardware present in smartphones, such as asymmetric big.LITTLE CPU cores, GPUs, and NPUs. This approach allows the framework to dynamically adapt to the strengths of each component during the different stages of LLM inference.

    Prefill Stage

    During the prefill stage, which processes all tokens in the input sequence concurrently, PowerInfer-2 employs the NPU to handle large matrix computations. This stage benefits from the NPU’s efficiency in processing dense computations, significantly speeding up the generation of the first token.

    Decoding Stage

    In the decoding stage, where tokens are generated sequentially, PowerInfer-2 utilizes small neuron clusters and CPU cores to handle the sparse computations. This method leverages the flexibility of CPU cores, which are well-suited for the lighter computational tasks associated with sparse activations.

    Neuron Caching and Pipelining

    PowerInfer-2 introduces a segmented cache that operates at the neuron granularity level. This cache is designed to enhance the cache hit rate and reduce the impact of I/O overhead on inference performance. By overlapping I/O operations with neuron cluster computations, the framework minimizes waiting times and maximizes throughput.

    Offline Planner

    Before running a new model on a smartphone, PowerInfer-2 executes an offline planning phase. This phase analyzes the model and hardware specifications to generate an execution plan that optimally configures computation, memory, and I/O resources. This plan ensures that inference is performed efficiently, even for models that do not fit entirely in memory.

    Implementation and Evaluation

    PowerInfer-2 has been implemented with an additional 12,000 lines of code on top of the original PowerInfer framework. The researchers deployed it on two smartphones: OnePlus 12 and Ace 2, equipped with Qualcomm XPUs and 24GB and 16GB of DRAM, respectively.

    Supported Models

    PowerInfer-2 supports a diverse array of LLMs, including:

    • Llama-2 (7B, 13B)
    • TurboSparse-Mistral (7B)
    • TurboSparse-Mixtral (47B)

    Performance

    The evaluation of PowerInfer-2 shows impressive results:

    • Speed: Up to 29.2× speed increase compared to state-of-the-art frameworks.
    • Memory Efficiency: Approximately 40% reduction in memory usage for smaller models while maintaining comparable inference speeds.

    Notably, PowerInfer-2 is the first system to support the TurboSparse-Mixtral-47B model on mobile platforms, achieving a generation speed of 11.68 tokens per second.

    Real-World Applications

    To demonstrate its practical utility, PowerInfer-2 was tested on various real-world tasks such as multi-turn dialogue, code generation, math problem solving, and role play. The framework consistently delivered high performance across these diverse tasks, showcasing its robustness and versatility.

    Conclusion

    PowerInfer-2 represents a significant advancement in the deployment of LLMs on smartphones. By harnessing the heterogeneous resources of modern smartphones and optimizing computation, memory, and I/O operations, PowerInfer-2 enables high-speed, efficient inference for even the largest models. This innovation opens up new possibilities for privacy-preserving, intelligent personal assistants and other applications that require powerful language understanding and generation capabilities on mobile devices.

    For more details and a demonstration video, visit the PowerInfer-2 project site.

  • Mamba:线性时间序列建模,超越Transformer的效率与性能

    近年来,深度学习领域涌现出许多令人惊叹的应用,而这些应用背后的核心力量往往是基于Transformer架构及其核心注意力机制的“基础模型”。为了解决Transformer在处理长序列时计算效率低下的问题,许多次二次时间复杂度的架构被开发出来,例如线性注意力、门控卷积、循环模型和结构化状态空间模型(SSMs)。然而,这些模型在语言等重要模态上的表现却不如注意力机制出色。

    本文将深入探讨这些模型的局限性,并提出一种全新的选择性状态空间模型,它在多个方面超越了先前工作,在保持线性时间复杂度的同时,实现了与Transformer相当的建模能力。

    Transformer的局限性:效率与效果的权衡

    Transformer凭借其强大的自注意力机制,能够在上下文窗口内密集地传递信息,从而对复杂数据进行建模。然而,这种机制也带来了两个关键问题:

    1. 有限的上下文窗口: Transformer无法处理超过窗口大小的任何信息。
    2. 二次复杂度: 随着窗口大小的增加,Transformer的计算量呈平方增长。

    为了克服这些问题,研究人员一直在探索更有效的注意力机制变体,但往往以牺牲注意力机制的有效性为代价。至今,还没有一种变体能够在多个领域中展现出大规模的有效性。

    结构化状态空间模型(SSMs):线性时间复杂度的希望

    近年来,结构化状态空间序列模型(SSMs)作为一种很有潜力的序列建模架构,逐渐崭露头角。这些模型可以被看作是循环神经网络(RNNs)和卷积神经网络(CNNs)的结合,并受到了经典状态空间模型(Kalman 1960)的启发。SSMs可以高效地以循环或卷积的形式进行计算,其时间复杂度和空间复杂度都与序列长度呈线性或近线性关系。此外,它们还拥有建模某些数据模态中长程依赖关系的机制,并在Long Range Arena(Tay, Dehghani, Abnar, et al. 2021)等基准测试中取得了领先地位。

    然而,SSMs在建模离散和信息密集型数据(如文本)方面表现不佳。

    选择性状态空间模型:突破SSMs的局限

    本文提出的选择性状态空间模型,通过以下几个方面的改进,克服了先前工作的局限性,实现了与Transformer相当的建模能力,并保持了线性时间复杂度:

    选择机制:基于内容的推理

    先前模型的一个关键局限性在于它们无法以输入依赖的方式高效地选择数据(例如,关注或忽略特定输入)。受选择性复制归纳头等重要合成任务的启发,本文设计了一种简单的选择机制,通过将SSM参数设置为输入的函数,从而使模型能够根据当前标记有选择地传播或遗忘信息。

    硬件感知算法:高效的并行计算

    这种简单的改变为模型的计算带来了技术挑战,因为先前所有的SSM模型都必须是时间和输入不变的,才能保证计算效率。本文通过一种硬件感知算法克服了这一挑战,该算法以扫描而不是卷积的方式递归地计算模型,但不会将扩展后的状态具体化,从而避免了GPU内存层次结构不同级别之间的IO访问。这种实现方法在理论上比以前的方法更快(时间复杂度为线性,而所有基于卷积的SSMs的时间复杂度为伪线性),并且在现代硬件上也更快(在A100 GPU上快3倍)。

    Mamba架构:简洁而强大的模型设计

    本文将先前SSM架构(Dao, Fu, Saab, et al. 2023)的设计与Transformer的MLP块结合,形成一个简单的同质架构设计(Mamba),该架构包含选择性状态空间。

    Mamba作为一种通用的序列模型主干,具有以下特点:

    • 高性能: 选择机制在语言和基因组等密集模态上带来了强大的性能。
    • 快速训练和推理: 训练过程中的计算量和内存使用量与序列长度呈线性关系,而推理过程中的自回归展开仅需要每个步骤恒定的时间,因为不需要缓存先前元素。
    • 长上下文: 性能和效率的结合,使模型能够在长达百万个标记的真实数据上取得性能提升。

    Mamba的实验验证:超越Transformer的性能

    本文通过一系列实验验证了Mamba作为通用序列基础模型主干的潜力,包括在预训练质量和特定领域任务性能方面的评估。

    合成任务:选择性复制和归纳头

    选择性复制任务中,Mamba展现出强大的内容感知推理能力,能够有效地记住相关标记,并忽略无关标记。在归纳头任务中,Mamba能够完美地解决该任务,并将其解决方案扩展到百万个标记的序列长度,而其他方法只能扩展到训练序列长度的两倍。

    语言建模:与Transformer相当的性能

    在语言建模方面,Mamba是第一个真正实现Transformer级性能的线性时间序列模型,无论是在预训练困惑度还是在零样本评估方面。在高达10亿个参数的规模下,Mamba的性能超越了各种基线,包括基于LLaMa(Touvron et al. 2023)的现代Transformer训练方案。Mamba语言模型的生成吞吐量是同等规模Transformer的5倍,Mamba-3B的质量与Transformer的两倍规模(例如,Pythia-7B. 相当,甚至在常识推理方面超过了Pythia-7B。

    DNA建模:高效的基因组分析

    在基因组分析方面,Mamba在DNA序列预训练和微调方面都超越了先前最先进的模型,例如SaShiMi、Hyen和Transformer。在预训练质量和下游指标(例如,将具有挑战性的语音生成数据集上的FID降低一半以上)方面,Mamba都取得了优异的成绩。在两种情况下,Mamba的性能都随着上下文长度的增加而提升,直至百万个标记的序列长度。

    音频建模:高质量的语音生成

    在音频建模方面,Mamba在自回归音频建模方面超越了先前最先进的模型(SaShiMi),并能够处理长达分钟的上下文或百万个标记的序列(控制计算量)。在SC09语音生成数据集上,Mamba模型在保真度指标方面显著优于现有模型,包括WaveNet、SampleRNN、WaveGAN、DiffWave和SaShiMi。

    Mamba的效率:超越Transformer的计算速度

    Mamba在训练和推理方面都展现出优异的效率。在训练方面,Mamba的效率扫描比PyTorch中的标准扫描实现快20-40倍。在推理方面,Mamba的推理吞吐量是同等规模Transformer的4-5倍,因为Mamba不需要KV缓存,因此可以采用更高的批次大小。

    Mamba的未来展望:更强大的基础模型

    本文提出的选择性状态空间模型为构建不同领域的基础模型开辟了新的可能性,尤其是在需要长上下文的领域,例如基因组学、音频和视频。Mamba有望成为一种通用的序列模型主干,为未来的深度学习研究带来新的突破。

    参考文献

    • Brown, Tom, Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared Kaplan, Prafulla Dhariwal, Arvind Neelakantan, et al. “Language Models Are Few-Shot Learners.” arXiv preprint arXiv:2005.14165, 2020.
    • Vaswani, Ashish, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Łukasz Kaiser, and Illia Polosukhin. “Attention Is All You Need.” In Advances in Neural Information Processing Systems, 5998–6008, 2017.
    • Gu, Albert, Karan Goel, and Christopher Ré. “Efficiently Modeling Long Sequences with Structured State Spaces.” In International Conference on Learning Representations, 2022.
    • Dao, Tri, Daniel Y Fu, Andrew M Saab, et al. “H3: A Unified Architecture for Long Sequence Modeling.” In International Conference on Learning Representations, 2023.
    • Poli, Luca, Thomas Scialom, Guillaume Lample, et al. “Hyena: A Hybrid Convolutional Architecture for Long Sequence Modeling.” In International Conference on Learning Representations, 2023.

    Q: 这篇论文试图解决什么问题?

    A: 这篇论文试图解决的问题是深度学习中基础模型(Foundation Models, FMs)在处理长序列数据时的计算效率问题。基础模型通常基于Transformer架构,尽管它们在多种领域(如语言、图像、语音、音频、时间序列和基因组学)的应用中表现出色,但它们的计算复杂度随着序列长度的增加而呈二次方增长,这限制了它们在处理长序列数据时的应用。为了克服这一挑战,论文提出了一种新的序列建模方法,称为选择性状态空间模型(Selective State Space Models, SSMs),并将其集成到一个简化的神经网络架构中,称为Mamba。Mamba旨在实现线性时间复杂度的序列建模,同时保持或超越Transformer模型在多种模态(如语言、音频和基因组学)上的性能。

    Q: 有哪些相关研究?

    A: 这篇论文提到了多个与选择性状态空间模型(Selective State Space Models, SSMs)和Mamba架构相关的研究。以下是一些关键的相关研究:

    1. Transformer架构:这是由Vaswani等人在2017年提出的,它的核心是自注意力机制,能够处理长距离依赖关系,但计算复杂度随序列长度的增加而增加。
    2. 结构化状态空间序列模型(Structured State Space Models, SSMs):这些模型是RNN和CNN的结合,能够高效地处理序列数据,具有线性或近线性的序列长度缩放特性。Gu, Goel, and Ré (2022) 和 Gu, Johnson, Goel, et al. (2021) 在这方面的工作为Mamba架构提供了理论基础。
    3. 线性注意力(Linear Attention):Katharopoulos等人在2020年提出了一种近似自注意力的方法,通过递归来实现,这为后续的SSM研究提供了灵感。
    4. H3架构:Dao, Fu, Saab等人在2023年提出了这种架构,它结合了线性注意力和SSM,通过门控连接来增强模型的性能。
    5. Hyena模型:Poli等人在2023年提出了这种模型,它使用全局卷积来近似SSM,并且在某些连续信号数据领域(如音频和视觉)取得了成功。
    6. RetNet:Sun等人在2023年提出了这种模型,它通过引入额外的门控来优化SSM的并行计算路径。
    7. RWKV(Reinventing RNNs for the Transformer Era):Peng等人在2023年提出了这种模型,它基于线性注意力近似,旨在为语言建模设计高效的RNN。
    8. S5模型:Smith, Warrington, and Linderman在2023年提出了这种模型,它通过简化SSM架构来提高计算效率。

    这些研究为Mamba架构的发展提供了理论基础和实践经验,特别是在处理长序列数据和提高计算效率方面。

    Q: 论文如何解决这个问题?

    A: 论文通过以下几个关键创新来解决长序列数据处理中的计算效率问题:

    1. 选择性状态空间模型(Selective State Space Models, SSMs):论文提出了一种新的SSM,它通过允许模型参数(如状态转移矩阵A. 输入门B和输出门C)依赖于输入数据,从而实现对信息的选择性传播或遗忘。这种机制使得模型能够根据当前输入动态地调整其状态,有效地过滤掉不相关的信息。
    2. 硬件感知的并行算法:尽管选择性SSMs的设计破坏了模型的线性时间不变性(LTI),但论文设计了一种硬件感知的并行算法,通过在GPU内存层次结构中更高效地扩展状态来计算模型。这种算法通过在快速SRAM中执行离散化和递归操作,然后仅将最终输出写回HBM,从而减少了内存访问次数,提高了计算效率。
    3. 简化的神经网络架构(Mamba):论文提出了一个简化的端到端神经网络架构,该架构不包含注意力或多层感知器(MLP)块,而是将SSMs直接集成到网络中。这种架构通过合并H3架构中的线性注意力和MLP块,形成了一个简单且同质的架构设计。
    4. 跨模态性能验证:论文在多种模态(如语言、音频和基因组学)上验证了Mamba架构的有效性。在语言建模任务中,Mamba-3B模型在预训练和下游评估中的表现超过了相同大小的Transformer模型,并与两倍大小的Transformer模型相匹配。

    通过这些创新,论文展示了Mamba架构在处理长序列数据时的高效性和优越性能,特别是在保持或提高模型性能的同时,实现了线性时间复杂度的序列建模。

    Q: 论文做了哪些实验?

    A: 论文进行了一系列的实验来验证Mamba架构的有效性,这些实验涵盖了不同的数据模态和任务。以下是主要的实验内容:

    1. 合成任务
      • 选择性复制(Selective Copying):测试模型在处理随机间隔的输入序列时的记忆能力,这要求模型能够记住相关输入并忽略不相关的“噪声”输入。
      • 归纳头(Induction Heads):评估模型在关联记忆任务中的表现,这要求模型能够在给定上下文的情况下正确地预测输出。
    2. 语言建模
      • 预训练质量(Scaling Laws):在Pile数据集上,比较Mamba与其他架构(如Transformer、Transformer++、H3等)在不同模型大小和序列长度下的困惑度(Perplexity)。
      • 零样本下游评估(Zero-shot Evaluations):在多个下游任务上评估Mamba模型的性能,包括LAMBADA、HellaSwag、PIQA、ARC-challenge等。
    3. DNA序列建模
      • 模型规模(Scaling: Model Size):在HG38(人类基因组)数据集上,研究不同模型背骨在不同规模下的性能。
      • 上下文长度(Scaling: Context Length):固定模型规模,增加序列长度,观察模型性能随序列长度的增长情况。
      • 合成物种分类(Synthetic Species Classification):在预训练模型的基础上,进行物种DNA序列的分类任务,以评估模型在长序列上的泛化能力。
    4. 音频建模和生成
      • 长上下文自回归预训练(Long-Context Autoregressive Pretraining):在YouTubeMix数据集上,评估Mamba在不同序列长度下的预训练质量。
      • 自回归语音生成(Autoregressive Speech Generation):在SC09数据集上,比较Mamba模型与现有最先进模型在自动语音生成任务上的性能。
    5. 速度和内存基准测试(Speed and Memory Benchmarks)
      • SSM扫描操作(Scan Operation):在A100 GPU上,比较Mamba的SSM扫描操作与标准卷积和注意力操作的速度。
      • 端到端推理吞吐量(End-to-end Inference Throughput):测量Mamba模型在不同批处理大小下的推理速度。
      • 内存消耗(Memory Consumption):报告Mamba模型在训练过程中的内存使用情况,并与优化的Transformer模型进行比较。

    这些实验旨在全面评估Mamba架构在不同场景下的性能,包括其在处理长序列数据时的效率和效果。

    Q: 有什么可以进一步探索的点?

    A: 尽管论文提出了Mamba架构并在多个领域展示了其有效性,但仍有一些潜在的研究方向可以进一步探索:

    1. 模型规模的扩展:论文中的实验主要集中在较小的模型规模上。研究Mamba在更大模型规模(例如数十亿参数)上的性能,以及它是否能够保持或提高其在长序列任务上的优势。
    2. 多模态学习:探索Mamba在处理多模态数据(如结合文本、图像和音频)时的性能,以及如何有效地整合不同模态的信息。
    3. 跨领域迁移学习:研究Mamba在不同领域(如医疗、金融、法律等)的迁移学习能力,以及如何调整模型以适应特定领域的知识。
    4. 模型解释性:提高Mamba模型的可解释性,以便更好地理解其在处理复杂任务时的决策过程。
    5. 计算效率的进一步优化:尽管Mamba在计算效率上有所改进,但仍然可以探索新的算法和硬件优化技术,以进一步提高其在大规模部署中的实用性。
    6. 长期记忆和上下文建模:研究Mamba在处理需要长期记忆和复杂上下文理解的任务(如故事生成、对话系统等)中的性能。
    7. 模型鲁棒性:评估Mamba在面对噪声、异常值和对抗性攻击时的鲁棒性,并探索提高模型鲁棒性的策略。
    8. 环境交互和强化学习:将Mamba应用于需要与环境交互的任务,如强化学习中的决策制定,以及探索其在这些任务中的性能和适用性。
    9. 模型压缩和部署:研究如何有效地压缩Mamba模型以便于在资源受限的设备上部署,同时保持其性能。
    10. 社会影响和伦理考量:随着模型规模的扩大,研究Mamba在实际应用中可能产生的社会影响,以及如何确保其符合伦理和公平性标准。

    这些研究方向不仅有助于推动Mamba架构的发展,还能够为深度学习和人工智能领域的其他研究提供新的视角和方法。

    Q: 总结一下论文的主要内容

    A: 这篇论文介绍了一种名为Mamba的新型线性时间序列建模架构,旨在提高深度学习中基础模型(Foundation Models, FMs)在处理长序列数据时的计算效率。Mamba的核心是选择性状态空间模型(Selective State Space Models, SSMs),这些模型通过引入选择机制来改进传统的结构化状态空间模型(Structured State Space Models, SSMs),使其能够根据输入内容动态地选择性地处理信息。这种选择性允许模型在保持线性时间复杂度的同时,有效地处理长序列数据。

    论文的主要贡献包括:

    1. 选择性SSMs:提出了一种新的SSM,通过让模型参数依赖于输入,实现了对信息的选择性传播和遗忘,从而提高了模型在处理离散和信息密集型数据(如文本)时的性能。
    2. 硬件感知的并行算法:设计了一种新的并行计算方法,通过在GPU内存层次结构中更高效地处理状态扩展,解决了选择性SSMs的计算效率问题。
    3. 简化的神经网络架构:提出了Mamba架构,它将SSMs与Transformer的MLP块结合,形成了一个简单且同质的网络设计,无需额外的注意力或MLP块。
    4. 跨模态性能验证:在多种数据模态(如语言、音频和基因组学)上验证了Mamba架构的有效性,展示了其在预训练质量和下游任务性能上的优势。
    5. 效率基准测试:展示了Mamba在训练和推理速度上的优势,特别是在处理长序列数据时,其性能优于现有的Transformer模型。

    论文的实验结果表明,Mamba在处理长序列数据时不仅提高了计算效率,而且在多个领域内实现了与Transformer模型相媲美或更优的性能。这表明Mamba有潜力成为通用序列模型的有力候选者,特别是在需要处理长序列数据的新兴领域,如基因组学、音频和视频。

  • 重温被Mamba带火的SSM:线性系统和HiPPO矩阵

    近年来,深度学习领域涌现出许多新的模型架构,其中状态空间模型(SSM,State Space Model)因其优雅的数学性质和强大的表达能力,逐渐成为Transformer的强劲对手。而Mamba,作为SSM最新的变体,更是凭借其在长序列建模上的优异表现,吸引了众多研究者的关注。

    本文将带您深入了解SSM的核心概念,并重温其重要奠基之作——HiPPO(High-order Polynomial Projection Operators)。通过HiPPO的推导,您可以理解线性系统在SSM中的重要性,以及它如何通过有限维的向量来储存无限维的函数信息。

    线性系统:简单而强大的表达能力

    SSM的核心思想是利用线性微分方程(ODE)系统来建模序列数据。一个典型的线性 ODE 系统可以表示为:

    $$
    \frac{dh}{dt} = Ah + Bu
    $$

    其中,$h$ 代表系统的状态,$u$ 代表输入,$A$ 和 $B$ 是模型参数。

    那么,为什么SSM会选择线性系统呢?答案是:线性系统既足够简单,也足够复杂。

    简单是指,线性化通常是复杂系统的一个最基本近似。而复杂是指,即使是如此简单的系统,也可以拟合异常复杂的函数。例如,一个简单的线性系统:

    $$
    \frac{dh}{dt} = h
    $$

    其解为 $h(t) = h(0)e^t$。这意味着,只要时间足够长,该线性系统就可以通过指数函数来拟合足够复杂的函数。

    HiPPO:从正交基逼近到线性系统

    HiPPO 为我们提供了一种更本质的理解:当我们试图用正交基去逼近一个动态更新的函数时,其结果就是如上的线性系统。

    假设我们要用一个有限维的向量来储存一段信号 $x(t)$ 的信息。如果我们假设 $x(t)$ 在某点 $t_0$ 阶可导,那么它对应的 $t_0$ 阶泰勒展开式往往是 $x(t)$ 的良好近似。我们可以只储存展开式的系数,从而将 $x(t)$ 压缩为一个有限维向量。

    然而,实际遇到的数据通常无法满足“阶可导”这种苛刻的条件。因此,我们更倾向于使用正交函数基展开,比如傅里叶级数。其系数计算公式为:

    $$
    c_k = \int_{-\infty}^{\infty} x(t)e^{-2\pi ikt} dt
    $$

    通过只保留有限个系数,我们可以将 $x(t)$ 压缩为一个有限维向量。

    接下来,问题难度升级。实际中,$x(t)$ 代表的是持续采集的信号,所以它是不断有新数据进入的。我们需要更新逼近结果来记忆整个信号的历史。

    为了解决这个问题,我们可以将 $x(t)$ 映射到一个有限区间 $[0, T]$,然后计算其在该区间上的傅里叶系数。

    $$
    c_k(T. = \int_{0}^{T} x(t)e^{-2\pi ikt} dt
    $$

    当新的数据进入时,我们可以重新计算系数,从而更新对 $x(t)$ 的逼近。

    通过对系数的导数进行推导,我们可以发现,系数的变化满足一个线性 ODE 系统。这意味着,当我们试图用傅里叶级数去记忆一个实时函数的最邻近窗口内的状态时,结果自然而言地导致了一个线性 ODE 系统。

    HiPPO 矩阵:勒让德多项式的应用

    HiPPO 的核心是选取多项式为基函数。其中,勒让德多项式因其在实数空间中的定义和简化推导过程的优势,成为了 HiPPO 的首选。

    勒让德多项式 $P_n(x)$ 是关于 $x$ 的 $n$ 次函数,定义域为 $[-1, 1]$,满足:

    $$
    \int_{-1}^{1} P_m(x)P_n(x) dx = \frac{2}{2n + 1}\delta_{mn}
    $$

    通过将勒让德多项式作为基函数,并利用其递归公式,我们可以推导出一个恒等式:

    $$
    \frac{d}{dT}P_n(2T/T – 1) = \frac{2n}{T}P_{n-1}(2T/T – 1)
    $$

    利用该恒等式,我们可以得到 HiPPO 矩阵,它描述了系数随时间的变化规律。

    HiPPO 的应用:SSM 的基石

    HiPPO 的结论被后来诸多 SSM 模型所使用,例如 S4 和 Mamba。HiPPO 为我们提供了一种理解 SSM 的全新视角,它揭示了线性系统在 SSM 中的本质意义,以及它如何通过有限维的向量来储存无限维的函数信息。

    总结

    本文以尽可能简单的方式重复了 HiPPO 的主要推导。HiPPO 通过适当的记忆假设,自下而上地导出了线性 ODE 系统,并针对勒让德多项式的情形求出了相应的解析解(HiPPO 矩阵)。其结果被后来诸多 SSM 模型使用,可谓是 SSM 的重要奠基之作。

    参考文献

    [1] https://papers.cool/arxiv/2312.00752
    [2] https://papers.cool/arxiv/2305.13048
    [3] https://papers.cool/arxiv/2307.08621
    [4] https://papers.cool/arxiv/2008.07669
    [5] https://dblp.org/pid/130/0612.html
    [6] https://en.wikipedia.org/wiki/Kronecker_delta
    [7] https://en.wikipedia.org/wiki/Legendre_polynomials
    [8] https://en.wikipedia.org/wiki/Gram–Schmidt_process
    [9] https://en.wikipedia.org/wiki/Chebyshev_polynomials
    [10] https://en.wikipedia.org/wiki/Laguerre_polynomials
    [11] https://proceedings.neurips.cc/paper/2019/file/952285b9b7e7a1be5aa7849f32ffff05-Paper.pdf

人生梦想 - 关注前沿的计算机技术 acejoy.com