大模型推理引擎面试复习大纲

Transformer原理

基本组成、注意力机制含义
transformer有哪些模块,各个模块有什么作用?
transformer的模块可以分为以下几类:
Encoder模块:transformer的编码器,它由多个相同的encoder层堆叠而成,每个encoder层包含两个子层,分别是多头自注意力层前馈全连接层Encoder模块的作用是将输入的文本序列转换为一组连续的向量,表示文本的语义和语法信息。

多头自注意力层的作用?
多头自注意力层可以让模型同时关注不同的位置和不同的特征子空间,从而捕捉到更丰富的信息和语义。例如,对于一个句子,不同的头可能会关注到不同的词性、语法、语义等方面的信息,从而提高模型的理解能力。
多头自注意力层可以增加模型的表达能力和泛化能力,因为不同的头可以学习到不同的参数和权重,从而增加模型的容量和多样性。例如,对于一个翻译任务,不同的头可能会学习到不同的对齐方式,从而提高模型的翻译质量。
多头自注意力层可以提高模型的效率和稳定性,因为每个头的维度都比单个的自注意力层小,从而减少了计算量和内存消耗。例如,对于一个 512 维的输入,如果使用一个自注意力层,那么计算量为 512512=262144;如果使用 8 个头,每个头的维度为 64,那么计算量为 864*64=32768,相比之下,计算量减少了 8 倍。

transformer的encoder模块中前馈全连接层的作用?
transformer的encoder模块中前馈全连接层是一个由两个线性层和一个激活函数组成的简单网络,它接在多头自注意力层的后面,用来对自注意力层的输出进行进一步的变换。

前馈全连接层的作用主要有以下几点:

前馈全连接层可以增加模型的非线性能力,因为自注意力层本质上是一个线性变换,而前馈全连接层引入了激活函数(如ReLU),从而增加了模型的复杂度和表达能力。
前馈全连接层可以提高模型的抽象能力,因为前馈全连接层可以将自注意力层的输出映射到一个更高维的空间,从而提取出更高级的特征和语义。
前馈全连接层可以增强模型的稳定性,因为前馈全连接层配合残差连接和层归一化,可以防止梯度消失或爆炸,提高模型的深度和性能

Decoder模块:transformer的解码器,它由多个相同的decoder层堆叠而成,每个decoder层包含三个子层,分别是多头自注意力层Encoder-Decoder注意力层前馈全连接层。Decoder模块的作用是根据Encoder模块的输出和自身的历史输出,生成目标文本序列。
Positional Encoding模块:transformer的位置编码器,它是一种用正弦和余弦函数生成的波形,用来表示文本序列中每个token的位置信息。Positional Encoding模块的作用是让transformer能够捕捉到文本序列的顺序和结构信息,因为transformer本身没有循环或卷积结构,无法直接感知位置信息。
Add & Norm模块:transformer的残差连接和层归一化模块,它接在每个子层的后面,用来平衡和稳定模型的训练。Add & Norm模块的作用是将子层的输入和输出相加,然后进行层归一化,防止梯度消失或爆炸,提高模型的深度和性能

Encoder-Decoder注意力层的作用?
Encoder-Decoder注意力层可以让解码器的输出与编码器的输出进行交叉注意力计算,从而实现源语言和目标语言之间的对齐。这样可以提高模型的翻译质量和生成流畅度。
Encoder-Decoder注意力层可以让解码器的输出融合编码器的输出中的全局信息和上下文信息,从而增强模型的理解能力和生成能力4。这样可以提高模型的泛化能力和鲁棒性。
Encoder-Decoder注意力层可以让解码器的输出根据编码器的输出中的不同特征子空间进行多头注意力计算,从而捕捉到更丰富的信息和语义5。这样可以提高模型的表达能力和多样性。

transformer中decoder模块的mask有什么作用?
transformer中decoder模块的mask是一种用来防止模型看到未来信息的技术,它可以保证模型的预测是因果的,即只依赖于当前和之前的输入,而不依赖于之后的输入。这样可以提高模型的泛化能力和生成质量。

transformer中decoder模块有两种mask,分别是

Masked self-attention mask:这种mask是用来遮住decoder的输入序列中当前位置之后的token,使得模型在计算自注意力时,只能看到当前位置及之前的token,而不能看到之后的token。这种mask可以防止模型在生成过程中,提前看到要生成的内容,从而影响模型的预测。例如,如果模型要生成一个句子,它不能在生成第一个单词时,就看到第二个单词,否则就会失去生成的意义。
Encoder-decoder attention mask:这种mask是用来遮住encoder的输出序列中无效的部分,即pad的部分,使得模型在计算交叉注意力时,只能看到有效的token,而不能看到无效的token。这种mask可以防止模型在对齐过程中,受到无关的信息的干扰,从而提高模型的对齐精度。例如,如果模型要进行机器翻译,它不能在对齐源语言和目标语言时,把pad的部分也考虑进去,否则就会导致错误的对齐。

使用encoder-decoder attention mask计算交叉注意力时使用的mask作用是什么?这个mask计算位于transformer的那个网络层中?
使用encoder-decoder attention mask计算交叉注意力时,mask的作用是遮住encoder的输出序列中无效的部分,即pad的部分,使得模型在计算交叉注意力时,只能看到有效的token,而不能看到无效的token。这种mask可以防止模型在对齐过程中,受到无关的信息的干扰,从而提高模型的对齐精度。

这个mask计算位于transformer的decoder模块中的每个decoder层的第二个子层,即encoder-decoder attention层。这个层的作用是让decoder的输出与encoder的输出进行交互,从而实现源语言和目标语言之间的对齐。

transformer中多头有什么好处?

多头注意力机制可以增加模型的表达能力和泛化能力,因为不同的头可以学习到不同的参数和权重,从而增加模型的容量和多样性34。例如,对于一个翻译任务,不同的头可能会学习到不同的对齐方式,从而提高模型的翻译质量。
多头注意力机制可以提高模型的效率和稳定性,因为每个头的维度都比单个的自注意力层小,从而减少了计算量和内存消耗5 。例如,对于一个 512 维的输入,如果使用一个自注意力层,那么计算量为 512512=262144;如果使用 8 个头,每个头的维度为 64,那么计算量为 864*64=32768,相比之下,计算量减少了 8 倍。

大模型fine-tunning技术

什么是微调?

微调是一种迁移学习的方法,它指的是在一个已经预训练好的模型的基础上,用少量的数据来对模型进行再训练,使得模型能够适应新的任务或领域。微调的目的是利用已有的模型,减少训练新模型的时间和资源消耗。

parameter-efficient fine-tunning技术

参数高效的fine-tunning技术。通过训练一小组参数来解决传统微调技术需要大量资源的问题。这些参数可能是现有模型参数的子集或新添加一组参数。这些方法在参数效率、内存效率、训练速度、模型的最终质量和附加推理成本方面存在差异。

蒸馏(distillation)

由hinton等人2015年引进

适配器训练(adapter training)

由Houlsby等人2019年引入。
适配器是添加到预训练模型中的小型神经网络,用于特定任务的微调。这些适配器只占原始模型大小的一部分,这使得训练更快,内存需求更低。

渐进收缩(progressive shrinking)

由kaplan等人于2020年引入。这种技术涉及在fine-tuning期间逐渐减小预训练模型的大小。

prompt-tuning技术

prompt-tuning是一种更近期的精调预训练语言模型的方法。重点是调整输入提示(input prompt)而非修改模型参数。这意味着预训练模型保持不变,只有输入提升被修改以适应下游的任务。通过设计和优化一组提示,可以使预训练模型执行特定任务。

prefix tuning(前缀调整)

前缀调整涉及学习特定任务的连续提示。在推理过程中将其添加到输入之前。通过优化这个连续提示,模型可以适应特定任务而不修改底层模型参数。这节省了计算资源并实现了高效的精调。

P-tuning

P-tuning是针对自然语言理解(NLU)任务的,它使用了一个LSTM作为prompt-encoder,将可学习的token编码成virtual token embedding,然后插入到输入序列中,最后预测一个[MASK]位置的输出。

P-Tuning:由Liu等人在论文“P-Tuning: GPT Understands, Learns, and Generates Any Language”(2021)中提出。P-Tuning涉及训练可学习的称为“提示记号”的参数,这些参数与输入序列连接。这些提示记号是特定于任务的,在精调过程中进行优化,使得模型可以在保持原始模型参数不变的情况下在新任务上表现良好。

大模型推理加速的技术

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux------进程的初步了解

目录 一、什么是进程 二、进程的标识符pid 三、getpid 得到进程的PID 四、kill 终止进程 五、父进程与子进程 六、目录中的进程 一、什么是进程 在windows中,我们查看进程很简单,打开任务管理器,就可以看到在运行的进程。这里我们还可以…

STM32H5 Nucleo-144 board开箱

文章目录 开发板资料下载 【目标】 点亮LD1(绿)、LD2(黄)和LD3(红)三个LED灯 【开箱过程】 博主使用的是STM32CubeMX配置生成代码,具体操作如下: 打开STM32CubeMX,File-…

TypeScript 中的“as”语法是什么?

在TypeScript中,as是一种类型断言语法,用于告诉编译器某个值的确切类型。它类似于类型转换,但不会对值进行运行时的实际转换,而只在编译时起作用。 as语法有两种形式: 类型断言:value as Type 这种形式的a…

Autosar PNC网络管理配置(2)-基于ETAS软件

文章目录 BswM初始化PNC对PDU的控制BswMModeRequestPortBswMModeConditionBswMLogicalExpressionBswMRuleBswMActionListEcuMEcuMWakeupSourceEcuMShutdownCauseEcuMRbAlSwitchOffCalloutEcuMRbOnGoOff

webpack打包机制,构建过程和配置

Webpack是一个现代的JavaScript应用程序的模块打包器(module bundler),它主要用于处理应用程序中的资源文件,例如JavaScript文件、样式文件、图像文件等,将它们打包成一个或多个最终的bundle文件,以供浏览器加载。 Webpack的构建…

Raspberry Pi 4B 蓝牙串口(SPP)配置与使用

Raspberry Pi 4B 蓝牙串口(SPP)配置与使用 文章目录 Raspberry Pi 4B 蓝牙串口(SPP)配置与使用1、蓝牙相关命令工具2、Linux中的蓝牙堆栈3、蓝牙串口配置4、蓝牙串口数据发送与接收 本文将详细介绍如何在Raspberry Pi 4B卡片电脑中…

permission路由

一.路由守卫的介绍 1.全局前置守卫 router.beforeEach 跳转到一个页面之前 执行的钩子函数A---->B A开始跳转 , 还没有到B。 2.全局解析守卫 router.beforeResolve 3.全局后置钩子 router.afterEach 跳转到一个页面之后执行的钩子函数A-B,已经到了B页面。 4.路由独享…

快速入门java网络编程基础------Nio

一. NIO 基础 哔哩哔哩黑马程序员 netty实战视频 0.什么是nio? NIO(New I/O)是Java中提供的一种基于通道和缓冲区的I/O(Input/Output)模型。它是相对于传统的IO(InputStream和OutputStream)模型…

Spring boot - Task Execution and Scheduling @Async

SpringBoot的任务执行器 Spring Boot通过auto-configuration机制自动创建了任务执行器Task Execution,因此在SpringBoot项目中,你不需要任何配置、也不需要自己创建Task Execution就可以直接使用它。 Spring Boot通过auto-configuration机制创建的任务…

一条SQL执行的过程

查看当前数据库线程数目 SHOW GLOBAL STATUS like Thread%;Threads_cached:被缓存的线程个数。Threads_connected:当前正在连接的线程个数,详细指令:SHOW FULL PROCESSLIST。Threads_created:总共创建的线程个数。Thr…

nodejs+vue+ElementUi银行贷款业务管理系统

银行贷款管理系统的主要实现功能包括:管理员:首页、个人中心、用户管理、银行管理、贷款信息管理、贷款申请管理、金额发布管理、还款信息管理、通知信息管理,用户:首页、个人中心、贷款信息管理、贷款申请管理、金额发布管理、还…

phpinfo和php -m 加载的php.ini不一致

目的: 将phpinfo在web中展示的php.ini和在命令行中展示的php.ini加载路径设置一致。 原本的php.ini加载路劲是: /usr/local/lib/php.ini 解决思路: (1)which php 查看服务器加载的php的位置,这里原来是&a…

差分算法模板

差分算法模板 一维差分一维insert函数(构造差分数组和实现区域加数操作)一维差分模板题 二维差分二维insert函数(构造差分数组和实现区域加数操作)二维差分模板题 一维差分 差分主要是计算出某个区域段的数分别加上一个数 先给定一个原数组a:a[1], a[2], a[3], a[n]…

go语言开发工作中常用命令

Go 编程语言中的常用命令主要用于构建、测试、运行和管理项目。以下是一些常见的 Go 命令,以及它们对项目的用途: go run 用途: 编译并运行 Go 程序。 示例: go run main.gogo build 用途: 编译 Go 程序&#xf…

CNN:Convolutional Neural Network(上)

目录 1 为什么使用 CNN 处理图像 2 CNN 的整体结构 2.1 Convolution 2.2 Colorful image 3 Convolution v.s. Fully Connected 4 Max Pooling 5 Flatten 6 CNN in Keras 原视频:李宏毅 2020:Convolutional Neural Network 1 为什么使用…

NumPy:从初识到实战,探索Python科学计算的无限可能

NumPy 在浩瀚的Python编程世界中,有一个强大的库如星辰般璀璨,它是数据科学家、机器学习工程师乃至量化金融分析师手中的利器——NumPy,它以其高效的数据处理能力和便捷的矩阵运算机制,在科研与工程领域中占据着举足轻重的地位。…

Java BIO、NIO(通信/群聊系统、零拷贝)、AIO

Java BIO、NIO(通信/群聊系统、零拷贝)、AIO BIO、NIO、AIO特点和场景 BIO(Blocking I/O)、NIO(Non-blocking I/O)、AIO(Asynchronous I/O)是Java中用于处理I/O操作的三种不同的I/O模型,它们具…

P1080 [NOIP2012 提高组] 国王游戏 贪心

[NOIP2012 提高组] 国王游戏 传送门 题目描述 恰逢 H 国国庆,国王邀请 n n n 位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这 n n n 位大臣排成一…

C. Partitioning the Array - 思维 + gcd

题面 分析 如果让两个数满足对某一个数取模后相等,那么也就是 x m o d m y m o d m x mod m y mod m xmodmymodm,那么也就是 ( x − y ) m o d m 0 m o d m (x - y) mod m 0 mod m (x−y)modm0modm,因此可以推出,对于每一个…

day16 二叉树的最大深度 n叉树的最大深度 二叉树的最小深度 完全二叉树的节点数

题目1:104 二叉树的最大深度 题目链接:104 二叉树的最大深度 题意 二叉树的根节点是root,返回其最大深度(从根节点到最远叶子节点的最长路径上的节点数) 递归 根节点的的高度就是二叉树的最大深度 所以使用后序遍…