【LLM】13:大模型算法面试题库
一、Transformer篇
1. Transformer的结构是什么
Transformer 由 编码器(Encoder) 和 解码器(Decoder) 两部分组成,两部分都包含目标嵌入层、位置编码、多头注意力层、前馈网络,且有残差连接和层归一化,注意:解码器使用的是掩码多头。
2. Transformer的核心优势是什么
- 并行能力强:不同于RNN,transformer的自注意力机制消除了序列数据的时间依赖,允许模型并行训练。
- 超长序列建模能力:自注意力机制可以直接捕捉序列中任意位置的依赖关系,而不受距离的限制。
- 灵活性和扩展性:transformer在CV、NLP都有很好的表现,自编码、自回归、T5架构涌现很多高级模型。
3. 什么是Transformer绝对位置编码?
- 为什么Transformer需要位置编码:Transformer架构完全基于自注意力机制,并不具备像RNN和CNN那样有保存顺序信息。因此,为了让模型能够知道每个输入元素在序列中的位置,必须显式地为每个输入添加额外的位置信息。
- 什么是绝对位置编码:是最常见的做法,通过为每个位置(每个token)分配一个独特的向量表示该位置的信息,这些位置编码会被加入到输入的词向量中。这样,模型可以根据每个位置的编码来推断元素的相对或绝对位置。
- 绝对位置编码优势:
①:固定且确定:最初的 Transformer 使用的是 正弦和余弦函数 来计算每个位置的编码,能确保位置编码不会因训练而变化。
②:适用长序列:不同频率的正弦和余弦函数,能够捕捉到非常细致的位置信息。 - 绝对位置编码的局限性:
①无法直接表达相对位置关系:比如位置5,6,与位置100,101的位置编码是相似的,但它们之间的相对距离对模型是不可见的。
②:难以泛化到极长序列:对于超出训练序列长度范围的序列,它们的信息就会丢失。
4.位置编码有哪些?它们各有什么不同
- 绝对位置编码:使用 正弦和余弦函数 来为每个位置生成唯一的编码,最早在原始transformer论文中提出。
- 相对位置编码:试图解决绝对位置编码的局限性,尤其在长序列处理和相对位置关系非常重要的任务中。它是依赖元素间的相对位置,实现方式一般是在计算注意力得分时,将位置差值作为额外偏置项加入。优点是:更加适用于长序列,缺点是:增加了模型的复杂性。
- 旋转位置编码RoPE:是一种创新的相对位置编码。通过旋转嵌入空间的向量,将相对位置关系融入自注意力计算过程中。优点:能显式的捕捉相对位置关系,缺点是:相对复杂,需要进行额外的旋转操作。
- 可学习位置编码:位置编码不再是固定函数生成,而是学习得到,在训练过程中优化位置编码的值。优点是:灵活度高,缺点是:训练不稳定,缺乏可解释性。
5.LLaMa为什么用旋转位置编码:
- 长序列的高效处理:相比传统的绝对位置编码,旋转位置编码更加灵活、有效的处理长序列。
- 相对位置的表达能力:能更好的捕捉元素间的相对位置关系,从而更好的学习长程依赖。
- 计算效率和简洁性:相比正弦余弦编码更加高效,计算成本更低。
- 迁移学习的优势:具有更强的迁移能力,在不同长度的序列上均能稳定工作。
6.为什么transformer块使用LayerNorm而不是BatchNorm?
BatchNorm | LayerNorm | |
---|---|---|
面向的数据 | 整个批次样本 | 单一的样本 |
归一化维度 | 整个批次样本中对每一层、每个特征(通道)进行归一化 | 对每个样本的所有特征(通道)进行归一化 |
应用方式 | 计算整个批次数据的均值和方差 | 只使用当前样本计算均值和方差 |