分类: 🌏

  • MiLoRA:利用次要奇异成分实现高效的 LLM 微调

    大型语言模型 (LLM) 在各种任务中展现出优异的性能,例如数学推理和问答。这些模型通常在大型网络数据上进行预训练,然后使用指令数据和人类偏好数据进行微调,以适应不同的下游任务。然而,完全微调需要大量的计算资源,限制了 LLM 在不同场景中的应用。

    参数高效微调 (PEFT) 旨在降低预训练模型微调的计算和 GPU 内存成本。低秩自适应 (LoRA) 是最常用的 PEFT 方法之一,它假设线性模型权重的变化是低秩的。对于每个选定的权重矩阵,LoRA 只更新两个低秩矩阵,同时保持原始权重矩阵不变。在推理过程中,低秩矩阵被合并到预训练的线性权重中,因此不会引入额外的计算或内存成本。

    尽管 LoRA 在效率方面表现出色,但它存在一些局限性。现有的 LoRA 方法通常随机初始化低秩矩阵,并在无指导的子空间中优化可训练参数。这种策略可能会覆盖预训练模型中重要的特征,从而影响低秩自适应方法的性能。

    MiLoRA:利用次要奇异成分进行低秩自适应

    为了解决这个问题,本文提出了一种名为 MiLoRA 的简单而有效的 PEFT 方法,它只更新权重矩阵的次要奇异成分,而保持主要奇异成分不变。

    主要奇异成分 对应于权重矩阵中重要的特征,而 次要奇异成分 则包含噪声或长尾信息。MiLoRA 将低秩矩阵初始化在一个与主要矩阵正交的子空间中,从而最大限度地利用次要奇异成分来学习微调数据集,同时保留预训练模型的知识。

    MiLoRA 的工作原理

    1. 分解权重矩阵: 使用奇异值分解 (SVD) 将权重矩阵 W 分解成两个矩阵:主要矩阵 Wp 和次要矩阵 Wm。
    2. 初始化低秩矩阵: 使用次要矩阵 Wm 初始化 LoRA 框架中的低秩矩阵 A 和 B.
    3. 微调: 只更新低秩矩阵 A 和 B. 而保持主要矩阵 Wp 不变。

    实验结果

    本文在常识推理、数学推理和指令遵循基准上进行了广泛的实验,结果表明 MiLoRA 始终优于 LoRA 和 PiSSA,而不会牺牲训练或推理效率。

    常识推理: 在 LLaMA2-7B 和 LLaMA3-8B 上,MiLoRA 在八个常识推理数据集上的平均准确率分别提高了 1.6% 和 1.1%。

    数学推理: 在 LLaMA2-7B 上,MiLoRA 在 GSM8K 和 MATH 数据集上的平均准确率分别提高了 1.92% 和 1.76%。

    指令遵循: 在 LLaMA2-7B 上,MiLoRA 在 Alpaca-Eval v1.0 上的胜率达到 87.3%,与 LLaMA2 Chat 7B 的性能相当。

    MiLoRA 的优势

    • 保留预训练知识: 通过保持主要奇异成分不变,MiLoRA 能够有效地保留预训练模型的知识。
    • 高效学习: MiLoRA 只更新次要奇异成分,从而减少了训练参数的数量,提高了训练效率。
    • 简化超参数设置: MiLoRA 不需要调整缩放因子 α 和初始化超参数,只需设置秩 r 即可。

    结论

    MiLoRA 是一种简单而有效的 PEFT 方法,它通过利用次要奇异成分来实现高效的 LLM 微调。实验结果表明,MiLoRA 在各种任务上都取得了优异的性能,同时保留了预训练模型的知识。

    参考文献

    • Hu, J. , Shen, Z., Xiong, L., Zhang, S., & He, X. (2021). Lora: Low-rank adaptation of large language models. arXiv preprint arXiv:2106.09685.
    • Meng, X. , Wang, Y., Wang, J., Chen, J., & Zhang, M. (2024). PiSSA: Parameter-efficient finetuning with principle singular component adaptation. arXiv preprint arXiv:2404.05636.
    • Touvron, J. , Lachaux, M., Izacard, G., Hoffmann, J., & Joulin, A. (2023). Llama: Open and efficient large language models. arXiv preprint arXiv:2302.13971.
    • AI@Meta. (2024). Llama 3: Open and efficient large language models. Retrieved from https://ai.facebook.com/blog/llama-3-open-and-efficient-large-language-models/.

    下一步工作

    • 将 MiLoRA 与其他 LoRA 变体相结合,进一步提高性能。
    • 研究 MiLoRA 在其他任务上的应用,例如机器翻译和代码生成。
    • 探索 MiLoRA 的理论基础,并分析其优越性能的原因。

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

    A: 这篇论文提出了一种名为MiLoRA的新方法,旨在解决大型语言模型(LLMs)的高效微调(finetuning)问题。具体来说,它试图解决以下问题:

    1. 计算和内存成本:传统的全参数微调方法需要大量的计算资源和内存,这限制了大型语言模型在不同场景下的广泛应用。
    2. 知识干扰:以往的基于LoRA(Low-Rank Adaptation)的方法在随机初始化低秩矩阵时,可能会在优化过程中干扰预训练权重矩阵中已经学习到的重要特征。
    3. 参数效率:为了减少微调期间的计算和GPU内存成本,需要一种参数高效的微调方法,以便在保持模型性能的同时减少可训练参数的数量。

    MiLoRA通过仅更新权重矩阵的次要奇异成分(minor singular components),同时保持主要奇异成分(principle singular components)固定,来解决上述问题。这种方法预期能够在微调任务中有效学习,同时更好地保留和利用预训练知识。

    Q: 有哪些相关研究?

    A: 这篇论文提到了多个与参数高效微调(PEFT)相关的研究工作,以下是一些主要的相关研究:

    1. LoRA (Low-Rank Adaptation) (Hu et al., 2021): 一种广泛使用的PEFT方法,通过使用两个可训练的低秩矩阵来重新参数化选定的线性权重的更新。
    2. PiSSA (Meng et al., 2024): 一种与MiLoRA同时期提出的低秩适应方法,它适应主要奇异成分,而不是次要奇异成分。
    3. Adapter-based methods (Houlsby et al., 2019; Pfeiffer et al., 2021a,b): 通过在每个Transformer层中插入额外的可训练前馈子模块来进行参数高效的迁移学习。
    4. Prompt-based methods (Lester et al., 2021; Li & Liang, 2021; Liu et al., 2022): 在输入令牌中添加额外的软提示,在训练期间只更新软提示,而固定预训练模型参数。
    5. AdaLoRA and ALoRA (Zhang et al., 2023; Liu et al., 2024b): 自适应地确定每个权重矩阵中LoRA模块的秩,根据重要性分数调整秩。
    6. rsLoRA (Kalajdzievski, 2023): 通过适当的缩放因子改进LoRA,以提高大秩性能。
    7. DoRA (Liu et al., 2024a): 将预训练权重分解为幅度和方向组件,然后对两者进行微调以获得更好的性能。
    8. VeRA (Kopiczko et al., 2024): 通过在所有层之间共享一对低秩矩阵,与LoRA相比减少了可训练参数的数量。

    这些研究工作为大型语言模型的参数高效微调提供了多种方法和思路,而MiLoRA则是在此基础上提出的新方法,旨在通过特定的方式来平衡学习新任务和保留预训练知识。

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

    A: 论文通过提出MiLoRA(Minor singular component based Low Rank Adaptation)方法来解决大型语言模型(LLMs)的高效微调问题。MiLoRA的核心思想和解决策略如下:

    1. 奇异值分解(SVD):首先对权重矩阵进行SVD分解,将其分为主要矩阵(Wp)和次要矩阵(Wm),其中Wp对应于较大的奇异值,而Wm对应于较小的奇异值。
    2. 保留主要矩阵:论文假设主要矩阵Wp包含了预训练知识的核心部分,因此在微调过程中保持Wp固定,以保留重要的预训练知识。
    3. 初始化低秩矩阵:将次要矩阵Wm用于初始化LoRA框架中的低秩矩阵A和B. 这样,可训练的低秩矩阵在与主要矩阵正交的子空间内初始化,预期能够在学习微调任务的同时,更好地利用和保留预训练知识。
    4. 简化的超参数:与标准LoRA方法相比,MiLoRA不需要调整缩放因子α和其他初始化超参数,仅需要设置秩r,这简化了训练过程。
    5. 实验验证:通过在常识推理、数学推理和指令跟随等多个基准测试上的广泛实验,论文证明了MiLoRA在保持训练和推理效率的同时,能够持续超越LoRA和其他PEFT方法。
    6. 性能提升:实验结果显示,MiLoRA在不同任务上均取得了性能提升,例如在常识推理任务上,MiLoRA在LLaMA2-7B和LLaMA3-8B模型上分别取得了1.6%和1.1%的平均准确率提升。

    通过这些策略,MiLoRA旨在实现在微调过程中对大型语言模型的有效调整,同时最大限度地减少对已有预训练知识的干扰,以此提高微调的效率和效果。

    Q: 论文做了哪些实验?

    A: 论文中进行了一系列实验来评估MiLoRA方法的有效性,并与其他参数高效微调(PEFT)方法进行比较。以下是论文中提到的主要实验:

    1. 常识推理(Commonsense Reasoning)
      • 使用LLaMA2-7B和LLaMA3-7B模型在Commonsense170K数据集上进行微调。
      • 评估数据集包括BoolQ、PIQA、SIQA、HellaSwag、WinoGrande、ARC-e、ARC-c和OBQA等八个常识推理数据集。
      • 任务被制定为多项选择问题,通过验证集损失选择最佳检查点,并报告所有数据集的准确率。
    2. 数学推理(Math Reasoning)
      • 使用LLaMA2-7B模型在MetaMathQA数据集上进行微调,该数据集包含从GSM8K和MATH数据集扩展的样本。
      • 使用GSM8K和MATH的测试集进行评估,报告最后一个检查点的精确匹配比率。
    3. 指令跟随(Instruction-following)
      • 按照Wu等人(2024a)和Wu等人(2024b)的实验设置,使用Ultrafeedback对LLaMA2-7B进行微调。
      • 使用Alpaca-Eval v1.0进行评估,并报告与text-davinci-003使用GPT4-0613作为注释器的胜率。
    4. 不同秩设置对MiLoRA的影响
      • 通过调整秩r的不同配置(16, 32, 64, 128),评估不同秩设置对MiLoRA在数学推理任务上的影响。
    5. 次要奇异分量适应的重要性
      • 通过使用主要、随机采样和次要奇异分量初始化低秩矩阵A和B. 评估它们在数学推理任务上的性能。
    6. 矩阵更新∆W与W的比较
      • 分析不同方法中∆W. 微调前后权重的差异)与W(预训练权重)之间的关系。
    7. MiLoRA与其他基线方法的遗忘损失比较
      • 使用交叉熵作为度量标准,评估MiLoRA与其他方法相比在保留预训练知识方面的表现。
    8. MiLoRA与PiSSA的比较
      • 比较MiLoRA与PiSSA在相同实验设置下的性能,探讨两者在动机、性能和超参数配置方面的差异。

    这些实验结果表明,MiLoRA在多个任务和数据集上均能实现优于现有PEFT方法的性能,同时保持了训练和推理的效率。

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

    A: 尽管MiLoRA在实验中表现出色,但仍有一些潜在的研究方向和探索点,包括但不限于:

    1. 不同模型的适用性:MiLoRA主要在LLaMA模型族上进行了测试。未来的工作可以探索MiLoRA在其他大型语言模型(如GPT、T5等)上的有效性和适用性。
    2. 不同任务的泛化能力:除了常识推理、数学推理和指令跟随任务外,MiLoRA在其他类型的任务(如文本摘要、机器翻译、情感分析等)上的表现如何,值得进一步研究。
    3. 超参数优化:虽然MiLoRA减少了需要调整的超参数数量,但进一步研究如何根据具体任务和数据集自动调整这些超参数可能会提高性能。
    4. 与其他PEFT方法的结合:MiLoRA是否可以与其他参数高效微调方法(如Adapter、Prompt等)结合,以实现更优的性能,是一个值得探索的方向。
    5. 理论分析:对MiLoRA的理论基础进行更深入的分析,包括其在优化过程中对预训练知识保留的机理,以及为何次要奇异分量更适应微调任务。
    6. 计算效率:尽管MiLoRA旨在减少计算资源的需求,但进一步优化算法以提高训练速度和减少内存使用仍然是一个有价值的研究方向。
    7. 实际应用:在实际应用场景中测试MiLoRA,例如在资源受限的环境中,或者在需要快速部署和更新模型的情境下。
    8. 模型鲁棒性:研究MiLoRA在面对对抗性攻击或数据分布偏移时的鲁棒性,并探索提高模型稳定性的方法。
    9. 可解释性:提高MiLoRA微调过程的可解释性,帮助研究人员和用户理解模型是如何学习和适应新任务的。
    10. 伦理和社会影响:研究MiLoRA在不同应用中可能带来的伦理和社会影响,以及如何制定相应的指导原则和政策来确保技术的正当使用。

    这些探索点不仅可以推动MiLoRA方法本身的发展,也有助于更广泛地理解和改进大型语言模型的微调策略。

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

    A: 这篇论文的主要内容可以总结如下:

    1. 问题背景:大型语言模型(LLMs)在各种任务上表现出色,但全参数微调需要大量计算资源,限制了它们的广泛应用。
    2. 研究目标:提出一种参数高效的微调方法MiLoRA,以减少计算和内存成本,同时保留预训练模型的知识。
    3. 方法介绍
      • 使用奇异值分解(SVD)将权重矩阵分为主要矩阵和次要矩阵。
      • 在微调过程中,保持主要矩阵固定,只更新次要矩阵对应的低秩矩阵。
    4. MiLoRA的优势
      • 通过初始化低秩矩阵在与主要矩阵正交的子空间内,减少对预训练知识的干扰。
      • 简化了超参数调整,只需设置秩r。
    5. 实验验证
      • 在常识推理、数学推理和指令跟随等任务上进行了广泛的实验。
      • 实验结果表明,MiLoRA在多个数据集上均优于LoRA和其他PEFT方法。
    6. 性能提升:MiLoRA在不同任务上实现了性能提升,如在常识推理任务上提高了平均准确率。
    7. 进一步分析
      • 探讨了不同秩设置对MiLoRA性能的影响。
      • 分析了次要奇异分量适应的重要性。
      • 对比了MiLoRA与现有方法在矩阵更新和知识遗忘方面的差异。
    8. 相关工作:讨论了参数高效微调的相关研究,包括Adapter-based、LoRA-based和Prompt-based方法。
    9. 结论:MiLoRA是一个简单而有效的低秩适应方法,能够在微调任务中有效学习,同时更好地保留预训练知识。
    10. 未来工作:提出了对MiLoRA在其他任务和其他LLMs上进一步探索的可能性,以及对计算效率、模型鲁棒性和伦理影响的考量。

    论文通过提出MiLoRA方法,为大型语言模型的高效微调提供了一种新的视角,并在多个任务上验证了其有效性。


  • 幕府(日本):日本历史上的武家政权

    幕府(Bakufu)是指日本历史上由征夷大将军(通常称为幕府将军)领导的武家政权。这种政治体制在日本特有的国情下形成,共经历了682年的历史,从1185年源平合战结束时开始,到1867年明治维新时结束。

    幕府政权实际上是一种将天皇权力架空的政府形式,由将军及其家族掌握实际统治权。虽然征夷大将军需要经由天皇任命,被视为天皇的臣子,但大多数征夷大将军职位都是世袭的。他们实际上掌握了政权,超越了朝廷体系。随着时间的推移,幕府逐渐成为朝廷体系内的一部分。封建制度的实行使得征夷大将军并不直接统治全国,而是将领土分封给有力的武士,征夷大将军的地位相当于天下之共主,实际上是以“挟天子以令诸侯”的方式治理国家。尽管幕府将军是天皇的臣子,但他们实际上以武力统治国家。

    幕府这种特殊的政治体制在日本历史上起到了重要作用。幕府将军通过颁布各种法令和政策,调节地方事务、维持社会秩序,并为国家的统一和稳定做出了贡献。然而,幕府政权也面临着许多挑战和内外压力,例如与其他大名的斗争、与外国势力的交涉等。

    在幕府的历史中,镰仓幕府、室町幕府和江户幕府是三个重要时期。镰仓幕府建立于1185年,由源义经成为第一位征夷大将军,标志着武士阶层的政治崛起。然而,镰仓幕府在不断的内部纷争和外部压力下,于1333年被足利尊氏领导的室町幕府推翻。室町幕府成立后,日本进入了一个相对稳定的时期,但内部斗争和战争仍时有发生。

    最后,江户幕府于1603年由德川家康建立,也被称为德川幕府。在这个时期,由于德川家康的巧妙统治和稳定的政策,日本进入了一个相对长期的和平时期。江户幕府统治下的日本社会经历了许多变革和发展,包括城市的繁荣、文化的繁盛和社会制度的变革。


    总的来说,幕府是日本历史上一种独特的政治体制,将军作为实际统治者,通过领导和管理国家事务,维持社会秩序。幕府政权的崛起和发展对日本历史产生了深远的影响,


    镰仓幕府(1192年-1333年)是日本历史上第一个幕府政权,位于鎌倉市,因此得名。镰仓幕府的统治时间约为150年,这段时期也被称为镰仓时代。镰仓幕府的建立者是源赖朝,属于河内源氏一族。后来,北条时政和北条义时等人成为镰仓幕府的中心人物。镰仓幕府的建立标志着日本从中央贵族政权向武家政权的转变。

    镰仓幕府的建立过程可以概括如下:在治承三年政变之后,平清盛建立了平氏政权,但朝廷与民众对其专权统治感到愤慨。1180年,源赖朝举兵反对平氏政权,平氏政权在源平合战中被推翻。赖朝在战争中击败了贵族平宗盛家族,并逼迫其兄弟源义经自杀。赖朝成为了实际上的统治者,并在1192年被任命为征夷大将军,正式建立了镰仓幕府。幕府通过在各地设置守护和地头职位来确保对全国的控制,并逐渐扩大对土地的实际支配权。

    在镰仓幕府的统治下,武士阶层崛起并取代了中央贵族成为实际的统治者。武士阶层崇尚武士道精神,强调忠诚、义勇、廉耻等价值观,并将儒学、佛教禅宗和神道教合而为一。然而,随着时间的推移,镰仓幕府内部权力斗争加剧,导致幕府的统治基础逐渐动摇。

    镰仓幕府最终走向衰败的原因有多个方面,其中包括承久之乱(1221年)和元寇战争(1274年-1281年)的冲击。承久之乱是一次由后鳥羽上皇领导的对镰仓幕府的叛乱,虽然失败了,但削弱了幕府的实力。元寇战争是日本与蒙古帝国的战争,幕府成功抵御了外敌入侵,但也因此耗尽了大量资源。此外,幕府内部的权力斗争和民众对幕府专制统治的不满也加剧了幕府的衰落。

    最终,在1333年,幕府面临着各地豪族的反幕府倒幕运动。新田义贞在关东起兵,攻克了鎌倉,北条守时和北条高时相继自杀,标志着镰仓幕府的灭亡。随后,建武新政和南北朝时代的动荡期开始,日本进入了新的政治时代。


  • 日本战国时代:剑起纷争的百年风云

    日本历史上的战国时代,被誉为一个充满战乱和政治纷争的重要时期。它一般被界定为从1467年应仁之乱开始,持续了长达120多年的时期。这段时间内,日本政局动荡不安,各大名相互争斗,形成了群雄割据的局面。直到1590年的小田原之战中,关白丰臣秀吉消灭北条家,日本才得以实现全国统一,安土桃山时代和平时期拉开了序幕。

    战国时代的起始点可以追溯到1467年的应仁之乱,这场战争被视为战国时代的开端。室町幕府在第三代将军足利义满之后陷入了内乱。政治上,幕府与关东的古河公方进行对抗,各地的政治谋杀、大名的反抗和私战也破坏了政治平衡;社会上,各地的暴动如同定时炸弹一样,给整个社会秩序带来了不同程度的冲击。然而,室町幕府从未放弃稳定全国局势的努力,直到1441年,一场意外引发了全国性的混战,使幕府的努力付诸东流。

    在应仁之乱之后,幕府的威信受到重创,各地的守护大名们面临着国人的反抗和一揆的崛起。有些大名被本国国人发动的一揆所取代,有些被守护代所接替,甚至有些被宗教性暴动推翻。下克上的现象在整个战国时代普遍存在,辅佐守护的守护代、各地土豪甚至平民纷纷崛起成为大名,各地大名称霸一方,成为掌控天下的人物。同时,日本与欧洲人之间的贸易交流正式展开,基督教和火枪的引进改变了社会和战争的形态。农奴地主关系受到破坏,封建制度逐渐岌岌可危。

    明应之变是关东地区的大乱。原本将幕府设在京都的镰仓公方被北条氏取代,形成了两大势力。后北条氏成为东国最强大的大名,而毛利元就在中国地区崛起,成为新力量的代表。在战国时代,以织田信长和武田信玄为代表的大名崛起,展开了一系列征战。织田信长最终掌握了中部地区,建立了织田政权,而丰臣秀吉在织田信长之后崛起,实现了日本的全国统一,并建立了丰臣政权。

    丰臣秀吉在安土桃山时代成为一代霸主。他通过一系列征伐,统一了全国大名,实施了一系列重要政策,如太阁检地、兵农分离和惣无事令,为后来的江户幕府的发展提供的文本如下:

    日本战国时代:剑起纷争的百年风云

    战国时代是日本历史上一个动荡而重要的时期,从1467年的应仁之乱开始,持续了长达120多年的时间。这段时期充满了政治纷争和战乱,各个领主争夺权力,形成了群雄割据的局面。最终,在1590年的小田原之战中,关白丰臣秀吉消灭了北条家,日本实现了全国统一,开启了安土桃山时代的和平时期。

    日本战国时代的起点可以追溯到1467年的应仁之乱。这场战争标志着幕府政权的衰落,各个大名之间爆发了政治斗争和战争。在政治上,除了与幕府对抗的关东古河公方外,各地的政治谋杀和大名们的反抗破坏了政治平衡。在社会上,一系列的一揆(暴动)如同定时炸弹,给整个社会秩序带来了不同程度的冲击。然而,幕府从未放弃稳定全国局势的决心和努力,直到1441年一场全国性的混战使他们的努力付诸东流。

    在应仁之乱之后,幕府的威信大幅下降,各地的守护大名面临着国人的反抗和一揆的崛起。有些大名被本国国人发动的一揆所取代,有些则被守护代所接替,甚至有些被宗教性的一揆推翻。下克上的风气弥漫在整个战国时代,辅佐守护的守护代、各地土豪甚至平民崛起成为大名。各地大名争夺权力,一些成为掌控天下的天下人。同时,日本与欧洲人之间的贸易交流正式展开,基督教和火枪的引进改变了社会和战争的形态。到了战国时代的中后期,过往封建制度下的农奴地主关系也逐渐遭到破坏。

    明应之变是关东地方的一次大乱。幕府将军足利义材对德川家康违反私战禁令的行为表示不满,以此为借口发动了讨伐行动。然而,德川家康利用军事手段和外交手段成功击败了义材,确立了自己的权力。织田信长和武田信玄等大名也崛起并展开了一系列征战。织田信长最终控制了中部地区,建立了织田政权。丰臣秀吉在织田信长之后崛起,实现了日本的全国统一,并建立了丰臣政权。

    丰臣秀吉成为丰臣政权的领袖,通过一系列的征伐和政策,实现了对全国的统一。他在安土桃山时代成为一代霸主。然而,他在1598年去世后,日本陷入了动荡的局势。丰臣秀吉去世后,他的幼子丰臣秀赖继承了丰臣家的家督,但全国各地的大名们对丰臣氏的统治表达了越来越多的不满。丰臣氏的财力逐渐增强,显示出重振旗鼓的迹象,而丰臣家与德川家康紧密的联姻关系也开始面临动摇。德川家康作为五大老之首,决定斩草除根。

    在庆长4年(1599年),四位大老中最具影响力的前田利家去世,丰臣家臣与德川家康的关系迅速恶化。庆长4年(1600年),德川家康以石田三成为首的五奉行违反私战禁令的行为为借口,发动会津征伐,进攻上杉景胜。石田三成认为德川家康违反了条约,召集各地大名在大坂城发表《内府违反条文》的声明,随即起兵讨伐德川氏。

    庆长5年(1600年),东军以德川家康为领导,西军以石田三成为实质领导(名义上的统帅为毛利辉元),在关原进行了决定性的战斗。战斗初期,西军凭借石田三成的指挥,占据了优势,使德川家康的东军陷入被动。然而,在战斗进行到中午时,家康下令向事先已收买的西军大将小早川秀秋开火,迫使他与吉川广家等人倒戈,直逼西军主力。战局急转直下,西军从稍占优势转为完全溃败。战斗结束时,东军取得了胜利。

    几天后,石田三成被捕,与小西行长以及安国寺惠琼等三人作为首要战犯被处决。德川家康完全消灭了丰臣氏的势力,关原之战成为丰臣氏的最后一战。

    庆长8年(1603年),德川家康受到后阳成天皇的诏封,成为征夷大将军,江户幕府正式成立。这标志着日本进入了江户时代,为接下来的几个世纪奠定了基础。


    总的来说,日本战国时代是日本历史上一个充满战争和政治纷争的重要时期。在这段时间里,各大名势力崛起,展开了激烈的争斗,最终由德川家康统一了日本,建立了长达几个世纪的幕府政权。战国时代的结束标志着日本历史的转折点,为日本社会带来了巨大的变革,并对日本历史的发展产生了深远的影响。

  • 大型语言模型的“技能混合”:优化数据使用,提升模型能力

    大型语言模型(LLM)在自然语言处理领域取得了巨大成功,它们能够熟练掌握各种技能,例如写作、推理、聊天、编码等等。为了实现这些能力,LLM 通常需要在来自不同来源的庞大数据集上进行微调。然而,这些数据集往往具有异质性和不平衡性,给微调过程带来了挑战。如何平衡不同技能的开发,同时确保模型的整体性能,成为了一个关键问题。

    本文将介绍一种名为“技能混合”(MIXTURE-OF-SKILLS,MOS)的通用、模型无关的强化学习框架,它能够在微调过程中自动优化数据使用。MOS 通过动态调整对不同数据集的关注程度,确保 LLM 能够全面、有效地发展各种技能。

    数据使用优化:为什么重要?

    在多个数据集上微调模型时,一个常见挑战是处理数据集的异质性和不平衡性。不同数据集可能具有不同的特点,例如数据规模、数据质量、数据类型等等。这些差异会导致模型在微调过程中难以兼顾所有技能的开发。

    传统的做法往往限制数据集的使用,以防止模型被大型数据集“淹没”。然而,这种做法限制了所有可用数据的利用。一些研究尝试通过调整数据集的分布来解决这个问题,但这些方法往往需要大量的超参数调整,并且忽略了数据集之间的相互作用以及模型学习的动态变化。

    “技能混合”框架:如何优化数据使用?

    为了解决上述问题,本文提出了一种名为“技能混合”(MOS)的强化学习框架。MOS 框架的核心思想是训练一个“评分网络”,它能够根据模型当前的学习状态,动态调整对不同数据集的采样概率。

    图 1 展示了 MOS 框架的整体流程。模型在多个数据集上进行微调,每个数据集都包含特定的技能信息。评分网络根据模型当前的学习状态,动态调整对不同数据集的采样概率,从而引导模型更有效地学习。

    图 1:技能混合框架概述

    MOS 框架的优势:

    • 通用性: MOS 框架适用于各种 LLM 模型和数据集,无需特定模型或数据集的先验知识。
    • 自动优化: MOS 框架能够自动学习最佳数据使用策略,无需人工干预。
    • 多角度评估: MOS 框架使用三种不同的奖励机制来评估数据集的价值,包括可迁移性、难度和学习轨迹。

    奖励机制:引导模型学习MOS 框架使用三种不同的奖励机制来评估数据集的价值,从而引导模型更有效地学习:

    1. 可迁移性: 数据集之间的相似性越高,它们对模型的贡献就越大。MOS 框架使用余弦相似度来衡量数据集之间的相似性,并将其作为奖励机制之一。

    2. 难度: 数据集的难度越高,模型需要投入更多的训练努力才能学好。MOS 框架使用困惑度来衡量数据集的难度,并将其作为奖励机制之一。

    3. 学习轨迹: 模型在微调过程中,对不同数据集的学习进度会有所不同。MOS 框架使用指数移动平均来追踪模型的学习轨迹,并将其作为奖励机制之一。

    实验结果:显著提升模型性能

    为了验证 MOS 框架的有效性,本文在两个常用的基准数据集(MMLU 和 MT-bench)上,使用三种不同的 LLM 模型(QWEN1.5-0.5B. GEMMA-2B 和 LLAMA-3-8B)进行了实验。结果表明,MOS 框架能够显著提升模型的整体性能,并且能够加速模型的训练收敛速度。

    表 1:不同模型在不同数据集上的性能比较

    模型数据集MOS 框架对照组
    QWEN1.5-0.5BMMLU35.1332.82
    GEMMA-2BMMLU44.4941.86
    LLAMA-3-8BMMLU63.8560.97
    QWEN1.5-0.5BMT-bench22.2723.40
    GEMMA-2BMT-bench31.5630.88
    LLAMA-3-8BMT-bench61.5459.64

    未来展望:任务特定微调

    除了通用微调之外,MOS 框架还可以应用于任务特定微调。本文提出了一种名为“MOSPEC”的变体,它能够有效地利用各种数据集来完成特定任务。

    总结

    本文提出了一种名为“技能混合”(MOS)的通用、模型无关的强化学习框架,它能够自动优化数据使用,提升 LLM 的整体性能。MOS 框架通过动态调整对不同数据集的关注程度,确保 LLM 能够全面、有效地发展各种技能。实验结果表明,MOS 框架能够显著提升模型的整体性能,并且能够加速模型的训练收敛速度。

    参考文献

    • Bai, Y. , et al. (2023). Qwen: Towards Open-source, Efficient, and High-performance Large Language Models. arXiv preprint arXiv:2305.16255.
    • Colson, B. , et al. (2007). Bilevel programming: A survey. Journal of Optimization Theory and Applications, 130(2), 229-252.
    • Conneau, A. , et al. (2020). Unsupervised cross-lingual representation learning at scale. In Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics (pp. 820-830).
    • Ding, L. , et al. (2023). A Comprehensive Study of Instruction Tuning for Large Language Models. arXiv preprint arXiv:2305.00161.
    • Hendrycks, D. , et al. (2021a). Measuring Massive Language Models’ Ability to Reason. arXiv preprint arXiv:2108.08404.
    • Longpre, S. , et al. (2023). In-context Learning and Induction Heads: A Unified Perspective. arXiv preprint arXiv:2305.13091.
    • Mesnard, T. , et al. (2024). GEMMA: A 2B Parameter Open-Source Language Model. arXiv preprint arXiv:2401.02348.
    • Ouyang, L. , et al. (2022). Training language models to follow instructions with human feedback. arXiv preprint arXiv:2203.02155.
    • Raffel, C. , et al. (2020). Exploring the limits of transfer learning with a unified text-to-text transformer. Journal of Machine Learning Research, 21(140), 1-67.
    • Sanh, V. , et al. (2022). Multitask Prompted Training for Large Language Models. arXiv preprint arXiv:2205.08310.
    • Touvron, J. , et al. (2023a). LLaMA: Open and Efficient Large Language Models. arXiv preprint arXiv:2302.13971.
    • Touvron, J. , et al. (2023b). BLOOM: A 176B-parameter Open-access Multilingual Language Model. arXiv preprint arXiv:2211.05100.
    • Wang, S. , et al. (2020a). Differentiable Data Selection for Efficient Training of Deep Neural Networks. arXiv preprint arXiv:2002.05689.
    • Wei, J. , et al. (2022). Finetuned Language Models are Zero-Shot Learners. arXiv preprint arXiv:2205.05131.
    • Williams, R. J. (1992). Simple statistical gradient-following algorithms for connectionist reinforcement learning. Machine learning, 8(3-4), 229-256.
    • Wu, M. , et al. (2021). Towards Understanding the Transferability of Knowledge in Multi-task Learning. arXiv preprint arXiv:2106.04803.
    • Yue, Y. , et al. (2023). Math-Aware Language Models: Towards Reasoning about Mathematical Concepts. arXiv preprint arXiv:2303.11989.
    • Yu, H. , et al. (2023). Towards Robust and Generalizable Mathematical Reasoning with Large Language Models. arXiv preprint arXiv:2303.17529.
    • Zheng, Z. , et al. (2023). MT-bench: A Human-Centric Evaluation Benchmark for Multilingual Text Understanding. arXiv preprint arXiv:2303.16166.
  • 让大型语言模型更会思考:链式偏好优化 (CPO)

    大型语言模型(LLM)的最新进展表明,构建推理链对于提高其解决问题的能力至关重要。其中,链式思维 (CoT) 方法通过提示 LLM 生成中间推理步骤(即想法),从而构建显式的推理路径,取得了显著效果。然而,研究表明这些路径并不总是经过深思熟虑的,也并非最优。树状思维 (ToT) 方法采用树搜索来广泛探索推理空间,并找到 CoT 解码可能忽略的更好的推理路径。然而,这种深思熟虑的代价是推理复杂度显著增加。

    本文将探讨一种名为链式偏好优化 (CPO) 的新方法,它通过利用 ToT 构建的搜索树来微调 LLM,使得 CoT 能够在不增加推理负担的情况下,实现类似甚至更好的性能。CPO 利用树搜索过程中固有的偏好信息,微调 LLM 使得 CoT 推理路径的每一步都与 ToT 的推理路径保持一致。

    1. 为什么要思考?

    大型语言模型在处理复杂问题时,往往需要进行多步推理。例如,回答一个多步骤的逻辑推理问题,或者从多个事实中进行推理得出结论。传统的 LLM 往往只关注最终的答案,而忽略了推理过程。这会导致模型在面对复杂问题时,容易出现错误或逻辑混乱。

    链式思维 (CoT) 方法试图解决这个问题。它通过提示 LLM 生成一系列中间推理步骤,并将其连接起来形成一个完整的推理路径。例如,在回答一个多步骤的逻辑推理问题时,CoT 会提示 LLM 生成一系列中间推理步骤,例如:

    问题: 小明有 5 个苹果,他吃了 2 个,还剩多少个?

    CoT 推理路径:

    • 步骤 1: 小明吃了 2 个苹果,所以还剩 5 – 2 个苹果。
    • 步骤 2: 5 – 2 等于 3。
    • 步骤 3: 所以小明还剩 3 个苹果。

    CoT 方法使得 LLM 的推理过程更加清晰,也更容易被人类理解。然而,CoT 方法也存在一些问题。例如,它只关注一条推理路径,而忽略了其他可能的推理路径。这会导致模型在遇到复杂问题时,容易陷入局部最优,无法找到最佳的解决方案。

    2. 树状思维:更全面的思考

    树状思维 (ToT) 方法试图解决 CoT 方法的局限性。它通过在推理过程的每一步生成多个分支想法,并进行自我评估以进行剪枝和规划,从而搜索最佳推理路径。例如,在回答上面的小明苹果问题时,ToT 可能生成以下推理路径:

    ToT 推理路径:

    • 步骤 1:
      • 想法 1: 小明吃了 2 个苹果,所以还剩 5 – 2 个苹果。
      • 想法 2: 小明还剩 5 – 2 个苹果。
      • 想法 3: 小明还剩 3 个苹果。
    • 步骤 2:
      • 想法 1: 5 – 2 等于 3。
      • 想法 2: 5 – 2 等于 4。
    • 步骤 3:
      • 想法 1: 所以小明还剩 3 个苹果。
      • 想法 2: 所以小明还剩 4 个苹果。

    ToT 方法会对每个想法进行评估,并选择最优的想法继续进行推理。最终,它会找到一条最佳的推理路径,并给出最终的答案。

    ToT 方法能够有效地提高 LLM 的推理能力,但它也存在一个问题:推理复杂度过高。由于它需要在每一步生成多个想法并进行评估,因此推理速度会显著降低。

    3. 链式偏好优化:兼顾效率和效果

    链式偏好优化 (CPO) 方法试图在 ToT 方法的基础上,找到一种平衡效率和效果的方法。它通过利用 ToT 构建的搜索树来微调 LLM,使得 CoT 能够在不增加推理负担的情况下,实现类似甚至更好的性能。

    CPO 的核心思想是利用 ToT 搜索过程中固有的偏好信息。ToT 在每一步都会生成多个想法,并根据其评估结果进行剪枝。这意味着 ToT 实际上已经对所有中间想法进行了偏好排序:出现在最佳推理路径中的想法应该比没有出现在最佳推理路径中的想法更受偏好。

    CPO 利用这种偏好信息来训练 LLM。它通过将 ToT 中的每个想法标记为“偏好”或“非偏好”,并将其作为训练数据,来训练 LLM 生成与 ToT 偏好一致的推理路径。

    4. CPO 的优势

    CPO 具有以下优势:

    • 提高 LLM 的推理能力: CPO 能够有效地提高 LLM 的推理能力,使其在解决复杂问题时能够找到更好的解决方案。
    • 降低推理复杂度: CPO 能够在训练阶段利用 ToT 的偏好信息,从而在推理阶段保持 CoT 的低延迟,避免 ToT 带来过高的推理复杂度。
    • 无需额外的人工标注数据: CPO 不需要额外的人工标注数据,仅需利用 ToT 生成的搜索树即可进行训练,这在资源有限的情况下非常有用。

    5. 未来展望

    CPO 方法为提高 LLM 的推理能力提供了新的思路。未来,我们可以进一步研究以下方向:

    • 探索更有效的偏好信息收集方法: 可以研究更有效的偏好信息收集方法,例如利用人类反馈或其他 LLM 的评估结果来收集偏好信息。
    • 将 CPO 应用于其他推理任务: 可以将 CPO 应用于其他推理任务,例如代码生成、文本摘要等。
    • 研究 CPO 与其他推理方法的结合: 可以研究 CPO 与其他推理方法的结合,例如结合神经网络搜索 (NAS) 来优化 LLM 的推理结构。

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

    A: 这篇论文试图解决的问题是如何提高大型语言模型(LLMs)在解决复杂问题时的逻辑推理能力。具体来说,论文关注的是链式推理(Chain-of-Thought,CoT)解码方法,这种方法通过生成显式的逻辑推理路径来帮助LLMs解决问题。然而,研究发现CoT方法并不总是能够找到最优的推理路径,有时会出现非故意和非最优的推理方式。为了解决这个问题,论文提出了一种新的优化方法,称为“链式偏好优化”(Chain of Preference Optimization,CPO),旨在通过利用树状推理(Tree-of-Thought,ToT)方法构建的搜索树中的固有偏好信息,来微调LLMs,使其CoT推理路径与ToT的推理路径对齐,从而提高推理性能,同时避免了ToT方法带来的显著推理复杂性增加。

    Q: 有哪些相关研究?

    A: 论文中提到了以下几类相关研究:

    1. 大型语言模型(LLMs)的推理能力提升:研究表明,当LLMs被提示进行多步推理时,它们的表现会更好。例如,通过后编辑推理路径或访问外部知识来改进生成的推理路径。
    2. 非线性推理结构:与CoT方法不同,一些研究将线性推理结构转换为非线性格式,如树或图,并结合深度优先搜索(DFS)等搜索算法。
    3. LLMs的自我改进:使用强化学习(RL)技术,通过将LLMs视为RL代理,与人类反馈对齐,以改进模型性能。一些方法使用LLMs自生成数据来增强微调过程。
    4. 蒙特卡洛树搜索(MCTS)在LLMs中的应用:MCTS是一种在复杂决策环境中导航的强大算法,已被证明可以增强LLMs的解码过程。
    5. 直接偏好优化(DPO):DPO是一种直接优化LLM以符合偏好数据的方法,例如人类反馈。它将传统的强化学习的奖励建模和微调阶段重新构想为一个单一的优化问题。
    6. 链式推理(CoT)和树状推理(ToT):CoT方法通过生成中间推理步骤来构建显式的推理路径,而ToT方法则通过树搜索来探索多个推理路径,并进行自我评估以寻找最优推理路径。

    这些研究为本文提出的链式偏好优化(CPO)方法提供了理论和技术背景。CPO方法借鉴了这些研究的成果,特别是利用ToT方法中的树搜索过程中产生的偏好信息,并通过DPO算法来训练LLMs,以提高其推理能力。

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

    A: 论文通过提出一种新的优化方法——链式偏好优化(Chain of Preference Optimization, CPO)来解决这个问题。CPO方法的核心思想是利用树状推理(Tree-of-Thought, ToT)过程中产生的固有偏好信息,来指导和优化CoT方法的推理路径。具体来说,CPO方法包括以下几个关键步骤:

    1. 生成偏好思想对:在ToT的树搜索过程中,每个推理步骤都会生成多个候选思想,并根据其评估质量进行剪枝。CPO方法将这些候选思想中的优选思想(即最终选择的推理路径中的思想)标记为“偏好思想”,而未被选择的思想则标记为“非偏好思想”。
    2. 构建偏好数据:对于每个推理步骤,CPO根据ToT的搜索树结构构建成对的偏好思想数据。这些数据包括偏好思想和相应的非偏好思想,它们形成了用于训练的偏好对。
    3. 直接偏好优化(DPO)训练:使用DPO算法,CPO方法训练LLMs以对齐这些偏好对。DPO的目标是最大化偏好响应的概率比,从而使LLMs在推理时能够生成ToT方法所偏好的路径。
    4. 避免高推理延迟:与ToT方法在推理时需要进行搜索不同,CPO将计算负担转移到训练阶段,从而在推理时保持CoT的低延迟特性。
    5. 实验验证:通过在多个数据集上进行广泛的实验,论文证明了CPO方法在提高LLMs解决复杂问题的性能方面是有效的,尤其是在问答、事实验证和算术推理等任务上。

    总的来说,CPO方法通过在训练阶段利用ToT的树搜索过程中的偏好信息,使得LLMs能够在推理时生成更优的推理路径,同时避免了ToT方法在实际应用中面临的高计算复杂性问题。

    Q: 论文做了哪些实验?

    A: 论文中进行了广泛的实验来验证链式偏好优化(CPO)方法的有效性。实验设置如下:

    1. 数据集和评估指标:研究集中在三种类型的推理任务上:问答(QA)、事实验证和算术推理。使用了包括Bamboogle、WikiMultiHopQA、HotpotQA、Fever、Feverous、Vitaminc和SVAMP等七个数据集。评估指标包括准确率和每实例生成答案的平均延迟。
    2. 基线模型:为了证明CPO的有效性,论文考虑了以下基线模型:CoT、ToT和TS-SFT。
    3. 实验设置:实验基于广泛使用的LLMs,特别是LLaMA27B/13B和Mistral-7B. 为了高效的微调,使用了Low-Rank Adaptation (LoRA)适配器。设置了正则化控制器β、生成新思想的数量、剪枝后保留的思想数量等参数。
    4. 整体结果:在各种推理任务上,CPO在提高基础LLM的推理能力方面表现出了显著的效果,平均改进达到了4.3%,并且在不牺牲推理速度的情况下与ToT方法相比具有可比性或更优的性能。
    5. 组件级评估:分析了选择非偏好思想的不同方法对模型性能的影响,以及训练数据数量对优化的影响。
    6. 数据混合敏感性:探索了CPO方法在不同数据设置下的性能,包括单任务数据、统一QA数据和混合类型数据。
    7. 迭代学习:探索了CPO是否可以通过对迭代学习进行进一步改进,尝试了两种不同的迭代训练策略:SFT+CPO和CPO only。
    8. 效果分析:探讨了非偏好信息对模型性能的影响,以及链级优化的重要性。

    这些实验结果表明CPO方法能够有效地提高LLMs在复杂问题解决中的推理能力,并且在效率上具有优势。论文还对实验结果进行了深入分析,以理解CPO方法的工作原理和潜在的改进空间。

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

    A: 论文在最后一部分提出了一些未来工作的方向,以下是可以进一步探索的点:

    1. 结合其他推理算法:作者提出将CPO与图状推理(Graph-of-Thoughts)等其他推理算法结合的可能性,以进一步提升LLMs的推理能力。
    2. 弱到强模型的对齐:探索使用弱LLM来评估强LLM的可能性,以实现弱到强的对齐(weak-to-strong alignment),这可能有助于提高模型的整体性能。
    3. 迭代学习:论文中提到了迭代学习可能带来性能的提升,但同时也注意到了ToT性能的不一致性。未来的工作可以更深入地研究迭代学习策略和模型性能之间的关系。
    4. 输出多样性与搜索空间:论文指出,模型经过微调后可能会减少输出的多样性,这可能会影响ToT方法寻找更好推理路径的能力。未来的研究可以探索如何在提高性能的同时保持或增加输出的多样性。
    5. 跨模态应用:论文中的方法主要针对文本语言模型,未来的工作可以探索将CPO方法应用于视觉-语言模型或其他跨模态模型。
    6. 效率与可扩展性:尽管CPO在提高性能的同时保持了较低的推理延迟,但ToT生成训练数据的过程仍然耗时。研究如何提高CPO方法的效率和可扩展性是一个重要的方向。
    7. 伦理和社会影响:论文提到了CPO可能被用于恶意应用的问题,未来的工作需要考虑如何确保技术的安全和伦理使用,以及如何防止潜在的滥用。
    8. 更广泛的任务和领域:论文中的实验主要集中在问答、事实验证和算术推理任务上。未来的研究可以在更广泛的任务和领域中测试CPO方法的有效性。
    9. 模型解释性:提高模型的可解释性,帮助研究者和用户理解CPO优化过程中模型是如何学习和做出决策的。
    10. 鲁棒性和泛化能力:研究CPO方法在不同数据分布、领域和任务中的鲁棒性和泛化能力,确保模型在面对新情况时仍能保持良好性能。

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

    A: 这篇论文的主要内容可以概括为以下几个要点:

    1. 问题识别:论文指出大型语言模型(LLMs)在使用链式推理(CoT)解码时,并不总能生成最优的逻辑推理路径,这限制了它们解决复杂问题的能力。
    2. 方法提出:为了解决上述问题,论文提出了一种新的优化方法——链式偏好优化(CPO),该方法利用树状推理(ToT)过程中产生的偏好信息来微调LLMs。
    3. CPO原理:CPO通过在ToT的树搜索过程中产生的偏好信息,构建每个推理步骤的偏好思想对,然后使用直接偏好优化(DPO)算法来训练LLMs,使其推理路径与ToT中的偏好对齐。
    4. 实验验证:论文通过在多个数据集上进行实验,验证了CPO方法在提高LLMs的推理能力方面是有效的。实验结果表明,CPO平均提高了4.3%的准确率,并且在推理延迟上远低于ToT方法。
    5. 组件级评估:论文还对CPO的不同组件进行了评估,包括选择非偏好思想的策略、训练数据的数量、数据混合的敏感性等,以深入理解CPO的工作原理和性能影响因素。
    6. 未来工作:论文提出了一些未来研究方向,如将CPO与其他推理算法结合、探索弱到强模型的对齐、提高CPO的效率和可扩展性等。
    7. 社会影响和局限性:论文讨论了CPO可能带来的社会影响,包括其在安全性和伦理方面的应用潜力,以及当前方法的局限性,如ToT数据生成的耗时问题。
    8. 代码开源:论文提供了CPO方法的代码,以便其他研究者复现和进一步研究。

    总的来说,这篇论文通过提出CPO方法,为提高LLMs的推理能力提供了一种新的视角,并在理论和实践层面都进行了深入的探讨和验证。


  • 记忆大师:用世界模型征服记忆任务

    近年来,基于模型的强化学习(MBRL)在解决各种任务中展现出强大的能力。然而,现有的MBRL代理在处理长期依赖关系方面存在困难,这限制了它们在涉及行动和结果之间长时间间隔的任务,或需要回忆远距离观察结果来指导当前行动的任务中的表现。为了克服这一挑战,本文介绍了一种名为“回忆想象”(Recall to Imagine,R2I. 的新方法,它将一种新型状态空间模型(SSM)整合到MBRL代理的世界模型中,以增强长期记忆和长范围信用分配能力。

    长期记忆的困境:世界模型的挑战

    在强化学习中,世界模型通过捕捉环境的动态变化,赋予代理感知、模拟和规划的能力。MBRL代理通过学习过去经验中的世界模型,能够“想象”其行动的未来后果,并做出明智的决策。

    然而,MBRL面临着两个关键挑战:

    • 长期依赖关系:世界模型需要准确地模拟环境的演化和未来奖励,并整合代理在长时间范围内的行动。由于世界模型的网络架构限制,难以学习长距离依赖关系,导致长期记忆和信用分配问题。
    • 信用分配问题:需要评估行动对未来奖励的影响,这在长时间间隔的任务中尤其困难。

    S4模型:突破长期依赖关系的利器

    近年来,状态空间模型(SSM)在监督学习和自监督学习任务中展现出捕捉超长序列依赖关系的能力。其中,S4模型凭借其优异的性能,重新定义了长距离序列建模的研究方向。S4模型源于一个时间不变的线性动力系统,它学习状态矩阵,并能够有效地捕捉高达16K长度的依赖关系,超越了先前方法的局限性。

    回忆想象:赋予世界模型记忆能力

    R2I方法首次将S4模型的变体应用于MBRL,为代理提供了强大的长期记忆能力。R2I是一种通用且计算效率高的方法,在各种记忆领域展现出最先进的性能。

    R2I的核心思想:

    • S3M. Structured State-Space Model):R2I将S4模型整合到DreamerV3的世界模型中,构建了S3M. S3M通过并行计算和循环推理模式,实现了快速学习和高效的轨迹模拟。
    • 非循环表示模型:为了实现并行计算,R2I将表示模型从循环模型转变为非循环模型,使每个时间步的推断能够独立进行。
    • SSM的并行计算:R2I采用并行扫描方法,而非卷积方法,来计算SSM的隐藏状态,这使得模型能够更有效地处理长序列数据,并支持隐藏状态的重置。
    • 演员-评论家结构:R2I在演员-评论家结构中,将SSM的隐藏状态传递给策略网络,而不是使用GRU的隐藏状态。这对于解决记忆密集型环境中的长期依赖关系至关重要。

    R2I的优异表现

    R2I在各种记忆领域展现出优异的性能,包括:

    • POPGym:R2I在POPGym中取得了最先进的性能,这是一个专门设计用来测试长期记忆能力的强化学习环境。
    • 行为套件(BSuite):R2I在BSuite中超越了其他基准方法,BSuite是一套用于评估强化学习代理能力的标准化任务。
    • 记忆迷宫:R2I在记忆迷宫中超越了人类,这是一个需要极强的长期记忆能力才能解决的复杂3D环境。

    此外,R2I在经典的强化学习任务中也展现出良好的性能,例如:

    • Atari:R2I在Atari游戏中取得了与其他最先进方法相当的性能。
    • DMC:R2I在DMC中也展现出良好的性能,DMC是一套用于评估强化学习代理在连续控制任务中的能力的标准化环境。

    总结

    R2I方法通过将S4模型整合到世界模型中,赋予了MBRL代理强大的长期记忆能力。R2I在各种记忆领域展现出最先进的性能,并超越了人类在记忆迷宫中的表现。R2I的通用性和计算效率使其成为解决长期记忆和信用分配问题的强大工具。

    参考文献

    • Hafner, D. , Lillicrap, T. P., Norouzi, M., & Schmidhuber, J. (2023). DreamerV3: Learning and planning in
      large, stochastic worlds. arXiv preprint arXiv:2302.04023.
    • Gu, S. , Hoffman, M., Edwards, H., Roberts, A., Brunskill, E., & Lake, B. M. (2021a). S4: Deep
      learning on symbolic sequences. arXiv preprint arXiv:2106.03107.
    • Smith, S. L., Gupta, A., Gu, S., & Lake, B. M. (2023). Efficiently modeling long sequences with
      state space models. arXiv preprint arXiv:2302.10871.

  • 让视觉语言模型拥有空间推理能力:SpatialVLM 的探索

    视觉语言模型(VLM)在理解和回答图像相关的文本问题方面取得了显著进展,但它们在三维空间推理方面仍然存在局限性。例如,它们难以识别物体之间的距离或大小差异等定量关系。为了赋予 VLM 空间推理能力,来自 Google DeepMind 和 MIT 等机构的研究人员提出了 SpatialVLM,并将其成果发表在 CVPR 2024 上。

    SpatialVLM 的核心思想是通过训练数据来弥补 VLM 在空间推理方面的不足。 研究人员认为,现有 VLM 在空间推理能力有限,并非由于其架构的根本缺陷,而是因为缺乏大规模的训练数据。因此,他们开发了一个自动化的三维空间 VQA 数据生成框架,利用真实世界图像,生成高达 20 亿个 VQA 例子,并以此训练 SpatialVLM。

    数据生成框架的核心是将二维图像提升到三维度量空间的点云。 这一过程利用了图像中的深度信息,将每个像素映射到三维空间中的一个点,并赋予每个点相应的坐标。研究人员还开发了专门的算法,用于生成关于物体位置、距离、大小等空间关系的 VQA 问题,并根据点云信息生成相应的答案。

    SpatialVLM 的训练过程包括将合成数据与现有的 VLM 训练数据混合在一起。 通过这种方式,SpatialVLM 能够学习到基本的直接空间推理能力,例如识别物体之间的相对位置、距离和大小等。

    SpatialVLM 的优势在于它可以进行多步骤的空间推理。 由于其具备基本的直接空间推理能力,SpatialVLM 可以与大型语言模型 (LLM) 协同工作,进行更复杂的推理任务。例如,它可以回答诸如“蓝色可乐罐、红色可乐罐和绿色海绵是否大致形成一个等边三角形”这样的问题。

    SpatialVLM 还具有在机器人学领域应用的潜力。 由于 SpatialVLM 可以对空间进行定量推理,它可以作为机器人任务的精细奖励标注器。例如,SpatialVLM 可以根据机器人手到可乐罐的距离,生成单调递减的奖励信号,用于强化学习。

    SpatialVLM 的研究成果为视觉语言模型的发展开辟了新的方向。 它证明了通过大规模合成数据训练 VLM,可以显著提升其空间推理能力,并为 VLM 在机器人学、虚拟现实等领域的应用提供了新的可能性。

    参考文献:

    • Chen, Boyuan, et al. “SpatialVLM: Endowing Vision-Language Models with Spatial Reasoning Capabilities.” arXiv preprint arXiv:2401.12168 (2024).
    • VQASynth. GitHub repository. https://github.com/remyxai/VQASynth/tree/main.
  • 长文本大模型:一场新的军备竞赛

    近年来,人工智能领域掀起了一股大模型热潮,而最近,长文本大模型的出现,更是将这场军备竞赛推向了新的高度。

    Kimi Chat的横空出世,让业界意识到长文本大模型的巨大潜力。它能够处理高达200万字的上下文,这在以往是难以想象的。

    百度文心一言也紧随其后,宣布下个月版本升级,将开放200万-500万字的长度。360智脑更是内测500万字,并计划将其整合到360AI浏览器中。阿里通义千问也开放了1000万字的处理能力。

    海外方面,GPT4-turbo支持128K长度,Claude也支持200K.

    这场长文本大模型的竞赛,究竟意味着什么?

    长文本:大模型的“内存”

    我们可以将大模型本身看作一个操作系统,它支持的文本上下文长度就如同操作系统的内存。内存越大,大模型一次性能够处理的信息就越多,也就能更好地理解和处理复杂的文本内容。

    以往的大模型,由于内存有限,只能通过实时读写硬盘获取信息,类似于RAG(Retrieval-Augmented Generation)技术。这种方式需要先进行检索,提取相关信息,再进行处理和输出答案。

    长文本大模型的出现,则意味着大模型拥有了更大的“内存”,能够直接处理更长的文本,无需依赖外部检索,从而提高效率和准确性。

    长文本处理:两条路

    目前,长文本处理主要分为两种方式:

    • 有损压缩:对上下文进行压缩,以减少内存占用。
    • 无损工程化硬怼:通过工程优化,尽可能保留原始信息。

    Kimi号称其200K超长上下文是无损实现,但具体的技术方案尚未公开。

    工程优化:突破瓶颈

    如何实现无损超长上下文? 这成为了众多研究者关注的焦点。

    知乎上的一些技术方案推测,主要集中在工程优化方面,例如:

    • 优化内存管理:利用更先进的内存管理技术,例如KV Cache,来提高内存利用率。
    • 优化Attention计算:例如Flash Attention和Ring Attention,利用GPU硬件特性或分布式计算,降低计算量和内存占用。

    Dr.Wu在知乎上的回答非常精辟:“这个领域的研究十分割裂,容易出现NLP领域的paper一顿优化,kv cache一点没变,去优化那个attention的计算量,找错了瓶颈……”

    以往的优化主要集中在算法层面,例如对Attention机制进行改进,以减少计算量。但这些方法往往会导致信息丢失,属于有损压缩。

    Full Attention仍然是主流的计算方式,但其计算量巨大,尤其是对于长文本而言。

    Full Attention:计算量之殇

    Attention机制的计算公式如下:

    $$
    Attention(Q, K, V. = softmax(\frac{QK^T}{\sqrt{d_k}})V
    $$

    其中,Q. K、V分别由文本输入向量乘以对应权重矩阵产生,维度为[seq_length, dim]。

    当上下文长度很长时,seq_length会非常大,导致QK^T矩阵的维度也极其庞大,需要大量的内存空间来存储,并进行后续计算。

    优化方案:Flash Attention & Ring Attention

    Flash Attention利用GPU硬件特性,将计算尽可能地在SRAM这一层完成,降低GPU内存读取/写入。

    Ring Attention则采用分布式计算,将Q. K、V矩阵分割到不同的硬件上,分别计算Attention,最后进行聚合,避免创建庞大的矩阵,从而降低内存占用和计算量。

    长文本大模型:未来可期

    长文本大模型的出现,为我们打开了新的视野。它不仅能够处理更长的文本,还能更好地理解和分析复杂的信息。

    未来,随着技术的发展,长文本大模型将会在更多领域发挥重要作用,例如:

    • 更精准的机器翻译:能够理解更长的上下文,翻译更加准确自然。
    • 更强大的对话系统:能够进行更深入的对话,理解更复杂的语境。
    • 更有效的文本摘要:能够提取更准确、更完整的文本信息。

    长文本大模型的未来充满希望,让我们拭目以待!

    参考文献

  • 让大型语言模型更懂“聊天”:StreamingLLM 的无限对话

    大型语言模型(LLM)已经彻底改变了人们的工作方式。以 GPT 系列模型为例,它被广泛应用于各种场景,帮助我们快速解答问题、调试代码等等,成为了许多应用的得力助手。

    然而,LLM 在实际应用中也面临着挑战。其中一个重要问题是,现有的 LLM 不适合用于流式应用,例如长时间的对话聊天。这是因为 LLM 在训练时会受到注意力窗口的限制,无法处理超过预定义训练序列长度的对话。此外,LLM 还会消耗大量的内存,这在实际应用中也是一个很大的问题。

    为了解决这些问题,研究人员提出了 StreamingLLM 框架。

    StreamingLLM:突破传统 LLM 的限制

    StreamingLLM 是由 Xiao 等人于 2023 年提出的一种框架,旨在解决流式应用中的问题。现有的方法之所以面临挑战,是因为 LLM 在预训练时会受到注意力窗口的限制。

    窗口注意力技术虽然效率很高,但在处理超过缓存大小的文本时就会失效。为了解决这个问题,研究人员尝试将几个初始 token 的键值对(KV)与最近的 token 结合起来,并将其称为“注意力汇聚”。下图展示了 StreamingLLM 与其他技术的对比:

    [StreamingLLM vs Existing Method (Xiao et al. (2023))]

    我们可以看到,StreamingLLM 利用注意力汇聚方法来解决挑战。注意力汇聚(初始 token)用于稳定注意力计算,并与最近的 token 结合起来,从而提高效率并在更长的文本上保持稳定性能。

    此外,现有的方法在内存优化方面也存在问题。然而,LLM 通过在最近 token 的键值对上维护一个固定大小的窗口来避免这些问题。作者还提到,StreamingLLM 比滑动窗口重新计算基线快 22.2 倍。

    从性能方面来看,StreamingLLM 在基准数据集上的准确率远超其他方法,如下表所示:

    [StreamingLLM accuracy (Xiao et al. (2023))]

    上表表明,StreamingLLM 的准确率可以超过其他方法。因此,StreamingLLM 在许多流式应用中具有巨大的潜力。

    如何尝试 StreamingLLM?

    您可以访问 StreamingLLM 的 GitHub 页面,将代码库克隆到您的目标目录,并在 CLI 中使用以下代码设置环境:

    conda create -yn streaming python=3.8
    conda activate streaming
    
    pip install torch torchvision torchaudio
    pip install transformers==4.33.0 accelerate datasets evaluate wandb scikit-learn scipy sentencepiece
    
    python setup.py develop

    然后,您可以使用以下代码运行带有 LLM 流式解码功能的 Llama 聊天机器人:

    CUDA_VISIBLE_DEVICES=0 python examples/run_streaming_llama.py  --enable_streaming

    下图展示了 StreamingLLM 在更长的对话中的表现:

    [StreamingLLM showed outstanding performance in more extended conversations (Streaming-llm)]

    总结

    在流式应用中使用 LLM 可以帮助企业在长远发展中获得优势,但实现起来也面临着挑战。大多数 LLM 无法超过预定义的训练序列长度,并且会消耗大量的内存。Xiao 等人 (2023) 开发了一个名为 StreamingLLM 的新框架来解决这些问题。使用 StreamingLLM,现在可以在流式应用中使用 LLM 了。


  • 大型语言模型的无限对话:StreamingLLM 如何实现高效流式解码

    大型语言模型(LLM)已经成为自然语言处理领域不可或缺的一部分,但它们在处理长文本时却面临着巨大的挑战。传统的 LLM 在解码过程中需要缓存所有先前解码的 token 的键值对(KV),这会导致内存占用量随着对话长度的增加而线性增长,并且模型的性能也会受到限制。

    StreamingLLM 应运而生,它是一种高效的框架,可以使 LLM 在不进行任何微调的情况下,将有限长度的注意力窗口推广到无限序列长度,从而实现高效的流式解码。

    窗口注意力的瓶颈:为什么需要 StreamingLLM?

    为了解决传统 LLM 解码过程中的内存占用和性能下降问题,研究人员提出了窗口注意力机制,它只缓存最近的 KV,从而减少了内存占用。然而,当文本长度超过缓存大小时,窗口注意力机制就会失效。

    StreamingLLM 的核心思想是利用注意力汇聚(Attention Sink)现象。研究人员发现,即使一些初始 token 在语义上并不重要,但模型仍然会对它们保持很强的注意力。这种现象被称为注意力汇聚。

    Attention Sink 的发现:解开窗口注意力的秘密

    通过分析 LLM 在处理长文本时的注意力机制,研究人员发现了一个有趣的现象:模型会将大量的注意力集中在初始 token 上,即使这些 token 在语义上并不重要。他们将这种现象称为“注意力汇聚”。

    为什么会出现注意力汇聚? 这是因为 Softmax 函数的特性,它要求所有上下文 token 的注意力分数之和为 1。即使当前查询在许多之前的 token 中没有强匹配,模型仍然需要将这些不必要的注意力值分配到某个地方,以使它们加起来为 1。

    初始 token 成为注意力汇聚的原因也很直观: 由于自回归语言模型的特性,初始 token 对所有后续 token 都可见,而后续 token 只能对有限的后续 token 可见。因此,初始 token 更容易被训练成注意力汇聚,从而捕获不必要的注意力。

    StreamingLLM 的工作原理:高效利用注意力汇聚

    StreamingLLM 框架基于以下几个关键原则:

    • 保留注意力汇聚: 保留初始 token 的 KV,以弥补窗口注意力机制的不足。
    • 滑动窗口: 使用滑动窗口机制,只缓存最近的 token 和注意力汇聚,从而减少内存占用。
    • 预训练优化: 在预训练过程中添加一个占位符 token 作为专门的注意力汇聚,进一步提高流式部署的性能。

    StreamingLLM 的优势:高效、稳定、无需微调

    • 高效的流式解码: StreamingLLM 可以实现高效的流式解码,即使在处理非常长的文本时,也能保持良好的性能。
    • 无限序列长度: StreamingLLM 可以处理无限长度的文本,突破了传统 LLM 的限制。
    • 无需微调: StreamingLLM 不需要对 LLM 进行任何微调,就可以实现高效的流式解码。

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

    研究人员对多个流行的 LLM 家族(包括 Llama-2、MPT、Falcon 和 Pythia)进行了实验,结果表明:

    • StreamingLLM 在处理长文本时,其性能与滑动窗口重新计算基线相当,而传统的窗口注意力机制则会失效。
    • StreamingLLM 可以处理超过 400 万个 token 的文本,并且在处理超长文本时仍然保持稳定。
    • 在预训练过程中添加一个专门的注意力汇聚 token 可以进一步提高 StreamingLLM 的性能。

    StreamingLLM 的应用场景:无限对话、实时翻译、文本摘要

    StreamingLLM 在许多场景中都有广泛的应用,例如:

    • 多轮对话: StreamingLLM 可以用于构建高效的聊天机器人,实现流畅的对话交互。
    • 文本摘要: StreamingLLM 可以用于对长文本进行摘要,并保留关键信息。
    • 实时翻译: StreamingLLM 可以用于实时翻译,提供流畅的翻译体验。

    未来展望:更强大、更智能的流式解码

    StreamingLLM 的出现为 LLM 的流式应用开辟了新的可能性。未来,研究人员将继续探索如何进一步优化 StreamingLLM 框架,使其在更多场景中发挥更大的作用。


    https://arxiv.org/pdf/2309.17453

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