【大模型面试题及答案一】5分钟快速掌握

1.大模型复读机问题

大模型复读机表现

大型语言模型在生成文本时重复之前已经生成的内容。

大模型复读机原因

训练数据的影响

1.数据模式重复:LLMs 是通过大量的文本数据训练出来的,模型通过学习这些数据的模式来生成文本。如果某些短语或结构在训练数据中出现得非常频繁,模型会倾向于生成与这些内容类似的输出。

2.数据覆盖不均: 训练数据中的某些部分可能占据较大比重,导致模型更频繁地生成与这些内容相似的回答。例如,常见的问答对或模板化的句子会被模型反复使用。
模型架构的限制
1.模型缺乏创新能力:尽管LLMs在生成文本时展示出一定的多样性,但其本质上是基于概率预测下一个词或短语。

2.对历史上下文的依赖: 模型在生成文本时,会参考上下文信息。如果上下文和训练数据中某些高频场景类似,模型可能会重复生成与训练数据高度相似的内容。

如何缓解 LLMs 复读机问题?
  1. 底层数据方面

    • 数据去重和清洗: 在训练数据处理中,可以通过去重或调整数据分布,减少过于重复或高频的内容,以提高模型的多样性生成能力。
    • 平衡训练数据: 通过在训练数据中加入更多样化的内容和表达方式,可以帮助模型学习更广泛的语言模式,减少生成“复读机”式的输出。
  2. 改进模型架构或者参数:

    • 采用Beam-search multinomial sampling解码生成
      方式:结合了Beam-search和multinomial sampling的方式,每个时间步从num_beams个字中采样。
      参数:do_sample = True, num_beams > 1
    • Temperature设置变大
      方式:通过温度,控制每个字的概率分布曲线。温度越低,分布曲线越陡峭,越容易采样到概率大的字。温度越高,分布曲线越平缓,增加了低概率字被采样到的机会。
    • Top-K采样
      方式:每个时间步,会保留topK个字,然后对topk个字的概率重新归一化,最后在重新归一化后的这K个字中进行采样。
      参数:top_k
      缺点:在分布陡峭的时候仍会采样到概率小的单词,或者在分布平缓的时候只能采样到部分可用单词。
    • Top-P采样
      方式:每个时间步,按照字出现的概率由高到底排序,当概率之和大于top-p的时候,就不取后面的样本了。然后对取到的这些字的概率重新归一化后,进行采样。
      参数:top_p (取值范围:0-1)
      top-P采样方法往往与top-K采样方法结合使用,每次选取两者中最小的采样范围进行采样,可以减少预测分布过于平缓时采样到极小概率单词的几率。
    • 惩罚重复repetition_penalty
      方式:在每步时对之前出现过的词的概率做出惩罚,即降低出现过的字的采样概率,让模型趋向于解码出没出现过的词。
      参数:repetition_penalty(float,取值范围>0)。默认为1,即代表不进行惩罚。值越大,即对重复的字做出更大的惩罚。
    • 惩罚n-gram
      方式:限制n-gram在生成结果中出现次数。
      参数:no_repeat_ngram_size,限制n-gram不出现2次。 (no_repeat_ngram_size=6即代表:6-gram不出现2次)。
  3. 应用后处理技术:

    • 去重和多样化生成: 在生成文本后进行后处理,去掉或修改重复性较高的部分,保证生成内容的独特性和创新性。
    • 基于反馈的动态调整: 根据用户反馈或交互结果,动态调整模型生成策略,逐步减少重复生成问题。

2.prefix Decoder 和 causal Decoder 和 Encoder-Decoder 区别是什么

  • Prefix Decoder: 生成时依赖前缀信息,适用于有前缀提示的生成任务。
  • Causal Decoder: 生成时只考虑之前生成的内容,确保因果性,用于自回归文本生成任务。
  • Encoder-Decoder: 通过编码器将输入序列编码成隐表示,再由解码器生成输出序列,适用于序列到序列的任务,如机器翻译。
  1. Prefix Decoder(前缀解码器): Prefix Decoder 是一种变体的解码器结构,在生成式任务中使用。它在解码过程中接收一个前缀序列(通常是部分输入或已生成的序列),并基于该前缀生成后续的输出。

  2. Causal Decoder(因果解码器):Causal Decoder 是典型的自回归(autoregressive)模型,在生成每个词时,只考虑之前已经生成的词,不考虑当前词之后的信息。这种结构保证了生成过程的因果性(即先生成前面的词,才能生成后面的词),如GPT系列模型。

  3. Encoder-Decoder(编码器-解码器): Encoder-Decoder 是一种双模块结构,通常由一个编码器(Encoder)和一个解码器(Decoder)组成。编码器负责将输入序列编码成一个隐状态表示(通常是固定长度的向量),然后解码器根据这个隐状态表示生成目标序列,典型模型包括Transformer和Seq2Seq模型。
    你补充的几点对理解为何当前大模型大部分采用Decoder-only结构提供了更深入的见解:

3.为什么现在的大模型大部分是Decoder only结构

  • 工程上的便捷性(a):因为模型每次生成输出都可以基于上下文中的所有历史信息,而不需要依赖额外的编码器部分来处理输入,这简化了模型的使用和部署。

  • Zero-shot generation的优势(b):Decoder-only模型在未进行微调的情况下,更擅长处理Zero-shot generation任务。这种模型可以直接基于输入提示生成相关的输出,而不需要特定任务的数据进行训练,这使得它在广泛任务中的表现非常强大和灵活。

  • 微调后的性能权衡(c):虽然Encoder-Decoder结构在微调后可能在特定任务上表现优于Decoder-only,但它们通常需要更大的参数量,导致计算资源消耗更高。在实际应用中,考虑到性能和资源的权衡,Decoder-only结构可能是更实际的选择。

  • Attention矩阵的秩和表达能力(d):Decoder-only模型中的attention matrix是三角矩阵,具有满秩特性,这意味着它在捕捉复杂关系和表达能力方面更强。而在Encoder中,attention matrix由于是低秩的,因此其表达能力相对较弱,这进一步解释了为什么Decoder-only结构在语言模型中的应用更为广泛。

4.大模型中常用的的激活函数

在这里插入图片描述

  • ReLU(Rectified Linear Unit): ReLU 是最常用的激活函数之一。它的数学表达式为
    ReLU ( x ) = max ⁡ ( 0 , x ) \text{ReLU}(x) = \max(0, x) ReLU(x)=max(0,x)当输入大于0时输出与输入相同,否则输出为0。ReLU 简单且计算效率高,但可能出现“神经元死亡”问题,即大部分神经元输出为0,导致模型无法学习。

  • GeLU(Gaussian Error Linear Unit): GeLU 是一种平滑的激活函数,定义为 GeLU ( x ) = x ⋅ Φ ( x ) = x ⋅ 1 2 [ 1 + erf ( x 2 ) ] \text{GeLU}(x) = x \cdot \Phi(x) = x \cdot \frac{1}{2} \left[ 1 + \text{erf}\left(\frac{x}{\sqrt{2}}\right) \right] GeLU(x)=xΦ(x)=x21[1+erf(2 x)]
    它通过结合高斯分布,使得激活函数对负值有一定的保留,同时保留了正值的特性。

  • Swish: Swish 是由谷歌提出的一种激活函数,定义为 Swish ( x ) = x ⋅ σ ( x ) = x 1 + e − x \text{Swish}(x) = x \cdot \sigma(x) = \frac{x}{1 + e^{-x}} Swish(x)=xσ(x)=1+exx
    它是 ReLU 和 Sigmoid 函数的结合,保留了ReLU的非线性特性,同时避免了ReLU的“神经元死亡”问题,并且具有更好的平滑性。

从图像中可以看到,ReLU 是分段线性的,而 GeLU 和 Swish 则是平滑的曲线。GeLU 和 Swish 都在 x 接近 0 的区域具有较小的负输出,而 ReLU 在 x 小于 0 时输出恒为 0。

5.怎么让大模型处理长文本

  1. 滑动窗口法 (Sliding Window)
  • 方法: 将长文本切分为多个重叠的短片段,分别输入模型进行处理。然后结合这些片段的输出结果。
  • 优点: 简单直接,不需要修改模型架构。
  • 缺点: 对于跨越多个窗口的上下文信息处理不佳,容易导致信息丢失。
  1. 分段处理 (Chunking)
  • 方法: 将长文本切分为不重叠的片段,每个片段单独输入模型。可以通过特定的策略(如末端词或句子边界)进行切分,减少上下文信息的丢失。
  • 优点: 简单易行,可以与现有模型架构兼容。
  • 缺点: 与滑动窗口法类似,跨段的上下文信息可能被忽略。
  1. 分层模型 (Hierarchical Models)
    • 方法: 首先用基础模型对每个文本片段进行编码,然后在高层模型中汇总这些片段的编码向量以获得全局表示或输出。
    • 优点: 能较好地保留和利用全局上下文信息。
    • 缺点: 模型设计较为复杂,训练难度增大。
  2. 使用记忆网络 (Memory Networks)
  • 方法: 使用记忆网络来扩展模型的上下文处理能力,使模型能够访问更长时间段内的信息。
  • 优点: 能够有效保留长期上下文信息。
  • 缺点: 需要额外的模型设计,复杂度较高。
  1. 总结和摘要
    • 方法: 首先将长文本进行自动摘要,生成较短的文本,然后输入模型进行处理。
    • 优点: 减少了输入文本的长度,同时保留关键信息。
    • 缺点: 依赖摘要质量,可能导致信息丢失。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值