博客

  • 用链式知识提示增强语言模型的推理能力

    摘要:

    最近,基于思想链(CoT)的提示在复杂推理任务中取得了成功,其目标是设计一个简单的提示,如“让我们逐步思考”或多个具有精心设计的理由的上下文示例,以引导大型语言模型(LLM)生成中间推理步骤。然而,生成的理由通常会伴随着错误,导致不真实和不诚实的推理链。为了减轻这种脆弱性,我们提出了一种新颖的基于知识的链式提示(CoK),目标是引导 LLM 生成形式为结构三元组的明确知识证据。这受到了我们人类行为的影响,即在回答复杂问题之前,我们可以在脑海中绘制思维导图或知识图作为推理证据。得益于 CoK,我们进一步引入了一种 F^2 验证方法,以估计推理链在事实性和忠实性方面的可靠性。对于不可靠的回答,可以指出错误的证据以引导 LLM 重新思考。大量实验证明,我们的方法可以进一步提高常识、事实、符号和算术推理任务的性能。

    正文:

    1. 介绍

    1. 大型语言模型(LLM)在许多自然语言处理(NLP)任务中取得了最先进的性能。
    2. 上下文学习(ICL)是一个蓬勃发展的研究课题,旨在通过对少数标记示例进行条件化来生成预测。
    3. LLM 可以自发地将复杂的多步骤问题分解为中间推理链。
    4. CoT 提示是一种通过将显式结构知识证据与文本解释相结合来提示 LLM 生成推理链的方法。
    5. CoK 提示是一种新颖的方法,它通过一系列将显式结构知识证据与文本解释相结合的示例来增强 LLM 的推理能力。
    6. 对问题的非事实性推理可能导致错误的答案,并且当 LLM 生成逻辑上合理的推理链时,但仍然提供不正确的答案时,响应可能是不忠实的。
    7. 为了解决这些问题,提出了一种新颖的基于知识的链式(CoK)提示方法来增强 LLM 的推理能力。
    8. CoK 提示由两部分组成:证据三元组(CoK-ET)和解释提示(CoK-EH)。
    9. CoK-ET 是一个结构三元组列表,反映了从查询到答案的整体推理证据。
    10. CoK-EH 是对这些证据的解释。
    11. 为了构建具有 CoK 提示的上下文示例,我们首先对 K 个标记示例进行采样,每个示例都可以与一个简单的提示“让我们逐步思考”连接起来。
    12. 然后,我们从外部知识库(KB)中检索一些结构三元组,并通过人工精心注释证据三元组来获得设计良好的 CoK 提示。
    13. CoK 提示可以被视为一个规则,它规范了输出空间/格式,并敦促 LLM 生成明确的证据,而不是仅仅尝试生成模糊的文本推理链。

    2. 相关工作

    1. 上下文学习(ICL)是一种因果语言建模任务,允许 LLM 通过设计良好的基于文本的提示进行零样本/小样本学习。
    2. ICL 可以绕过模型参数更新,并通过对少数标记示例进行条件化来实现显着的性能。
    3. 以前的工作已经探索了一些 ICL 的影响方面,例如输入输出映射、模板格式以及示例的不同选择和排列。
    4. 为了提高 ICL 的有效性,已经提出了一些新颖的方法,包括元学习、提示和示例工程、通过输入上下文示例获取 LM 偏好、通过自适应机制找到合适的示例组织以及预测校准。
    5. 与以往的工作不同,我们的工作重点是 LLM 的推理能力,包括推理提示设计和输出验证。
    6. 提出 CoT 提示是为了利用推理和可解释的信息来指导 LLM 生成可靠的响应。
    7. 提出了一系列 CoT 增强方法来进一步提高推理能力。
    8. LLM 推理的知识利用包括利用外部知识和工具来帮助模型完成推理任务。
    9. 刘等。[2023b] 将计算物理引擎集成到语言建模过程中,以模拟潜在结果,并将它们用作输入的一部分来驱动模型进行推理。
    10. 变色龙通过结合各种工具和知识资源来增强 LLM。

    3. 方法

    1. 生成的推理链有时会有错误,最终导致得出错误的答案。我们将这种挑战归咎于文本推理链:大型语言模型(LLM)可能会强制生成一种符合 CoT 提示格式的文本理性,但逻辑上模棱两可,导致得出
    2. 错误的答案。为了应对这种挑战,我们考虑了两个核心方面。
    3. 提示的生成方式。仅使用文本提示链并不能充分发挥 LLM 生成可靠和具体的推理过程的能力。受到 KB 中三元组结构的影响,我们需要用结构特征增强提示。
    4. 验证。LLM 通常无法检查它们已回答的答案,这需要我们利用外部知识进行验证。基于这些考虑,我们提供了如何提高 LLM 推理能力的具体解决方案。该框架的概述如图 2 所示。
    5. 框架说明。推理可以建模为现有知识系统中的归纳和演绎。这是受到人类行为启发的,人们会画思维导图或知识图来分析问题并找到通往答案的正确路径。幸运的是,我们可以采用 KB 中三元的概念,将其视为“主体,关系,对象”,以形式化推理链的明确证据。
    6. 建议的生成方式。我们首先使用链-of-knowledge(CoK)提示生成示例。然后,可以使用 CoK 提示让 LLM 生成包括证据三元组、解释提示和最终答案的推理链。最后,我们估计推理链在事实性和可靠性方面,不可靠的链将被重新考虑。
    7. 建议的生成方式。为了便于 LLM 生成文本理性,我们可以采用 KB 中三元组的概念,将其视为“主体,关系,对象”,以形式化推理链的明确证据。CoK-ET 表示从 LLM 中支持逐步思维过程的多个三元组列表。CoK-EH 表示推理链的解释,类似于普通的 CoT。例如,在图 1 中,我们可以要求 LLM 生成两个明确的证据:“德雷克·怀特是一名篮球运动员”和“篮球投篮通常用于曲棍球或网球”以及一个文本解释,以支持最终答案“不”。
    8. 挑战。构建文本理性,使其结构符合 CoK 三元组,是 CoK 提示生成中的关键挑战。如图 2 所示,我们首先进行示例构建,以获得一个设计良好的任务特定提示。具体而言,我们遵循 Wei 等。[2022,Wang 等。2022c] 的指导,随机选择 K 个问题作为基本示例。要自动获得 CoK-EH,我们遵循 Kojima 等。[2022] 的方法,使用简单的提示“让我们一步一步地思考”生成零样本 CoT 的文本理性。另一个挑战是如何获得更好的表示文本理性。

    4. 实验设置

    1. 实验共选择了五种类型的任务,包括常识和事实推理、算术推理、符号推理等,具体任务和数据集如下:
    2. 常识和事实推理任务使用了 CommonSenseQA、StrategyQA、OpenBookQA、AI2 Reasoning Challenge (ARC-c)、BoolQ 等数据集,其中使用了 Wikitude 6、ConceptNet、Wikidata5M、ATOMIC、GLUCOSE、ASER、CausalBank 等知识库。
    3. 算术推理任务使用了 GSM8K、SVAMP 等数据集,其中使用了 AQuA、MultiArith 等算法。
    4. 符号推理任务使用了 Last Letter Concatenation、Coin Flip 等任务,其中手动构建了每个词的词典知识库。
    5. 在我们的实验中,首先使用了几手/零手标准提示(SP)作为基线,然后使用了一些 SOTA CoT 方法作为强大的基线,如 Chain-of-thought (CoT)、Zero-shot-CoT 和 Auto-CoT 等。
    6. 常识和事实推理任务在多个数据集上进行了比较,发现在几手/零手学习场景下,CoK 提示的性能表现良好,可以超过之前 CoT 策略的表现。这表明将显性证据三倍体和解释相结合可以提高 LLM 的推理能力。

    5. 结论

    1. 提出了一种名为 chain-of-knowledge prompting 的方法,旨在将大语言模型的推理链分解成多个证据三元组和解释提示,以进一步提高推理能力。
    2. 根据 chain-of-knowledge prompt,引入了 F2-Verification,完全利用外部知识库对生成的推理链进行事实性和可靠性后验证。
    3. 采用重新思考过程,注入知识以纠正虚假证据三元组,并使大语言模型重新生成答案。
    4. 在多个推理任务上取得了比其他提示方法更好的结果。
    5. 在未来,计划进一步改进其他规模的大语言模型的性能,将知识库扩展到搜索引擎以实现实时验证,并对大语言模型的推理进行可解释性分析。
    6. 工作基于对大型语言模型的提示方法,在多个基准测试集上取得了优秀的性能。
    7. 然而,它仍然具有以下局限性:(1)知识库中的证据三元组是有限的,可能无法确保对模型所有问题的全面覆盖。(2)在重新思考算法的背景下,CoK 可能需要比经典的 CoT 方法更多 API 调用。
    8. 在社会影响方面,使用的知识库都是来自公共数据来源。
    9. 将事实知识注入模型推理过程不会引入额外的偏见。
    10. 它可以在某种程度上防止模型提供不负责且有害的答案。
    11. 在 12 个公开的可用于推理任务的基准数据集上对 CoK 进行了评估,涵盖了算术推理、常识推理、符号推理和自然语言理解任务。
    12. 数据集统计信息如表 5 所示,每个数据集的详细信息如下所示。
    13. CoK 在多个基准测试集上取得了比其他提示方法更好的结果。
  • JiuZhang 2.0:面向多任务数学问题求解的统一中文预训练语言模型

    摘要:

    尽管预训练语言模型 (PLM) 近期推动了数学推理研究的进展,但它们并非专门设计为有能力的多任务求解器,在实际应用中存在多任务部署成本高(例如,为一项任务复制一个模型)和复杂数学问题的性能较差的问题。为了解决这些问题,我们在本文中提出了 JiuZhang 2.0,这是一个专门针对多任务数学问题求解的统一中文 PLM。我们的想法是保持一个中等规模的模型,并采用“跨任务知识共享”来提高模型在多任务设置中的能力。特别地,我们构建了一个混合专家 (MoE) 架构来建模数学文本,以便捕获跨任务的通用数学知识。为了优化 MoE 架构,我们设计了多任务持续预训练和多任务微调策略,以进行多任务适配。这些训练策略能够有效地分解来自任务数据中的知识,并通过专家网络建立跨任务共享。为了进一步提高解决不同复杂任务的泛化能力,我们利用大型语言模型 (LLM) 作为互补模型,通过上下文学习,迭代地优化我们 PLM 生成的解决方案。大量的实验已经证明了我们模型的有效性。

    关键词:预训练语言模型,数学推理,多任务学习,混合专家,持续预训练,微调,大型语言模型,上下文学习

    正文:

    1. 介绍

    数学推理是人工智能的一个重要领域,具有广泛的应用,如自然语言处理、机器翻译、信息检索等。近年来,随着预训练语言模型 (PLM) 的发展,数学推理取得了显著的进展。PLM 在大规模数学语料库上进行预训练,能够在一定程度上理解数学公式和逻辑,在各种数学相关任务上取得更好的性能。

    然而,基于 PLM 的方法仍然存在两个主要局限性:任务性能有限和维护成本高。一方面,由于 PLM 的容量有限,在复杂数学问题上,其性能往往不佳。另一方面,由于 PLM 需要为每个任务单独训练,这导致了维护成本高的问题。

    为了克服这些问题,大型语言模型 (LLM) 被引入解决数学问题。LLM 具有更强的数学推理能力,能够解决更复杂的数学问题。然而,LLM 在任务或领域适应性调整方面非常昂贵。

    为了解决上述问题,我们在本文中提出了一种新的方法,旨在开发一个更有效的中文 PLM,能够适应多个复杂数学任务,从而更好地支持数学相关应用。该方法利用现有 LLMs 隐含的大量知识来提高 PLMs 解决复杂问题的能力。在实验中,该方法在一组数学任务上表现出色,甚至优于基于 LLM 的方法。

    2. 相关工作

    2.1 预训练语言模型的数学推理能力

    近年来,PLM 在数学推理方面取得了很大的进步。例如,BERT 在数学推理任务上取得了很好的性能,表明 PLM 能够在一定程度上理解数学公式和逻辑。CodeX 是另一个专门针对数学推理的 PLM,在数学问题求解任务上取得了最先进的性能。

    2.2 基于大型语言模型的方法

    LLM 具有更强的数学推理能力,能够解决更复杂的数学问题。例如,GPT-3 能够解决高中水平的数学问题,PaLM 能够解决大学水平的数学问题。然而,LLM 在任务或领域适应性调整方面非常昂贵。

    2.3 上下文学习

    上下文学习可以用于解决不同任务,但仍然难以适应需要丰富领域知识的特定任务。例如,在数学问题求解任务中,上下文学习可以用于学习数学公式和逻辑,但难以学习特定领域的知识。

    2.4 混合专家架构

    混合专家 (MoE) 架构是一种用于处理大规模任务的模型架构。MoE 架构将模型分解成多个专家网络,每个专家网络处理任务的不同部分。这种分解可以提高模型的容量,并降低模型的训练成本。

    2.5 多任务持续预训练和多任务微调策略

    多任务持续预训练和多任务微调策略是用于优化 MoE 架构的多任务适应性策略。多任务持续预训练策略是在一个包含多个任务的数据集上对 MoE 架构进行预训练。多任务微调策略是在一个特定任务的数据集上对 MoE 架构进行微调。

    2.6 传统 NLP 方法

    传统的 NLP 方法,如语义解析器和运算符树,被用于理解数学文本中的公式和逻辑。这些方法通常依赖于特征提取和深度神经网络。

  • 逐步思考,洞悉世界——语言模型推理的奥秘

    大家好,我是资深人工智能专家Halo Master。今天,我将带大家一起探索语言模型推理的奇妙世界。我们将从一篇arxiv论文《Why think step by step? Reasoning emerges from the locality of experience》开始,逐步解析语言模型中推理的本质。

    语言模型的推理能力

    语言模型,作为人工智能领域冉冉升起的新星,在文本生成、语言翻译、问答系统等领域展现了强大的能力。然而,当我们要求语言模型进行复杂的推理任务时,比如数学问题求解、故事理解等,它们往往会遇到困难。

    推理的本质:局部结构与链式推理

    那么,为什么推理对语言模型如此重要呢?推理的本质是什么?

    在本文中,作者提出了一个假设:推理之所以有用,是因为训练数据具有局部结构。

    语言模型的训练数据通常是自然语言文本,而自然语言文本通常是关于几个密切相关的主题的。当概念在经验或训练数据中经常共现时,直接用简单的统计估计量来估计它们之间的影响是很容易的。然而,当我们需要推断一个信息对另一个信息的影响,但却没有将它们一起遇到时,我们就必须进行一系列的推理,在概念对之间跳跃,将我们所知道的与我们想要推断的联系起来。

    作者认为,当训练数据具有局部结构时,链式推理就变得非常有用。局部结构是指观察往往发生在相关的概念的局部重叠邻域中。

    理论分析:推理如何降低偏差

    为了证明这一假设,作者给出了一个理论分析。他们考虑了一个简化的任务,在这个任务中,语言模型在一个链式结构的贝叶斯网络上训练。他们证明,当训练数据具有局部结构时,通过中间变量进行推理可以降低偏差。

    实证研究:局部结构与推理的有效性

    为了验证这一假设,作者进行了一个实证研究。他们训练了一个语言模型,并在具有不同结构的合成数据上对其进行评估。结果表明,当训练数据具有局部结构时,生成中间变量可以帮助语言模型更准确地估计条件概率。

    结论:推理是语言模型的必备能力

    综上所述,推理是语言模型的一项必备能力。当训练数据具有局部结构时,推理可以通过减少偏差来提高语言模型的性能。

    展望:未来研究方向

    在未来的研究中,我们可以从以下几个方面继续探索语言模型的推理能力:

    1. 如何设计更有效的推理算法?
    2. 如何将推理应用到更广泛的任务中?
    3. 如何让人工智能更好地理解和模拟人类的推理过程?

    我相信,随着人工智能技术的不断发展,语言模型的推理能力也将越来越强大,并将在越来越多的领域发挥重要作用。

    参考文献

    [1] Ben Prystawski, Michael Y. Li, Noah D. Goodman. Why think step by step? Reasoning emerges from the locality of experience. arXiv preprint arXiv:2304.03843, 2023.
    [2] Using generative AI to imitate human behavior. Microsoft Research Blog. 2023.
    [3] Breaking cross-modal boundaries in multimodal AI: Introducing CoDi, composable diffusion for any-to-any generation. Microsoft Research Blog. 2023.

  • AutoGen:支持下一代大型语言模型应用程序

    🎯 AutoGen的目标

    随着GPT-3、GPT-4等大型语言模型的出现,它们在诸多领域都展现了强大的潜力。但是要充分发挥这些模型的能力,需要设计非常复杂的工作流程,对研发人员提出了巨大挑战😥。

    AutoGen框架的目标就是要简化大型语言模型工作流程的编排、优化和自动化。让研发人员可以更容易地构建复杂的语言模型应用💪。

    🛠 AutoGen的方法

    AutoGen提供了可自定义和可交谈的agent。研发人员只需要进行以下两步配置:

    1. 定义一组agent,指定它们的能力和角色
    2. 定义agent之间的交互行为

    整个流程就可以自动化啦!非常简单易用~

    🤖 Agent的特点

    AutoGen的Agent有以下特点:

    • 💬 可以与语言模型、人类和工具自由交互对话
    • ⚙️ 内置语言模型编码执行等功能
    • 🔧 支持引入各种外部工具、API等
    • 🧠 易于加入个性化、适应性等高级功能

    👥 Agent模式的好处

    Agent对话中心的设计模式有诸多好处:

    • 🤝 自然支持协作、反馈、调试等
    • 🎯 易于解决代码相关任务
    • ✋🏻 支持用户随时加入或退出
    • 🤝 多个专家可以协同解决复杂问题

    🎉 总结

    AutoGen为构建下一代语言模型应用提供了一个高效、简单、可扩展的框架。它展示了语言模型、人类和工具协作的巨大创新空间。希望大家在未来的科研中可以活跃运用AutoGen,创造出更多惊喜😄请大家多多提问,让我们共同进步!

  • 平衡低成本目标编辑和灾难性遗忘

    大家好,今天,我们要一起探讨的是 Microsoft Research 最近的一篇研究:大型语言模型的终身模型编辑。这篇文章讲述了如何在保持低成本的同时,进行有效的模型修正,避免模型出现灾难性的遗忘。让我们一起深入了解一下。🧐

    🎯 问题的根源

    首先,我们来看看为什么需要对大型语言模型(LLMs)进行修正。LLMs在许多复杂任务中有着广泛的应用,但它们有时会出现不可预测的错误,或者传播偏见语言。这些错误往往随着底层数据或用户行为的变化而产生。这就需要对这些模型和它们支持的实际应用进行有针对性的、成本有效的修复。

    我们可能会想到使用重复预训练或微调来实现这些修复。然而,这些解决方案通常在计算上过于昂贵。例如,LLAMA 1的训练需要在2048个A100 GPU上进行21天,其成本超过240万美元。LLMs的微调需要比许多研究实验室能够持续并负担得起的GPU更大。此外,我们甚至还不清楚应该向数据语料库添加或删除哪些数据,以便在不影响无关输入的情况下纠正特定行为。

    📝 模型编辑的提出

    为了在不进行昂贵训练的情况下保持LLMs的更新,人们最近提出了模型编辑作为对大模型进行有针对性更新的范例。大多数模型编辑器一次更新一个模型,注入一批修正。但错误通常会随时间序列性地被发现,并且必须快速纠正。换句话说,当模型被部署时,必须进行终身模型编辑,即遇到一个流的错误并必须立即对其进行处理。这需要进行许多连续的编辑,在这种设置下,现有的编辑器已知会失败。成功在这里意味着按序纠正所有的编辑,而不遗忘旧的修复,也不会降低对无关输入的性能。

    那么,什么是编辑呢?在一篇题为《带有离散键值适配器的GRACE终身模型编辑》的文章中,作者考虑了三种类型的编辑:

    1. 更新事实知识。例如,我们有一个预先训练的问答模型:我们输入问题,模型返回答案。但随着世界的变化,这些答案会过时。因此,编辑是一个包含问题(例如,“美国总统是谁?”)和问题的正确答案(例如,“拜登”)的元组或有序值序列。
    2. 跟上翻转标签。分类任务中的基础真相可能会随时间变化。如果只有特定类型的数据被重新标记,那么目标编辑就尤为重要。在这种情况下,编辑是一个配对输入(例如,法院文件)和一个新标签(例如,主题)。
    3. 缓解LLMs中的捏造和不连贯。使用LLMs的一个关键挑战是避免它们生成与现实无关的语言。因此,当它们创建出有问题的输出时,模型的编辑将包含这样的元组:一个输入(例如,一个启动语句)和一个从模型的输出中提取的错误片段(例如,一个错误的预测)。

    🧪 终身模型编辑的挑战与解决方案

    我们已经知道,错误往往会随时间序列性地被发现,并且必须快速纠正。这就需要进行许多连续的编辑,这是一项挑战。在这种情况下,现有的编辑器已知会失败。它们可能会遗忘旧的修复,或者对无关输入的性能产生影响。

    为了解决这个问题,研究者们提出了一种名为GRACE的新型模型编辑方法。这个方法采用了离散的键值适配器,能够处理连续的编辑。它能够在不遗忘旧的修复,也不会降低对无关输入的性能的情况下,按序纠正所有的编辑。

    这种方法的关键在于,它不直接更改模型的参数,而是在模型上添加一个小型的键值存储。每次编辑时,该方法都会将编辑的“键”和“值”添加到存储中。然后,在模型进行预测时,该方法会检查存储中是否存在与当前输入匹配的键。如果存在,模型就会使用存储中的值来修改其预测。

    这种方法的优势是,它能够在处理新的编辑时,保留对旧编辑的记忆,从而避免了灾难性的遗忘。此外,由于键值存储的规模远小于模型本身,因此,这种方法的计算和存储成本也相对较低。

    总结一下,大型语言模型的终身模型编辑是一个非常重要且具有挑战性的问题。这在保持模型更新,提高预测准确性,同时也降低了训练和维护的成本。通过微调、模型编辑等方法,我们可以使模型更加适应变化的世界,并为我们提供更准确、更贴近现实的预测。希望你们能从这次的讲解中有所收获,下次课我们再见!👋🏻

  • 大语言模型的加速之道:思维骨架(Skeleton-of-Thought)

    大家好,欢迎收听我们的人工智能播客,我是你的主播,也是资深的人工智能专家。今天我们要聊的话题是:如何通过一种全新的方式——思维骨架(Skeleton-of-Thought,简称SoT),来加速大语言模型(LLM)的输出,并提高其结果质量。🚀

    💡大语言模型的痛点

    LLM,例如LLaMA和OpenAI的GPT-4,正在改变我们的技术领域。然而,对LLM的一个普遍抱怨是它们的运行速度。在许多情况下,从LLM获取答案需要很长时间,这限制了LLM在诸如聊天机器人、协同助手和工业控制器等延迟关键功能中的应用。⏱️

    🚀思维骨架的提出

    为了解决这一问题,微软研究院和清华大学的研究者提出了一种新的加速LLM生成的方法——思维骨架(SoT)。不同于大多数先前需要对LLM模型、系统或硬件进行修改的方法,SoT将LLM视为黑箱,因此可以应用于任何现成的开源(如LLaMA)或API基础(如OpenAI的GPT-4)模型中。🎁

    🚗SoT如何加速?

    SoT的想法源于LLM和人类处理信息的方式的区别。LLM按顺序生成答案,而人类在很多情况下,会先提炼出答案的骨架,然后添加细节来解释每一点。SoT就是按照这种人类的思维方式,将生成过程分为两个阶段:首先,SoT让LLM生成答案的骨架,然后再让LLM给出骨架中每一点的答案。🔍

    这种方法提供了一个新的加速机会,因为第二阶段的每一点的答案都可以并行生成,无论是本地模型(如LLaMA)还是API基础模型(如OpenAI的GPT-4)。对于API基础模型,我们可以对每一点发出并行的API请求。对于本地运行的模型,我们可以在一个批次中同时回答所有的点。💼

    ⚖️SoT的效果如何?

    我们在包括九个开源模型和三个API基础模型在内的12个最近发布的模型上测试了SoT。我们使用的是Vicuna-80数据集,该数据集包含80个问题,涵盖了编程、数学、写作、角色扮演等九个类别。

    结果显示,SoT在所有模型上都提供了显著的速度提升。特别是,SoT在12个模型中的8个模型上获得了超过2倍(最高达到2.39倍)的速度提升。此外,SoT在不明显降低答案质量的情况下实现了这种速度的提升。💪

    🌈SoT的未来

    SoT通过独立并行地扩展点,因此并不适合需要逐步推理的问题,比如数学和编程。为此,我们提出了一种SoT的扩展,叫做SoT with Router(SoT-R),它可以在适合的时候自适应地触发SoT。我们提出了一个路由器模型,该模型可以基于问题和答案的骨架,预测何时应使用SoT。实验显示,SoT-R在数学和编程问题上的性能超过了原始的SoT,并在所有测试集上达到了最好的性能。🎯

    对于未来,我们期待通过进一步的研究和开发,将SoT的应用范围扩大到处理更复杂的问题,同时继续提高其生成速度和答案质量。我们相信,随着技术的不断发展,大语言模型将在我们的日常生活中扮演越来越重要的角色,为我们提供更加智能、快速和准确的服务。✨

    在此,我要提醒大家,SoT的代码和演示已经在Github上开源,欢迎感兴趣的朋友们去查阅和使用。🌐

    以上就是今天播客的全部内容,希望大家对SoT有了更深入的理解。如果你有任何问题或者想法,欢迎在评论区留言。我们下期再见,祝大家每天都有新的收获!👋

  • Orca 2:推理技巧赋能小型语言模型,性能超越5-10倍大模型

    大家好,今天,我将为大家介绍一篇关于Orca 2的文章。Orca 2是一种小型语言模型,它通过学习一系列推理技巧,在推理能力上超越了5-10倍的大模型。

    背景

    大型语言模型(LLMs)正在改变人与机器之间的交互方式,并提升了许多现有应用的用户体验,如编码、网络搜索、聊天机器人、客户服务和内容创作等。这种由LLMs带来的转变也为新型人工智能应用铺平了道路。随着LLMs规模的不断扩大,例如GPT-4和PaLM-2等,它们展现出了前所未有的能力,尤其是在零-shot推理方面,包括回答复杂问题、生成解释和解决多步问题。即使在专业领域,LLMs现在也能在美国医学执照考试等测试中取得合格分数。这些能力曾经被认为是人工智能无法达到的范畴。

    问题

    然而,现有对于小型语言模型的训练往往依赖于模仿学习,即复制更大、更强大的模型的输出。尽管这些模型可以生成与其“老师”风格相似的内容,但它们在推理和理解能力上往往表现不足。模仿学习可能会限制较小模型的潜力,限制它们根据问题和模型容量来利用最佳解决策略。

    主要贡献及解决思路

    Orca 2的目标有两个:

    一是教导较小模型如何使用一系列推理技巧,例如逐步处理、回忆再生成、回忆-推理-生成、抽取-生成和直接回答方法;
    二是帮助这些模型确定何时使用最有效的推理策略,让它们能够在任务中表现最佳,不受模型大小的限制。

    与Orca 1不同,Orca 2精心设计推理策略以适应特定任务,考虑到学生模型是否具备相同的行为。更强大的LLM被设计为呈现引发特定战略行为的复杂提示,从而产生更精确的结果。在训练阶段,较小模型仅暴露于任务和结果行为,而不知道触发这种行为的原始提示,这种“提示擦除”技术使Orca 2成为一种“谨慎的推理者”。

    达到的具体效果

    与以往侧重于小型模型评估的研究不同,作者们提供了包含约100个任务和超过36,000个独特提示的15个综合性基准测试来评估Orca 2。初步结果显示(figure 1),Orca 2明显超越了相似规模的模型,甚至在需要推理的任务上与5到10倍大的模型相匹敌甚至超越,突显了赋予较小模型更好推理能力的潜力。

    文章推荐

    文章名称:Orca 2-Teaching Small Language Models How to Reason

    文章链接:https://arxiv.org/pdf/2311.11045.pdf

    github链接:

    结语

    以上就是我对Orca 2这篇文章的解读。希望对大家有所帮助。

  • 如何教小型语言模型进行推理

    大家好,欢迎收听本期播客节目!我是你们的主持人,今天我将和大家一起探讨一个重要的话题:如何教小型语言模型进行推理。推理能力对于语言模型来说非常关键,它能够帮助模型理解并生成连贯且上下文相关的回答。近年来,有许多研究和方法致力于提高语言模型的推理能力,甚至包括参数较小的模型。

    1. 连贯性思维引导

    一种在提高大型语言模型推理能力方面取得显著成果的方法是使用连贯性思维引导。这种方法通过给模型提供一系列提示或问题来引导其思维过程,鼓励其逐步推理。通过使用连贯性思维引导训练语言模型,研究人员在各种推理任务上取得了最先进的结果。

    2. 知识蒸馏

    为了将大型语言模型的推理能力传递给较小的模型,研究人员进行了知识蒸馏的探索。在这种方法中,通过较大的“教师”模型生成的连贯性思维输出来训练较小的“学生”模型。教师模型的连贯性思维输出为学生模型提供了宝贵的知识源,使其能够学习和提高其推理能力。

    3. 实验结果

    对算术、常识和符号推理数据集进行的实验证明了知识蒸馏方法对较小语言模型的任务性能的改进[1]。例如,当在一个名为PaLM-540B生成的连贯性思维的基础上进行微调时,T5 XXL模型在GSM8K数据集上的准确率从8.11%提高到了21.99%。

    来源:

    1. Teaching Small Language Models to Reason – Magister等人,ACL文集,2023年。

    了解更多:

    1. [2212.08410] Teaching Small Language Models to Reason
    2. Teaching Small Language Models to Reason – ACL Anthology
    3. [2311.11045] Orca 2: Teaching Small Language Models How to Reason
  • AI新星Orca 2——如何让小型语言模型变得更“聪明”

    大家好,欢迎收听今天的播客,我是你们的主持人。在这个科技日新月异的时代,我们的生活被越来越多的人工智能(AI)技术改变。今天,我们要带大家深入了解一种被称为Orca 2的新型AI技术。

    🚀Orca 2:推理技巧赋能小型语言模型

    一起想象一下,如果我们的手机、电脑、甚至是家用电器,都能像人类一样进行推理、解答问题,那会是怎样的情景呢?这并非遥不可及,因为微软研究团队已经让这个梦想变为现实。他们开发出了一种名为Orca 2的新型人工智能技术,这个技术是如何做到的呢?

    大型语言模型,比如我们所熟知的GPT-4,已经在很多方面展示出了强大的能力,比如回答复杂问题、生成解释和解决多步问题。然而,这些模型的规模通常很大,需要大量的计算资源,这在一定程度上限制了它们的应用。而Orca 2的出现,改变了这一局面。

    Orca 2的目标很明确,就是教导小型模型如何使用一系列的推理技巧,让它们能够在任务中表现最佳,不受模型大小的限制。比如,它会逐步处理问题、回忆再生成答案、抽取关键信息并生成解答等等。

    🔍Orca 2:小型语言模型的“超级大脑”

    所以,Orca 2就像是一个“超级大脑”,可以让小型语言模型具有更强大的推理能力。实际上,初步结果显示,Orca 2在需要推理的任务上,甚至可以与5到10倍大的模型相匹敌或超越。这一切都强烈地突显了赋予较小模型更好推理能力的潜力。

    🎓Orca 2:深度学习和教育的完美结合

    在Orca 2的训练中,研究人员还采用了指令调优和解释调优两种方法。这两种方法可以看作是模仿人类教育的过程,研究人员会以更大、更强大的模型为“老师”,让小型模型进行模仿学习。这样,小型模型不仅可以生成与“老师”风格相似的内容,还可以在推理和理解能力上有所提升。

    🏆Orca 2:未来的AI明星

    总的来说,Orca 2的出现,不仅为我们展示了小型语言模型的强大潜力,同时也为人工智能的未来发展打开了一扇新的大门。我们有理由相信,Orca 2将会在未来的AI领域中发挥更加重要的作用。

    以上就是我们今天的主题:Orca 2——如何让小型语言模型变得更“聪明”。感谢大家的收听,我们下期再见!

  • 顿悟Groking—深度洞察大型语言模型的学习方式

    亲爱的听众,大家好!👋欢迎来到我们的AI科技播客节目,我是您的主持人。今天我们要一起探索一个非常有趣也相当深奥的话题:“顿悟Groking——深度洞察大型语言模型的学习方式”。🧠💡📚

    🎈引子:神秘的AI世界

    在我们开始深入主题之前,我想先给大家讲一个小故事。你是否曾经有过这样的体验:面对一个复杂的问题,你琢磨了很久都无法找到答案,但突然有一天,你灵光一闪,想明白了所有的问题,这就是我们所说的“顿悟”或者“恍然大悟”。在人工智能的世界里,也存在着这样的“顿悟”现象。让我们一起来揭开AI的神秘面纱,看看它们是如何学习和理解我们的世界的。🕵️🔎

    📖语境学习(In-Context Learning)

    首先,我们要介绍的是一种称为“语境学习”的学习方式。在这种方式中,模型通过观察和学习词语或者短语在语境中的使用,理解它们的含义。也就是说,就像我们通过上下文来理解词汇的含义一样,AI模型也能通过查看输入和标签的样例,学习它们之间的映射关系。🤖🧠

    有趣的事实是,当模型足够大时,即使给定的标签和模型的语义先验相矛盾,它们也可以学习并理解这种矛盾的映射关系。这就像是说,即使我们告诉模型白天是黑夜,黑夜是白天,它们也能从这种混乱的情况中学习并理解新的映射关系。这种能力在小型模型中是无法实现的。🌓✨

    🎯无关标签的语境学习(SUL-ICL)

    接下来,我们要介绍的是另一种学习方式,叫做“无关标签的语境学习”(SUL-ICL)。在这种情况下,标签和输入的语义是完全无关的。也就是说,模型不能依赖于标签的语义来理解任务,而必须从输入和标签之间的映射关系中学习。这就像是我们给模型展示了一幅抽象画,让它去理解画中的意义。🎨🖼️

    然而,就算在这样的困难环境下,大型模型依旧能够很好地完成任务,而小型模型的表现则大打折扣。这就好像是说,即使我们给模型展示了最抽象最复杂的画作,它也能从中理解并学习到新的知识。这种能力在小型模型中是无法实现的。💪🦾

    📈指导调优(Instruction Tuning)

    在深度学习和AI领域,我们有一种叫做“指导调优”的技术。这种技术的核心思想是,通过对模型的微调,使模型更好地理解并执行特定任务。在无关标签的语境学习(SUL-ICL)环境中,指导调优能提高模型的性能,增强模型学习输入-标签映射的能力。🎛️🔧

    但是,也有一些有趣的现象。研究发现,进行指导调优的模型更不易接受反向的标签。也就是说,调优后的模型更倾向于依赖它们的语义先验,而不愿意接受与这些先验相冲突的新信息。这可能会限制模型的学习灵活性。⚖️🔄

    ✨结语

    今天,我们一起探索了大型语言模型的学习方式,看到了它们在语境学习中如何依赖或者覆盖语义先验,如何在无关标签的环境中学习输入-标签映射,以及指导调优如何影响模型的学习方式。🌈🎁

    AI的世界充满了未知和奇迹,就像我们的世界一样。虽然我们还有很多未解的问题,但是每一次的探索,每一次的“顿悟”,都让我们离理解AI的真相更近一步。让我们期待下一次的探索,期待下一次的“顿悟”。🚀🌟

    感谢大家的倾听,我们下期播客再见。再见!👋🎧

  • 深度压缩感知——深度学习与压缩感知的完美融合

    🚀 序言

    大家好!欢迎收听我们的播客,我是你们的主持人,一个热爱科学和技术的追梦者。今天,我们要谈论的主题是一个神奇且引人入胜的话题——深度压缩感知。听起来有点复杂对吧?别担心,我会尽量将它解释得通俗易懂,让我们一起在知识的海洋中探索、学习。

    🌠 挑战与奇迹:压缩感知

    首先,让我们来聊聊什么是压缩感知。压缩感知(Compressed Sensing)是一种优雅的框架,用于从压缩信号中恢复稀疏信号。例如,CS 可以利用自然图像的结构,仅从少量的随机测量中恢复图像。这是不是听起来像是进行了一次魔法操作呢?🎩🐰

    压缩感知的理论深入复杂,但是它的核心思想非常精妙——我们可以通过极少的采样点,实现了和全采样一样的效果。这就好像我们只需要看一只黑天鹅的一部分,就能推断出整个黑天鹅的样子。这样的思路是不是颠覆了你的认知呢?🤔

    🌐 深度学习与压缩感知的结合

    现在,让我们把目光转向我们的主题——深度压缩感知。DeepMind 的研究人员提出了一种全新的深度压缩感知框架,这是将压缩感知与深度学习相结合的一种尝试。

    深度压缩感知(DCS)框架通过联合训练生成器和通过元学习优化重建过程,显著提高了信号恢复的性能和速度。实际上,这就是合理地利用了压缩感知和深度学习的优点,形成了一种有效的、高效的框架。

    💡 新方法:改进 GAN 的新策略

    DeepMind 的研究人员还开发了一种使用来自鉴别器的梯度信息来改进 GAN 的新方法。你可能会问,GAN 是什么呢?GAN,全称生成对抗网络(Generative Adversarial Networks),是深度学习的一种方法,通过让两个神经网络互相斗争,来生成新的、以假乱真的数据。通过这种新的方法,我们可以进一步提升 GAN 的性能,打开了深度学习新的可能性。

    🎉 结语

    今天,我们一起走进了深度压缩感知的奇妙世界,看到了深度学习与压缩感知的完美结合。我们还了解了如何改进 GAN 的新方法,感受到了人工智能的无限可能。

    这就是今天的播客内容,希望你们喜欢。记住,无论前方的道路有多么曲折,知识的力量都可以指引我们找到前进的方向。下期播客,我们会继续探索科技的新前沿,期待你的收听!👋

    以上内容,主要参考了:深度压缩感知,新框架提升 GAN 性能 – 知乎

    在此,向所有在科技领域探索前沿,努力推动人类进步的研究人员们致敬!🙏 未来, 我们会继续关注这些有着深远影响的科技发展,与你一起分享,一起学习。谢谢大家,我们下期再见!👋🎙️🎉

  • 🚀人工智能新进展:RWKV-5模型的训练与性能对比🔍

    大家好,我是你们的播客主播,今天我们要一起探索一篇非常引人入胜的文章,关于人工智能的最新进展:RWKV-5模型的训练与性能对比。这是一篇首发于技术备忘录的深度科技文章,作者是在人工智能领域有着丰富经验的专家PENG Bo。

    🎯RWKV-5模型:全新升级,实力更胜一筹🎉

    这篇文章介绍的主角,RWKV-5,是一款支持100+种语言的多语言模型,同时代码能力也非常强大。然而,PENG Bo并没有止步于此,他正在努力训练这款模型,向更高的目标挺进。他分享了他的一些测试数据,从中我们可以看出,RWKV-5在训练完成后的英文能力(avg%)可以达到62%的SOTA水准。而且,RWKV-5的多语言能力(xavg%)也显著超过了现有的同规模模型。值得一提的是,尽管PENG Bo在训练时并没有加入多语言任务的数据,但RWKV-5的能力还是通过语言间的迁移实现了👏。

    🚀训练进展:超越前代,迎接新挑战💪

    让我们再深入看一下RWKV-5的训练进度。PENG Bo分享的数据显示,仅仅在训练进度达到30%时,RWKV-5 World v2 1.6B就全面超过了前代模型RWKV-4 World v1 1.6B的性能。这是一个令人惊叹的进步,我们有理由对RWKV-5的未来充满期待🌟。

    🛠️实现细节:深入解析,探索神秘代码🔬

    除此之外,PENG Bo还分享了RWKV-5的具体实现方式,包括一段详细的代码。这部分内容对于技术爱好者来说,无疑是一份珍贵的宝藏。通过研究这段代码,我们可以更深入地理解RWKV-5的内部结构和运作机制💡。

    🎈结语:期待未来,探索无限可能🎆

    最后,PENG Bo对未来的展望让我们更加憧憬。他提到,如果语料库数量再翻倍,我们可以想象,下一个版本World v3的性能将会有多强。这不仅让我们对RWKV-5的性能感到赞叹,也让我们对未来充满期待。

    这就是今天的播客内容,我们一起探索了RWKV-5模型的训练进展和性能对比。期待在未来的播客中,我们能一起见证更多的科技突破和人工智能的进步。再见!👋

  • RWKV/rwkv-5-world-3b的详细解读

    RWKV/rwkv-5-world-3b的详细解读

    https://huggingface.co/RWKV/rwkv-5-world-3b 该模型名为 RWKV/rwkv-5-world-3b,是一种用于文本生成的模型,使用Transformers库和PyTorch框架进行开发。

    🔍 模型的主要信息:

    • 模型类型:用于文本生成的 Transformer 模型
    • 语言库:PyTorch
    • 标签:rwkv5

    ⚙️ 模型的使用:

    该模型可以通过Hugging Face的Transformers库进行调用。页面提供了在CPU和GPU上运行模型的代码示例。代码分为几个部分:

    • 首先,从Hugging Face模型库导入AutoModelForCausalLM和AutoTokenizer。
    • 然后,使用模型和tokenizer的预训练版本来实例化模型和tokenizer。
    • 接着,定义一个文本提示,然后使用tokenizer处理这个提示,将其转换为模型可以理解的格式。
    • 最后,使用模型生成一段新的文本,并将结果解码为可读的文本。

    🖥️ 代码示例:

    在CPU上运行的代码:

    from transformers import AutoModelForCausalLM, AutoTokenizer
    
    model = AutoModelForCausalLM.from_pretrained("RWKV/rwkv-5-world-3b", trust_remote_code=True)
    tokenizer = AutoTokenizer.from_pretrained("RWKV/rwkv-5-world-3b", trust_remote_code=True)
    
    text = "\nIn a shocking finding, scientist discovered a herd of dragons living in a remote, previously unexplored valley, in Tibet. Even more surprising to the researchers was the fact that the dragons spoke perfect Chinese."
    prompt = f'Question: {text.strip()}\n\nAnswer:'
    
    inputs = tokenizer(prompt, return_tensors="pt")
    output = model.generate(inputs["input_ids"], max_new_tokens=256)
    print(tokenizer.decode(output[0].tolist(), skip_special_tokens=True))

    在GPU上运行的代码:

    from transformers import AutoModelForCausalLM, AutoTokenizer
    
    model = AutoModelForCausalLM.from_pretrained("RWKV/rwkv-5-world-3b", trust_remote_code=True).to(0)
    tokenizer = AutoTokenizer.from_pretrained("RWKV/rwkv-5-world-3b", trust_remote_code=True)
    
    text = "请介绍北京的旅游景点"
    prompt = f'Question: {text.strip()}\n\nAnswer:'
    
    inputs = tokenizer(prompt, return_tensors="pt").to(0)
    output = model.generate(inputs["input_ids"], max_new_tokens=256, do_sample=True, temperature=1.0, top_p=0.1, top_k=0, )
    print(tokenizer.decode(output[0].tolist(), skip_special_tokens=True))

    📊 模型的统计数据:

    • 上个月的下载量:108

    🚀 推理API:

    此模型支持Hugging Face的推理API,可以进行文本生成。

  • 🎙️AMD和英特尔处理器高危漏洞警报⚠️

    今天,我们要讲的话题可能让你的心跳加速,那就是处理器高危漏洞!听起来是不是有点头大?别担心,我会尽我所能让这个复杂的话题变得易懂有趣。

    💥炸弹来袭:处理器高危漏洞曝出💥

    首先,让我们来了解一下这个炸弹的来源。最近,两大处理器巨头AMD和英特尔,都曝出了影响广泛的高危漏洞。这些漏洞可能被攻击者利用,提升权限、远程执行代码,甚至泄漏敏感信息。

    对于AMD来说,其处理器的漏洞可能导致Linux虚拟机受到黑客的攻击。而英特尔的处理器漏洞则直接影响到其全线产品和架构,可能给云计算厂商带来巨大的损失。

    🔍漏洞详解一:AMD的CacheWarp🔍

    让我们先来看看AMD的这个漏洞。这个漏洞被命名为”CacheWarp”,它存在于部分AMD处理器的INVD指令中。如果有恶意攻击者利用这个漏洞,他们可以破解受AMD SEV保护的虚拟机,提升权限并执行远程代码。

    这个漏洞影响的是支持SEV的AMD处理器,包括第一代、第二代和第三代的AMD EPYC处理器。但好消息是,AMD的第四代”Genoa” EPYC处理器并不受这个漏洞的影响。

    对于受影响的第三代EPYC处理器,AMD已经发布了可热加载的微码补丁和更新的固件映像,这个补丁并不会导致任何性能下降。

    🔍漏洞详解二:英特尔的Reptar🔍

    接下来,让我们来看看英特尔的这个漏洞。这个漏洞被谷歌安全团队命名为”Reptar”,它存在于英特尔的台式机、服务器、移动和嵌入式CPU中。

    攻击者可以利用Reptar来提升权限、获取敏感信息的访问权限,或者触发拒绝服务状态。英特尔已经在2023年11月之前为受影响的系统(包括使用Alder Lake、Raptor Lake和Sapphire Rapids的系统)提供了更新的微代码,并表示没有观察到性能影响或预期问题。

    🚀解决方案:及时更新🚀

    那么,面对这些高危漏洞,我们应该怎么办呢?最简单也是最有效的解决方案就是及时更新。无论是AMD还是英特尔,都已经发布了对应的补丁或者更新的微代码。用户只需要更新他们的BIOS、系统操作系统和驱动程序,就可以得到这些最新的微代码,从而规避这些高危漏洞。

    我知道,这些信息听起来可能让人有些紧张。但记住,只要我们保持警惕,及时进行更新,就能有效地保护自己的设备不受这些漏洞的影响。

    好了,今天的节目就到这里,希望大家在听完今天的节目后,能有所收获,也能增强对科技世界的理解和热爱。在下次的节目中,我们将继续带来最新、最有趣的科技资讯,敬请期待!

  • AI音乐创作:MustangoAI音乐创作:

    🎉在这个新的一期,我们将带领大家深入浸入AI音乐创作的海洋🎵,让我们一起探讨一款由declare-lab开发的Hugging Face Space项目——Mustango,以及一篇相关的论文“Mustango: Toward Controllable Text-to-Music Generation”📝。两者的链接已在节目简介里给出。

    🎼AI音乐创作的新篇章:Mustango🎸

    首先,我们来介绍一下Mustango。这是一个由declare-lab开发的项目,旨在推动可控的文本到音乐的生成。简单来说,你只需输入文本,Mustango就能为你生成相应的音乐。你甚至可以通过特定的文本指令来控制生成的音乐的和弦、节奏、速度以及音调。🎹这是多么令人惊艳的AI音乐创作工具啊!

    📚翻开知识的大门:Mustango的科技论文📖

    接下来,让我们一起看看关于Mustango的论文。这篇名为“Mustango: Toward Controllable Text-to-Music Generation”的论文,由Jan Melechovsky等作者撰写,详细描述了Mustango的设计和实现过程。在论文中,他们提出了一种名为MuNet的音乐领域知识启发的UNet子模块,将从文本提示中预测的音乐特定特性,以及一般的文本嵌入,整合到扩散去噪过程中。🔬

    🎁创新的数据增强方法和MusicBench数据集📈

    为了克服开放数据集的有限可用性问题,该团队提出了一种新颖的数据增强方法,包括改变音乐音频的和声、节奏和动态方面,并使用最先进的音乐信息检索方法来提取音乐特征,然后将这些特征以文本形式附加到现有的描述中。他们发布的MusicBench数据集包含超过52K的实例,并且在标题文本中包含了基于音乐理论的描述。🎁

    🥇实验结果:Mustango的音乐生成质量是最先进的🏆

    通过大量的实验,我们发现Mustango生成的音乐质量是最先进的,而且通过音乐特定文本提示的可控性在期望的和弦、节拍、调性和速度等方面大大超过了其他模型。🥇

    🚀总结:AI音乐创作的未来🌈

    Mustango的出现,让我们看到了AI音乐创作的无限可能。随着技术的进步,我们期待看到更多类似Mustango这样的项目出现,让更多的人能够享受到AI带来的便利。🚀

    🏁感谢收听

    在下期节目中,我们还将继续为您介绍更多有趣的AI项目和最新的科技成果。我们下期再见!👋

    [2311.08355] Mustango:迈向可控的文本到音乐生成 (arxiv.org)

    Mustango – a Hugging Face Space by declare-lab


    Mustango

    • 1. Mustango 由两个组件组成:1) 潜在扩散模型;2)MuNet。
      2. 借鉴 Tango(Ghosal 等人,2023) 和 AudioLDM(Liu 等人,2023b),利用潜在扩散模型 (LDM) 降低计算复杂性,同时保持扩散模型的表达能力。
      3. 具体来说,我们使用一个额外的变分自编码器 (VAE) with condition C 来构建潜在音频 prior z0,其中 In our case refers to a joint music and text condition。
      4. 通过前向扩散过程 (Markovian Hierarchical VAE),将潜在音频 prior z0 转化为标准高斯噪声 z N ∼ N (0, I),如公式 (1) 所示,其中预先设定的高斯噪声 (0)。
      5. 在反向过程中,从高斯噪声 z N ∼ N (0, I) 中重构潜在音频 prior z n−1,通过 Music-Domain-Knowledge-Informed UNet (MuNet) 去噪器,其噪声估算器定义为 where MHA is multi-headed attention used for cross attention, where Q, K, and V are query, key, and value, respectively。
      6. 在训练过程中,MuNet 采用的结构与 UNet(Ronneberger 等人,2015) 类似,包括多个下采样、中采样和上采样块,并通过跨注意力将条件纳入。
      7. 在 MuNet 中,我们提出了两个编码器,Enc b 和 Enc c,分别对节拍和和弦特征进行编码,利用最先进的 Fundamental Music Embedding (FME) 和 Music Positional Encoding (MPE) (Guo 等人,2023) 确保音乐特征得到适当的捕捉和保留几个基本音乐属性 (如平移不变性等)。
      8. 我们介绍了两个编码器的细节:Enc b 和 Enc c,它们从原始输入中提取节拍和和弦嵌入。
      9. 在节拍编码器 Enc b 中,使用方程 (10) 获得编码的节拍和和弦嵌入。
      10. 在获得编码的节拍和和弦嵌入后,我们使用两个额外的跨注意力层将音乐条件纳入去噪过程,与 TANGO(Ghosal 等人,2023) 相比,它仅使用一个跨注意力层来整合文本条件 (见方程 (9))。
      11. 这使得 MuNet 能够在去噪过程中利用音乐和文本特征,从而生成更可控和更有意义的音乐。
      12. 在训练阶段,我们使用教师强迫,因此利用地面真实节拍和和弦特征来约束音乐生成过程。
      13. 然而,在推理阶段,我们采用不同的方法。
  • 探索人工智能——Zephyr 7B Beta与GGUF的奇妙之旅🚀

    我们的主角是Zephyr 7B Beta和GGUF,它们都是我们这个广阔世界中的一颗璀璨星辰。🌟

    Zephyr 7B Beta与GGUF的特色🌈

    首先,让我们来了解一下Zephyr 7B Beta和GGUF。Zephyr 7B Beta是由Hugging Face H4团队开发的一个模型,GGUF则是由llama.cpp团队在2023年8月21日推出的一种全新格式,它取代了以前的GGML格式。GGUF已经得到了多个客户端和库的支持,包括llama.cpp、text-generation-webui、KoboldCpp、LM Studio、LoLLMS Web UI、Faraday.dev、ctransformers、llama-cpp-python和candle等。👏

    GGUF的兼容性⚙️

    GGUF文件与llama.cpp的兼容性始于2023年8月27日的d0cee0d提交。除此之外,它还与许多第三方的用户界面和库兼容。🔗

    GGUF的量化方法🔬

    接下来,我们来深入探讨一下GGUF的量化方法。GGUF采用了一种新的量化方法,包括2位、3位、4位、5位和6位的量化。这些不同的量化方法使模型在保证质量的同时,能够以更小的体积进行存储和传输,从而极大地提高了效率。🚀

    如何下载GGUF文件💾

    很多人可能会对如何下载GGUF文件感到困惑。实际上,你并不需要下载整个库,而只需要选择你想要的文件进行下载即可。例如,在text-generation-webui中,你可以直接输入模型库:TheBloke/zephyr-7B-beta-GGUF,然后输入你想要下载的文件名,如:zephyr-7b-beta.Q4_K_M.gguf,再点击下载即可。如果你想在命令行中下载多个文件,可以通过安装huggingface-hub Python库来实现。📥

    结语🎈

    以上就是我们今天的内容,人工智能的世界,充满了无限的可能,让我们一起期待它们为我们的生活带来更多的便利和乐趣。

  • Anima—开源的33B中文大型语言模型

    🎉 引言

    👋 大家好,欢迎来到我们的播客节目。我知道你们每次来,都是期待听到一些新奇、有趣、颠覆常规的内容。那么今天,我带给大家的就是一项来自人工智能领域的重大突破——它名为Anima

    💡 什么是Anima?

    Anima,这是一个开源的33B中文大语言模型(LLM),是目前市面上第一个开源的如此庞大的中文LLM。但不仅如此,Anima还支持DPO对齐训练,同时也是我们开源的支持100k上下文窗口的模型。你也许会问,这些术语是什么意思,为什么它们如此重要。别急,接下来我会一一解释给大家听。

    🚀 Anima的特性

    首先,让我们来了解一下什么是大语言模型。简单来说,大语言模型是一种人工智能模型,它能理解和生成人类语言。而33B,这个数字代表的是模型的规模,也就是模型的参数数量。在Anima中,这个数字达到了330亿,这意味着Anima具有极强的理解和生成语言的能力。

    接下来,我要介绍的是DPO对齐训练。DPO,全称为Distributed Policy Optimization,是一种分布式策略优化技术。它可以帮助我们高效地训练大规模的人工智能模型,让它们可以更好地理解和生成语言。

    最后,我要说的是100k上下文窗口。在语言模型中,上下文窗口的大小决定了模型可以理解的语境范围。100k的上下文窗口意味着Anima可以理解更长的文本,更丰富的语境,从而生成更准确、更自然的语言。

    🌟 AirLLM的升级

    而最新的更新,是我们引入了AirLLM。这是一个库,它可以帮助你使用单个GPU,只需4GB的内存,就能推断70B的大型语言模型。这意味着,你不再需要拥有强大的计算资源,也可以使用超大规模的语言模型。这无疑为个人开发者和小型团队打开了一扇新的大门。

    ⭐ 结语

    Anima,这是一项突破性的工作,它让我们看到了人工智能的可能性和未来。无论你是一个开发者,还是对人工智能有兴趣的听众,我都邀请你去看看Anima的GitHub页面。你会发现,那里有一个全新的世界,等待着你的探索。谢谢大家,我们下期节目再见!

    👋 再见,祝你有美好的一天!

  • ICL vs Fine-tuning:迁移学习中的两种方法

    导语:
    迁移学习是机器学习领域中的一个重要概念,它可以将在一个任务上学到的知识迁移到另一个任务上。在迁移学习中,有两种常见的方法:ICL(Instance-based Cross-Lingual Learning)和Fine-tuning。本文将逐步思考并详细解析这两种方法的原理和适用场景。

    正文:

    1. ICL(Instance-based Cross-Lingual Learning)
      ICL是一种基于实例的跨语言学习方法,它通过在源语言和目标语言之间建立对应关系来实现知识迁移。具体而言,ICL使用源语言的标注数据和目标语言的未标注数据进行训练,然后将源语言的模型参数应用到目标语言的任务上。这种方法的优势在于可以利用源语言的丰富标注数据来提升目标语言任务的性能,尤其适用于目标语言数据稀缺的情况。
    2. Fine-tuning
      Fine-tuning是一种微调模型的方法,它通过在源任务上预训练一个模型,然后将该模型的参数应用到目标任务上,并在目标任务上进行进一步的训练。与ICL不同的是,Fine-tuning不需要源语言和目标语言之间的对应关系,而是通过共享模型参数来实现知识迁移。这种方法的优势在于可以利用源任务的大规模标注数据来提升目标任务的性能,尤其适用于目标任务和源任务之间存在一定的相似性。
    3. ICL vs Fine-tuning
      ICL和Fine-tuning在迁移学习中有着不同的应用场景。ICL适用于源语言和目标语言之间存在对应关系的情况,例如机器翻译任务中的不同语言对。通过利用源语言的标注数据和目标语言的未标注数据,ICL可以有效地提升目标语言任务的性能。而Fine-tuning适用于源任务和目标任务之间存在一定的相似性的情况,例如在图像分类任务中,可以通过在大规模图像分类任务上预训练一个模型,然后将该模型应用到目标图像分类任务上进行微调,从而提升目标任务的性能。

    结论:
    ICL和Fine-tuning是迁移学习中常用的两种方法,它们分别适用于不同的应用场景。ICL适用于源语言和目标语言之间存在对应关系的情况,可以利用源语言的标注数据提升目标语言任务的性能;而Fine-tuning适用于源任务和目标任务之间存在一定的相似性的情况,可以利用源任务的大规模标注数据提升目标任务的性能。


    Learn more:

    1. 4种简单的博客文章模板(以及何时使用它们)
    2. 创建博客文章 · Shopify 帮助中心
    3. 撰写博客文章 · Shopify 帮助中心
  • Monarch Mixer: 重新审视BERT,无需注意力机制或多层感知器

    引言:
    近年来,Transformer模型在自然语言处理和计算机视觉等领域取得了巨大成功。然而,我们是否只有Transformer这一种模型可以达到如此惊人的性能呢?这是一个我们一直在思考的问题。为了回答这个问题,斯坦福大学的研究人员提出了一种新的架构——Monarch Mixer(M2),它在序列长度和模型维度上都是次二次的,同时在性能上能够与Transformer媲美甚至超越。

    Monarch Mixer架构:
    Monarch Mixer的基本思想是用Monarch矩阵替换Transformer的主要组件。Monarch矩阵是一类结构化矩阵,它广义上推广了快速傅里叶变换(FFT),具有次二次的计算复杂度,同时在硬件上更加高效和表达能力强。Monarch Mixer使用由Monarch矩阵构建的层来实现序列内的混合(类似Transformer中的注意力机制)和模型维度上的混合(类似Transformer中的多层感知器)。与MLP Mixer和ConvMixer等工作类似,Monarch Mixer将所有组件替换为单一的原语,从而实现了全面的次二次架构。

    Monarch Mixer与BERT的结合:
    作为对这一思想的首次验证,研究人员选择了BERT作为目标模型。他们将BERT中的注意力机制替换为受到注意力自由模型的启发,并用一些简单的块对角矩阵替换了MLP。所有这些操作都可以用Monarch矩阵来实现。此外,他们还对模型进行了一些微调,如添加额外的卷积连接和在微调过程中使用平均池化等。通过这些改进,他们成功地构建了Monarch Mixer BERT(M2-BERT)模型。

    M2-BERT的性能:
    研究人员对M2-BERT模型进行了评估,并与标准的BERT模型进行了比较。令人惊讶的是,即使在参数数量较少的情况下,M2-BERT模型的性能也相当不错。例如,M2-BERT-base模型(80M参数)在GLUE任务上的平均得分超过了标准BERT-base模型(110M参数)。此外,通过参数匹配,M2-BERT-base模型的性能还有进一步提升。

    长序列的优势:
    Monarch Mixer架构的一个潜在优势是在处理长序列时的速度和可扩展性。由于M2在模型维度上是次二次的,因此可以减少计算量。而序列混合器在序列长度上也是次二次的,这意味着它具有处理更长序列的潜力。

    结论:
    Monarch Mixer是一种新颖的架构,它通过使用次二次的Monarch矩阵替换Transformer的组件,实现了与Transformer相媲美甚至超越的性能。尽管目前还处于早期阶段,但M2-BERT模型已经展现出了很大的潜力。未来的研究将进一步探索Monarch Mixer架构的优化和应用。


    Learn more:

    1. Monarch Mixer: Revisiting BERT, Without Attention or MLPs · Hazy Research
    2. 替代Transformer!斯坦福提出新架构:Monarch Mixer,无需Attention,性能更强~-腾讯云开发者社区-腾讯云
    3. Monarch Mixer:介绍一种性能比Transformer更强的网络架构-CSDN博客
  • QLoRA: 高效微调大型语言模型的利器

    引言:
    在机器学习领域,大型语言模型(LLM)是当前热门话题。想象一下,你是一名机器学习工程师,你的公司拥有GPU和开源的LLM,比如LLAMA/Falcon。你的任务是为每个客户构建工具,每个客户都有独特的需求。你为每个客户微调模型,每个人都满意。但是当你有成千上万个客户时会发生什么?部署成千上万个对GPU需求很高的LLM是不可行的,除非你有大量的GPU供应。你需要一种策略,可以在不耗尽资金或超负荷存储的情况下为每个客户微调模型。这就是QLoRA和LoRA发挥作用的地方。

    QLoRA和LoRA的背景:
    QLoRA和LoRA是一种高效微调大型语言模型的技术。在微调过程中,我们通常需要调整模型的权重参数,以适应特定的任务。传统的微调方法需要逐步更新权重参数,这会导致计算和存储开销巨大。而QLoRA和LoRA则提供了一种更高效的方法,可以将微调过程中的权重变化存储起来,并在需要时一次性更新模型的权重,从而节省了计算和存储资源。

    QLoRA和LoRA的工作原理:

    • LoRA(Low-Rank Adapters):LoRA的核心思想是将可调整的低秩矩阵注入到Transformer架构的每一层中。这些低秩矩阵充当适配器的角色,使得模型可以根据特定任务进行调整和专门化,同时最大限度地减少额外的参数数量。
    • QLoRA(Quantized Low-Rank Adapters):QLoRA是LoRA的扩展,它在微调过程中引入了量化技术,以增强参数的效率。QLoRA利用LoRA的原理,并引入了4位NormalFloat(NF4)量化和双重量化技术,进一步减少了存储和计算资源的使用。

    QLoRA和LoRA的优势:

    • 减少参数开销:QLoRA和LoRA通过使用低秩矩阵而不是微调所有参数,显著减少了可调参数的数量,使得模型在存储和计算上更加高效。
    • 高效切换任务:QLoRA和LoRA允许共享预训练模型用于多个任务,减少了维护独立实例的需求。这样在部署过程中可以快速无缝地切换任务,减少了存储和切换成本。
    • 无推理延迟:QLoRA和LoRA的线性设计确保与完全微调的模型相比没有额外的推理延迟,适用于实时应用。

    QLoRA和LoRA的应用前景:
    QLoRA和LoRA为微调大型语言模型提供了高效的解决方案,可以在保证任务性能的同时减少可调参数的数量。这些技术在自然语言处理领域具有广泛的应用前景,可以帮助我们更好地利用大型语言模型的知识和能力。


    Learn more:

    1. GitHub – artidoro/qlora: QLoRA: Efficient Finetuning of Quantized LLMs
    2. Understanding LoRA and QLoRA – The Powerhouses of Efficient Finetuning in Large Language Models | by Murali Manohar | Medium
    3. Fine-Tuning of Large Language Models with LoRA and QLoRA