高考考试网
当前位置: 首页 高考资讯

gpu训练(1块GPU几行代码大模型训练提速40)

时间:2023-07-02 作者: 小编 阅读量: 4 栏目名: 高考资讯

而Colossal-AI这波操作,是让公开模型的训练微调变得更加切实可行。单张GPU上,相比于微软的DeepSpeed,使用Colossal-AI的自动优化策略,最快能实现40%的加速。它由MetaAI发布,对标GPT-3,最大参数量可达1750亿。比如在一张GPU上,以异构训练为例,只需在配置文件里加上相关配置项,并不需要更改代码的训练逻辑。这样可以由Colossal-AI自动化地实时动态选择最佳异构策略,最大化计算效率。发挥核心作用的是Colossal-AI系统的高效异构内存管理子系统Gemini。

gpu训练?明敏 发自 凹非寺量子位 | 公众号 QbitAI,现在小编就来说说关于gpu训练?下面内容希望能帮助到你,我们来一起看看吧!

gpu训练

明敏 发自 凹非寺

量子位 | 公众号 QbitAI

不得不说,为了让更多人能用上大模型,技术圈真是各出奇招!

模型不够开放?有人自己上手搞免费开源版。

比如最近风靡全网的DALL·E Mini,Meta开放的OPT-175B(Open Pretrained Transformer)

都是通过复刻的方式,让原本不够open的大模型,变成人人可用

还有人觉得模型太大,个人玩家很难承受起天价成本。

所以提出异构内存、并行计算等方法,让大模型训练加速又降本。

比如开源项目Colossal-AI,前不久刚实现了让一块英伟达3090就能单挑180亿参数大模型。

而在这两天,他们又来了一波上新:

无缝支持Hugging Face社区模型,只需添加几行代码,就能实现大模型的低成本训练和微调。

要知道,Hugging Face作为当下最流行的AI库之一,提供了超过5万个AI模型的实现,是许多AI玩家训练大模型的首选。

而Colossal-AI这波操作,是让公开模型的训练微调变得更加切实可行。

并且在训练效果上也有提升。

单张GPU上,相比于微软的DeepSpeed,使用Colossal-AI的自动优化策略,最快能实现40%的加速。

而PyTorch等传统深度学习框架,在单张GPU上已经无法运行如此大的模型。

对于使用8张GPU的并行训练,仅需在启动命令中添加-nprocs 8就能实现。

这波下来,可以说是把个人AI玩家需要考虑的成本、效率、实操问题,都拿捏住了~

无需修改代码逻辑

光说不练假把式。

下面就以OPT为例,详细展开看看Colossal-AI的新功能到底怎么用。

OPT,全称为Open Pretrained Transformer。

它由Meta AI发布,对标GPT-3,最大参数量可达1750亿。

最大特点就是,GPT-3没有公开模型权重,而OPT开源了所有代码及权重。

因此,每一位开发者都能在此基础上开发个性化的下游任务。

下面的举例,就是根据OPT提供的预训练权重,进行因果语言模型(Casual Language Modelling)的微调。

主要分为两个步骤:

  • 添加配置文件
  • 运行启动

    第一步,是根据想进行的任务添加配置文件。

    比如在一张GPU上,以异构训练为例,只需在配置文件里加上相关配置项,并不需要更改代码的训练逻辑。

    比如,tensor_placement_policy决定了异构训练的策略,参数可以为CUDA、CPU及auto。

    每个策略的优点不同、适应的情况也不一样。

    CUDA:将全部模型参数都放置于GPU上,适合不offload时仍然能进行训练的传统场景

    CPU:将模型参数都放置在CPU内存中,仅在GPU显存中保留当前参与计算的权重,适合超大模型的训练。

    auto:根据实时的内存信息,自动决定保留在GPU显存中的参数量,这样能最大化利用GPU显存,同时减少CPU-GPU之间的数据传输。

    对于普通用户来说,使用auto策略是最便捷的。

    这样可以由Colossal-AI自动化地实时动态选择最佳异构策略,最大化计算效率。

    from colossalai.zero.shard_utils import TensorShardStrategyzero = dict(model_config=dict(shard_strategy=TensorShardStrategy(),tensor_placement_policy="auto"),optimizer_config=dict(gpu_margin_mem_ratio=0.8))

    第二步,是在配置文件准备好后,插入几行代码来启动新功能。

    首先,通过一行代码,使用配置文件来启动Colossal-AI。

    Colossal-AI会自动初始化分布式环境,读取相关配置,然后将配置里的功能自动注入到模型及优化器等组件中。

    colossalai.launch_from_torch(config='/configs/colossalai_zero.py')

    然后,还是像往常一样定义数据集、模型、优化器、损失函数等。

    比如直接使用原生PyTorch代码,在定义模型时,只需将模型放置于ZeroInitContext下初始化即可。

    在这里,使用的是Hugging Face提供的OPTForCausalLM模型以及预训练权重,在Wikitext数据集上进行微调。

    with ZeroInitContext(target_device=torch.cuda.current_device(), shard_strategy=shard_strategy,shard_param=True):model = OPTForCausalLM.from_pretrained('facebook/opt-1.3b'config=config)

    接下来,只需要调用colossalai.initialize,便可将配置文件里定义的异构内存功能统一注入到训练引擎中,即可启动相应功能。

    engine, train_dataloader, eval_dataloader, lr_scheduler = colossalai.initialize(model=model,optimizer=optimizer,criterion=criterion,train_dataloader=train_dataloader,test_dataloader=eval_dataloader,lr_scheduler=lr_scheduler)

    还是得靠GPU CPU异构

    而能够让用户实现如上“傻瓜式”操作的关键,还是AI系统本身要足够聪明。

    发挥核心作用的是Colossal-AI系统的高效异构内存管理子系统Gemini

    它就像是系统内的一个总管,在收集好计算所需的信息后,动态分配CPU、GPU的内存使用。

    具体工作原理,就是在前面几个step进行预热,收集PyTorch动态计算图中的内存消耗信息。

    在预热结束后,计算一个算子前,利用收集的内存使用记录,Gemini将预留出这个算子在计算设备上所需的峰值内存,并同时从GPU显存移动一些模型张量到CPU内存。

    Gemini内置的内存管理器给每个张量都标记一个状态信息,包括HOLD、COMPUTE、FREE等。

    然后,根据动态查询到的内存使用情况,不断动态转换张量状态、调整张量位置。

    带来的直接好处,就是能在硬件非常有限的情况下,最大化模型容量和平衡训练速度。

    要知道,业界主流方法ZeRO (Zero Reduency Optimizer),尽管也利用CPU GPU异构内存的方法,但是由于是静态划分,还是会引起系统崩溃、不必要通信量等问题。

    而且,使用动态异构CPU GPU内存的办法,还能用加内存条的办法来扩充内存。

    怎么也比买高端显卡划算多了。

    目前,使用Colossal-AI的方法,RTX 2060 6GB普通游戏本能训练15亿参数模型;RTX 3090 24GB主机直接单挑180亿参数大模型;Tesla V100 32GB连240亿参数都能拿下。

    除了最大化利用内存外,Colossal-AI还使用分布式并行的方法,让训练速度不断提升。

    它提出同时使用数据并行、流水并行、2.5维张量并行等复杂并行策略

    方法虽复杂,但上手却还是非常“傻瓜操作”,只需简单声明,就能自动实现。

    无需像其他系统和框架侵入代码,手动处理复杂的底层逻辑。

    parallel = dict(pipeline=2,tensor=dict(mode='2.5d', depth = 1, size=4))

    Colossal-AI还能做什么?

    实际上,自开源以来,Colossal-AI已经多次在GitHub及Papers With Code热榜位列世界第一,在技术圈小有名气。

    除了如上提到的用单张GPU训练大模型外,Colossal-AI在扩展至数十张甚至数百张GPU的大规模并行场景时,相比于英伟达Megatron-LM等现有系统,性能可以翻倍,使用资源可以降低至其十分之一之下。

    换算一下,在预训练GPT-3等超大AI模型上,节省的费用可以达到数百万元。

    据透露,Colossal-AI相关的解决方案已经被自动驾驶、云计算、零售、医药、芯片等行业的知名厂商用上了。

    与此同时,他们也非常注重开源社区建设,提供中文教程、开放用户社群论坛,根据大家的需求反馈不断更新迭代。

    比如我们发现,之前有粉丝留言询问,Colossal-AI能否直接加载Hugging Face上的一些模型?

    好嘛,这次更新就来了。

    所以,对于大模型训练,你觉得现在还有哪些难点亟需解决呢?

    欢迎评论区留言讨论~

    传送门

    项目地址:http://github.com/hpcaitech/ColossalAI

    参考链接:[1]http://medium.com/@yangyou_berkeley/colossal-ai-seamlessly-accelerates-large-models-at-low-costs-with-hugging-face-4d1a887e500d[2]http://arxiv.org/abs/2202.05924v2[3]http://arxiv.org/abs/2205.11487[4]http://github.com/features/copilot[5]http://github.com/huggingface/transformers

    — 完 —

    量子位 QbitAI · 头条号签约

    关注我们,第一时间获知前沿科技动态

    • 推荐阅读
    • 快手最火十句话(现在快手比较火的句子)

      爱的时候不辜负人,玩的时候不辜负风景,睡觉时不辜负床,一个人时不辜负自己。所有的玩笑里,都藏着认真的话,而那些看似没有听懂的回应,大概就是再委婉不过的拒绝。没有签名档就像没穿裤子,方便是很方便,就是有些不雅。既然选择了地平线,留给世界的只能是背影。在任何状况下,不能玩弄别人,玩人必被人玩。单身并不可怕,可怕的是你单身别人还以为你不是单身。不要迷恋哥,嫂子会揍你的。今年过节不收礼,收礼只收人民币。

    • 奶茶雷龙的正确养殖方法(怎么养殖奶茶雷龙)

      雷龙鱼是一种生长在亚热带地区的鱼类,所以它对生长环境的水温有着一定的要求。要使雷龙鱼生活的水温处于亚热带的温度。雷龙鱼喜欢吃活的食物或者虾米,建议每隔一段时间为雷龙鱼提供鲜活的虾米。注意疾病的防治。雷龙鱼体格比较强壮,不会轻易患上疾病。但是雷龙鱼受伤或者身体出现伤口的情况下,伤口容易感染,所以当雷龙鱼受伤的时候,应该将其单独养殖,防止疾病的传染。

    • 硬盘录像机连接路由器怎么设置?(看这里)

      下面内容希望能帮助到你,我们来一起看看吧!硬盘录像机连接路由器怎么设置将电脑和硬盘录像机分别用网线接到路由器的LAN口上。查看硬盘录像机的说明书,看看硬盘录像机默认IP地址,如192.168.1.X如果发现硬盘录像机的IP地址段和路由器的不相同,则先要将路由器和电脑网卡都更改为同一IP段.如路由器是192.168.10.X的,要改为192.168.1.X。路由器、硬盘录像机和电脑网卡都处于同一IP段下,则电脑就可以用浏览器打开硬盘录像机的IP地址,进入设置硬盘录像机了。

    • 纪念碑谷是纪念什么的(是一个小公主艾达的故事)

      小公主艾达身后有巫师的法术,所以不会死亡。当艾达公主经过皇家陵墓时,她为国王献上鲜花,痛苦忏悔,誓言要将几何体归还。此时,艾达公主发现其实是灵魂体,但在天上的国王看到艾达的行动,决定传下王冠让艾达继承王位,艾达化身白鸟,和百姓们离开了碑谷。乌鸦人不具攻击性,双向角色;前面关卡就是为了占用走道,让艾达无法快速地达到目的地。幽灵在首次第三关中出现,引导艾达走到前往下一关的传送台。

    • 初中二次函数的基本概念(简述二次函数)

      接下来我们就一起去了解一下吧!初中二次函数的基本概念二次函数的基本表示形式为y=ax2+bx+c(a≠0)。二次函数最高次必须为二次,二次函数的图像是一条对称轴与y轴平行或重合于y轴的抛物线。二次函数表达式为y=ax2+bx+c,它的定义是一个二次多项式。如果令y值等于零,则可得一个二次方程。该方程的解称为方程的根或函数的零点。

    • 滚筒洗衣机打不开门怎么办(滚筒洗衣机门打不开的解决办法)

      滚筒洗衣机门打不开的解决办法滚筒洗衣机门打不开的话,一般通常如果是滚筒洗衣机被锁了,将排水下面的线一拉就可以了;或者有个比牙签大点的孔在门附近,拿牙签扎一下,门锁就自动解开了;如果实在处理不好的话,可以打电话给售后服务,让他们来。

    • 大家知道吗原来绿茶还有这些好处(绿茶的八大功能有哪些)

      常名庄茶园图绿茶,是中国产量最高的茶叶品类,年产量高达10万吨左右。历时7年,常名庄茶于2017年正式面世。对人体的实验表明则有抑制血小板凝集、降低动脉硬化发生率。绿茶含有黄酮醇类,有抗氧化作用,亦可防止血液凝块及血小板成团,降低心血管疾病。茶所含的单宁酸,具有杀菌作用,能阻止食物渣屑繁殖细菌,故可以有效防止口臭。常名庄白茶因茶园的地理环境优势,茶叶氨基酸含量高达9%左右,是普通绿茶的2-3倍。

    • 邓丽君经典老歌超长12小时(1980年名曲音乐-邓丽君名曲欣赏)

      点击播放↘↘↘唱片封面《名曲音乐-邓丽君名曲欣赏》是一张LP黑胶转制的老唱片,收录了12首邓丽君经典歌曲音乐。风录可朗(私人)有限公司新加坡/马来西亚唱片公司出品;香港宝丽多(私人)有限公司1980年发行,请欣赏!唱片图片唱片曲目:01.路边的野花不要采02.千言万语03.海韵04.想你想断肠05.四个愿望06.情人的关怀07.向日葵08.我怎能离开你09.水涟漪10.再见,我的爱人11.丝丝小雨12.香港之夜谢谢欣赏

    • 丝巾搭配开衫技巧(需要怎么搭配呢)

      下面希望有你要的答案,我们一起来看看吧!丝巾搭配开衫技巧同色系搭配:丝巾和上衣同款色系,但裤子不要是同色系,这样整体性会比较强,整体感觉会比较协调。多种颜色混搭式:当所穿衣服偏民族风,颜色含量较多时,可选择一条图案较多,颜色复杂的丝巾进行搭配,整体会感觉比较协调,大气。

    • 儿子画了什么让老师点评(改不好算老爸输)

      话不多说,直接看东西吧儿子3岁时的处女作《血液男爵》老爸进行了重绘,厉害了儿子第二张画有进步,“蛇战士”,虽然画得很形象,但有点像蚯蚓啊喂!一方面,孩子的想象力对于他的艺术创作是宝贵的。另一方面,老爸也相信,爱好才是最强的原动力!这是老爸小时候画的画,当年看来也“不过如此”而他现在已经是一位成功的画家!有这样的老爸熏陶,他的孩子们将来肯定有出息!