激情偷乱人伦小说视频在线

斯坦福大学CS博士新作:Attention提速2
斯坦福大学CS博士新作:Attention提速2
发布日期:2022-06-18 13:24    点击次数:135

斯坦福大学CS博士新作:Attention提速2

机器之心报道

裁剪:陈萍

FlashAttention 是一种具有 IO 感知,且兼具快速、内存高效的新式正式力算法。

一种快速、内存高效的正式力算法来了,被定名为 FlashAttention。通过减少 GPU 内存读取 / 写入,FlashAttention 的启动速率比 PyTorch 尺度正式力快 2-4 倍,所需内存减少 5-20 倍。

这项权衡由斯坦福大学、纽约州立大学布法罗分校的权衡者共同完成。共吞并作是两位斯坦福料到打算机博士生 Tri Dao 和 Dan Fu。

底下咱们先容一下论文具体实践。

FlashAttention

Transformer 果决成为当然谈话处理和图像分类等运用中最平方使用的架构。跟着权衡的束缚前进,Transformer 尺寸变得越来越大、层数也越来越深,但是给 Transformer 配备更长的高下文仍然很繁难,因为 Transformer 中枢自正式力模块的时候复杂度以及内存复杂度在序列长度上是二次方的。

有权衡者建议一些近似正式力的行径,旨在减少正式力料到打算和内存需求。这些行径包括疏淡近似、低秩近似以及它们的组合。从序列长度来看,尽管这些行径不错将料到打算裁汰到线性或接近线性,但它们并莫得涌现出针对尺度正式力的 wall-clock 加快,因而莫得被平方使用。这其中一个主要原因是这些权衡专注于减少 FLOP(这可能与 wall-clock 速率无关)况且倾向于忽略来自内存打听 (IO) 的支出。

在本文中,该权衡以为应该让正式力算法具有 IO 感知——即计划显存级间的读写。当代 GPU 料到打算速率越过了内存速率,transformer 中的大大都操作都被内存打听所阻止。IO 感知算法关于访佛的内存绑定操作至关攻击,这种攻击性体现时当读写数据占据很大启动时——举例数据库邻接、图像处理、数值线性代数等。但是,用于深度学习的常见 Python 接口,如 PyTorch 和 Tensorflow,不允许对内存打听进行细粒度死心。

论文地址:https://arxiv.org/pdf/2205.14135.pdf

GitHub 地址:https://github.com/HazyResearch/flash-attention

该权衡建议了一种新的正式力算法 FlashAttention,它不错使用更少的内存打听来料到打算精准的正式力。FlashAttention 旨在幸免从 HBM(High Bandwidth Memory)中读取和写入正式力矩阵。这需要做到:(i) 在不打听通盘输入的情况下料到打算 softmax reduction;(ii) 在后向传播中不成存储中间正式力矩阵。

该权衡收受两种老练的时刻来应酬这些挑战:

(i) 该权衡重组正式力料到打算,将输入分红块,并在输入块上进行屡次传递,从而逐步扩充 softmax reduction(也称为 tiling);

(ii) 该权衡存储前向传递的 softmax 归一化因子,在后向传播中快速再行料到打算片上正式力, 日韩a片这比从 HBM 中读取中间正式力矩阵的尺度行径更快。

该权衡在 CUDA 中终了 FlashAttention ,以达到对内存打听的细粒度死心,并将所有正式力操作交融到一个 GPU 内核中。即使由于再行料到打算导致 FLOPs 增多,但其启动速率更快(在 GPT-2 上高达 7.6 倍,图 1 右图)况且使用更少的内存(序列长度线性),主如若因为大大减少了 HBM 打听量。

该权衡分析了 FlashAttention 的 IO 复杂度,阐发它需要(^2^2^−1)HBM 打听,其中是 head 维度,是 SRAM 的大小,而尺度的正式力需要Ω( + ^2 )HBM 打听。关于 和 的典型值,与尺度正式力比较,FlashAttention 需要的 HBM 打听次数要少许多(最多减少 9 倍,70岁老bbbwbbwbbwbbw如图 2 所示)。此外,该权衡还提供了一个下限,标明莫得精准的正式力算法不错渐近地擢升所有 SRAM 大小的 HBM 打听次数。

该权衡还标明,FlashAttention 不错行为一种原语(primitive),通过克服内存打听支出问题来终了近似正式力算法。行为见地阐发,该权衡终显豁块疏淡 FlashAttention,这是一种疏淡正式力算法,比 FlashAttention 快 2-4 倍,可膨大到 64k 的序列长度。该权衡阐发了块疏淡 FlashAttention 比 FlashAttention 具有更好的 IO 复杂度。

值得一提的是,该权衡还开源了 FlashAttention。

实验收尾

BERT:FlashAttention 获取了最快的单节点 BERT 训练速率。该权衡在 Wikipedia 上用 FlashAttention 训练了一个 BERT-large 模子。表 1 将 FlashAttention 训练时候与 Nvidia MLPerf 1.1 进行了比较,收尾标明 FlashAttention 的训练速率擢升了 15%。

GPT-2:表 2 涌现,与 HuggingFace 比较,FlashAttention 端到端加快可达 3 倍,与 Megatron-LM 比较,加快可达 1.7 倍

Long-range Arena:该权衡在 long-range arena (LRA) 基准上进行了实验,他们测量了准确率、隐隐量、训练时候。每个任务有不同的序列长度,从 1024 到 4096 不等。此外,实验罢黜 Tay 和 Xiong 等人的实验成立。表 3 涌现,与尺度正式力比较,FlashAttention 的速率擢升了 2.4 倍。块疏淡 FlashAttention 比所有近似正式力行径都要快。

具有长高下文的谈话模子:FlashAttention 的启动时候和内存收尾允许咱们将 GPT-2 的高下文长度增多 4 倍,同期仍然比 Megatron-LM 的启动更快。从表 4 不错看出,高下文长度为 4K 的 FlashAttention GPT-2 仍然比高下文长度为 1K 的 Megatron 的 GPT-2 快 30%,同期 perplexity 擢升了 0.7。

表 5 标明,在 MIMIC 上序列长度为 16K 的性能比长度为 512 的越过 4.3 个点,而在 ECtHR 上,序列长度为 8K 的比长度 512 越过 8.5 个点。

表 6 展示了 Transformer 模子不错管束 Path-X、Path-256 问题。该权衡在 Path-64 上预训练 transformer,然后通过空间插值位置镶嵌迁徙到 Path-X。FlashAttention 在 Path-X 上达到 61.4 的准确率。此外,块疏淡 FlashAttention 使得 Transformers 将序列膨大到 64K,在 Path-256 终了 63.1 的准确率。

图 3(左) 汇报了以毫秒为单元的 FlashAttention 和块疏淡 FlashAttention 前向 + 后向传播的启动时候与基准比较,图 3(右) 涌现了与多样精准、近似和疏淡正式基线比较,FlashAttention 和块疏淡 FlashAttention 的内存占用情况。

正式力算法序列长度内存发布于:北京市声明:该文视力仅代表作家自己,搜狐号系信息发布平台,搜狐仅提供信息存储空间处事。