大模型面试题(一)

提前讲一句,面试题是从小红书等平台找到的,只是对部分答案进行了完善,并添加了一些拓展

题目:


1.在指令微调中,如何设置、选择和优化不同的超参数,以及其对模型效果的影响?

主要的超参数包括学习率、batchsize大小、训练周期数、指令长度等。
学习率:过高的学习率可能导致训练不稳定,而过低的学习率会导致训练速度过慢。使用如学习率衰减策略或者学习率预热(适合大规模训练/复杂网络结构)可以优化学习率设置。
batchsize大小:较大的批量可以提高训练的稳定性和效率,但会增加内存需求。通过梯度累积可以在有限内存条件下模拟较大批量的效果。

训练周期数∶需要足够的训练周期来确保模型充分学习,但过多的训练可能导致过拟合。
指令长度︰指令的长度应与任务复杂度相匹配,过长的指令可能导致模型难以学习,而过短的指令可能提供不了足够的信息。

ps:指令微调的好处:

  • 提升大模型在特定任务上的表现,使其能够更好地理解和执行指令。
  • 结合指令和示例数据,使模型能够学习到更具体、更实用的知识,减少模型幻觉现象的产生。
  • 通过少量的指令和示例数据就能进行有效的微调,减少了模型对大规模数据的依赖。


2.解决显存不够的方法有哪些?

1. 降低批量大小(Batch Size)

  • 方法:减少每次训练过程中传递给模型的数据量。
  • 优点:直接减少了每次迭代所需的显存。
  • 缺点:较小的批量可能影响模型的收敛速度和稳定性。

2. 使用梯度累积(Gradient Accumulation)

  • 方法:通过多次前向和后向传播,累积梯度,再执行一次参数更新,模拟大批量训练的效果。
  • 优点:允许在有限的显存条件下模拟较大的批量大小。
  • 缺点:增加了训练的复杂度和总体训练时间。

3. 模型剪枝(Model Pruning)

  • 方法:去除模型中不重要的权重或神经元以减少模型的大小。
  • 优点:可以显著减少模型的计算和存储需求,同时保持或仅轻微降低模型性能。
  • 缺点:需要仔细选择剪枝策略,以避免对模型性能产生过大影响。

4. 混合精度训练(Mixed Precision Training)

  • 方法:结合使用32位(float32)和16位(float16)精度的数据,减少显存使用并加速计算。
  • 优点:可以显著减少显存使用量,同时加速模型的训练。
  • 缺点:可能需要对训练过程进行特别的调整,比如增加数值稳定性措施。

5. 分布式训练(Distributed Training)

  • 方法:使用多个GPU或机器并行训练模型。
  • 优点:通过在多个设备上分配计算和存储需求,可以扩展训练大型模型的能力。
  • 缺点:增加了训练的复杂度,需要有效的通信和同步机制。

6. 使用模型并行性(Model Parallelism)

  • 方法:将模型分割成多个部分在不同的GPU上并行计算。
  • 优点:允许训练比单个GPU显存限制还要大的模型。
  • 缺点:需要精心设计模型的分割方式,可能会因为设备间通信导致性能瓶颈。

ps:P-Tuning和Prefix-Tuning是ChatGLM团队提出,未必在大多数模型上都好用,适用于ChatGLM

3.请解释P-tuning的工作原理,并说明它与传统的fine-tuning方法的不同之处。

(1)最开始使用prompt-tuning,在输入序列前,额外加入一组伪 Embedding 向量,freeze输入的文本向量和模型内部参数,只训练这组伪 Embedding,从而达到参数微调的效果,但是当数据量比较大时有局限性

P-tuning引入了可学习的prompt,将Prompt转换为可以学习的Embedding层,并用MLP+LSTM作为生成器来生成伪Embedding向量,这些prompt作为模型输入的一部分参与训练,而不是固定不变的文本。这允许prompt在训练过程中与模型参数一起优化,从而更好地适应特定任务。

P-Tuning:

相比于Prefix Tuning,P-Tuning加入的伪 Embedding 向量,仅限于输入层,没有在每一层都加;另外,伪 Embedding 向量的位置也不一定是前缀,插入的位置是可选的。

(2)与传统的fine-tuning相比,P-tuning不需要对模型的所有参数进行大规模调整,而是通过优化少量的额外参数来实现定制化的调整,可以减少过拟合的风险并提高训练效率。

针对问题4,有必要先了解一下P-tuning v2,关注P-tuning v2与Prefix-tuning的区别

P-Tuning v2 vs Prefix-tuning-CSDN博客

再了解Prompt Tuning和P-Tuning等方法存在两个主要的问题:

第一,缺乏模型参数规模和任务通用性。

  • 缺乏规模通用性:Prompt Tuning论文中表明当模型规模超过100亿(10B)个参数时,prompt优化可以与全量微调相媲美。但是对于那些较小的模型(从100M到1B),prompt优化和全量微调的表现有很大差异,这大大限制了提示优化的适用性。
  • 缺乏任务普遍性:尽管Prompt Tuning和P-tuning在一些 NLU 基准测试中表现出优势,但提示调优对硬序列标记任务(即序列标注)的有效性尚未得到验证。

第二,缺少深度提示优化,在Prompt Tuning和P-tuning中,prompt只被插入token层(transformer第一层的输入embedding序列)中,在接下来的transformer层中,插入prompt位置的embedding是由之前的transformer层计算出来的,这可能导致两个可能的优化挑战。

  • 由于序列长度的限制,可调参数的数量是有限的。
  • 输入embedding对模型预测只有相对间接的影响。


4.介绍一下Prefix-tuning的思想和应用场景,以及它如何解决一些NLP任务中的挑战

 

Prefix-tuning在模型的输入部分添加一系列可学习的向量(称为prefix)即在每一层都加入了Prompts tokens作为输入,而不是仅仅加在输入层,这些prefix在训练过程中与任务相关的信息一起输入模型。这带来两个方面的好处:

  • 更多可学习的参数(从P-tuning和Prompt Tuning的0.01%增加到0.1%-3%),同时也足够参数高效。
  • 加入到更深层结构中的Prompt能给模型预测带来更直接的影响。

这种方法允许模型在不直接修改预训练参数的情况下适应新任务,非常适合于需要快速适应新任务而又不希望对整个模型进行重训练的场景。
5.Lora的原理和存在的问题讲一下?

LoRA (Low-Rank Adaptation)是一种模型微调方法,它通过在预训练模型的权重上添加低秩矩阵来实现参数的适应。LoRA的特点︰仅修改模型的一小部分参数(通过低秩矩阵),从而在调整模型以适应新任务的同时保持了大部分预训练参数不变。
LoRA的问题:可能有性能瓶颈(因为仅通过修改一小部分参数可能限制了模型适应新任务的能力)﹔以及如何选择和优化低秩矩阵的大小和结构以达到最佳效果。
 

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值