欢迎来到池州三陆五信息科技有限公司- 未来科技

微信
手机版
网站地图

一个GPU+多行代码,大型号培训加快40%!无缝支持HuggingFace,来自国产开源项目-量子比特,

2023-04-11 09:31:27 栏目 : 移动互联 围观 : 0次

为了让更多的人能够使用大模型,不得不说技术圈真是一个奇策。

模型不是开放的吗?有人自己弄到了免费的开源版。

例如,最近风靡全网的DALLE Mini、Meta Open OPT-175B(Open Pretained Transformer)

都是通过复刻open不足的大模型,让每个人都能使用。

有些人觉得模型太大,个人玩家无法承受天价成本。

因此,提出了异构存储器、并行计算等方法,加速大模型训练,降低成本。

例如开源项目Colossal-AI,不久前刚刚让英伟达3090可以单独选择为180亿参数的大模型。

然后这两天,他们又登上了新的浪潮:

无缝支持Hugging Face社区模式,只需添加几行代码,即可实现大模式的低成本培训和微调。

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

Colossal-AI对该波的操作是使公开模型的训练微调更可靠可行。

而且训练效果也在提高。

与微软中的DeepSpeed相比,单片GPU可以使用Colossal-AI自动优化策略,以最快速度实现40%的加速。

另一方面,PyTorch等以往的深度学习框架在一张GPU中不能执行这样大的模型。

使用8张GPU的并行训练,只需在启动命令中追加-nprocs8即可实现。

在这波浪潮下,可以说个人AI玩家已经掌握了所有必须考虑的成本、效率和实际技能问题~

不需要修改代码逻辑。

以OPT为例,让我们详细展开Colossal-AI新功能的使用方法。

OPT,全部称为Open Prtrained Transformer。

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

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

因此,每个开发人员都可以在此基础上开发个性化的下游任务。

下面的例子是基于OPT提供的预训练权重对因果语言模型进行微调。

主要分为两个步骤。

开始执行附加配置文件的第一步是根据要执行的任务添加配置文件。

例如,在一个GPU中,只需添加与配置文件相关的配置文件(以异构训练为例),就不需要更改代码的训练逻辑。

例如,tensor_placement_policy决定异种训练策略,参数可以是CUDA、CPU和auto。

每个策略都有不同的好处,适应的情况也不同。

CUDA—适用于将所有模型参数放置在GPU上,即使不关闭也能进行训练的传统场景。

CPU:将所有模型参数放置在CPU存储器中,仅在GPU图形存储器中保留当前参与计算的权重,适合于超大模型的训练。

自动:根据实时存储器信息,自动确定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)然后,只需调用colossala.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还是AI系统本身就足够聪明。

起核心作用的是Colossal-AI系统的高效异构存储器管理子系统Gemini。

在收集计算所需的信息后,它将动态分配CPU和GPU内存,以供系统中的管理员使用。

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

预热完成后,在计算运算符之前,Gemini将使用收集到的内存使用记录来保留计算设备所需的峰值内存,同时将模型张量从GPU显示内存移动到CPU内存。

Gemini内置内存管理器为每个张量标记状态信息,包括HOLD、COMPUTE和FREE。

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

在硬件非常有限的情况下,可以最大化模型的容量,平衡训练速度,这是直接的优点。

作为业界主流的方法的Zero(Zero Reduency Optimizer)虽然也利用CPU+GPU异构存储器的方法,但由于是静态分割,因此需要知道会引起系统崩溃、不必要的通信量等问题。

另外,使用动态异种CPU+GPU内存的方法也可以通过添加内存条的方法扩展内存。

无论如何都比买高端显卡划算多啦。

目前,采用Colossal-AI的方法,RTX20606GB普通游戏本能训练15亿参数模型,RTX309024GB主机直接单挑180亿参数大模型,Tesla V1032GB甚至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上的模型吗?

好吗,这次更新来了。

所以,对于大模式的训练,你认为现在有哪些难点需要尽快解决。

欢迎来到评论区评论讨论~

传输门项目地址:https://github.com/hpcaitech/ColossalAI

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

展开剩余内容

分享到:

猜你喜欢

  • b2b网站策划书_b2b策划案

    b2b网站策划书_b2b策划案大家好,今天我来给大家讲解一下关于b2b网站策划书的问题。为了让大家更好地理解这个问题,我将相关资料进行了整理,现在就让我们一起来看看吧。文章目录...

    2024-10-22 企业 网站
  • 浙江高端网站_浙江高端网站有哪些

    浙江高端网站_浙江高端网站有哪些好久不见了,今天我想和大家探讨一下关于“浙江高端网站”的话题。如果你对这个领域还不太了解,那么这篇文章就是为你准备的,让我们一看看吧。文章目录列...

    2024-10-22 网站 浙江
  • 做酒的网站_做酒的网站有哪些

    做酒的网站_做酒的网站有哪些希望我能够回答您有关做酒的网站的问题。我将根据我的知识库和研究成果回答您的问题。文章目录列表:1.酒仙网CEO郝鸿峰的电商百亿梦想2.有没有关于介绍...

    2024-10-22 中国 酒类 酒仙 网站
  • 索尼手机软件_索尼手机软件商店

    索尼手机软件_索尼手机软件商店下面,我将为大家展开关于索尼手机软件的讨论,希望我的回答能够解决大家的疑问。现在,让我们开始聊一聊索尼手机软件的问题。文章目录列表:1.索尼的手机...

    2024-10-22 手机 索尼
热门标签