分类: 🌏

  • 让大型语言模型更懂你:如何训练更可靠的奖励模型?

    大型语言模型(LLM)正在改变世界,但要让它们真正为我们所用,就需要让它们理解人类的意图和价值观。强化学习从人类反馈(RLHF)框架应运而生,它通过训练一个奖励模型来评估LLM的输出,并引导LLM朝着人类期望的方向发展。

    然而,现有的奖励模型在面对新奇的提示和响应时,往往表现出泛化能力不足的问题。这会导致一个令人头疼的现象:奖励过度优化。简单来说,就是模型过度追求奖励,反而导致实际表现下降。

    为了解决这个问题,本文将介绍一种名为可泛化奖励模型(GRM)的新方法,它通过正则化隐藏状态来提升奖励模型的泛化能力。

    奖励模型:让LLM知道什么是好,什么是坏

    奖励模型就像一个评判者,它根据人类的偏好,对LLM生成的文本进行打分。打分越高,说明LLM的输出越符合人类的期望。

    通常,奖励模型的训练基于成对的反馈数据,即给定同一个提示,人类会对两个不同的响应进行比较,并给出自己的偏好。通过学习这些偏好数据,奖励模型可以学习到哪些文本是好的,哪些文本是不好的。

    奖励过度优化:模型的“聪明反被聪明误”

    虽然奖励模型的初衷是引导LLM更符合人类的期望,但现实情况往往事与愿违。当奖励模型过度优化时,它可能会学到一些“错误的模式”,导致LLM的输出虽然在奖励模型看来很优秀,但实际上却偏离了人类的真实意图。

    例如,如果奖励模型只关注文本的长度,那么LLM可能会生成一些毫无意义的长篇大论,只是为了获得更高的奖励。

    可泛化奖励模型(GRM):让模型更具“举一反三”的能力

    GRM的核心思想是通过正则化隐藏状态来提升奖励模型的泛化能力。隐藏状态是LLM内部处理信息的中间结果,它包含了模型对文本的理解。

    GRM保留了LLM的语言模型头部,并通过引入一系列文本生成损失来约束隐藏状态的文本生成能力,同时学习一个奖励头部来预测文本的奖励分数。

    文本生成损失:让模型保持“语言能力”

    文本生成损失是用来评估LLM生成文本质量的指标。GRM通过引入文本生成损失,可以确保隐藏状态在学习奖励的同时,不会丢失其原本的语言能力。

    GRM的优势:高效、稳定、可靠

    GRM具有以下优势:

    • 高效:GRM不需要训练多个奖励模型,也不需要额外的训练数据。
    • 稳定:GRM对不同类型的正则化方法都具有良好的适应性。
    • 可靠:GRM能够有效地缓解奖励过度优化问题,并对训练数据中的噪声具有较强的鲁棒性。

    实验结果:GRM的优异表现

    实验结果表明,GRM在各种评估任务中都取得了优异的成绩:

    • 泛化能力强:GRM在面对新奇的提示和响应时,仍然能够保持较高的准确率。
    • 鲁棒性强:即使在训练数据有限或存在噪声的情况下,GRM仍然能够保持良好的性能。
    • 有效缓解奖励过度优化:GRM能够有效地引导LLM朝着人类期望的方向发展,并避免出现奖励过度优化的问题。

    未来展望:更智能、更可靠的奖励模型

    GRM为构建更智能、更可靠的奖励模型开辟了新的道路。未来,我们可以进一步探索以下方向:

    • 更精细化的正则化方法:设计更精细化的正则化方法,以更好地约束隐藏状态的文本生成能力。
    • 多任务学习:将奖励学习与其他任务结合起来,例如文本摘要、机器翻译等,以提升奖励模型的泛化能力。
    • 可解释性:研究奖励模型的可解释性,以便更好地理解模型的决策过程。

    参考文献

    • Yang, R. , Ding, R., Lin, Y., Zhang, H., & Zhang, T. (2024). Regularizing Hidden States Enables Learning Generalizable Reward Model for LLMs. arXiv preprint arXiv:2406.10216.✅

    通过不断探索和改进,我们相信奖励模型将成为LLM与人类价值观对齐的关键,推动LLM走向更加智能、更加可靠的未来。


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

    A: 这篇论文试图解决的问题是如何提高大型语言模型(LLMs)在强化学习从人类反馈(RLHF)框架中,通过训练得到的奖励模型(reward models)对未见提示(unseen prompts)和响应(responses)的泛化能力。具体来说,论文指出当前的奖励模型在面对分布偏移(distribution shifts)时泛化能力有限,这可能导致过度优化(over-optimization)现象,即过度优化奖励结果导致实际性能下降。为了解决这个问题,论文提出了一种新颖的方法,即通过正则化隐藏状态来增强奖励模型对分布偏移的泛化能力。这种方法被称为通用奖励模型(Generalizable Reward Model, GRM),它保留了基础模型的语言模型头部,并引入了一系列文本生成损失来保持隐藏状态的文本生成能力,同时学习与这些隐藏状态相同的奖励头部。通过实验,论文证明了引入的正则化技术显著提高了学习到的奖励模型在多种分布外(OOD)任务上的准确性,并有效缓解了RLHF中的过度优化问题,提供了一个更可靠和强大的偏好学习范式。

    Q: 有哪些相关研究?

    A: 论文中提到了多个与奖励模型和强化学习从人类反馈(RLHF)相关的研究。以下是一些主要的相关研究:

    1. Amodei et al., 2016: 提出了AI安全中的一些具体问题,包括奖励黑客攻击(reward hacking)的概念。
    2. Bradley and Terry, 1952: 提出了Bradley-Terry模型,这是一种用于偏好学习的模型,常用于奖励建模。
    3. Bai et al., 2022: 研究了如何通过监督式微调(SFT)和RLHF来确保大型模型与人类价值观一致。
    4. Ouyang et al., 2022: 探讨了RLHF中奖励模型的泛化问题,并提出了一些解决方案。
    5. Gao et al., 2023: 在合成设置中展示了增加奖励模型的大小和训练数据量可以缓解过度优化问题。
    6. Coste et al., 2023: 提出了使用集成技术(ensemble techniques)来增强奖励模型的泛化能力。
    7. Eisenstein et al., 2023: 研究了奖励模型集成如何帮助缓解过度优化问题。
    8. Moskovitz et al., 2023: 提出了一种受限的RLHF方法来对抗奖励模型的过度优化。
    9. Zhang et al., 2024b: 提出了一种通过对抗性策略优化来克服奖励过度优化的方法。
    10. Kumar et al., 2022: 理论上展示了随机初始化的头部可能会扭曲预训练的特征,从而影响分布外(OOD)性能。
    11. Schulman et al., 2017: 提出了近端策略优化(PPO)算法,这是一种在RLHF中常用的策略优化方法。

    这些研究为理解奖励模型在RLHF中的挑战和可能的解决方案提供了理论基础和实证研究。论文提出的通用奖励模型(GRM)是在这些现有研究的基础上,针对奖励模型泛化能力和过度优化问题的一种新解决方案。

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

    A: 论文通过提出一种名为**通用奖励模型(Generalizable Reward Model, GRM)**的方法来解决奖励模型在分布偏移情况下泛化能力有限的问题。具体来说,GRM采用了以下关键策略:

    1. 保留基础模型的语言模型头部:GRM保留了基础模型的语言模型头部,这样做的目的是为了保持模型在文本生成任务上的能力。
    2. 引入文本生成损失作为正则化:GRM通过引入一系列文本生成损失来正则化隐藏状态,这有助于在微调过程中保持模型的文本生成能力,同时学习与隐藏状态相同的奖励头部。
    3. 共享隐藏状态的奖励头部和语言模型头部:GRM的结构中,奖励头部和语言模型头部共享相同的隐藏状态,这样的设计使得两者可以协同工作,一方面优化奖励模型以更好地匹配人类偏好,另一方面通过文本生成任务保持模型的语言能力。
    4. 定义总体损失函数:GRM的总体损失函数结合了奖励损失和正则化损失,通过一个平衡系数α来调整两者之间的权重。
    5. 理论动机:论文从理论上分析了通过考虑对抗性策略来增强奖励模型的鲁棒性,并通过分析优化问题来导出正则化项的潜在形式。
    6. 实验验证:论文通过一系列实验验证了GRM在不同分布外(OOD)任务上的有效性,展示了其在不同数据集大小和不同正则化策略下的性能。
    7. 缓解过度优化问题:GRM通过其设计有效地缓解了RLHF中的过度优化问题,这通过在最佳n(BoN)采样和近端策略优化(PPO)中的性能提升来证明。
    8. 效率和实用性:GRM是一种轻量级且有效的解决方案,它不需要训练多个奖励模型或依赖额外的训练数据,同时提供了不同选择的损失类型以适应不同的内存和计算成本。

    通过这些策略,GRM旨在提高奖励模型对未见数据的泛化能力,并在RLHF框架中提供更可靠和鲁棒的偏好学习范式。

    Q: 论文做了哪些实验?

    A: 论文中进行了一系列的实验来评估提出的通用奖励模型(GRM)的性能。以下是实验的主要方面:

    1. 奖励模型训练:使用Unified-Feedback数据集的不同子集(400K和40K样本)来训练所有奖励模型,并在保留的8K评估集上进行评估。
    2. 分布内(In-Distribution, ID)和分布外(Out-of-Distribution, OOD)评估:在ID(Unified-Feedback)和OOD(HHH-Alignment和MT-Bench)数据集上评估不同奖励建模方法的性能。
    3. 不同正则化方法的比较:比较了GRM中三种不同的文本生成正则化损失(DPO正则化、DPO无参考模型正则化和SFT正则化)对模型性能的影响。
    4. RewardBench评估:在RewardBench数据集上评估GRM和各种基线模型的性能,该数据集包含聊天、聊天-困难、安全和推理任务组。
    5. 不同数据集大小的比较:研究了GRM在不同大小的训练数据集(400K和40K. ��下的性能,以评估其对数据集大小的鲁棒性。✅
    6. RLHF中的评估
      • Best-of-n Sampling (BoN):使用不同大小的基础模型(2B和7B. ��进行BoN采样实验,以评估代理奖励模型选择与金标准奖励一致的最佳响应的能力。✅
      • Proximal Policy Optimization (PPO):使用从BoN实验中获得的奖励模型对策略模型(gemma-2b-it)进行微调,以评估GRM在缓解PPO中的过度优化问题方面的有效性。
    7. 对标签噪声的鲁棒性:在训练数据中引入25%的标签噪声,以评估GRM在存在噪声的情况下的准确性和鲁棒性。
    8. 与现有最先进方法的比较:将GRM的性能与现有的最先进方法(如PairRM、Starling-RM-7B/34B和UltraRM-13B. ��进行了比较。✅

    这些实验结果表明,GRM在偏好学习和泛化能力方面显著优于基线模型,并且在有限数据集和存在标签噪声的情况下表现出更高的鲁棒性。此外,GRM在缓解RLHF中的过度优化问题方面也显示出了强大的潜力。

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

    A: 尽管论文提出的通用奖励模型(GRM)在提高奖励模型泛化能力和缓解过度优化方面取得了显著成果,但仍有一些潜在的研究方向可以进一步探索:

    1. 更大规模的数据集实验:在更大的数据集上测试GRM的性能,以评估其在处理更大规模数据时的可扩展性和效率。
    2. 不同领域的应用:探索GRM在不同领域(如医疗、法律、教育等)的应用,以及是否需要针对特定领域进行调整。
    3. 奖励模型的解释性:提高奖励模型的可解释性,以便更好地理解模型的决策过程和偏好学习结果。
    4. 多任务学习:研究GRM在多任务学习环境中的表现,以及如何平衡不同任务之间的偏好和奖励。
    5. 奖励模型的安全性和伦理性:考虑奖励模型可能带来的安全和伦理问题,以及如何设计机制来确保模型的行为符合社会规范。
    6. 模型鲁棒性的进一步提升:尽管GRM在一定程度上对标签噪声具有鲁棒性,但可以进一步研究如何提高模型对于输入扰动、对抗性攻击等的鲁棒性。
    7. 实时反馈和动态调整:研究GRM在实时反馈环境中的表现,以及如何根据用户反馈动态调整奖励模型。
    8. 集成学习:探索将GRM与其他集成学习方法结合,以进一步提高奖励模型的性能和泛化能力。
    9. 跨模态任务的奖励建模:将GRM应用于跨模态任务(如图像和文本的联合理解),并研究如何有效地建模和优化跨模态的奖励信号。
    10. 模型压缩和加速:研究如何对GRM进行压缩和加速,以便在资源受限的环境中部署和应用。
    11. 长期偏好变化的适应性:研究GRM如何适应用户长期偏好的变化,以及如何设计模型以持续学习和适应新的用户反馈。
    12. 与人类评估者的协作:探索GRM与人类评估者协作的机制,以提高评估过程的效率和准确性。

    这些方向不仅可以推动奖励模型技术的发展,还有助于构建更加智能、可靠和安全的人工智能系统。

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

    A: 这篇论文的主要内容包括以下几个方面:

    1. 问题陈述:论文指出在强化学习从人类反馈(RLHF)框架中,现有的奖励模型在泛化到未见提示和响应时存在能力限制,可能导致过度优化现象,从而影响模型性能。
    2. 通用奖励模型(GRM):提出了一种新颖的方法,即通过正则化隐藏状态来增强奖励模型对分布偏移的泛化能力。GRM保留了基础模型的语言模型头部,并通过引入文本生成损失来正则化隐藏状态,同时学习与隐藏状态相同的奖励头部。
    3. 理论动机:论文从理论上分析了通过考虑对抗性策略来增强奖励模型的鲁棒性,并导出了正则化项的潜在形式。
    4. 实验验证:通过一系列实验,论文验证了GRM在不同分布外(OOD)任务上的有效性,并展示了其在不同数据集大小和不同正则化策略下的性能。
    5. 缓解过度优化:GRM在最佳n(BoN)采样和近端策略优化(PPO)中表现出色,有效缓解了RLHF中的过度优化问题。
    6. 效率和实用性:GRM是一种轻量级且有效的解决方案,不需要训练多个奖励模型或依赖额外的训练数据,提供了不同选择的损失类型以适应不同的内存和计算成本。
    7. 主要贡献:论文的主要贡献包括提出了GRM方法,验证了文本生成正则化对GRM的有效性,以及展示了GRM在多种OOD任务上提高奖励模型准确性的能力,同时在RLHF中一致地提高了性能,有效缓解了过度优化问题。
    8. 相关工作:论文还讨论了与奖励建模和RLHF相关的其他研究工作,包括奖励模型集成、策略优化约束、对抗性偏好优化等。
    9. 结论:论文得出结论,通过在奖励模型的隐藏状态上引入正则化技术,可以显著提高模型对未见数据的泛化能力,并在RLHF中有效缓解过度优化问题,为开发更鲁棒的奖励模型提供了新的思路。
    10. 未来工作:论文提出了一些潜在的研究方向,包括在更大规模数据集上的实验、不同领域的应用、提高模型的解释性、安全性和伦理性考虑等。

  • FP8-LM:训练成本降低50%的LLM新时代

    大型语言模型 (LLMs) 正在改变我们的世界,但其高昂的训练成本一直是阻碍其发展的重要因素。为了解决这一问题,微软研究人员提出了一种名为 FP8-LM 的新框架,利用 FP8 低精度训练,将训练成本降低了 50%。

    FP8:下一代低精度训练的突破

    FP8 是下一代低精度数据类型,相比传统的 FP16 和 FP32,它可以实现两倍的速度提升,同时将内存和通信成本降低 50% 至 75%。然而,目前对 FP8 训练的支持非常有限,仅有的框架是 Nvidia Transformer Engine (TE),但它只将 FP8 应用于矩阵乘法计算,其他操作仍然使用高精度,因此无法充分发挥 FP8 的优势。

    FP8-LM:全方位 FP8 训练框架

    FP8-LM 框架的核心思想是将 FP8 计算、存储和通信渗透到整个 LLM 训练过程中,实现前向和后向传递都使用 FP8,从而大幅减少系统工作负载。

    具体而言,FP8-LM 提供了三个优化级别,逐步整合 FP8 到混合精度和分布式训练中:

    • O1 优化: 将 FP8 应用于权重和权重梯度,并在通信中使用 FP8。
    • O2 优化: 支持 Adam 和 AdamW 两种优化器使用 FP8。
    • O3 优化: 支持 FP8 用于分布式并行训练和 ZeRO 优化器,这对于训练大型模型至关重要。

    挑战与解决方案

    使用 FP8 训练 LLM 面临着数据下溢或上溢等挑战,以及由于 FP8 数据格式的动态范围和精度有限而产生的量化误差。为了解决这些问题,FP8-LM 提出了两种技术:

    • 精度解耦: 将数据精度对权重、梯度、优化器状态等参数的影响解耦,并将较低的精度分配给对精度不敏感的组件。
    • 自动缩放: 通过动态调整张量缩放因子,保持梯度值在 FP8 数据格式的表示范围内,从而减轻下溢和上溢情况。

    显著的性能提升

    实验结果表明,FP8-LM 在各种模型规模上都取得了显著的性能提升:

    • 内存使用量减少: 与 BF16 混合精度训练相比,FP8-LM 将内存使用量减少了 27% 至 42%,例如 GPT-7B 减少了 27%,GPT-175B 减少了 42%。
    • 通信开销降低: FP8-LM 将权重梯度通信开销降低了 63% 至 65%。
    • 训练时间缩短: 在 GPT-175B 模型训练中,FP8-LM 将训练时间减少了 17%,同时内存消耗减少了 21%。

    广泛的适用性

    FP8-LM 框架不仅适用于预训练阶段,也适用于下游微调任务,包括指令调整和人类偏好对齐。

    • 指令调整: FP8-LM 在指令调整任务中取得了与 BF16 相当的性能,同时训练速度提高了 27%。
    • 强化学习与人类反馈 (RLHF): FP8-LM 在 RLHF 中也展现出巨大潜力,可以减少模型权重和优化器状态的内存消耗。

    未来展望

    FP8-LM 的发布为下一代低精度训练系统树立了新的典范,它将推动大型基础模型的进一步发展。未来,研究人员将继续探索 FP8-LM 的应用,例如:

    • 训练更大的 FP8 GPT 模型。
    • 将 FP8-LM 应用于多模态大型模型训练。
    • 在边缘设备上部署 FP8 LLM。

    参考文献

    总结: FP8-LM 框架是 LLM 训练领域的一项重大突破,它为降低训练成本、提高训练效率开辟了新的道路,将推动下一代大型基础模型的快速发展。

  • FP8-LM: 训练 FP8 大型语言模型,大幅降低训练成本

    大型语言模型(LLM)在语言理解和生成方面展现出前所未有的能力,在推理、数学、科学等领域取得了突破性进展。然而,训练 LLM 极其昂贵。例如,PaLM 使用 6,144 个 TPUv4 芯片来训练一个 5400 亿参数的模型,而 GPT-3 1750 亿参数模型的预训练则消耗了数千个 petaflop/s-days 的计算量。这促使人们需要降低 LLM 的训练成本,特别是对于下一代超智能模型的扩展而言。

    低精度训练是降低成本最有希望的方向之一,因为它可以提供高速、小内存占用和低通信开销。大多数现有的训练系统,例如 Megatron-LM、MetaSeq 和 Colossal-AI,默认情况下使用 FP32 全精度或 FP16/BF16 混合精度训练 LLM。然而,对于大型模型而言,这并非实现完全精度的必要条件。随着英伟达 H100 GPU 的发布,FP8 正在成为下一代低精度表示的数据类型。理论上,与当前的 16 位和 32 位浮点混合精度训练相比,FP8 可以实现 2 倍的加速、50% – 75% 的内存成本节省和 50% – 75% 的通信节省,这对于扩展下一代基础模型非常有前景。

    不幸的是,目前对 FP8 训练的支持很少且有限。唯一可用的框架是英伟达 Transformer Engine (TE),但它仅将 FP8 用于 GEMM 计算,而仍然使用高精度(例如 FP16 或 FP32)来保留主权重和梯度。因此,端到端的加速、内存和通信成本节省非常有限,无法完全展现 FP8 的威力。为了解决这个问题,我们提出了一种针对 LLM 训练的极度优化的 FP8 混合精度框架。核心思想是将 FP8 计算、存储和通信渗透到大型模型训练的整个过程中,使前向和反向传播都使用低精度 FP8,从而与之前的框架相比大大降低系统工作量。具体来说,我们设计了三个优化级别,利用 FP8 来简化混合精度和分布式训练。这三个级别以增量的方式逐步整合 8 位集体通信、优化器和分布式并行训练。更高的优化级别表示在 LLM 训练期间使用更多 FP8。此外,对于大规模训练,例如在数千个 GPU 上训练的 GPT-175B. ��我们的框架提供了 FP8 低位并行性,包括张量、流水线和序列并行性,为下一代低精度并行训练铺平了道路。✅

    使用 FP8 训练 LLM 并非易事。挑战源于诸如数据下溢或上溢之类的问题,以及 FP8 数据格式固有的较窄动态范围和降低精度所产生的量化误差。这些挑战会导致训练过程中的数值不稳定和不可逆的偏差。为了解决这些问题,我们提出了两种技术:精度解耦和自动缩放,以防止关键信息的丢失。前者涉及解耦数据精度对权重、梯度、优化器状态等参数的影响,并将降低精度分配给对精度不敏感的组件。后者是通过动态调整张量缩放因子来保留 FP8 数据格式表示范围内的梯度值,从而减轻所有减少通信期间发生的下溢和上溢。

    为了验证所提出的 FP8 低精度框架,我们将它应用于 GPT 风格的模型训练,包括预训练和监督微调 (SFT)。实验结果证明了我们 FP8 方法的有效性,产生了巨大的效益,包括实际内存使用量减少 29% 到 39%(例如,GPT-7B 减少 29%,而 GPT-175B 减少 39%)以及与流行的 BF16 混合精度训练方法相比,权重相关的通信开销显着减少 63% 到 65%。在不改变任何超参数(例如学习率和权重衰减)的情况下,使用 FP8 训练的模型在预训练和下游任务中都表现出与使用 BF16 高精度的模型相当的性能。值得注意的是,在 GPT-175B 模型的训练过程中,我们的 FP8 混合精度框架将训练时间缩短了 37%,而 H100 GPU 平台上的内存消耗减少了 42%。更重要的是,随着模型规模的不断扩大,通过使用低精度 FP8 实现的成本降低可以进一步提高,如图 1 所示。

    对于微调,我们使用 FP8 混合精度进行指令微调和人类反馈强化学习 (RLHF),以更好地将预训练的 LLM 与最终任务和用户偏好对齐。具体来说,我们在公开的用户共享指令遵循数据(ShareGPT)上微调预训练模型。使用我们的 FP8 混合精度微调的模型在 AlpacaEval 和 MT-Bench 基准测试中表现出与使用半精度 BF16 的模型相当的性能,同时训练速度提高了 27%。此外,FP8 混合精度在 RLHF 中展现出巨大的潜力,RLHF 是一个在训练过程中需要加载多个模型的过程。通过在训练中使用 FP8,流行的 RLHF 框架 AlpacaFarm 可以使模型权重减少 32%,优化器状态的内存消耗减少 62%。这进一步证明了我们 FP8 低精度训练框架的多功能性和适应性。

    我们为推动下一代 FP8 低精度 LLM 训练的设计做出了以下贡献:

    • 一个新的 FP8 混合精度训练框架。 它以附加方式逐步解锁 8 位权重、梯度、优化器和分布式训练,使用方便。这个 8 位框架可以作为现有 16/32 位混合精度对应物的简单替代,无需对超参数和训练收据进行任何更改。此外,我们提供了一个 Pytorch 实现,可以在几行代码中实现 8 位低精度训练。
    • 一个新的 FP8 训练的 GPT 风格模型系列。 我们将提出的 FP8 方案应用于 GPT 预训练和微调(即 SFT 和 RLHF),并在从 70 亿到 1750 亿参数的各种模型规模上证明了它的潜力。我们为流行的并行计算范式配备了 FP8 支持,包括张量、流水线和序列并行性,使 FP8 可以用于训练大型基础模型。我们开源了第一个基于 Megatron-LM 实现的 FP8 GPT 训练代码库。

    我们预计,我们的 FP8 框架的发布将为下一代低精度训练系统建立一个新的范式,该系统专门用于大型基础模型。

    FP8 LLM

    混合精度已广泛应用于 LLM 训练,以提高计算和内存效率。最流行的混合精度方案是 FP16-FP32 和 BF16-FP32。由于 FP16 的数值范围有限,FP16-FP32 方案已被证明在训练大型模型时存在不稳定性。因此,社区现在通常采用 BF16-FP32 来训练 LLM,例如 Megatron-Turing NLG-530B. ��Bloom-175B 和 Gopher。其根本原因是 BF16 具有较宽的动态范围,可以保持数值稳定性,同时匹配全精度 FP32 的性能。此外,与 FP32 相比,BF16 使用的位数只有一半,因此可以显著减少内存占用,同时提高计算效率。✅

    FP8 是从 16 位数据格式自然演进而来的,可以进一步降低计算成本。然而,使用低精度 FP8 训练 LLM 带来新的挑战。FP81 的动态范围和表示精度远低于 BF16 和 FP16,这不可避免地会导致更多训练崩溃,例如损失激增甚至 NaN。为了解决这些问题,提出了张量缩放技术。核心思想是在将更高精度值转换为 FP8 之前,先用缩放因子将其相乘,以便将它们移动到与 FP8 格式的表示范围更好地重叠的范围内。这种每张量缩放技术可以减少数据量化误差,同时提高数值稳定性和精度,从而可以使用低精度 FP8 来训练大型模型。

    不幸的是,目前对 FP8 低精度训练的支持有限。英伟达 TE 仅支持 Transformer 中线性层的 FP8 计算,而其他所有操作(例如权重更新和梯度同步)仍然使用更高精度。在这项工作中,我们提出了一种针对 LLM 训练的极度优化的 FP8 混合精度策略。新的 FP8 优化包括三个关键方面:FP8 通信、FP8 优化器和 FP8 分布式训练。通过整合这些方面,LLM 的训练(例如 1750 亿参数的 GPT-3 模型)可以充分利用 FP8 低精度的优势,提高训练效率。

    2.1 FP8 梯度和所有减少通信

    现有的混合精度训练方法通常使用 16 位或 32 位数据类型来计算和存储梯度,这导致在整个训练过程中对集体通信的带宽要求很高。我们发现,将 FP8 直接应用于梯度会导致精度下降。根本问题在于低位所有减少操作导致的下溢和上溢问题。具体来说,在所有减少过程中,跨 GPU 的梯度累加会导致数值范围超出 FP8 的表示范围,从而导致梯度信息丢失,并最终导致模型训练崩溃。

    为了解决这个问题,我们提出了一种新的自动缩放技术,用于在 FP8 所有减少过程中动态调整张量缩放因子。该技术通过在所有减少之前和之后应用缩放因子来确保 FP8 梯度在所有减少过程中保持在表示范围之内。这种动态缩放方法可以有效地防止下溢和上溢,从而提高 FP8 梯度通信的精度和稳定性。

    2.2 FP8 优化器

    除了梯度通信之外,优化器状态(例如动量和 RMSProp)也需要大量的内存,并且通常使用高精度(例如 FP32)进行存储。为了进一步降低内存占用,我们提出使用 FP8 来存储优化器状态。然而,直接将 FP8 应用于优化器状态会导致训练不稳定,因为优化器状态的精度对模型训练的稳定性至关重要。

    为了解决这个问题,我们提出了一种精度解耦技术,它将优化器状态的精度与模型权重和梯度的精度分离。具体来说,我们使用 FP8 来存储优化器状态,同时使用更高的精度(例如 FP16 或 BF16)来存储模型权重和梯度。这种精度解耦方法可以有效地降低内存占用,同时保持训练的稳定性。

    2.3 FP8 分布式训练

    在分布式训练中,模型权重需要在多个 GPU 之间进行同步,这会导致大量的通信开销。为了降低通信开销,我们提出使用 FP8 来存储模型权重。然而,直接将 FP8 应用于模型权重会导致精度下降,因为模型权重的精度对模型的性能至关重要。

    为了解决这个问题,我们提出了一种新的 FP8 分布式训练方法,它将模型权重的精度与梯度的精度分离。具体来说,我们使用 FP8 来存储模型权重,同时使用更高的精度(例如 FP16 或 BF16)来存储梯度。这种精度解耦方法可以有效地降低通信开销,同时保持模型的性能。

    3 FP8 训练框架

    我们的 FP8 混合精度训练框架旨在通过逐步引入 FP8 计算、存储和通信来提高 LLM 训练的效率。该框架包括三个优化级别,每个级别都针对 LLM 训练的不同方面进行优化。

    3.1 级别 1:FP8 梯度通信

    级别 1 框架使用 FP8 来存储和传输梯度,同时使用更高的精度(例如 FP16 或 BF16)来存储模型权重和优化器状态。这种方法可以有效地降低梯度通信的带宽要求,同时保持训练的稳定性。

    3.2 级别 2:FP8 优化器

    级别 2 框架使用 FP8 来存储和传输梯度和优化器状态,同时使用更高的精度(例如 FP16 或 BF16)来存储模型权重。这种方法可以进一步降低内存占用,同时保持训练的稳定性。

    3.3 级别 3:FP8 分布式训练

    级别 3 框架使用 FP8 来存储和传输梯度、优化器状态和模型权重。这种方法可以最大限度地降低内存占用和通信开销,同时保持训练的稳定性。

    4 实验结果

    为了评估我们 FP8 混合精度训练框架的有效性,我们在 GPT 风格的模型上进行了实验,包括预训练和监督微调 (SFT)。实验结果表明,我们的 FP8 框架可以显著降低内存占用和训练时间,同时保持模型的性能。

    4.1 预训练

    我们在 GPT-7B 和 GPT-175B 模型上进行了预训练实验,并与流行的 BF16 混合精度训练方法进行了比较。实验结果表明,我们的 FP8 框架可以将实际内存使用量减少 29% 到 39%,同时将权重相关的通信开销减少 63% 到 65%。此外,我们的 FP8 框架可以将 GPT-175B 模型的训练时间缩短 37%,同时将 H100 GPU 平台上的内存消耗减少 42%。

    4.2 微调

    我们在 AlpacaEval 和 MT-Bench 基准测试上对 GPT-7B 模型进行了指令微调实验,并与使用半精度 BF16 的方法进行了比较。实验结果表明,我们的 FP8 框架可以实现与 BF16 相当的性能,同时训练速度提高了 27%。此外,我们还评估了 FP8 在 RLHF 中的潜力,发现它可以使模型权重减少 32%,优化器状态的内存消耗减少 62%。

    5 结论

    我们提出了一种新的 FP8 混合精度训练框架,它可以有效地降低 LLM 训练的成本,同时保持模型的性能。该框架通过逐步引入 FP8 计算、存储和通信来实现优化,并提供三个优化级别,以满足不同的训练需求。实验结果表明,我们的 FP8 框架可以显著降低内存占用和训练时间,同时保持模型的性能。我们相信,我们的 FP8 框架将为下一代低精度训练系统建立一个新的范式,该系统专门用于大型基础模型。

    参考文献

    • Brown, T. , Mann, B., Ryder, N., Subbiah, M., Kaplan, J., Dhariwal, P., Neelakantan, A., … & Amodei, D. (2020). Language models are few-shot learners. ✅arXiv preprint arXiv:2005.14165.
    • Chowdhery, A. , Narang, S., Devlin, J., Bosma, M., Mishra, N., Roberts, A., … & Tay, Y. (2022). PaLM: Scaling language modeling with pathways. ✅arXiv preprint arXiv:2204.02311.
    • Li, B. , Zhang, M., Hu, J., Li, R., Ni, B., Xiong, Y., … & Liu, Z. (2023a). Colossal-AI: A unified deep learning system for large-scale parallel training. ✅arXiv preprint arXiv:2302.09060.
    • Li, J. , Chen, M., Wang, S., Zhou, D., & Xiong, L. (2023b). AlpacaEval: A comprehensive evaluation benchmark for instruction-following language models. ✅arXiv preprint arXiv:2304.05799.
    • Micikevicius, P. , Narang, S., Alben, J., Diamos, G., Elsen, E., Garcia, D., … & Wu, Y. (2017). Mixed precision training. ✅arXiv preprint arXiv:1710.03740.
    • Micikevicius, P. , Alben, J., Wu, Y., Teerapittayanon, S., & Gomez, A. (2022). fp8 training for deep learning. ✅arXiv preprint arXiv:2203.14784.
    • Nvidia. (2022a). Nvidia H100 Tensor Core GPU. https://www.nvidia.com/en-us/data-center/h100/
    • Nvidia. (2022b). Nvidia Transformer Engine. https://developer.nvidia.com/nvidia-transformer-engine
    • OpenAI. (2023). GPT-4. https://openai.com/product/gpt-4
    • Rae, J. W., Borgeaud, S., Cai, T., Olah, C., Leike, J., Allen, D., … & Hinton, G. (2021). Scaling language models: Methods, analysis & insights from training gopher. ✅arXiv preprint arXiv:2112.11406.
    • Scao, T. , Lachaux, A., Lhuillier, M., Schick, T., Bordes, A., Févry, T., … & Jaffré, J. (2022). Bloom: A 176b-parameter open-access multilingual language model. ✅arXiv preprint arXiv:2203.15556.
    • ShareGPT. (2023). ShareGPT. https://github.com/nomic-ai/gpt-4-11k

    论文综述和评论:FP8-LM: Training FP8 Large Language Models

    《FP8-LM: Training FP8大型语言模型》是一篇关于使用FP8低比特数据格式训练大型语言模型(LLMs)的论文。该论文探索了在LLMs训练中使用FP8低精度数据格式的有效性和效率。作者提出了一个新的FP8自动混合精度训练框架,该框架通过逐步引入8位梯度、优化器状态和分布式学习,实现了LLMs的混合精度和分布式并行训练。论文通过实验结果展示,使用FP8混合精度训练框架,可以显著降低实际内存使用量,并且训练速度比广泛采用的BF16框架快75%。此外,该框架还具有通用性,可以应用于其他任务,如LLMs指令调优和强化学习。作者在论文中开源了FP8低精度训练框架。

    这篇论文的主要贡献在于提出了一种新的FP8混合精度训练框架,该框架充分利用了FP8低精度数据格式的优势,降低了LLMs训练的成本。通过逐步引入FP8梯度、优化器状态和分布式学习,论文展示了在训练大型语言模型时,使用FP8混合精度训练框架可以同时降低内存使用和训练时间,从而降低了大型基础模型的训练成本。此外,该框架的通用性使其可以无缝应用于其他任务,为微调费用节约提供了可能。作者通过开源FP8低精度训练框架,为下一代低精度训练系统的设计奠定了基础。

    论文的创新点在于提出了使用FP8低精度数据格式训练LLMs的新方法,并通过实验证明了其有效性。该方法充分利用了FP8的优势,降低了训练成本,并在保持模型精度的同时提高了训练效率。此外,论文还介绍了针对FP8训练的挑战和解决方案,如数据下溢和上溢问题以及张量缩放技术。

    总的来说,这篇论文对于推动下一代FP8低精度训练系统的设计具有重要意义。通过引入新的FP8混合精度训练框架,论文提供了一种降低大型语言模型训练成本的有效方法,并为其他任务的低精度训练提供了一种可行的解决方案。该论文的实验结果表明,FP8混合精度训练框架在减少内存使用和提高训练效率方面具有显著的优势。尽管还存在一些挑战,如数据表示范围的限制和量化误差,但这些问题可以通过提出的解决方案得到有效解决。


    微软自动混合精度 (MS-AMP) 简介

    MS-AMP 是微软开发的用于深度学习的自动混合精度软件包。它利用 FP8(8 位浮点数)格式来加速训练过程,并减少内存占用,从而使训练更大的模型成为可能。

    主要特点

    MS-AMP 提供了三种优化级别,以满足不同的训练需求:

    • O1 优化: 将 FP8 应用于权重和权重梯度,并在通信中支持 FP8。
    • O2 优化: 支持 FP8 用于 Adam 和 AdamW 两种优化器。
    • O3 优化: 支持 FP8 用于分布式并行训练和 ZeRO 优化器,这对于训练大型模型至关重要。

    此外,MS-AMP 还提供了四个训练示例,涵盖了 Swin-Transformer、DeiT、RoBERTa 和 GPT-3 等流行模型。

    与 Transformer Engine 的优势

    与 NVIDIA 的 Transformer Engine 相比,MS-AMP 具有以下优势:

    • 加速内存受限操作: 通过访问单个字节,而不是半精度或单精度,从而加速内存受限操作。
    • 减少内存需求: 降低训练模型的内存需求,从而支持训练更大的模型。
    • 加速分布式模型通信: 通过传输低精度梯度来加速分布式模型的通信。
    • 缩短大型语言模型的训练时间: 允许使用更大的 mini-batch,从而缩短大型语言模型的训练时间。

    性能

    MS-AMP 在保持高精度的情况下,仅使用一小部分内存,并在各种任务上取得了出色的性能,包括 GPT-3、DeiT 和 Swin Transformer。

    模型性能:

    MS-AMP 在 GPT-3、Swin-Transformer、DeiT 和 RoBERTa 等模型上进行了评估,结果表明,使用 MS-AMP 训练的模型与使用 FP16/BF16 AMP 训练的模型性能相当。

    系统性能:

    在 NVIDIA H100 平台上训练 GPT-175B 模型时,MS-AMP 与 BF16 混合精度方法相比,实际内存使用量减少了 39%,训练时间减少了 37%。对于较小的模型,MS-AMP 的 O2 模式与 FP16 AMP 相比,可以为 Swin-1.0B 模型节省 44% 的内存,为 ViT-1.2B 模型节省 26% 的内存。

    总结

    MS-AMP 是一个强大的工具,可以显著提高大型语言模型的训练效率。它通过利用 FP8 格式来减少内存占用和通信开销,从而加速训练过程并支持训练更大的模型。

    参考文献:


  • 【转载】战胜内心的抗拒:追寻创作之路,还有一只野猫

    嘿!上个星期我跟大家分享了一本我超爱的书,《The War of Art》。这本书头头是道地讲述了创作者们最头疼的问题,就是怎么战胜自己内心的拖延魔。

    作者管这拖延魔叫做「阿抗」,这家伙总是在我们想要追求长远成长、健康发展或者做点诚实正直的事情时冒出来捣乱。它就像个坏蛋,想尽办法阻止我们向前迈进。

    要想战胜这个阿抗,我们得变成「专业人士」。这本书里有好多有趣的故事和金句,今天我就来跟大家嗨皮一下,分享点精华内容。

    首先是一只野猫的故事。有一次作者身无分文,只能去乡下租了一间破房子,租金才15块钱,房子连门、电、厨房和厕所都没有。每次他在屋外生火做饭,就会有一只看上去狼狈不堪的野猫冲出来,在不远处坐下盯着他看。

    这只猫就那么静静地坐着,根本不吃作者给的食物,只是凝视着他。明显地,这只猫跟作者不在一个层次上啊。

    但是作者却觉得这是个好兆头。他当时心里想:为什么会有只猫出现在这个时候,而且还一直出现,感觉就像是我的能量一直把它招引过来。

    「也许它来这里是为了鼓励我,告诉我,『Steven,你也可以像我一样。你可以自主,你可以照顾好自己。』」

    这给了当时处于低谷的作者巨大的力量。

    阿抗就像是电影《异形》、《终结者》或者《大白鲨》里的那个恶魔,它根本没法理性对话。它就是个破坏引擎,从工厂里设计出来的唯一目的就是阻止我们完成工作。

    阿抗的目的不仅仅是想伤害我们,更是想彻底摧毁我们的天赋、我们的灵魂、我们所拥有的独一无二的福祉。

    当我们跟阿抗搏斗的时候,我们真的是在一场生死大战中。

    深夜里,你有没有过一种幻想,看到你可能成为的人,你可以完成的工作,你应该成为的自己?

    你是一个不写作的作家,不画画的画家,不创业的企业家吗?如果是的话,那你懂的,阿抗就是你的老相好。

    天才这个词源自拉丁语,古罗马人用它表示一种内在的、神圣且不可侵犯的精神,它看护着我们,引导我们走向我们的天命。

    每个太阳都会投下阴影,天才的阴影就是阿抗。我们灵魂对实现天命的呼唤有多强大,阿抗哟!上周过得咋样啊?我上周分享了一本我超喜欢的书,《The War of Art》。这本书讲的是创作者们最重要的一个认知和修炼,就是「抗拒」(我亲切地称之为阿抗),总是在我们选择做一些长远成长、健康或诚实的行为时出现。

    咱们想要成长进阶,阿抗就会狠狠地拦在咱们面前,想尽一切办法阻止咱们前进。为了赢得这场和阿抗的战役,咱们得成为「专业人士」。

    为了视频时长的关系,我没带上作者很多有趣的故事和书中的金句,咱们在这里分享给大家吧。(真的不能只有我看到)

    一只野猫的故事
    当 Steven Pressfield 落魄到跑到乡下去租一个租金只要 15 美金的房子,连门、连电、连厨房、连厕所都没有时,只要他在屋子外面生火煮东西,就会有一只看起来伤痕累累的野猫跑出来,坐在不远处看着他。

    这只猫就只是静静坐着,完全不吃 Steven Pressfield 给的食物,就只是盯着他看。

    两者哪一个是自给自足,能够将自己的生活打理好的一方,显而易见。

    但 Steven Pressfield 觉得这是一个好兆头。

    他那时候心里想:为什么这时候会出现这么一只猫,而且它的持续出现,感觉是自己的能量一直把它拉出来。

    「也许它来这里是为了鼓励我,告诉我,’Steven,你也可以像我一样。你可以是自主的,你可以照顾好自己的。’」

    这给当时处于最黑暗深渊的他极大的力量。

    有关「阿抗」
    阿抗就像异形、终结者,或者《大白鲨》里的那条鲨鱼,它无法理性对话。

    它是一个毁灭的引擎,从工厂里被设计出来的唯一目的,就是阻止我们完成工作。

    阿抗的目的不仅仅要伤害我们,它更要进一步杀死我们的天赋、我们的灵魂、我们被赋予的独一无二的礼物。

    当我们跟阿抗战斗时,我们确实就是在一场生死之战中。

    深夜里,你有没有过一种幻想,看到你可能成为的人,你可以完成的工作,你应该成为的自己?

    你是一个不写作的作家,不画画的画家,不创业的企业家吗?如果是的话,那么你知道什么是阿抗。

    天才(Genius)是一个拉丁词,罗马人用它来表示一种内在的、神圣且不可侵犯的精神,它看护着我们,引导我们走向我们的天命。

    每一个太阳都会投下阴影,天才的阴影就是阿抗。我们灵魂对实现天命的呼唤有多强大,阿抗的力量也就越强大。

    阿抗会化身成自我怀疑,而自我怀疑可能是个盟友,因为它是渴望的指标。它也反映了爱,对我们梦想要做的事情的爱。

    如果你常问自己(或你的朋友),”我真的是一个作家吗?我真的是一个艺术家吗?” 那你很可能就是。

    阿抗也会化身成恐惧。恐惧是好的。就像自我怀疑一样,恐惧是一个指标,它告诉我们我们该做什么。

    我们对一项工作或使命感到越害怕,就越可以确定我们必须去做它。

    阿抗的力量与爱成正比。如果你感到巨大的抗拒,好消息是,这意味着那里也有巨大的爱。

    如果你不爱那个让你感到恐惧的事情,你就不会感到任何东西。爱的反面不是恨,而是冷漠。

    有关「恐惧」
    恐惧是阿抗的食物。我们通过害怕才能感受到「抗拒」的存在。但我们害怕什么?

    害怕追随内心的后果感到恐惧。害怕破产,害怕变穷,害怕低声下气,害怕无法养家糊口,害怕为了我们的梦想而牺牲家人的梦想。

    害怕背叛我们的种族,我们的社群,我们的朋友。

    害怕失败、害怕看起来很傻,害怕浪费那些我们爱的人牺牲自己,让我们接受的教育、害怕放弃我们之前努力追求的成就。

    害怕白费功夫、害怕无法回头、害怕最后只能跟这个糟糕的选择度过余生。

    这些都是挺严重的恐惧,但还不是真正的恐惧,不是那个从我们口中说出来,自己都不相信的恐惧。

    那就是:害怕我们会成功。

    于是我们可以接触到那个隐藏的力量,可以成为内心深处真正的自己。

    这是人类能够面对的最令人恐惧的未来,因为这使得一个人在心中被他的部落踢出去了,而这种想象中的连接已经存在了五千万年。

    我们害怕发现自己比我们以为的更强大,比我们的父母/孩子/老师以为的更强大。

    害怕我们真的拥有埋藏在内心深处的才华,害怕我们真的拥有勇气、毅力和实力。

    害怕我们真的能够掌握自己的方向、插上自己的旗子、抵达我们应许之地。

    我们害怕这一切,因为如果这是真的,那么我们将与所知道的一切疏离。

    我们知道,如果要拥抱理想,我们必须证明自己配得上。

    这让我们吓壳了。

    我们最终会变成什么样子?我们将失去朋友和家人,他们将不再认识我们。

    我们最终会孤独地身处在冷寂的星空下,没有任何人或任何东西可以依靠。

    然而,有个奇妙的地方。

    我们最终抵达了那个境地,但并不是孤身一人。

    相反地,我们接触到了一个取之不尽、用之不竭的智慧、意识和友情之源。

    是的,我们失去了朋友。但我们也在从未想到的地方找到了朋友。

    而且这些朋友更好,更真诚。而我们同样也对他们更好,更真诚。

    相信我,这是真的。

    我和阿抗的战役
    不知道你看了以上的文字有什么感觉?我自己是相当震撼。

    其实我上周在做明天要上传的视频时,我发现阿抗的攻击力变得异乎寻常地强大。

    结果让我花了整整三个工作天,才把剧本写完,拍完之后整个人都虚脱了,但也如释重负,相当有成就感。

    所以我知道,这正是我该做的。

    所以,如果可以的话,请你助我一臂之力,帮我用力分享明天的视频,好吗?

    你看了之后,会知道为什么的。

    喔对了,还有一件我之前相当抗拒的一件事情,我也决定要去做了,那就是报名今年的【走钟奖】,

    极度社恐、内向指数100分的我,只要一想到有可能要坐在那个场合一个晚上,我就浑身抗拒。

    但是身为「专业人士」,为了让我们吐心瀝血做出来的视频被更多人看到,这是毫无疑问一定要做的。

    如果到时有幸入围,我会请大家帮忙冲人气的。

    来吧,咱们一起战胜阿抗,追寻自己的梦想。无论阿抗如何困扰我们,咱们要坚持不懈,相信自己的能力。祝愿你在未来的努力中取得成功,同时也希望我的视频和【走钟奖】能够获得更多人的关注和支持!

    就是这样,咱们一起去战胜阿抗!加油!

    By 【張修修的自由之路】

  • 利用Softmax-DPO优化推荐系统的论文综述

    摘要:推荐系统是根据用户的偏好数据预测个性化的排名。近年来,随着语言模型(LMs)的兴起,基于LM的推荐系统得到了广泛研究。然而,现有的LM-based推荐系统往往未能充分利用偏好数据,并未针对个性化排序任务进行优化,限制了其性能。本文针对这一问题,提出了一种名为Softmax-DPO(S-DPO)的优化方法,将排名信息直接融入LM中,帮助区分用户偏好的物品。S-DPO通过使用多个负样本构建偏好数据,并针对LM-based推荐系统设计了一种新的DPO损失函数,结合了Softmax采样策略。实验证明,S-DPO在三个真实世界数据集上的表现优于其他基线模型,有效地模拟了用户的偏好,并提升了推荐性能。

    引言:推荐系统旨在根据用户的偏好数据预测个性化的排名。近年来,随着语言模型(LMs)的发展,基于LM的推荐系统得到了广泛研究。LM-based推荐系统将用户的历史交互数据转化为语言提示,并通过在训练过程中优化语言模型来实现推荐。然而,现有的LM-based推荐系统并未充分利用偏好数据,并未针对个性化排序任务进行优化,从而限制了其性能。

    本文的主要贡献是提出了一种名为Softmax-DPO(S-DPO)的优化方法,专门针对LM-based推荐系统进行了优化。S-DPO通过在偏好数据中引入多个负样本,并设计了一种新的DPO损失函数,将排名信息直接融入LM中。与现有的方法相比,S-DPO在准确建模用户偏好和提升推荐性能方面具有明显优势。

    实验证明,S-DPO在三个真实世界数据集上表现出色。与传统推荐系统和其他LM-based推荐系统相比,S-DPO的命中率提高了11.10%至47.03%。这是因为S-DPO能够有效地区分用户喜欢和不喜欢的物品,充分利用了多个负样本的排名梯度。此外,S-DPO还成功解决了DPO训练中数据似然下降的问题,提高了模型的性能和稳定性。

    综上所述,本文提出的S-DPO方法为LM-based推荐系统的优化提供了重要思路。通过将排名信息融入LM,并利用多个负样本,S-DPO能够更好地模拟用户的偏好,并提升推荐性能。这一方法在推荐系统领域具有重要的应用前景,同时也为其他领域的研究提供了有价值的启示。

    关键词:推荐系统,语言模型,偏好数据,个性化排序,Softmax-DPO

  • 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的推理能力提供了一种新的视角,并在理论和实践层面都进行了深入的探讨和验证。


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