当前位置:   article > 正文

LLM记录-常见问题部分_llm为什么会出现复读机问题

llm为什么会出现复读机问题

1. 什么是 LLMs 复读机问题?

        LLMs复读机问题指的是模型倾向于不适当地复制用户输入的文本或者在回复中重复使用相同的句式和短语。这种倾向可能源自模型在处理输入时的一种简便路径,即模仿而不是创造性地响应。生成的内容往往缺乏变化和新颖性,这使得交互体验变得预测性强且单调。

2. 为什么会出现 LLMs 复读机问题?

  1. 训练数据的偏差问题:大型语言模型的预训练过程通常依赖大量未标记的数据。若这些数据中存在高度重复的文本,或某些句子及短语频繁出现,则模型在文本生成时可能过度沿用这些普遍模式。
  2. 训练目标设置的局限:自监督学习是训练大型语言模型的一种常用方法,它主要通过预测下一单词或发现隐藏单词来学习。这种训练设置可能导致模型偏好生成与输入过于类似的文本,进而引发重复性输出的问题。
  3. 训练材料多样性不足:尽管大型语言模型能处理大量数据,但如果所用的训练材料在语言表达和情境上缺乏变化,模型可能不会学习到充分的多样性和创造力,这也可能促成所谓的复读现象。

3. 如何缓解 LLMs 复读机问题?

  1. 使用多元化训练数据集: SFT 训练的越充分,重复的概率越低,在模型训练阶段,采用来源广泛、风格各异、覆盖多个领域的数据集,这有助于减少数据偏见和避免重复性文本。
  2. 实施随机性注入:在文本生成阶段,通过引入随机选择词汇或短语,或者实施随机的变形操作,可以提升文本的变异度。这可以通过对模型输出的采样或增添随机变量来达成。
  3. 调节温度系数:温度系数是控制生成文本变异度的关键参数。调整此参数能够平衡文本的创造性和多样性,其中较高的温度设置将引入更多随机性,有效降低复读现象。
  4. 优化Beam搜索策略:beam search 设置大点,在应用 Beam 搜索算法进行文本生成时,调整 Beam 搜索宽度宽度,可以有效控制文本的创造性和多样性。
  5. 后期处理与筛选:通过后期处理环节去除生成文本中的重复句式,监督模型输出中断

 4、什么是CRF

        CRF 的核心思想是训练 Transitions 矩阵,该矩阵主要是刻画 tag 与 tag 之间的变化关系。 CRF的作用是通过刻画这种关系来约束模型的生成,比如 BIO, B后面是I, I前面不能是O等。         CRF 的损失函数是 正确路径的得分 - 所有路径的得分和。

5、什么是Adam?

  •  Adam优化器 是融合了 momentum 和 RMSProp 的思想,优点是收敛速度快 
  • Momentum:历史的梯度对这次的梯度产生影响,使得优化过程具备惯性 
  • RMSProp:引入自适应学习率。 针对有些参数优化快,有些参数优化慢的情况,来通过引 入历史梯度对学习率进行动态调整,从而实现不同的参数有不同的学习率。 简单来说,Adam 就是通过历史梯度的平均值来加速收敛,通过历史梯度的平方平均值来修正学习

6、FP16,BP16区别?

        FP16 是范围比较小,但是精度比较高;

        BP16范围大,但是精度低。

        FP16有两个问题:

  • 上溢,下溢出问题,这个可以采用 损失缩放 解决。但是实际在SFT中,不更改网络的情况 下,不太会遇到上溢和下溢问题。但是如果改动了的话,就会遇到,比如说我之前引入上层 Attention的时候就出现过这个问题。
  • 精度不够。这个可以采用混合精度训练。

7、介绍下 GLU 和 SwiGLU

        GLU 的核心思想是通过门控机制来过滤信息,进而提高网络的表达能力和泛化能力。其计算公 式如下:

        f(x) = linear_f(x)

        g(x) = linear_g(x)

        out = f(x) * torch.sigmoid(g(x))

        此外,门控机制有助于长距离建模。计算当前的梯度: 计算梯度加权平均: 计算梯度平方的加权平均: 计算最终的梯度值: SwishGLU 的核心思想是将 Swish 和 GLU 结合起来,其公式变为:

        f(x) = linear_f(x)

        g(x) = linear_g(x)

        out = f(x) * g(x) * torch.sigmoid(g(x))

        通过对比发现,SwishGLU 实际上只是多乘了一个 g(x)。

8、介绍下 Lora

        lora 的核心思想是低秩分解,即将一个大矩阵 W 转化为 W + AB,其中我们保证初始化的时候 BA = 0,

        论文中采用A是高斯初始化,B 为 0 初始化。

        在训练过程中,固定 W 的参数,只优化 BA 的参数。此时的优化参数从 d * k 变为了 r * (d + k)。

9、介绍下 Transformer

1. 自注意力

        自注意力机制是Transformer的核心部分。它可以动态地将输入序列中的不同位置之间的关系建模,并对不同位置的信息进行加权。自注意力机制利用了三个输入:querkeyvalue。通过计算查询和键之间的相似度得到注意力权重,然后将注意力权重与值进行加权求和得到输出。

2. multi-head attention

3. QKV 为啥要进行矩阵变换

我认为核心的思想就是:扩大参数量,提高模型的泛化能力。 实际上,Muti-Query Attention,采用KV 进行参数共享同样能获得较好的结果。 

4. 为什么要scale,层归一化,残差块连接

        目的是进行归一化。

        Transformer还引入了残差连接和层归一化来促进训练的稳定性和收敛性。残差连接允许信息在不同层之间进行直接跳跃,层归一化则对每一层进行归一化操作,减少了梯度的变化。

10、LN与 BN?

        首先,二者的区别在于,LN 对层进行 Normalization , BN 对 batch 进行 Normalization。 

         在transformer中采用LayerNorm,与BatchNorm不同的是它是对每单个batch进行的归一化,而batchnorm是对所有batch一起进行归一化的
        Layer normalization与BN相比,不需要对一大批数据进行求均值和方差,可以适用于训练和测试过程中不同batch size的情况。同时,Layer normalization还能够处理RNN等具有时间依赖性质的神经网络。

        LN 不依赖于 batch size,在batch size 不大的情况下,BN的效果并不好。 从样本角度看,nlp 中的输入,每个token的出现位置是不固定的,每个句子的长度也是不 一样的。同样的一个token, 

11、介绍一下交叉熵

        交叉熵的本质是 对数损失,pytorch 里面实现的是,对于每一个样本来说,计算预测为真实标 签的对数损失值即:      -1@log(预测为该真实标签的概率)        

 12、两种位置编码的区别:绝对和相对?

        主要可以分为两种:绝对位置编码和相对位置编码。

         绝对位置编码的思想是通过某种方式计算出位置向量,然后将该向量与输入向量想加。主要 有训练式和三角式两种。s

          绝对位置编码一种基于位置嵌入的方法,其中每个位置都被分配了一个唯一的位置向量。这些向量是固定的,与输入序列的内容无关。这种编码方式对于处理较短的序列效果较好,但在处理长序列时可能会存在问题,因为序列的长度超过了模型能够处理的位置编码的范围

          相对位置编码的思想是在计算Attention时候引入当前位置和被attention位置之间的相对距 离。典型的有旋转位置编码和ALIBI位置编码。

        相对位置编码是一种基于相对位置的方法,其中每个位置被编码为一个偏移量,表示该位置与其他位置之间的相对距离。相对位置编码可以通过在输入嵌入中添加额外的信息来实现。这种编码方式可以处理长序列,有更好的外推性,并且能够在不同的上下文中保持一定的一致性。

13、什么是旋转位置编码RoPE?

        RoPE的主要思想:

  • RoPE通过绝对位置编码的方式实现相对位置编码,综合了绝对位置编码和相对位置编码的优点。
  • 主要就是对attention中的q, k向量注入了绝对位置信息,然后用更新的q,k向量做attention中的内积就会引入相对位置信息了

        具用较相对位置更好的外推性

14、什么是大模型外推性?

        外推性是指大模型在训练时和预测时的输入长度不一致,导致模型的泛化能力下降的问题。

        例如,如果一个模型在训练时只使用了512个 token 的文本,那么在预测时如果输入超过512个 token,模型可能无法正确处理。这就限制了大模型在处理长文本或多轮对话等任务时的效果。

15、介绍一下分词方式?

        1、中文分词

  • 基于词典的方法:正向/逆向最大匹配法、最小切分。。。
  • 基于统计的方法:N-最短路径方法、、基于词的n元语法模型的分词方法、由字构词的汉语分词方法、。。。
  • 基于深度学习的方法:LSTM+CRF、BiLSTM+CRF。。。

2、英文分词

        tokenize有三种粒度:word/subword/char

        常见的算法:BPE 和 WordPiece

16、并行方式?

        并行方式可以分为:数据并行,模型并行两种,其中模型并行可以分为流水线并行和张量并行。

  • 数据并行: 缺点:显存利用率不高
  • 流水线并行:模型不同层放到不同gpu上,缺点:GPU 时间利用不足
  • 张量并行: 将一个tensor 拆分到多张卡上,缺点:通信开销大

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/558602
推荐阅读
相关标签
  

闽ICP备14008679号