在个人电脑用单块 GPU 带动180亿参数 GPT,热门开源项目再添新特性

本文主要是介绍在个人电脑用单块 GPU 带动180亿参数 GPT,热门开源项目再添新特性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

提到训练AI大模型,总能让人想起动辄几百上千块GPU、天价训练费用、只有几家大厂才玩得起,普通AI玩家看着铺天盖地的大模型新闻只能默默流泪~

现在,仅有一块GPU的个人PC也可以训练高达180亿参数GPT;普通的笔记本电脑,也能训练十几亿参数的模型,相比现有主流方案,可提升参数容量十余倍

如此显著的提升来自Colossal-AI,一个通用AI大模型高效训练系统。最重要的是,它完全开源,仅需极少量修改,即可让现有深度学习项目在单张消费级显卡上使用大得多的模型进行训练,每个人都可以在家训练AI大模型!尤其是大幅度降低了AI大模型微调和推理等下游任务和应用部署的门槛

Colossal-AI还可将现有项目便捷扩展到大规模计算集群,使用高效并行技术进一步加速。

开源地址:

https://github.com/hpcaitech/ColossalAI

7b5643ad8d54a7783f97182f98fc5ec6.png

巨头角力,争炼AI大模型

8492b52c368cfc270eb5151970c7de57.png

从2018年谷歌提出的3亿参数BERT起,大模型记录在短短几年时间内被不断刷新,OpenAI 1750亿参数的GPT-3,微软和英伟达联手发布的5300亿参数MT-NLG ......

稠密单体模型已达千亿参数,而稀疏混合模型,如谷歌2021年发布的Switch Transformer,更是将参数量推至万亿级别。

然而,从头训练如此之大的模型费用极高,通常需要同时使用数百甚至上千张NVIDIA A100等专业高性能计算GPU,使用专用的InfiniBand高速网络互联的超级计算机集群,单次训练成本可达千万美元。

543e7279c7edbf9f0c6c71a4b697ab5c.png

使用单张消费级显卡训练AI大模型

对于在校学生和个人开发者等普通AI玩家来说,显然无法承担上述如此高昂的费用,最方便获得的计算资源还是个人电脑中的英伟达RTX系列消费级GPU。

为了解放AI生产力,让大模型普惠到更多开发人员,真正实现"多快好省"的使用AI大模型,Colossal-AI仅需几行代码,便可实现提升单卡训练模型容量十几倍的提升

2fbdba8b31b86bc34f1e3fba4ed4357e.png

在各类型硬件上,Colossal-AI的表现均远超原生PyTorch和主流的微软DeepSpeed方案。

对于大模型的代表GPT,使用Colossal-AI在搭载RTX 2060 6GB的普通游戏笔记本上,也足以训练高达15亿参数模型;对于搭载RTX3090 24GB的个人电脑,更是可以直接训练180亿参数的模型;对于Tesla V100等专业计算卡,Colossal-AI也能显示出显著改善。

87e865c6d65e5c4c05c00851746e223b.png

Colossal-AI还成功复现了谷歌的最新研究成果PaLM (Pathways Language Model),在各类硬件上也体现出卓越的性能提升,而微软DeepSpeed尚不支持PaLM模型。

ffec112f01f7316d08947d81047b0cbb.png

af05d326ae59d85cf7da25e89fccdf98.png

关键技术:异构训练再升级

使用单张消费级显卡训练AI大模型的最大困难在于显存容量极其有限,严重限制了可容纳的模型参数量。微软DeepSpeed的提出ZeRO-offload方法,尝试将模型切分,利用更大容量、更低成本的内存。目前已经出现了多个基于DeepSpeed的魔改版本。但如下图左边所示,当 GPU 内存不足以满足其相应的模型数据要求时,即使当时CPU上仍有可用内存,系统也会崩溃。

970778da034c870cd069359a4b05d46e.png

不同于基于DeepSpeed的各种魔改方案,Colossal-AI团队从头搭建了如ZeRO等核心关键技术,并针对DeepSpeed在CPU和GPU内存之间仅使用静态划分模型数据、对不同训练配置使用固定内存布局等问题做了诸多改进,进一步挖掘高效的GPU与CPU内存高效协同方案,毕竟内存条可比大显存的高端显卡便宜太多~

Colossal-AI设计的Gemini,就像双子星一样,高效管理和利用GPU与CPU的异构内存,让张量在训练过程中动态分布在CPU-GPU的存储空间内,从而让模型训练突破GPU的内存墙。

我们利用深度学习网络训练过程的迭代特性,按迭代次数将训练分为warmup和non-warmup两个阶段。在初期warmup阶段,监测内存信息;在non-warmup阶段利用已收集的信息来高效移动张量,以达到最小化CPU-GPU数据移动的目的。

439fb64452295426b4c479df94106357.png

听起来容易,实现起来却并不简单。非模型的内存使用量其实难以获取,因为非模型数据的生存周期并不归用户管理,现有的深度学习框架没有暴露非模型数据的追踪接口给用户。其次,CUDA context等非框架开销也需要统计。

Colossal-AI通过采样方式在warmup阶段获得CPU和GPU内存的使用情况。非模型数据的使用可以通过两个统计时刻之间系统最大内存使用-模型内存使用获得。模型的内存使用情况可以通过查询内存管理器得知,如下图黑色实线所示。

792d5e8ceafce2415cba151b832876fd.png

而所有模型数据张量则交给内存管理器管理,每个张量标记一个状态信息,包括HOLD,COMPUTE,FREE等。并根据动态查询到的内存使用情况,不断动态转换张量状态,调整张量位置,最终实现对GPU显存和CPU内存的高效利用,实现在硬件极其有限的情况下,最大化模型容量和平衡训练速度,对于AI民主化和低成本微调大模型下游任务等意义巨大。

971bfab672a9d093c29178dd5d112c6f.png

更进一步:便捷高效并行扩展

并行分布式技术是进一步加速模型训练的重要手段,想要以最短时间训练当今世界最大最前沿的AI模型,仍离不开高效的分布式并行扩展。针对现有方案并行维度有限、效率不高、通用性差、部署困难、缺乏维护等痛点,Colossal-AI通过高效多维并行和异构并行等技术,让用户仅需极少量修改,即可高效快速部署AI大模型训练。

例如对于GPT-3这样的超大AI模型,相比英伟达方案,Colossal-AI仅需一半的计算资源,即可启动训练;若使用相同计算资源,则能提速11%,可降低GPT-3训练成本超百万美元。

6e50706ef78af942197ea119913820c5.png

对于蛋白质结构预测应用AlphaFold,基于Colossal-AI的加速方案的FastFold,成功超越谷歌和哥伦比亚大学的方案,将AlphaFold训练时间从11天减少到67小时,且总成本更低,在长序列推理中也实现9.3~11.6倍的速度提升。

69edc6e25fcfe2c8ce892be9d904b231.png

Colossal-AI注重开源社区建设,提供中文教程,开放用户社群及论坛,对于用户反馈进行高效交流与迭代更新,不断添加PaLM、AlphaFold等前沿应用。

自然开源以来,Colossal-AI已经多次登顶GitHub热榜Python方向世界第一,与众多已有数万star的明星开源项目一起受到海内外关注!

6bb372eb2154e9a710380d73e65659cc.png

项目团队

潞晨技术团队的核心成员均来自美国加州大学伯克利分校,斯坦福大学,清华大学,北京大学,新加坡国立大学,新加坡南洋理工大学等国内外知名高校;拥有Google Brain、IBM、Intel、 Microsoft、NVIDIA等知名厂商工作经历。公司成立即获得创新工场、真格基金等多家顶尖VC机构种子轮投资。

3550bdbb92e4e9f70ab5da5322c1365f.png

潞晨科技创始人尤洋教授:加州大学伯克利分校博士、IPDPS/ICPP最佳论文、ACM/IEEE George Michael HPC Fellowship、福布斯30岁以下精英(亚洲 2021)、IEEE-CS超算杰出新人奖、UC伯克利EECS Lotfi A. Zadeh优秀毕业生奖。

8f8655709fd8e18d45fd59a04f9167fa.png

潞晨CSO Prof. James Demmel:加州大学伯克利分校杰出教授、ACM/IEEE Fellow,美国科学院、工程院、艺术与科学院三院院士

传送门

项目地址:

https://github.com/hpcaitech/ColossalAI

参考链接:

  • https://medium.com/@hpcaitech/train-18-billion-parameter-gpt-models-with-a-single-gpu-on-your-personal-computer-8793d08332dc

这篇关于在个人电脑用单块 GPU 带动180亿参数 GPT,热门开源项目再添新特性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/574931

相关文章

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

springboot集成Deepseek4j的项目实践

《springboot集成Deepseek4j的项目实践》本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录Deepseek4j快速开始Maven 依js赖基础配置基础使用示例1. 流式返回示例2. 进阶

一文带你了解SpringBoot中启动参数的各种用法

《一文带你了解SpringBoot中启动参数的各种用法》在使用SpringBoot开发应用时,我们通常需要根据不同的环境或特定需求调整启动参数,那么,SpringBoot提供了哪些方式来配置这些启动参... 目录一、启动参数的常见传递方式二、通过命令行参数传递启动参数三、使用 application.pro

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于

SpringBoot项目使用MDC给日志增加唯一标识的实现步骤

《SpringBoot项目使用MDC给日志增加唯一标识的实现步骤》本文介绍了如何在SpringBoot项目中使用MDC(MappedDiagnosticContext)为日志增加唯一标识,以便于日... 目录【Java】SpringBoot项目使用MDC给日志增加唯一标识,方便日志追踪1.日志效果2.实现步

基于@RequestParam注解之Spring MVC参数绑定的利器

《基于@RequestParam注解之SpringMVC参数绑定的利器》:本文主要介绍基于@RequestParam注解之SpringMVC参数绑定的利器,具有很好的参考价值,希望对大家有所帮助... 目录@RequestParam注解:Spring MVC参数绑定的利器什么是@RequestParam?@

Ubuntu中Nginx虚拟主机设置的项目实践

《Ubuntu中Nginx虚拟主机设置的项目实践》通过配置虚拟主机,可以在同一台服务器上运行多个独立的网站,本文主要介绍了Ubuntu中Nginx虚拟主机设置的项目实践,具有一定的参考价值,感兴趣的可... 目录简介安装 Nginx创建虚拟主机1. 创建网站目录2. 创建默认索引文件3. 配置 Nginx4

SpringBoot接收JSON类型的参数方式

《SpringBoot接收JSON类型的参数方式》:本文主要介绍SpringBoot接收JSON类型的参数方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、jsON二、代码准备三、Apifox操作总结一、JSON在学习前端技术时,我们有讲到过JSON,而在