赞
踩
节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学,针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。
最大的感受就是,今年的算法面试题普遍反馈特别的新!AIGC 相关的面试题猛增,特别是去年到今年爆火的大模型、多模态、扩散模型、SAM等考察的知识点越来越多。
基于讨论和大模型实践,我们写一本书:《大模型面试宝典》(2024版) 发布!
今天分享社群中一位面试理想大模型(实习)的面试题,希望对大家找工作有帮助,喜欢记得点赞、收藏、关注。文末提供技术交流方式。
模型 | 训练数据 | 训练数据量 | 模型参数量 | 词表大小 |
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 |
layernorm和batchnorm的区别:LN中同层神经元输入拥有相同的均值和方差,不同的输入样本有不同的均值和方差;
BN中则针对不同神经元输入计算均值和方差,同一个batch中的输入拥有相同的均值和方差。
LN不依赖于batch的大小和输入sequence的深度,因此可以用于batchsize为1和RNN中对变长的输入sequence的normalize操作。
由于NLP中的文本输入一般为变长,所以使用layernorm更好。
Bert(Bidirectional Encoder Representations from Transformers)的参数量由其模型结构以及隐藏层的大小、层数等超参数所决定。具体来说,Bert 模型由多个 Transformer Encoder 层组成,每个 Encoder 层包含多个注意力头以及前馈神经网络层。因此,Bert 的参数量主要由这些层的数量、每层的隐藏单元数、注意力头的数量等因素决定。
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上进行预训练,然后再适配下游任务。一方面,连续提示的随机惯性给优化带来了困难,这可以通过更多的训练数据或与任务相关的无监督预训练来缓解;另一方面,连续提示是跨任务和数据集的特定任务知识的完美载体。
多头注意力机制和单个注意力机制的时间复杂度都是
O(n^2d),其中 n 是序列长度,d 是每个词向量的维度。因为注意力机制涉及计算注意力分数的所有词对,因此时间复杂度与序列长度的平方成正比。无论是多头还是单个注意力机制,时间复杂度都是相同的。
在微调大模型的过程中,确实可能会遇到灾难性遗忘的问题,即模型在优化某一特定任务时,可能会忘记之前学到的其他重要信息或能力。为了缓解这种情况,可以采用以下几种策略:
(1)重新训练:通过使用所有已知数据重新训练模型,可以使其适应数据分布的变化,从而避免遗忘。
(2)增量学习:增量学习是一种在微调过程中逐步添加新数据的方法。通过增量学习,大模型可以在不忘记旧知识的情况下学习新数据。
(3)知识蒸馏:知识蒸馏是一种将老模型的知识传递给新模型的方法。通过训练一个教师模型来生成数据标注或权重,然后将标注或权重传递给新模型进行训练,可以避免灾难性遗忘。
(4)正则化技术:限制模型参数的变化范围,从而减少遗忘,使得大模型在微调过程中保持稳定性。
(5)使用任务相关性数据:如果可能的话,尽量使用与原始任务相关或相似的数据进行微调。这样,模型在优化新任务时,更容易与先前学到的知识建立联系。
在此特别推荐今年、明年找工作的同学加入我们算法群和星球学习!不仅有数千题算法岗&软开岗的面试真题,还可以提问如何找工作,方向选择,还有Offer选择等问题,更有上百家公司的内推和求职准备攻略。
技术要学会分享、交流,不建议闭门造车。一个人可以走的很快、一堆人可以走的更远。
成立了大模型面试和技术交流群,相关资料、技术交流&答疑,均可加我们的交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友。
方式①、微信搜索公众号:机器学习社区,后台回复:加群
方式②、添加微信号:mlc2040,备注:来自CSDN + 技术交流
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。