LLaMA2模型训练加速秘籍:700亿参数效率提升195%!

点击蓝字 关注我们

关注并星标

从此不迷路

计算机视觉研究院

公众号ID

计算机视觉研究院

学习群

扫码在主页获取加入方式

开源地址:https://github.com/hpcaitech/ColossalAI

计算机视觉研究院专栏

Column of Computer Vision Institute

ChatGPT 引发的大模型热潮愈演愈烈,全球科技巨头和明星初创争相入局,打造以 AI 大模型为核心的竞争力和多样化商业使用需求。其中 LLaMA 系列模型,因良好的基础能力和开放生态,已积累了海量的用户和实际应用案例,成为无数开源模型后来者的模仿和竞争的标杆对象。

但如何降低类 LLaMA2 大模型预训练成本,如何基于 LLaMA2 通过继续预训练和微调,低成本构建 AI 大模型实际应用,仍是 AIGC 相关企业面临的关键瓶颈。

作为全球规模最大、最活跃的大模型开发工具与社区,Colossal-AI 再次迭代,提供
开箱即用的 8 到 512 卡 LLaMA2 训练、微调、推理方案,对 700 亿参数训练加速 195%,并提供一站式云平台解决方案
,极大降低大模型开发和落地应用成本。

LLaMA2 训练加速 195%

Meta 开源的 LLaMA 系列大模型进一步激发了打造类 ChatGPT 的热情,并由此衍生出了诸多项目和应用。

最新的 7B~70B LLaMA2 大模型,则进一步提高了语言模型的基础能力。但由于 LLaMA2 的预训练预料大部分来自英文通用知识,而仅用微调能够提升和注入的领域知识和多语言能力也相对有限。此外,高质量的专业知识和数据集通常被视为各个行业和公司的核心资产,仅能以私有化形式保存。因此,以低成本预训练 / 继续预训练 / 微调 LLaMA2 系列大模型,结合高质量私有化业务数据积累,帮助业务降本增效是众多行业与企业的迫切需求与瓶颈。但 LLaMA2 大模型仅发布了原始模型权重与推理脚本,不支持训练 / 微调,也未提供数据集。

针对上述空白与需求,Colossal-AI 开源了针对
LLaMA2 的全流程方案,并具备高可扩展性
,支持从 70 亿到 700 亿参数的模型,
从 8 卡到 512 卡都可保持良好的性能

在使用 8 卡训练 / 微调 LLaMA2-7B 时,Colossal-AI 能达到约 54% 的硬件利用率(MFU),处于业界领先水平。而对于预训练任务,以使用
512 张 A100 40GB 预训练 LLaMA2-70B
为例,DeepSpeed ZeRO3 策略因显存不足而无法启动,仅能通过速度衰减较大的 ZeRO3-offload 策略启动。而 Colossal-AI 则因卓越的系统优化和扩展性,仍能保持良好性能,训练提速 195%。

Colossal-AI LLaMA-2 训练 / 微调方案的高性能来源于
新的异构内存管理系统 Gemini

高性能算子
(包括 Flash attention 2)等系统优化。新 Gemini 提供了
高可扩展性,高鲁棒性,高易用性
的接口。其 Checkpoint 格式与 HuggingFace 完全兼容,减小了使用和转换成本。其对于切分、offload 等的设置更加灵活且易用,能够覆盖更多硬件配置下的 LLaMA-2 训练 / 微调任务。仅需数行代码即可使用:

from colossalai.booster import Booster
from colossalai.booster.plugin import GeminiPlugin
plugin = GeminiPlugin ()
booster = Booster (plugin=plugin)
model, optimizer, train_dataloader, criterion = booster.boost (model, optimizer, train_dataloader, criterion)

ShardFormer 多维细粒度并行

虽然对于主流硬件条件和大多数模型,Colossal-AI 的新 Gemini 已经能够提供良好的性能。但是对于一些极端硬件条件,或者是特殊模型,可能仍然需要多维并行的细粒度优化。现有其他方案通常需要分布式系统资深专家,手动对代码进行大规模重构和调优,Colossal-AI 的 ShardFormer
提供了开箱即用的多维并行和算子优化的能力
,仅需数行代码即可使用,在单机 / 大规模集群上都能提供良好的性能。

from colossalai.booster import Booster
from colossalai.booster.plugin import HybridParallelPlugin
from transformers.models.llama import LlamaForCausalLM, LlamaConfig
plugin = HybridParallelPlugin (tp_size=2, pp_size=2, num_microbatches=4, zero_stage=1)
booster = Booster (plugin=plugin)
model = LlamaForCausalLM (LlamaConfig ())
model, optimizer, train_dataloader, criterion = booster.boost (model, optimizer, train_dataloader, criterion)

Colossal-AI ShardFormer 支持包括 LLaMA1/2、BLOOM、OPT、T5、GPT-2、BERT、GLM 在内的主流开源模型,也可以直接使用 Huggingface/transformers 模型导入,Checkpoint 格式也与 HuggingFace 完全兼容,对比 Megatron-LM 等需重写大量代码的方案,大大提升了易用性。

对于并行策略,已支持以下多种并行方式:张量并行、流水线并行、序列并行、数据并行、Zero 数据并行等,并可将多种并行方式组合使用,只需通过简单的配置命令,即可适配各种复杂的硬件环境 / 模型。同时,其内置了各种高性能算子,免去了繁琐的兼容 / 配置过程。其中包括:

  • Flash attention 2
  • Memory efficient attention (xformers)
  • Fused Normalization Layer
  • JIT kernels

云平台大模型一站式解决

为了进一步提升开发和部署效率,Colossal-AI 团队还将上述系统优势与算力结合,提供 Colossal-AI 云平台,提供廉价算力和开箱即用的 AI 主流应用,包括对话大模型,多模态模型,生物医药等,现已开启内测。

通过屏蔽大模型底层的分布式并行计算、内存、通信管理与优化等,AI 开发者可以继续专注于 AI 模型与算法设计,以更低成本更快速度完成 AI 大模型助力业务降本增效。

用户只需要上传相关数据,即可
无代码训练个性化私有模型,并将训练好的模型一键部署
。相关的应用都经过 Colossal-AI 团队精心优化,得益于算法和系统的双面优化,能大大降低模型训练以及部署的成本。

Colossal-AI 云平台:platform.luchentech.com

Colossal-AI 开源地址:https://github.com/hpcaitech/ColossalAI

参考链接:https://www.hpc-ai.tech/blog/70b-llama2-training

转《机器之心》

© THE END

转载请联系本公众号获得授权

计算机视觉研究院学习群等你加入!

ABOUT

计算机视觉研究院

计算机视觉研究院主要涉及深度学习领域,主要致力于目标检测、目标跟踪、图像分割、OCR、模型量化、模型部署等研究方向。研究院每日分享最新的论文算法新框架,提供论文一键下载,并分享实战项目。研究院主要着重”技术研究“和“实践落地”。研究院会针对不同领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!

往期推荐

🔗

  • Drone-YOLO:一种有效的无人机图像目标检测
  • BFD-YOLO:基于YOLOv7的建筑外墙缺陷检测
  • 机场项目:解决飞行物空间大小/纵横比、速度、遮挡等问题引起的实时目标检测问题
  • 2PCNet:昼夜无监督域自适应目标检测(附原代码)
  • YOLO-S:小目标检测的轻量级、精确的类YOLO网络
  • 大改Yolo框架 |  能源消耗极低的目标检测新框架(附论文下载)
  • 改进的检测算法:用于高分辨率光学遥感图像目标检测
  • 小米平板6 Max-Yolo:在便携终端上实时检测不再是难题
  • 旋转角度目标检测的重要性!!!(附源论文下载)
  • PE-YOLO:解决黑夜中的目标检测难点
  • EdgeYOLO:边缘设备上实时运行的目标检测器及Pytorch实现
  • Q-YOLO:用于实时目标检测的高效推理
  • 首个全量化Vision Transformer的方法FQ-ViT,AI大模型落地不远了!
  • YoloV8与ChatGPT互通,这功能是真的强大!
  • GPT理解的CV:基于Yolov5的半监督目标检测

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/363382.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mov和mp4区别是什么?苹果的原创和时代的宠儿

在数字媒体领域,视频格式的选择往往决定了观看体验的质量和文件的兼容性。在众多视频格式中,MOV和MP4无疑是最具代表性的两种,它们分别承载着苹果和互联网世界的技术革新与历史变迁。本文将带您穿越时间的长廊,探索MOV与MP4的发展…

嵌入式Linux的浮点运算能力测试

嵌入式Linux的浮点运算能力测试 今天需要对一款ARM CPU的浮点数运算能力进行测试,采用了台式机上常用的SuperPI相同的原理:计算一定小数位数的圆周率来测试硬件的浮点数计算能力和稳定性。 首先下载计算软件的源代码,可以使用下面命令&#…

企业数据治理的下一步是数据资产管理?

随着信息技术的飞速发展和数字化转型的深入推进,企业数据已成为驱动业务增长和创新的核心要素。当企业数据治理工作取得显著成效后,如何进一步发挥数据的价值,实现数据资产的有效管理,成为企业面临的重要课题。 数据治理的基石作用…

国际数字影像产业园创业培训,全面提升创业能力!

国际数字影像产业园作为数字影像产业的创新高地,致力于提供全面的创业支持服务。其中,创业培训作为重要的组成部分,旨在通过系统的课程设置和专业的讲师团队,为创业者提供从基础到进阶的全方位指导,帮助他们在数字影像…

Node.js中基于node-schedule实现定时任务之详解

文章目录 一、定时任务二、node-schedule、1、安装2、引入3、基于Cron表达式的规则4、基于Date的规则5、基于RecurrenceRule的规则6、API7、状态监听 一、定时任务 实际工作中,可能会遇到定时清除某个文件夹内容,定时发送消息或发送邮件给指定用户&…

C++STL 初阶(5)vector的简易实现(上)

不同于string只实现一个最简单的版本,vector在此处我们要实现的是模版类,类模版的声明和定义分离非常不方便(会在链接时报错),所以我们都只在一个vector.h下去实现声明和定义。后续我们提及到的库里面实现的vector也是…

5G VONR

转载:VoNR呼叫流程介绍 (baidu.com) 使用5G RAN、5G Core和IMS的语音服务被称为新无线电VoNR上的语音,5G提供语音/视频通话等服务。 NR网络架构上的语音 NR语音网络体系结构由5G RAN、5G Core和IMS网络组成。下面显示了一个体系结构。(仅包…

【教程】几种不同的RBF神经网络

本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com 目录 一、经典RBF神经网络1.1.经典径向基神经网络是什么1.2.经典径向基神经网络-代码与示例 二、广义回归神经网络GRNN2.1.广义回归神经网络是什么2.2.广义回归神经网络是什么-代码与示例 三、概率…

使用容器部署redis_设置配置文件映射到本地_设置存储数据映射到本地_并开发java应用_连接redis---分布式云原生部署架构搭建011

可以看到java应用的部署过程,首先我们要准备一个java应用,并且我们,用docker,安装一个redis 首先我们去start.spring.io 去生成一个简单的web项目,然后用idea打开 选择以后下载 放在这里,然后我们去安装redis 在公共仓库中找到redis . 可以看到它里面介绍说把数据放到了/dat…

重要通知:据最新TEMU要求所有欧区车灯都需要能效标签(eu energy lable)

重要通知: 据最新TEMU要求,所有“欧区车灯”都需要能效标签(eu energy lable),目前已下架欧区站点,上传成功后可恢复。 灯具类欧盟EU ENERGY LABEL 近日有不少欧洲站卖家收到TEMU平台商品要求卖家们发布的…

uniapp获取证书秘钥、Android App备案获取公钥、签名MD5值

一、 uniapp获取证书秘钥 打开uniapp开发者中心下载证书打开cmd输入以下这段代码,下载提供查看到的密钥证书密码就可以了!下载证书在 java 环境下运行才可以 // your_alias 换成 证书详情中的别名,your_keystore.keystore 改成自己的证书文件…

1panel 搭建多个网站

1panel 部署多个网站,另外的域名,或无域端口搭建方法。 当我们已经部署好一个网站后,想再部署一个网站在我们的服务器上时, 步骤:(另外的域名,部署在同一个服务器方法) 运行环境里…

百度ueditor如何修改图片的保存位置

背景 编辑器的保存图片是设置有默认规则的,但是服务器上一般会把图片路径设置为软连接,所以我就需要更改编辑器保存图片的路径,要不然,每次有新的部署,上一次上传的图片就会失效。先来看看编辑器默认的保存路径吧&…

【算法刷题 | 动态规划14】6.28(最大子数组和、判断子序列、不同的子序列)

文章目录 35.最大子数组和35.1题目35.2解法:动规35.2.1动规思路35.2.2代码实现 36.判断子序列36.1题目36.2解法:动规36.2.1动规思路36.2.2代码实现 37.不同的子序列37.1题目37.2解法:动规37.2.1动规思路37.2.2代码实现 35.最大子数组和 35.1…

①常用API----Math

public static int abs(int a) // 返回参数的绝对值 public static double ceil(double a) // 返回大于或等于参数的最小整数 public static double floor(double a) // 返回小于或等于参数的最大整数 public static int round(f…

css实现鼠标悬停在div上出现抬起元素的效果

如图所示,左侧为正常样式,右侧为添加效果后的样式 只需要给div添加以下class样式,主要实现效果在&:hover里面 .component-item {display: flex;align-items: center;width: 50px;height: 50px;border: 1px solid #f0f0f0;border-radius…

Linux高级编程——线程

pthread 线程 概念 :线程是轻量级进程,一般是一个进程中的多个任务。 进程是系统中最小的资源分配单位. 线程是系统中最小的执行单位。 优点: 比多进程节省资源,可以共享变量 进程会占用&am…

市场拓展招聘:完整指南

扩大招聘业务会给你带来很多挑战,更不用说你已经在处理的问题了。助教专业人士每周花近13个小时为一个角色寻找候选人。此外,客户的需求也在不断变化,招聘机构之间的竞争也在加剧。毫无疑问,对增长有战略的方法会有很大的帮助。一…

RocketMQ快速入门:事务消息原理及实现(十)

目录 0. 引言1. 原理2. 事务消息的实现2.1 java client实现(适用于spring框架)2.2 springboot实现 3. 总结 0. 引言 rocketmq 的一大特性就是支持事务性消息,这在诸多场景中有所应用。在之前的文章中我们已经讲解过事务消息的使用&#xff0…

无需向量量化的自回归图像生成

摘要 https://arxiv.org/pdf/2406.11838 传统观点认为,用于图像生成的自回归模型通常伴随着向量量化的标记。我们观察到,尽管离散值空间可以方便地表示分类分布,但它对于自回归建模来说并不是必需的。在这项工作中,我们提出使用扩…