深度学习知识

context阶段和generation阶段的不同

context阶段(又称 Encoder)主要对输入编码,产生 CacheKV(CacheKV 实际上记录的是 Transformer 中 Attention 模块中 Key 和 Value 的值),在计算完 logits 之后会接一个Sampling 采样模块,采样出来第一个生成的 token,并将这个 token 和 CacheKV 作为 generation阶段的输入,

generation阶段(又称 Decoder)在一个 While 循环里,读取 token 和 CacheKV 后通过自回归解码的方式每循环一次产生一个 token。generation阶段,自己的输出作为自己的输入,不断回归迭代,就是「自回归」。在 While 处判断需要继续生成,在 Attention 中计算出token对应的 CacheKV 信息存储下来,并拼接上所有的历史 CacheKV 信息进行计算,最后采样出来下一个 token。While 循环检测到「eos」生成结束,就会退出循环,本次生成推理过程结束。

在 DecoderSelfAttention 中,查询的序列长度始终为 1,因此使用自定义的 fused masked multi-head attention kernel 来处理。 另一方面,ContextSelfAttention 中查询的序列长度是最大输入长度,因此我们使用 cuBLAS 来利用tensor core。

context阶段sequence length等于input_length(并行,可以类比训练的前向过程causal attention),generation阶段sequence length等于1(一个token一个token循环进行decoder)。
以 175B 的 GPT-3 模型,输入 1000 个 token,生成 250 个 token 为例,那么 Context 阶段的激活 Shape 为 [B, 1000, 12288],其中 B 为 batch_size,第二维为输入 token 数,第三位为 hidden size。而对于 Generation 阶段,由于每次输入输出都是固定的 1 个 token,是通过循环多次来产生多个输出 token,所以 Generation 阶段的激活 Shape [B, 1, 12288]的第二维始终为 1,Generation 的激活显存占用是远小于 Context 阶段的。
再来看计算量,这里可以看到挺多有趣的结论:

---Context/Generation 的计算量均随 batch size 增大而正比增大,这个很好理解,因为 batch 内每个样本的计算量是一致的;

---Context/Generation 的访存量随 batch size 增大却基本不变,访存量可以分为权重访存和激活访存,很显然激活的访存是随 batch size 增大而增大的,但是权重访存却不会随 batch size 变化而变化,而由于激活的访存量远小于权重的访存量,就会出现总访存量几乎不随 batch size 变化而变化;

Context 是计算密集型的任务,compute bound;而 Generation 是访存密集型的任务,IO bound(显存带宽指的是 GPU 计算单元与显存之间的数据传输速度)。这是由于 Context 的计算量大, Generation 由于每次都只计算 1 个 token,所以计算量远小于 Context;但是两个阶段权重的访存量确实一致的,因为Generation 要循环调用,所以 Generation 阶段反而是访存密集型的任务。

量化的优缺点

量化通过使用较少的比特数来表示模型参数,从而减小模型的内存占用。此外,由于整数乘法要快于浮点数乘法,量化通常可以提高推理速度。然而,量化运算的一个缺点是会引入误差,随着模型参数量的增加,误差累积会变得更加明显。

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL进阶】InnoDB引擎存储结构和架构

文章目录 逻辑存储结构架构内存结构Buffer Pool&Adaptive Hash IndexChange BufferLog Buffer 磁盘结构 逻辑存储结构 表空间(Tablespaces):InnoDB使用表空间来管理存储表和索引的数据文件。每个表空间包含一个或多个数据文件&#xff0c…

【学网攻】 第(9)节 -- 路由器使用以及原理

系列文章目录 目录 系列文章目录 文章目录 前言 一、路由器是什么? 二、实验 1.引入 总结 文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻】 第(2)节 -- 交换机认识及使用【学网攻】 第(3)节 -- 交换机配置聚合端口【学网攻】 第(4)节 -- 交换机划分Vlan…

解锁一些SQL注入的姿势

昨天课堂上布置了要去看一些sql注入的案例,以下是我的心得: ​​​​​​​ ​​​​​​​ ​​​​​​​ 1.新方法 打了sqli的前十关,我发现一般都是联合查询,但是有没有不是联合查询的方法呢&#xf…

Python基础学习 -05 基本类型

Python3 基本数据类型 Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。 等号&…

Nodejs前端学习Day1_补档

我给day1搞没了,还是觉得该补一个,有用 文章目录 前言一、学习目标二、学习目录三、为什么JavaScript代码可以在浏览器中运行四、为什么JavaScript可以操作DOM和BOM五、浏览器中的JavaScript运行环境总结 前言 补档 一、学习目标 二、学习目录 三、为什…

苹果备忘录删除了怎么恢复?看这,5分钟学会4种方法

在日常使用中,我们有时会不小心删除苹果备忘录中的重要内容。这些内容可能是重要的提醒、重要的日程安排,也可能是珍贵的回忆。一旦删除,可能会对我们的生活和工作带来很大的困扰。那么,苹果备忘录删除了怎么恢复呢?本…

小屏幕大作用 电子墨水屏桌牌、门牌—构建绿色办公环境新途径

在当今信息化社会,电子设备已经深入到我们生活的方方面面。其中,电子墨水屏作为一种特殊的显示技术,因其低功耗、护眼、节能环保等特点,受到了广泛欢迎。本文将探讨电子墨水屏在构建绿色办公环境中的重要作用,特别是电…

上位机图像处理和嵌入式模块部署(python opencv)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面我们谈到了qt,谈到了opencv,也谈到了嵌入式,但是没有说明python在这个过程当中应该扮演什么样的角色。open…

无线测温在线监测系统工作原理与产品选型

摘要:本文首先介绍了无线测温在线监测系统的基本工作原理以及软硬件组成,重点介绍了在线监测的无线测温技术特点。在此研究基础上,探讨了无线测温在线监测系统在实际工作场景中的应用案例,证明了其在温度检测方面的重要应用价值。…

FlashInternImage实战:使用FlashInternImage实现图像分类任务(一)

文章目录 摘要安装包安装timm 数据增强Cutout和MixupEMA项目结构编译安装DCNv4环境安装过程配置CUDAHOME解决权限不够的问题 按装ninja编译DCNv4 计算mean和std生成数据集 摘要 https://arxiv.org/pdf/2401.06197.pdf 论文介绍了Deformable Convolution v4(DCNv4&…

#include<iomanip>前不可以加#define int long long

加了会报许多奇怪的错 但是放后面就可以了 尽量不要在头文件前宏定义原始类型

防御保护---安全策略

文章目录 目录 一.安全策略概述 概述: 安全策略的作用: 安全策略与传统防火墙的区别 二.案例分析 练习 一.安全策略概述 概述: 防火墙安全策略的作用在于加强网络系统的安全性,保护网络免受恶意攻击、非法访问和数据泄露的威胁。…

分享一个可以免费下载高清图片和视频的网站

据说很多才华横溢的摄影作者在这里免费分享最精彩的素材图片和视频。 完全开放免费 来看其中的一些图片: 多的就不发了,视频素材也有!都是一些顶尖摄影师上传的作品 这个宝藏网站是,现有需要的小伙伴可以收藏起来 https://www…

【广度优先搜索】【拓扑排序】【C++算法】913. 猫和老鼠

作者推荐 【动态规划】【map】【C算法】1289. 下降路径最小和 II 本文涉及知识点 广度优先搜索 拓扑排序 逆推 LeetCode913. 猫和老鼠 两位玩家分别扮演猫和老鼠,在一张 无向 图上进行游戏,两人轮流行动。 图的形式是:graph[a] 是一个列…

python-分享篇-使用海龟turtle模块实现幸福大转盘

文章目录 准备代码效果 准备 一、根目录下放图片 代码 from turtle import * import turtle from random import randint import sys #屏幕初始化 screen turtle.Screen() screen.title("幸运大转盘 转转转~") screen.setup(480,450) screen.bgpic("转盘.png…

基于机器学习的地震预测(Earthquake Prediction with Machine Learning)

基于机器学习的地震预测(Earthquake Prediction with Machine Learning) 一、地震是什么二、数据组三、使用的工具和库四、预测要求五、机器学习进行地震检测的步骤六、总结 一、地震是什么 地震几乎是每个人都听说过或经历过的事情。地震基本上是一种自…

Android源码设计模式解析与实战第2版笔记(五)

第七章 时势造英雄 – 策略模式 策略模式的定义 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 策略模式的使用场景 针对同一类型问题的多种处理方式,仅仅…

YOLOv8优化策略:轻量化改进 | RepGhost,通过重参数化实现硬件高效的Ghost模块

🚀🚀🚀本文改进:RepGhost,通过重参数化实现硬件高效的Ghost模块,性能优于GhostNet、MobileNetV3等,在移动设备上具有更少的参数和可比的延迟。 🚀🚀🚀YOLOv8改进专栏:http://t.csdnimg.cn/hGhVK 学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研; 1.原…

污水处理行业:环保远程控制网关S275引领行业变革

近年来,随着城镇工业的不断发展,污水处理厂在城市中扮演着重要角色。作为国家新兴战略产业之一的水处理行业也是蓬勃发展。如何节省成本、保证水质的稳定性和安全性,从而达到节能、减排、节水的目的是工厂考虑的重中之重。 案例 客户是一家…

雨云美国二区云服务器评测

雨云美国二区云服务器评测 官网直接百度搜索雨云就行 我买的时候比较便宜,三个月3.4元,1C1G对于我这种小网站来说够用了 本期测评服务器配置 CPU:1核 内存:1G 硬盘:Linux系统20G,win系统30G 流量&…