大模型高效训练基础知识:梯度检查点(Gradient Checkpointing)

这篇具有很好参考价值的文章主要介绍了大模型高效训练基础知识:梯度检查点(Gradient Checkpointing)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

prerequiste: 大模型训练基础知识:梯度累积(Gradient Accumulationn)

梯度检查点(Gradient Checkpointing)

如今(2023年)大模型的参数量巨大,即使将batch_size设置为1并使用梯度累积的方式更新,也仍然会OOM。原因是通常在计算梯度时,我们需要将所有前向传播时的激活值保存下来,这消耗大量显存。还有另外一种延迟计算的思路,丢掉前向传播时的激活值,在计算梯度时需要哪部分的激活值就重新计算哪部分的激活值,这样做倒是解决了显存不足的问题,但加大了计算量同时也拖慢了训练。

梯度检查点(Gradient Checkpointing)在上述两种方式之间取了一个平衡,这种方法采用了一种策略选择了计算图上的一部分激活值保存下来,其余部分丢弃,这样被丢弃的那一部分激活值需要在计算梯度时重新计算。

下面这个动图展示了一种简单策略:前向传播过程中计算节点的激活值并保存,计算下一个节点完成后丢弃中间节点的激活值,反向传播时如果有保存下来的梯度就直接使用,如果没有就使用保存下来的前一个节点的梯度重新计算当前节点的梯度再使用。
大模型高效训练基础知识:梯度检查点(Gradient Checkpointing),大语言模型,大语言模型,语言模型,自然语言处理,深度学习,梯度下降

Transformer框架开启梯度检查点非常简单,仅需在TrainingArguments中指定gradient checkpoint为True即可:

training_args = TrainingArguments(
    per_device_train_batch_size=1, gradient_accumulation_steps=4, gradient_checkpointing=True, **default_args
)

trainer = Trainer(model=model, args=training_args, train_dataset=ds)
result = trainer.train()

参考文献

1.Gradient Checkpointing
2.pytorch模型训练之fp16、apm、多GPU模型、梯度检查点(gradient checkpointing)显存优化等文章来源地址https://www.toymoban.com/news/detail-537873.html

到了这里,关于大模型高效训练基础知识:梯度检查点(Gradient Checkpointing)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第二章:AI大模型基础知识 2.1 机器学习基础

    随着计算机技术的飞速发展,人工智能已经成为了当今科技领域的热门话题。在这个过程中,机器学习作为人工智能的一个重要分支,扮演着至关重要的角色。本文将从机器学习的基本概念、核心算法原理、具体操作步骤、实际应用场景等方面进行详细讲解,帮助读者更好地

    2024年02月21日
    浏览(54)
  • 计算机视觉基础知识(八)--点云模型

    三维图像 一种特殊的信息表达形式; 特征是表达的空间中有三个维度的数据; 是对一类信息的统称; 信息的表现形式: 深度图:以灰度表达物体与相机的距离 几何模型:由cad软件建立 点云模型:所有逆向工程设备都将物体采样为点云 和二维图像相比; 三维图像借助第三

    2024年01月25日
    浏览(49)
  • 大型语言模型基础知识的可视化指南

    如今,LLM(大型语言模型的缩写)在全世界都很流行。没有一天不在宣布新的语言模型,这加剧了人们对错过人工智能领域的恐惧。然而,许多人仍在为 LLM 的基本概念而苦苦挣扎,这使他们难以跟上时代的进步。本文的目标读者是那些希望深入了解此类人工智能模型的内部

    2024年01月24日
    浏览(44)
  • Stable Diffusion扩散模型推导公式的基础知识

    A 和 B 是两个独立事件: ⇒ Rightarrow ⇒ P ( A ∣ B ) = P ( A ) P(A|B)=P(A) P ( A ∣ B ) = P ( A ) , P ( B ∣ A ) = P ( B ) P(B|A)=P(B) P ( B ∣ A ) = P ( B ) , ⇒ Rightarrow ⇒ P ( A , B ∣ C ) = P ( A ∣ C ) P ( B ∣ C ) P(A,B|C)=P(A|C)P(B|C) P ( A , B ∣ C ) = P ( A ∣ C ) P ( B ∣ C ) 贝叶斯公式: P ( A ∣ B ) = P ( B ∣

    2024年04月10日
    浏览(56)
  • 人工智能大模型技术基础系列之:模型蒸馏与知识蒸馏

    作者:禅与计算机程序设计艺术 模型蒸馏(Model Distillation)是将一个复杂的大型机器学习模型压缩到更小且效率更高的模型上的一种技术。它可以让用户获得更高质量的模型,同时降低计算资源占用和部署成本。目前国内外多种公司在使用模型蒸馏技术,如阿里巴巴在内部业

    2024年02月05日
    浏览(60)
  • 机器学习基础知识之多模型性能对比评价方法

    在进行预测或分类对比实验时,通常需要比较两个或两个以上的模型性能,因此,下面将介绍两个常用的多模型性能对比评价方法,一种是交叉验证t检验,该方法主要用于同一个数据集上两个模型的性能比较,另一种是Friedman检验与Nemenyi后续检验,这一方法主要用于同一组数

    2024年02月06日
    浏览(40)
  • QSS盒子模型入门指南:了解和应用基础知识

    #概述 QSS(Qt Style Sheets)是一种用于美化和定制化Qt应用程序的样式表语言。了解和掌握QSS盒子模型的基本概念对于创建漂亮的用户界面布局至关重要。本文将详细介绍QSS盒子模型的各个组成部分,并提供一些入门级的示例,帮助您快速掌握盒子模型的基础知识。 在QSS盒子模

    2024年02月07日
    浏览(72)
  • 大模型从入门到应用——LangChain:索引(Indexes)-[基础知识]

    分类目录:《大模型从入门到应用》总目录 LangChain系列文章: 基础知识 快速入门 安装与环境配置 链(Chains)、代理(Agent:)和记忆(Memory) 快速开发聊天模型 模型(Models) 基础知识 大型语言模型(LLMs) 基础知识 LLM的异步API、自定义LLM包装器、虚假LLM和人类输入LLM(

    2024年02月07日
    浏览(41)
  • 计算机网络基础知识(三)—— 什么是OSI七层模型?

    OSI七层模型是Open Systems Interconnection Reference Model的缩写,是由国际标准化组织(ISO)开发的一种参考模型,旨在促进不同厂商、不同系统之间的通信和互联。该模型被设计为一种通用的网络架构模型,用于指导在分布式计算系统中通信协议的设计和实现。 OSI模型是1984年由国际

    2024年02月06日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包