今天想和大家谈谈`DiT`(Diffusion Transformer)
论文地址click here
DiT主要基于Vision
Transformer(ViT)架构,该架构对patches序列进行操作,DiT保留了ViT的大部分配置。为了将tranformer架构用在视觉领域上,
我们需要将图片信息进行序列化操作(patchify):
patches2tokens
原始diffusion模型中VAE加噪得到一个隐空间状态记作 ,
首先可以考虑使用一个线性嵌入层将patches转换为tokens序列,如同下图所示:
最后转换出来的tokens序列的长度由patching size
p所决定,最终得到tokens序列的长度就是 ;
DiT block architecture
原始ViT中,在patchify之后,输入tokens会直接由一系列Transformer块处理。但DiT的输入除了noise图像外,有时还会处理额外的条件信息,如noise时间步
,类标签 ,输入自然语言等。
Transformer Decoder...
最近想和大家讲讲`diffusion model`!
Diffusion和图像生成的关系
谈到diffusion model那么就不得不谈及AIGC.
在过去几年里里,以Stable
Diffusion为代表的AI图像/视频生成是世界上最为火热的AI方向之一. Stable
Diffusion里的这个”Diffusion”是什么意思?其实,扩散模型(Diffusion
Model)正是Stable Diffusion中负责生成图像的模型。想要理解Stable
Diffusion的原理,就一定绕不过扩散模型的学习。
在这篇文章里,我会由浅入深地对去噪扩散概率模型(Denoising Diffusion
Probabilistic Models,...
强化学习基础
强化学习入门教程
视频教程链接
图文教程链接
名词解释
价值函数
在马尔可夫奖励过程中,一个状态的期望回报(即从这个状态出发的未来累积奖励的期望)被称为这个状态的价值(value)。所有状态的价值就组成了价值函数(value
function). 于是我们可以将价值函数形式化的定义为:
展开可以得到:
根据马尔科夫概率转移过程我们可以将上面的式子改写为:
贝尔曼方程(Bellman equation)
若一个马尔科夫奖励过程一共有个状态,即:
将所有状态的价值表同样表示为一个向量的形式:
同理将奖励函数写成一个列向量:
于是我们可以将Bellman方程写为:
简记为:
可以直接求得解析解:
上述计算式的计算复杂度是,对于大规模的马尔科夫奖励过程并不现实;解较大规模的马尔可夫奖励过程中的价值函数时,可以使用动态规划(dynamic
programming)算法、蒙特卡洛方法(Monte-Carlo
method)和时序差分(temporal difference)....
GEAR:KV cache压缩框架精读
GEAR:
一種高效的近乎無損推理的LLM的 KV cache 壓縮策略
論文地址在這裡GEAR: An
Effective KV Cache Compression Recipe for Near-Lossless Generative
Inference of LLM
研究背景
原文中作者總結了現在階段為了解決GPU Memory問題的流行的幾種方法:
(a)使用offload技術,通過將GPU的內存消耗轉移到CPU使用的內存or
NVMe的存儲空間上.這種方式對總線帶寬(bandwidth)需求極大
(b)緊接著提出來的是tokens...
SteamingLLM
只会开新坑不会填旧坑的屑Mr.Xau🕊️🕊️🕊️ 又打算分享一篇基于KV
Cache优化经典工作
本人近期任务太多以后一定会填坑的(下次一定
🥺🥺🥺🥺🥺🥺🥺🥺🥺🥺🥺🥺🥺🥺🥺🥺🥺
🤓🤓🤓🤓🤓 已填坑完成! 🤓🤓🤓🤓🤓
StreamLLM
基于注意力汇聚现象的KV Cache策略
论文地址,Streaming这个词很有意思,不是我们玩的steam
,它可以是喷射的意思,也可以是涓涓细流的意思;我觉得从这篇工作的内容来看,翻译为娟娟溪流可能更加合适一点。那么这个娟娟细流到底指的是LLM中的什么,但是正所谓铁打的衙门流水的官,KV
Cache中有没有铁打不变的东西呢?且听后文分析。
知识补充
主要是KV Cache的介绍:什么是KV Cache,为什么只缓存KV?
什么是KV Cache?
回忆一下Transformer中的注意力机制,在经典的Transformer中我们有向量化的语料输入Tokens序列,如果batch size=1, 的形状是 ,其中是输入序列的长度 一句话单词数
,...
LLM剪枝-SparseGPT方法
'SparseGPT' one-shot
Pruning Strategy
【论文地址】SparseGPT:
Massive Language Models Can be Accurately Pruned in One-Shot
SparseGPT简介
SparseGPT是一种用于压缩Massive
LLM的一次性(one-shot)、无须重训练(no need for
retraining)的基于非结构化Pruning(剪枝)的模型压缩方法,发现了至少50%的稀疏性;
SparseGPT提出的创新点何在?其实就是两点:ONE-SHOT
&& NO RETRAINING;
上图就是原来的模型减枝之后,我们仍然需要一个Sparse
Retraining的过程来调整稀疏化之后的模型,SparseGPT提出的剪枝方法则是one-shot的,也就是无须后面retraining或者说调整的代价很小。
SparseGPT的基本原理
已有方法存在的问题:
一般的模型减枝(Pruning)都包含两步——Mask...
一个attention降秩理论的证明
Attention
is not all you need? 纯粹的注意力机制有什么问题?
论文地址-> pure
attention loses rank doubly exponentially with depth <-
简介
原文链接如上所示,论文开门见山的提出来一个新观点:纯粹的注意力机制会导致矩阵的秩指数级别的下降;论文标题也很有意思Attention is not all you need,则是与LLM的开山之作Attention is all you need相呼应,这篇文章看似在挑战attention机制,实际上是在从一个全新的角度来阐述为什么attention为什么会表现优异。
回忆一下multi-head...
图论?绸带?算法?
...