搜索
首页科技周边人工智能无缝支持Hugging Face社区,Colossal-AI低成本轻松加速大模型

​大模型已成为 AI 圈的一种潮流,不仅横扫各大性能榜单,更产生了诸多有趣应用。例如,微软和 OpenAI 开发的自动代码建议补全神器 Copilot,化身程序员最佳助手,提升工作效率。

无缝支持Hugging Face社区,Colossal-AI低成本轻松加速大模型

OpenAI 刚刚发布能以假乱真的文本生成图像模型 DALL-E 2,Google 便紧接着发布了 Imagen,在大模型上,大公司也是相当的卷,丝毫不比 CV 刷榜差。

无缝支持Hugging Face社区,Colossal-AI低成本轻松加速大模型

文本到图像生成样例“一个被猫绊倒的希腊人雕像”(左侧两列为 Imagen,右侧两列为 DALL·E 2)模型增大带来的神奇表现,使得近几年预训练模型规模呈现爆炸式增长。然而,训练甚至微调大模型都需要非常高的硬件成本,动辄几十、上百张 GPU。此外,PyTorch、TensorFlow 等现有深度学习框架也难以有效处理超大模型,通常需要专业的 AI 系统工程师做针对具体模型做适配和优化。更重要的是,不是每一个实验室以及研发团队都具备 “钞” 能力,能够随时调用大规模 GPU 集群来使用大模型,更不用提仅有一张显卡的个人开发者。因此,尽管大模型已经吸引了大量关注,高昂的上手门槛却令大众“望尘莫及”。

无缝支持Hugging Face社区,Colossal-AI低成本轻松加速大模型

导致大模型使用成本增高的核心原因是显存限制。GPU 计算虽快,但显存容量有限,无法容纳大模型。Colossal-AI 针对这一痛点,通过异构内存系统,高效地同时使用 GPU 显存以及价格低廉的 CPU 内存,在仅有一块 GPU 的个人 PC 上便能训练高达 180 亿参数 GPT,可提升模型容量十余倍,大幅度降低了 AI 大模型微调和推理等下游任务和应用部署的门槛,还能便捷扩展至大规模分布式。Hugging Face 为深度学习社区提供了超过 5 万个 AI 模型的实现,最其中也不乏像 GPT, OPT 这样的大模型,现已成为最流行的 AI 库之一。

无缝支持Hugging Face社区,Colossal-AI低成本轻松加速大模型

Colossal-AI 无缝支持 Hugging Face 社区模型,让大模型对每一位开发者都变得触手可及。接下来,我们将以 Meta 发布的大模型 OPT 为例,展现如何使用 Colossal-AI,仅需添加几行代码,便可实现大模型的低成本训练和微调。

开源地址:https://github.com/hpcaitech/ColossalAI低成本加速大模型 OPTOPT 模型OPT 的全称为 Open Pretrained Transformer,是 Meta(Facebook) AI 实验室发布的对标 GPT-3 的大规模 Transformer 模型。与 OpenAI 尚未公开模型权重的 GPT-3 相比,Meta AI 慷慨地开源了所有的代码以及模型权重,极大推动了 AI 大模型的民主化,每一位开发者都能以此为基础开发个性化的下游任务。接下来,我们将用 Hugging Face 提供的 OPT 模型的预训练权重进行 Casual Language Modelling 的微调。添加配置文件 想要使用 Colossal-AI 中各个强大功能,用户无需更改代码训练逻辑,只用添加一个简单的配置文件,即可赋予模型所期望的功能,比如混合精度、梯度累积、多维并行训练、冗余内存优化等。在一张 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 TensorShardStrategy<br><br><br>zero = dict(model_config=dict(shard_strategy=TensorShardStrategy(),<br>tensor_placement_policy="auto"),<br>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(), <br>shard_strategy=shard_strategy,<br>shard_param=True):<br>model = OPTForCausalLM.from_pretrained(<br>'facebook/opt-1.3b'<br>config=config<br>)

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

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

优势显着在单张GPU,与微软DeepSpeed 相比,Colossal-AI 的使用自动化的auto 策略,在不同的模型规模上相比DeepSpeed 的ZeRO Offloading策略,均体现出显着优势,最快可实现40% 的加速。而 PyTorch 等传统深度学习框架,在单张 GPU 上已经无法运行如此大的模型。

无缝支持Hugging Face社区,Colossal-AI低成本轻松加速大模型

对于使用 8 张 GPU 的并行训练,Colossal-AI 仅需在启动命令中添加 - nprocs 8 即可实现!背后秘诀如此显着的提升来自于 Colossal-AI 的高效异构内存管理子系统 Gemini。简单的来说,在模型训练时,Gemini 在前面的几个step 进行预热,收集PyTorch 动态计算图中的内存消耗信息;在预热结束后,计算一个算子前,利用收集的内存使用记录,Gemini 将预留出这个算子在计算设备上所需的峰值内存,并同时从GPU 显存里移动一些模型张量到CPU 内存。

无缝支持Hugging Face社区,Colossal-AI低成本轻松加速大模型

Gemini 内置的内存管理器给每个张量都标记一个状态信息,包括 HOLD、COMPUTE、FREE 等。然后,根据动态查询到的内存使用情况,不断动态转换张量状态、调整张量位置,相比起DeepSpeed 的ZeRO Offload 的静态划分,Colossal-AI Gemini 能更高效利用GPU 显存和CPU 内存,实现在硬件极其有限的情况下,最大化模型容量和平衡训练速度。

无缝支持Hugging Face社区,Colossal-AI低成本轻松加速大模型

对于大模型的代表GPT,使用Colossal-AI 在搭载RTX 2060 6GB 的普通游戏笔记本上,也足以训练高达15 亿参数模型;对于搭载RTX3090 24GB的个人电脑,更是可以直接训练180 亿参数的模型;对于Tesla V100 等专业计算卡,Colossal-AI 也能显示出显着改善。更进一步:便捷高效并行扩展并行分布式技术是进一步加速模型训练的重要手段,想要以最短时间训练当今世界最大最前沿的 AI 模型,仍离不开高效的分布式并行扩展。针对现有方案并行维度有限、效率不高、通用性差、部署困难、缺乏维护等痛点,Colossal-AI 通过高效多维并行和异构并行等技术,让用户仅需极少量修改,即可高效快速部署AI 大模型训练。例如,对于同时使用数据并行、流水并行、2.5 维张量并行等复杂并行策略,仅需简单声明,即可自动实现,Colossal-AI 无需像其他系统和框架侵入代码,手动处理复杂的底层逻辑。

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

具体来说,对于GPT-3 这样的超大AI 模型,相比英伟达方案,Colossal-AI 仅需一半的计算资源,即可启动训练;若使用相同计算资源,则能提速11%,可降低GPT-3 训练成本超百万美元。 Colossal-AI 相关解决方案已成功自动驾驶、云计算、零售、医药、芯片等行业知名厂商落地应用,广受好评。

无缝支持Hugging Face社区,Colossal-AI低成本轻松加速大模型

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

无缝支持Hugging Face社区,Colossal-AI低成本轻松加速大模型

Colossal-AI 注重开源社区建设,提供中文教程,开放用户社群及论坛,对于用户反馈进行高效交流与迭代更新,不断添加 PaLM、AlphaFold 等前沿应用。自然开源以来,Colossal-AI 已经多次在 GitHub 及 Papers With Code 热榜位列世界第一,与众多已有数万 star 的明星开源项目一起受到海内外关注!

无缝支持Hugging Face社区,Colossal-AI低成本轻松加速大模型

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

以上是无缝支持Hugging Face社区,Colossal-AI低成本轻松加速大模型的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:51CTO.COM。如有侵权,请联系admin@php.cn删除
如何在Excel中删除重复项? - 分析Vidhya如何在Excel中删除重复项? - 分析VidhyaApr 15, 2025 am 09:20 AM

数据完整性:删除Excel中的重复项以进行准确分析 干净的数据对于有效的决策至关重要。 Excel电子表格中的重复条目可能会导致错误和不可靠的分析。本指南向您展示了如何轻松删除DUP

十大电话面试技巧 - 分析Vidhya十大电话面试技巧 - 分析VidhyaApr 15, 2025 am 09:19 AM

掌握电话采访的艺术:成功指南 成功的电话面试可以大大增加进入工作申请过程下一阶段的机会。 这种至关重要的第一印象,通常是唯一的前fac

如何成为统计学家?如何成为统计学家?Apr 15, 2025 am 09:15 AM

介绍 想象一下,有能力在医疗保健,金融或体育等领域为自己和您的公司做出明智的决定。那就是统计学家的角色。 随着组织中数据的越来越多,对统计学家的需求

AI如何工作? - 分析VidhyaAI如何工作? - 分析VidhyaApr 15, 2025 am 09:14 AM

人工智能:综合指南 技术使我们能够设想一个世界,即机器了解我们的偏好,预测我们的需求,并从过去的互动中学习以提供更好的结果。这不是科幻小说;它是

什么是象形图? - 分析Vidhya什么是象形图? - 分析VidhyaApr 15, 2025 am 09:09 AM

介绍 在数据分析的世界中,有效的沟通是关键。 象形图提供了一个强大的解决方案,以视觉上吸引人且易于消化的格式提供信息。与复杂的图表和数字不同,象形文字 - 也

Llama-3.1-STORM-8B:8B LLM优于元和爱马仕Llama-3.1-STORM-8B:8B LLM优于元和爱马仕Apr 15, 2025 am 09:08 AM

Llama 3.1风暴8b:有效语言模型的突破 追求高效,准确的语言模型导致了Llama 3.1 Storm 8b的发展,这是80亿个参数模型类别的显着进步。 这是完善的

如何安装git? - 分析Vidhya如何安装git? - 分析VidhyaApr 15, 2025 am 09:07 AM

git:您的版本控制与协作的基本指南 Git是开发人员的关键工具,简化了项目协作和版本控制。 本指南提供了在Linux,MacOS和Wind上安装GIT的直接说明

在LLMS中调用工具在LLMS中调用工具Apr 14, 2025 am 11:28 AM

大型语言模型(LLMS)的流行激增,工具称呼功能极大地扩展了其功能,而不是简单的文本生成。 现在,LLM可以处理复杂的自动化任务,例如Dynamic UI创建和自主a

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具