搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
天景科技苑
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
AI Agent,为何成为AIGC秘密武器?_ai agent 和 aigc吗
2
Android11系统 adb添加访问密码_adb 密码
3
【数学建模】——前沿图与网络模型:新时代算法解析与应用
4
android面试题2022中高级21道经典面试题答案解析_android 高级考试选择题和答案
5
手握N段大厂实习经历的人生有多爽?_武敏颜
6
【正点原子K210连载】第十四章 按键输入实验 摘自【正点原子】DNK210使用指南-CanMV版指南_正点原子按键输入
7
TiDB Vector + Dify 快速构建 AI Agent
8
12.JVM-垃圾回收相关算法_jprofiler 最新 秘钥
9
Generalizing from a Few Examples: A Survey on Few-Shot Learning 小样本学习最新综述| Introduction and Overview
10
2024软件工程考研之《软件工程导论》专业课复习_软件工程导论考研
当前位置:
article
> 正文
总结:大模型技术栈---算法与原理
作者:天景科技苑 | 2024-07-26 02:48:06
赞
踩
大模型技术栈
原文地址:
大模型技术栈-算法与原理
1. tokenizer方法
word-level
char-level
subword-level
BPE
WordPiece
UniLM
SentencePiece
ByteBPE
2. position encoding
绝对位置编码
ROPE
AliBi
相对位置编码
Transformer-XL
T5/TUPE
DeBERTa
3. 注意力机制
Mamba,H3,Hyena,RetNet,RWKV,Linear attention, Sparse attention
4. 分布式训练
数据并行
FSDP
DDP
ZeRO
Model state
Optimizer->ZeRO1
将optimizer state分成若干份,每块GPU上各自维护一份
每块GPU上存一份完整的参数W,做完一轮foward和backward后,各得一份梯度,对梯度做一次AllReduce(reduce-scatter + all-gather),得到完整的梯度G,由于每块GPU上只保管部分optimizer states,因此只能将相应的W进行更新,对W做一次All-Gather
Gradient+Optimzer->ZeRO2
每个GPU维护一块梯度
每块GPU上存一份完整的参数W,做完一轮foward和backward后,算得一份完整的梯度,对梯度做一次Reduce-Scatter,保证每个GPU上所维持的那块梯度是聚合梯度,每块GPU用自己对应的O和G去更新相应的W。更新完毕后,每块GPU维持了一块更新完毕的W。同理,对W做一次All-Gather,将别的GPU算好的W同步到自己这来
Parameter+Gradient+Optimizer->ZeRO3
每个GPU维护一块模型状态
每块GPU上只保存部分参数W,做forward时,对W做一次All-Gather,取回分布在别的GPU上的W,得到一份完整的W,forward做完,立刻把不是自己维护的W抛弃,做backward时,对W做一次All-Gather,取回完整的W,backward做完,立刻把不是自己维护的W抛弃. 做完backward,算得一份完整的梯度G,对G做一次Reduce-Scatter,从别的GPU上聚合自己维护的那部分梯度,聚合操作结束后,立刻把不是自己维护的G抛弃。用自己维护的O和G,更新W。由于只维护部分W,因此无需再对W做任何AllReduce操作
Residual state
activation->Partitioned Activation Checkpointing
每块GPU上只维护部分的activation,需要时再从别的地方聚合过来就行。需要注意的是,activation对显存的占用一般会远高于模型本身,通讯量也是巨大的
temporary buffer->Constant Size Buffer
提升带宽利用率。当GPU数量上升,GPU间的通讯次数也上升,每次的通讯量可能下降(但总通讯量不会变)。数据切片小了,就不能很好利用带宽了。所以这个buffer起到了积攒数据的作用:等数据积攒到一定大小,再进行通讯。
使得存储大小可控。在每次通讯前,积攒的存储大小是常量,是已知可控的。更方便使用者对训练中的存储消耗和通讯时间进行预估
unusable fragment->Memory Defragmentation
对碎片化的存储空间进行重新整合,整出连续的存储空间。防止出现总存储足够,但连续存储不够而引起的存储请求fail
offload
ZeRO-Offload
forward和backward计算量高,因此和它们相关的部分,例如参数W(fp16),activation,就全放入GPU
update的部分计算量低,因此和它相关的部分,全部放入CPU中。例如W(fp32),optimizer states(fp32)和gradients(fp16)等
ZeRO-Offload 分为 Offload Strategy 和 Offload Schedule 两部分,前者解决如何在 GPU 和 CPU 间划分模型的问题,后者解决如何调度计算和通信的问题
ZeRO-Infinity
一是将offload和 ZeRO 的结合从 ZeRO-2 延伸到了 ZeRO-3,解决了模型参数受限于单张 GPU 内存的问题
二是解决了 ZeRO-Offload 在训练 batch size 较小的时候效率较低的问题
三是除 CPU 内存外,进一步尝试利用 NVMe 的空间
模型并行
tensor-wise parallelism
pipeline parallelism: GPipe,1F1B,interleaved 1F1B
sequence p
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
【wpsshop博客】
推荐阅读
article
chatgpt
赋能
python
:
Python
中的
self
关键字
_
python
self
关键字
...
在
Python
中,
self
代表当前对象的一个引用,其实就是指向实例化对象的指针。在类定义中的方法中,我们需要将
self
作...
赞
踩
article
第6章 性能分析相关的
CPU
特性_
processor
event
-
based
sampling
(p...
为什么如此关注分支指令?因为分支控制着程序的控制流。如果我们记录了每个分支的输出,就有可能逐行重建程序的执行路径。这也就...
赞
踩
article
netty
入门-3
EventLoop
和
EventLoop
Group,
简单
的
服务器
实现...
netty
简单
实现
服务器
客户端。
EventLoop
和
EventLoop
Group
的
基本使用
netty
入门-3 Event...
赞
踩
article
如何通过SSH协议使用
WinSCP
实现
Windows
与
Linux
之间的远程公网
文件传输
_window...
WinSCP
是一个
Windows
环境下使用的 SSH 的开源图形化 SFTP 客户端。同时支持 SCP 协议。它的...
赞
踩
article
【
iOS
】——
MVC
框架
_
ios
开发
mvc
框架
...
MVC
(Model-View-Controller)是一种软件设计模式,用于组织和管理应用程序的代码和逻辑。它将应用程序...
赞
踩
article
2023
电赛
E
题
简明
设计
思路
、总结及参加
电赛
的建议...
2023
电赛
E
题
设计
思路
,仅供参考_
2023
电赛
e
题
2023
电赛
e
题
...
赞
踩
article
开发者
涨薪指南:
提升
软、硬
实力
_
新
程序员
pdf
...
推动
开发者
职业通道不断上升的自身因素主要有两方面:硬
实力
、软
实力
。_
新
程序员
pdf
新
程序员
pdf
...
赞
踩
article
通用
大
模型
VS
垂直
大
模型
,
你更青睐哪一方?
_
通用
大
模型
纯直
大
模型
...
通用
大
模型
是指在
大
规模数据集上进行训练
,
具有广泛应用能力的
模型
。典型的
通用
大
模型
如OpenAI的GPT系列、Google...
赞
踩
article
Windows
玩转
大
模型
第一天
:
大
模型
本地
部署
,调用
大
模型
API
可直接工程化应用(全部代码和详细部...
Ollama 是
一个
开源框架,专为在
本地
机器上便捷
部署
和运行
大
型语言
模型
(LLM)而设计。以下是其主要特点和功能概述
:
1...
赞
踩
article
提取
autocad2024
图形中
图块
的
属性
的代码-统计选中
图块
长度
属性
的总
长度
...
阀门位号:XV-123。
提取
autocad2024
图形中
图块
的
属性
的代码-统计选中
图块
长度
属性
的总
长度
...
赞
踩
article
Git使用-
git
clone
_
git
clone
-
b
oringin
...
克隆仓库
git
clone
用于克隆一个已有的
git
仓库。"克隆"暗示了其结果是原始仓库的一个完全对等的镜像,其包括自己...
赞
踩
article
在
win10
中
编译
chromium
工程
的
稳定版本_
chromium
win7
奔溃
win10
不会...
帮同事做实验,都是
win10
+ vs2017 +
chromium
工程
,他那就能
编译
成功,我这就显示winsdk路径不...
赞
踩
article
语义
上的
对抗
样本
--
SemanticAdv
_
语义
对抗
...
语义
上的
对抗
样本 –
SemanticAdv
这次介绍的是ECCV2020的一篇文章,
SemanticAdv
: Gener...
赞
踩
article
谨慎!
MDPI
旗下毕业
神刊
被
暂停
收录
检索!_
sustainability
期刊
被
预警
...
重新评估流程完成后,CSAB将决定继续对
期刊
进行覆盖,或终止该
期刊
在 Scopus中的前向覆盖(重新评估完成前在 Sco...
赞
踩
article
清晨
醒来
,
聆听
雨声
——解析
雨声
带给人
的
心理
舒适感_下
雨声
欣赏解析...
本文探讨了
清晨
雨声
为何让人感到愉悦
,
涉及生理学
的
白噪音效应、
心理
学
的
安全感和放松作用
,
以及文化审美
的
象征意义。
雨声
作为自...
赞
踩
article
【
AI
编程
助手
】
DevChat
解析:深入了解、快速配置与
实际操作
案例
的
完整指南_
devchat
...
DevChat
作为一款先进
的
AI
编程
助手
,具有广泛
的
应用前景。然而,它也面临着一些挑战,如模型
的
可解释性、数据隐私和安全...
赞
踩
article
数据结构
——
lesson11
排序
之
快速
排序
_
数据结构
课本电子版
快速
排序
...
本文详细介绍了
快速
排序
的递归版本(包括Hoare、挖坑法和前后指针法)、非递归实现,以及如何通过三数取中优化
排序
效率。同...
赞
踩
article
Vivado
生成
网表
文件并创建
自定义
IP_
vivado
自定义
ip
blackbox
edf
...
平台:
vivado
2018.3应用场景,在设计的过程中,我们一些特定的模块需要交付给别人,但是又不想让他们看到其中的源码...
赞
踩
article
SQL
Server
2008
中安装安全
审核
...
SQL
Server
2008
引进了一种新的
审核
性能,它能使DBA追踪数据库的使用并进行详细
审核
。我们能在服务器和数据...
赞
踩
article
昇思
MindSpore
技术
公开课
-
transformer
学习
概览
_
mind
transformer
...
mindspore大模型课程一
_
mind
transformer
mind
transformer
...
赞
踩
相关标签
chatgpt
性能优化
计算机体系结构
并行计算
java
服务器
网络
nio
ssh
linux
运维
windows
ios
mvc
设计模式
社交电子
新程序员
业界资讯
程序人生
ai
python
语言大模型
git
chromium
深度学习