KVCache原理简述

2023-09-21 12:40:25

在GPT的推理过程中,它根据完整的提问和回答的已生成部分,来生测下一个词(的概率)。

例如,我们的提问是【天王盖地虎,】,回答是【宝塔镇河妖。】。

那么第一次,GPT根据【天王盖地虎,】生成【宝】,之后根据【天王盖地虎,宝】生成【塔】,以此类推,直到碰上终止符。

这里面提问【天王盖地虎,】的QKV实际上重复计算了很多遍。由于GPT是单向注意力,每层的提问的KV只根据上一层的提问的KV(或提问的嵌入向量)计算,不跟据回答中任何字符的KV计算,完全可以把它们缓存起来避免重复计算。

如下图所示:

在这里插入图片描述

改进之后,我们GPT根据【天王盖地虎,】生成【宝】,同时还有KV(天王盖地虎,),然后根据KV(天王盖地虎,)和【宝】生成【塔】以及KV(天王盖地虎,宝),以此类推。

至于为什么不缓存Q,因为推理场景下我们只取最后一个词,那么每层输出HS[-1]就可以了。HS[-1]根据全部的V和注意力矩阵的最后一行A[-1]计算,而A[-1]根据Q[-1]和全部的K计算,Q[-1]只根据输入最后一个字符X[-1]计算。

所以我们通过传入KVCache保证K和V是完整的,输入字符只传入最后一个,也就是上一次GPT生成出来的字符,就可以了。

更多推荐

对不起,是我“造谣传谣”了

前天发布了一篇推文,传递了一条错误的信息:不连接VPN也可以访问Obsidian插件市场了。没想到一石激起千层浪,很多朋友留言反馈说:然后我慌了。自己竟“沦为”一个“造谣传谣”者,为此陷入“不知该如何处理”的慌乱之中。于是求助外援:然而,最让我感动的是,在纠结于“删”与“不删”期间,陆续收到很多朋友友善的留言。他们没有

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示

2.1无符号数和有符号数2.1.1无符号数没有符号的数,其实就是非负数。在计算机中用字节码表示,目前最常用的是八位和十六位的。2.1.2有符号数将正负符号数字化,0代表+,1代表-,并把代表符号的数字放在有效数字前,就组成了有符号数。1.机器数和真值我们接下来要用到的真值都指的是带符号的二进制数。机器数是相对于真值而言

activemq学习笔记

传统的request/response在客户端提交请求后必须等待服务端处理完毕给于反馈,这期间客户端完全处于空闲等待状态,甚至有可能超时;·基于消息中间件的request/response客户端提交请求,不必等待服务器处理,客户端可以继续进行其它操作,而服务端形成命令的消息列队,在空闲的时候进行处理,客户端可以异步接收

修改和完成SpringSecurity的登录功能

1、配置SpringSecurity改变默认表单页面但是流程不变添加loginPage、loginProcessingUrl方法//做拦截@Overrideprotectedvoidconfigure(HttpSecurityhttp)throwsException{//请求授权http.formLogin().log

【python爬虫】爬虫所需要的爬虫代理ip是什么?

目录前言一、什么是爬虫代理IP二、代理IP的分类1.透明代理2.匿名代理3.高匿代理三、如何获取代理IP1.免费代理网站2.付费代理服务四、如何使用代理IP1.使用requests库2.使用scrapy库五、代理IP的注意事项1.代理IP可能存在不稳定性2.代理IP可能存在安全问题3.代理IP可能存在限制六、代理IP的

【python】使用Nuitka打包python项目-demo示例

文章目录写在前面参考准备工作QuickStart参数说明使用打包程序输出目录结构日志2023.09.20写在前面本文的demo示例的代码/数据可从笔者的GitCode获取:HelloWorld参考Nuitka官网:https://github.com/Nuitka/NuitkaNuitka使用:https://daob

openGauss天津用户组招募正式启动,欢迎报名

openGauss天津用户组招募正式启动,欢迎报名!openGauss用户组(openGaussUserGroup,简称oGUG)是一个让openGauss用户就技术特性、最佳实践、运营进展等方向交流的开放性本地社区。oGUG致力于构建一个开放、多元、包容的openGauss城市用户交流社区,鼓励当地任何企事业单位、社

MySQL入门教程

MySQL是最流行的关系型数据库管理系统1、什么是数据库?数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。所谓的关系型数据库,是建立在关系模型基础上的数

计算机毕业设计nodejs+vue医院固定资产管理系统

采用B/S结构,使得系统更加容易维护。系统的设计与实现主要实现角色有管理员和用户,管理员在后台管理资产申领模块、资产申购模块、资产入库模块、资产出库模块、用户表模块、、科室模块、固定资产模块、配置文件模块。优化代码结构。后台采用nodejs语言开发,前台页面和后台管理页面使用vue,HTML,CSS等技术开发,使用My

视频转漫画怎么转?分享三个简单便捷的操作

在现代社会,人们对于视频和漫画的需求越来越多,而将视频转换为漫画则是一种新的趋势。本文将分享三个简单便捷的操作方式和注意事项,以帮助读者更好地进行视频转漫画的操作。操作方式一:使用手机转换工具对于经常使用手机来比编辑图片或视频的小伙伴我们可以使用书单视频助手来把视频转成漫画效果,我们打开这款工具后,然后在热门工具板块中

Vue 2 进入、离开和列表过渡

前言Vue提供了多种方式来实现过渡效果。在CSS过渡和动画中自动应用class配合CSS动画库在过渡钩子函数中使用JavaScript操作DOM配合JavaScript动画库单元素/组件的过渡将元素或组件放在<transition>中可以在下列情形中触发过渡效果:使用了v-if使用了v-show使用了动态组件组件根节点

热文推荐