当前位置:   article > 正文

理想大模型实习面试题6道(答案解析)_llama和chatglm区别

llama和chatglm区别

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学,针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。

最大的感受就是,今年的算法面试题普遍反馈特别的新!AIGC 相关的面试题猛增,特别是去年到今年爆火的大模型、多模态、扩散模型、SAM等考察的知识点越来越多。


基于讨论和大模型实践,我们写一本书:《大模型面试宝典》(2024版) 发布!


今天分享社群中一位面试理想大模型(实习)的面试题,希望对大家找工作有帮助,喜欢记得点赞、收藏、关注。文末提供技术交流方式。

问题1、LLAMA 和 ChatGLM 的区别

模型

训练数据

训练数据量

模型参数量

词表大小

LLaMA

以英语为主的拉丁语系,不包含中日韩文

1T/1.4T tokens

7B、13B、33B、65B

32000

ChatGLM-6B

中英双语,中英文比例为 1:1

1T tokens

6B

130528

模型

模型结构

位置编码

激活函数

layer norm

LLaMA

Casual decoder

RoPE

SwiGLU

Pre RMS Norm

ChatGLM-6B

Prefix decoder

RoPE

GeGLU

Post Deep Norm

问题2、BatchNorm 和 LayerNorm 什么区别。

layernorm和batchnorm的区别:LN中同层神经元输入拥有相同的均值和方差,不同的输入样本有不同的均值和方差;

BN中则针对不同神经元输入计算均值和方差,同一个batch中的输入拥有相同的均值和方差。

LN不依赖于batch的大小和输入sequence的深度,因此可以用于batchsize为1和RNN中对变长的输入sequence的normalize操作。

由于NLP中的文本输入一般为变长,所以使用layernorm更好。

问题3、Bert 的参数量是怎么决定的

Bert(Bidirectional Encoder Representations from Transformers)的参数量由其模型结构以及隐藏层的大小、层数等超参数所决定。具体来说,Bert 模型由多个 Transformer Encoder 层组成,每个 Encoder 层包含多个注意力头以及前馈神经网络层。因此,Bert 的参数量主要由这些层的数量、每层的隐藏单元数、注意力头的数量等因素决定。

问题4、p tuning v2 和 prompt tuning 的区别

Prompt tuning是之前其他论文提出的一种方法,通过冻结语言模型仅去调整连续的prompts,在参数量超过10B的模型上,效果追上了fine-tune,但是在normal-sized模型上表现不好,并且无法解决序列标注任务。针对这两个问题,作者提出了P-tuning v2。

P-Tuning V2在P-Tuning V1的基础上进行了下述改进:

  • 在每一层都加入了Prompts tokens作为输入,而不是仅仅加在输入层,这与Prefix Tuning的做法相同。这样得到了更多可学习的参数,且更深层结构中的Prompt能给模型预测带来更直接的影响。

  • 去掉了重参数化的编码器。在 P-tuning v2 中,作者发现重参数化的改进很小,尤其是对于较小的模型,同时还会影响模型的表现。

  • 针对不同任务采用不同的提示长度。提示长度在提示优化方法的超参数搜索中起着核心作用。在实验中,我们发现不同的理解任务通常用不同的提示长度来实现其最佳性能,这与Prefix-Tuning中的发现一致,不同的文本生成任务可能有不同的最佳提示长度。

  • 可选的多任务学习。先在多任务的Prompt上进行预训练,然后再适配下游任务。一方面,连续提示的随机惯性给优化带来了困难,这可以通过更多的训练数据或与任务相关的无监督预训练来缓解;另一方面,连续提示是跨任务和数据集的特定任务知识的完美载体。

问题5、多头注意力机制和单个注意力机制时间复杂度会变吗?

多头注意力机制和单个注意力机制的时间复杂度都是

O(n^2d),其中 n 是序列长度,d 是每个词向量的维度。因为注意力机制涉及计算注意力分数的所有词对,因此时间复杂度与序列长度的平方成正比。无论是多头还是单个注意力机制,时间复杂度都是相同的。

问题6、大模型微调过程中如何避免灾难性遗忘?

在微调大模型的过程中,确实可能会遇到灾难性遗忘的问题,即模型在优化某一特定任务时,可能会忘记之前学到的其他重要信息或能力。为了缓解这种情况,可以采用以下几种策略:

(1)重新训练:通过使用所有已知数据重新训练模型,可以使其适应数据分布的变化,从而避免遗忘。

(2)增量学习:增量学习是一种在微调过程中逐步添加新数据的方法。通过增量学习,大模型可以在不忘记旧知识的情况下学习新数据。

(3)知识蒸馏:知识蒸馏是一种将老模型的知识传递给新模型的方法。通过训练一个教师模型来生成数据标注或权重,然后将标注或权重传递给新模型进行训练,可以避免灾难性遗忘。

(4)正则化技术:限制模型参数的变化范围,从而减少遗忘,使得大模型在微调过程中保持稳定性。

(5)使用任务相关性数据:如果可能的话,尽量使用与原始任务相关或相似的数据进行微调。这样,模型在优化新任务时,更容易与先前学到的知识建立联系。

在此特别推荐今年、明年找工作的同学加入我们算法群和星球学习!不仅有数千题算法岗&软开岗的面试真题,还可以提问如何找工作,方向选择,还有Offer选择等问题,更有上百家公司的内推和求职准备攻略。

技术交流&资料

技术要学会分享、交流,不建议闭门造车。一个人可以走的很快、一堆人可以走的更远。

成立了大模型面试和技术交流群,相关资料、技术交流&答疑,均可加我们的交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友。

方式①、微信搜索公众号:机器学习社区,后台回复:加群
方式②、添加微信号:mlc2040,备注:来自CSDN + 技术交流

通俗易懂讲解大模型系列

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号