当前位置: 首页 > news >正文

一行代码,AI大模型训练成本再降30%,混合精度训练再升级

FP8通过其独特的数值表示方式,能够在保持一定精度的同时,在大模型训练中提高训练速度、节省内存占用,最终降低训练成本。

AI大模型开发系统Colossal-AI的混合精度训练再度升级,支持主流的BF16(O2) + FP8(O1)的新一代混合精度训练方案。仅需一行代码,即可对主流LLM****模型能够获得平均30%的加速效果,降低相应大模型开发成本,并保证训练收敛性。无需引入额外的手写CUDA算子,避免了较长的AOT编译时间和复杂的编译环境配置。

开源地址:

https://github.com/hpcaitech/ColossalAI

FP8混合精度训练

低精度计算一直是GPU硬件发展趋势,从最早的FP32,到目前通用的FP16/BF16,再到Hopper系列芯片(H100, H200, H800等)支持的FP8,低精度计算速度越来越快,所需的内存也越来越低,非常符合大模型时代对硬件的需求。

目前FP8混合精度训练影响训练结果的最大因素就是scaling方案,常见的方案有两种:

  • 延迟scaling

  • 实时scaling

延迟scaling采用之前一段时间窗口内的scaling值来估计当前scaling,同时将scaling的更新和矩阵乘法(gemm)融合起来。这种计算方法效率较高,但由于是估算的scaling,所以对收敛性影响较大。

实时scaling直接采用当前的张量值来计算scaling,所以计算效率较低,但是对收敛性影响较小。根据英伟达的报告,这两种scaling方案的计算效率差距在10%以内。

Colossal-AI采用了对训练收敛性影响较小的实时scaling方案,同时实现有着不输其他延迟scaling实现的性能。

在单卡H100上对矩阵乘法进行的测试,可以看到矩阵的维度越大,FP8的加速效果越明显,而且Colossal-AI的实现与Transformer Engine的性能几乎一致,如图1所示。但Transformer Engine需要复杂的AOT编译环境配置和较长的编译时间。

img

图1. 单卡GEMM性能测试

为了实验结果更贴近现实,Colossal-AI直接在主流LLM上进行了实际训练的测试。

首先在H100单卡上进行了测试,以下测试中Transformer Engine (TE)采用的其默认的延迟scaling方案。

img

img

同时进行了收敛性测试,可以看到FP8混合精度训练的loss曲线与bf16的基本一致,如图4所示:

img

图4. H100单卡 LLaMA2-7B 混合精度训练loss曲线

Colossal-AI还测试了H800多卡并行训练场景下的性能。在单机8卡H800上训练LLaMA2-7B,Colossal-AI FP8对比Colossal-AI BF16有35%的吞吐提升,对比Torch FSDP BF16有94%的吞吐提升。

img

在单机8卡H800上训练LLaMA2-13B,Colossal-AI FP8对比Colossal-AI BF16有39%的吞吐提升。

img

在2机16卡H800上训练Cohere Command-R 35B,Colossal-AI FP8对比Colossal-AI BF16有10%的吞吐提升,如图7所示:

img

根据英伟达的报告和测试经验,对FP8混合精度训练性能调优有一些初步的认识:

  • 尽量少使用张量并行,用流水线并行代替张量并行
  • 模型hidden size越大,加速效果越明显
  • 矩阵乘法占比高的模型加速效果大

由于上述实验中Command-R 35B采用了张量并行,所以加速效果不太明显。

Colossal-AI对FP8的支持较为广泛,各种并行方式都能和FP8混合精度训练兼容。使用时,仅需在初始化plugin时开启FP8即可:

from colossalai.booster.plugin import GeminiPlugin, HybridParallelPlugin, LowLevelZeroPlugin
...
plugin = LowLevelZeroPlugin(..., use_fp8=True)
plugin = GeminiPlugin(..., use_fp8=True)
plugin = HybridParallelPlugin(..., use_fp8=True)

除此之外,无需多余的代码和AOT编译。

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

相关文章:

  • 不夸张、我就是这样考过PMP~
  • Python OpenCV精讲系列 - 计算机视觉应用深入理解(十五)
  • 宠物空气净化器希喂和352哪个好用?两大爆火机型哪款吸毛、除臭效果比较好?
  • C# winform s7.net 类读取 报错:数组不是一维数组。
  • 基于STM32和FPGA的射频数据采集系统设计流程
  • 8610 顺序查找
  • HTML基础用法介绍一
  • 基于Hive和Hadoop的电信流量分析系统
  • jmeter本身常用性能优化方法
  • python接口自动化——封装与调用
  • linux打开桌面软件(wps)、获取已打开的文件名(wps)
  • rk3588s android12 自启动 C程序
  • 爱速搭百度低代码开发平台
  • 当前时机适合进入AIGC行业吗?——行业发展阶段与市场需求的分析
  • SPI总结
  • @jsonView过滤属性
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • css布局,左右固定中间自适应实现
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • Java比较器对数组,集合排序
  • Linux gpio口使用方法
  • Otto开发初探——微服务依赖管理新利器
  • spring boot 整合mybatis 无法输出sql的问题
  • Vue 动态创建 component
  • 阿里云前端周刊 - 第 26 期
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 简单实现一个textarea自适应高度
  • 力扣(LeetCode)357
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 我的面试准备过程--容器(更新中)
  • 小程序button引导用户授权
  • 异常机制详解
  • 源码安装memcached和php memcache扩展
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • $(selector).each()和$.each()的区别
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (回溯) LeetCode 131. 分割回文串
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (十六)Flask之蓝图
  • (五)网络优化与超参数选择--九五小庞
  • (已解决)什么是vue导航守卫
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • .NET 4.0中的泛型协变和反变
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .NET Framework、.NET Core 、 .NET 5、.NET 6和.NET 7 和.NET8 简介及区别
  • .NET MAUI Sqlite程序应用-数据库配置(一)
  • .NetCore实践篇:分布式监控Zipkin持久化之殇