当前位置:

首页 > 业界资讯 > 改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减

改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减

如何提升PyTorch「炼丹」速度?最近,知名机器学习与AI研究者SebastianRaschka向我们展示了他的绝招。据他表示,他的方法在不影响模型准确率的情况下,仅仅通过改变几行代码,将BERT优化时间从22.63分钟缩减到3.15分钟,训练速度足足提升了7倍。作者更是表示,如果你有8个GPU可用,整个训练过程只需要2分钟,实现11.5倍的性能加速。下面我们来看看他到底是如何实现的。让PyTorch模型训练更快首先是模型,作者采用DistilBERT

本文目录

    如何提升 PyTorch「炼丹」速度?

    最近,知名机器学习与 AI 研究者 Sebastian Raschka 向我们展示了他的绝招。据他表示,他的方法在不影响模型准确率的情况下,仅仅通过改变几行代码,将 BERT 优化时间从 22.63 分钟缩减到 3.15 分钟,训练速度足足提升了 7 倍。

    改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减

    作者更是表示,如果你有 8 个 GPU 可用,整个训练过程只需要 2 分钟,实现 11.5 倍的性能加速。

    改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减

    下面我们来看看他到底是如何实现的。

    让 PyTorch 模型训练更快

    首先是模型,作者采用 DistilBERT 模型进行研究,它是 BERT 的精简版,与 BERT 相比规模缩小了 40%,但性能几乎没有损失。其次是数据集,训练数据集为大型电影评论数据集 IMDB Large Movie Review,该数据集总共包含 50000 条电影评论。作者将使用下图中的 c 方法来预测数据集中的影评情绪。

    改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减

    基本任务交代清楚后,下面就是 PyTorch 的训练过程。为了让大家更好地理解这项任务,作者还贴心地介绍了一下热身练习,即如何在 IMDB 电影评论数据集上训练 DistilBERT 模型。如果你想自己运行代码,可以使用相关的 Python 库设置一个虚拟环境,如下所示:

    相关软件的版本如下:

    改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减

    现在省略掉枯燥的数据加载介绍,只需要了解本文将数据集划分为 35000 个训练示例、5000 个验证示例和 10000 个测试示例。需要的代码如下:

    改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减

    代码部分截图

    完整代码地址:

    ​https://github.com/rasbt/faster-pytorch-blog/blob/main/1_pytorch-distilbert.py​

    然后在 A100 GPU 上运行代码,得到如下结果:

    改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减

    部分结果截图

    正如上述代码所示,模型从第 2 轮到第 3 轮开始有一点过拟合,验证准确率从 92.89% 下降到了 92.09%。在模型运行了 22.63 分钟后进行微调,最终的测试准确率为 91.43%。

    使用 Trainer 类​

    接下来是改进上述代码,改进部分主要是把 PyTorch 模型包装在 LightningModule 中,这样就可以使用来自 Lightning 的 Trainer 类。部分代码截图如下:

    改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减

    完整代码地址:https://github.com/rasbt/faster-pytorch-blog/blob/main/2_pytorch-with-trainer.py​

    上述代码建立了一个 LightningModule,它定义了如何执行训练、验证和测试。相比于前面给出的代码,主要变化是在第 5 部分(即 ### 5 Finetuning),即微调模型。与以前不同的是,微调部分在 LightningModel 类中包装了 PyTorch 模型,并使用 Trainer 类来拟合模型。

    改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减

    之前的代码显示验证准确率从第 2 轮到第 3 轮有所下降,但改进后的代码使用了 ModelCheckpoint 以加载最佳模型。在同一台机器上,这个模型在 23.09 分钟内达到了 92% 的测试准确率。

    改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减

    需要注意,如果禁用 checkpointing 并允许 PyTorch 以非确定性模式运行,本次运行最终将获得与普通 PyTorch 相同的运行时间(时间为 22.63 分而不是 23.09 分)。

    自动混合精度训练

    进一步,如果 GPU 支持混合精度训练,可以开启 GPU 以提高计算效率。作者使用自动混合精度训练,在 32 位和 16 位浮点之间切换而不会牺牲准确率。

    改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减

    在这一优化下,使用 Trainer 类,即能通过一行代码实现自动混合精度训练:

    改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减

    上述操作可以将训练时间从 23.09 分钟缩短到 8.75 分钟,这几乎快了 3 倍。测试集的准确率为 92.2%,甚至比之前的 92.0% 还略有提高。

    改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减

    使用 Torch.Compile 静态图

    最近 PyTorch 2.0 公告显示,PyTorch 团队引入了新的 toch.compile 函数。该函数可以通过生成优化的静态图来加速 PyTorch 代码执行,而不是使用动态图运行 PyTorch 代码。

    改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减

    由于 PyTorch 2.0 尚未正式发布,因而必须先要安装 torchtriton,并更新到 PyTorch 最新版本才能使用此功能。

    改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减


    然后通过添加这一行对代码进行修改:

    改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减

    在 4 块 GPU 上进行分布式数据并行

    上文介绍了在单 GPU 上加速代码的混合精度训练,接下来介绍多 GPU 训练策略。下图总结了几种不同的多 GPU 训练技术。

    改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减

    想要实现分布式数据并行,可以通过 DistributedDataParallel 来实现,只需修改一行代码就能使用 Trainer。

    改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减

    经过这一步优化,在 4 个 A100 GPU 上,这段代码运行了 3.52 分钟就达到了 93.1% 的测试准确率。

    改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减

    改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减

    DeepSpeed

    最后,作者探索了在 Trainer 中使用深度学习优化库 DeepSpeed 以及多 GPU 策略的结果。首先必须安装 DeepSpeed 库:

    改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减

    接着只需更改一行代码即可启用该库:

    改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减

    这一波下来,用时 3.15 分钟就达到了 92.6% 的测试准确率。不过 PyTorch 也有 DeepSpeed 的替代方案:fully-sharded DataParallel,通过 strategy="fsdp" 调用,最后花费 3.62 分钟完成。

    改变几行代码,PyTorch炼丹速度狂飙、模型优化时间大减

    以上就是作者提高 PyTorch 模型训练速度的方法,感兴趣的小伙伴可以跟着原博客尝试一下,相信你会得到想要的结果。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    业界资讯 模型
    相关文章 更多
    云调用AI太贵:开发者自建48台Mac mini集群,撑起Overcast播客转录
    云调用AI太贵:开发者自建48台Mac mini集群,撑起Overcast播客转录

    云调用AI太贵:开发者自建48台Mac mini集群,撑起Overcast播客转录 最近科技圈里有件挺有意思的事。播客应用Overcast的开发者马可·阿门特,成功搭建了一个由48台苹果Mac mini组成的服务器集群。关键点在于,他用这套硬件集群,绕过了云端AI服务,直接在本地运行语音识别模型来处

    索尼推出“Playerbase”计划:将真实玩家扫描植入PS第一方游戏
    索尼推出“Playerbase”计划:将真实玩家扫描植入PS第一方游戏

    索尼推出“玩家基地”计划:将真实玩家扫描植入PS第一方游戏 最近,游戏界有个大动作值得关注。索尼正式宣布启动名为“玩家基地”的新计划,准备推出一套完整的流程,将真实玩家的形象扫描并植入到PlayStation工作室的游戏之中。这套创新的流程,背后是摄影测量、动作捕捉与玩家数据技术的融合。 索尼互动娱

    华为盘古 Ultra MoE 模型发布
    华为盘古 Ultra MoE 模型发布

    5月30日,华为推出了全新的AI模型——盘古UltraMoE,该模型的参数量达到了7180亿。作为一款接近万亿参数的MoE(MixtureofExperts)模型,它在整个训练过程中完全基于华为的昇腾AI平台完成,标志着华为在超大规模模型训练方面取得了重要进展。盘古UltraMoE的成功训练离不开盘古团队研发的一系列创新技术。例如,Depth-ScaledSandwich-Norm(DSSN)稳定架构的引入,显著改善了超大规模模型训练期间出现的梯度异常及

    阿里开源14B电影级视频模型,实测可玩
    阿里开源14B电影级视频模型,实测可玩

    AI视频生成正迎来属于“通义”的高光时刻!就在昨晚,阿里巴巴悄然推出了一款由音频驱动的14B视频大模型——Wan2.2-S2V。只需上传一张静态图片和一段音频,就能生成出面部表情生动、口型精准匹配、肢体动作流畅自然的电影级数字人视频,效果惊艳。实际效果展示如下:△来自@AIMIRAI46487更令人振奋的是,这款新模型一经发布便全面开源,现在所有人都可以免费在通义万相官网体验使用。据官方介绍,Wan2.2-S2V的核心优势包括:支持最长分钟级的单次视频生成,画面稳定且具有一致性;具备影院级别的音

    特斯拉FSD新增滑板识别模型
    特斯拉FSD新增滑板识别模型

    近日,有汽车领域博主爆料,特斯拉的FSD(完全自动驾驶)辅助系统将迎来一次重要升级,或将实现更真实的环境场景还原。在最新曝光的软件代码中,发现了大量新增的渲染模型,涵盖多种车辆与行人类型。这些新增模型包括救护车、消防车、垃圾清运车、校车、半挂式卡车、高尔夫球车、骑电动滑板车的行人、使用轮椅的行人、玩滑板的行人、推婴儿车的行人,以及道路清扫车、三轮车、拖车、火车和有轨电车等。这一系列高精度建模意味着FSD系统将能更准确识别并响应复杂交通参与者的行为。据CNMO掌握的消息,日本方面已为特斯拉FSD系统的落地扫

    SOTA大模型加密数据评测:Qwen3仅破10%
    SOTA大模型加密数据评测:Qwen3仅破10%

    大语言模型面对加密数据,即便最新的Qwen3也会感到压力!尽管当下各类推理模型在多种基准测试中表现优异,但在密码学这样对逻辑严谨性和细节准确性要求极高的专业领域,模型的推理能力还有待深入挖掘。密码学不仅要求模型具备高级数学运算能力和严密的逻辑推理链,还需要其能够精准辨识复杂加密模式中的潜在规律;成功解密要求模型拥有极强的综合推理能力。上海AILab等联合推出的CipherBank测评,使用大量真实隐私场景数据和多种密码算法,严苛挑战当前最先进的大模型。CipherBank的测评结果显示,目前的大语言模型

    每2秒解一道高数题!华为揭秘万亿MoE训练系统全流程
    每2秒解一道高数题!华为揭秘万亿MoE训练系统全流程

    现在,请大家一起来数一下"1"、"2"。OK,仅仅2秒的时间,一个接近万亿规模的MoE大模型就已经掌握了如何解答一道高等数学难题的方法!而且呢,这个大模型还是完全依靠国产设备进行训练的,整个流程都体现了浓浓的“国产”特色。这就是华为借助"昇腾+PanguUltraMoE"这一组合实现的成果——不仅达成了国产算力与国产模型在全流程上的自主可控训练闭环,还在集群训练系统的性能方面达到了行业顶尖水平。有多顶尖?来看一组数据:预训练阶段:昇腾Atlas800TA2万卡集群的MFU提升

    美团推出首个语音GUI智能体,端到端语音训练更优
    美团推出首个语音GUI智能体,端到端语音训练更优

    只需动动嘴,就能操控GUI代理?由美团与浙江大学联合推出的GUIRoboTron-Speech——让你彻底解放双手,直接对设备“发号施令”。这是首个可以直接通过语音指令和屏幕截图进行端到端(End-to-End)决策的自主GUI智能体,致力于为用户提供更自然、高效且无障碍的人机交互方式。从文本到语音,智能代理的新一轮进化目前,基于大语言模型(LLMs)的自主GUI智能体已经能够通过文本指令自动完成跨应用、多步骤的复杂操作,显著提升用户效率。然而,这种依赖文本输入的方式在某些场景中存在明显局限

    超级智能体生命力觉醒!可自我更新的AI来了,妈妈再也不用担心数据瓶颈难题
    超级智能体生命力觉醒!可自我更新的AI来了,妈妈再也不用担心数据瓶颈难题

    哭死啊,全球狂炼大模型,一互联网的数据不够用,根本不够用。训练模型搞得跟《饥饿游戏》似的,全球AI研究者,都在苦恼怎么才能喂饱这群数据大胃王。尤其在多模态任务中,这一问题尤为突出。一筹莫展之际,来自人大系的初创团队,用自家的新模型,率先在国内把“模型生成数据自己喂自己”变成了现实。而且还是理解侧和生成侧双管齐下,两侧都能生成高质量、多模态的新数据,对模型本身进行数据反哺。模型是啥?中关村论坛上刚刚露面的多模态大模型Awaker1.0。团队是谁?智子引擎。由人大高瓴人工智能学院博士生高一钊创立,高瓴人工智能

    通义千问新技能!用“扮演”方式提升推理能力,不再依赖搜索API
    通义千问新技能!用“扮演”方式提升推理能力,不再依赖搜索API

    强化学习(RL)结合真实搜索引擎可以显著提升大模型的检索和推理能力。然而,这一方法面临两大挑战:搜索引擎返回的文档质量不稳定,导致训练过程中的噪音和不稳定性;RL训练需要频繁部署,产生大量API开销,限制了可扩展性。针对这些问题,阿里通义实验室推出了开源解决方案ZeroSearch,这是一个无需与真实搜索引擎交互的强化学习框架。实验表明,ZeroSearch只需使用3B参数的LLM作为检索模块,就能有效提升搜索能力,并大幅节省API成本。ZeroSearch让LLM实现自给自足

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。