节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂同学、参加社招和校招面试的同学,针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。
今天我整理一下百度算法岗面试题,分享给大家,希望对后续找工作的有所帮助。喜欢记得点赞、收藏、关注。更多技术交流&面经学习,可以文末加入我们交流群。
问题1:你比较关注哪些主流的开源大模型?
- GPT系列:由OpenAI开发的生成式预训练模型,如 GPT-3。
- BERT系列:由Google开发的转换式预训练模型,如BERT、RoBERTa等。
- T5系列:由Google开发的基于Transformer的编码器-解码器模型,如T5、mT5等。
问题2:讲一下lora的原理
Lora方法指的是在大型语言模型上对指定参数增加额外的低秩矩阵,也就是在原始PLM旁边增加一个旁路,做一个降维再升维的操作。并在模型训练过程中,固定PLM的参数,只训练降维矩阵A与升维矩阵B。而模型的输入输出维度不变,输出时将BA与PLM的参数叠加。用随机高斯分布初始化A,用0矩阵初始化B。
问题3:目前大模型模型结构都有哪些?
- Transformer:基于自注意力机制的模型,包括编码器、解码器和编码器-解码器结构。
- GPT系列:基于自注意力机制的生成式预训练模型,采用解码器结构。
- BERT系列:基于自注意力机制的转换式预训练模型,采用编码器结构。
- T5系列:基于Transformer的编码器-解码器模型。
问题4: prefix LM 和 causal LM、encoder-decoder 区别及各自有什么优缺点?
- prefix LM:通过在输入序列前添加可学习的任务相关前缀,引导模型生成适应特定任务的输出。优点是可以减少对预训练模型参数的修改,降低过拟合风险;缺点是可能受到前缀表示长度的限制,无法充分捕捉任务相关的信息。
- causal LM:根据之前生成的 token 预测下一个 token,可以生成连贯的文本。优点是可以生成灵活的文本,适应各种生成任务;缺点是无法访问未来的信息,可能生成不一致或有误的内容。
- encoder-decoder:由编码器和解码器组成,编码器将输入序列编码为固定长度的向量,解码器根据编码器的输出生成输出序列。优点是可以处理输入和输出序列不同长度的任务,如机器翻译;缺点是模型结构较为复杂,训练和推理计算量较大。
问题5: 模型幻觉是什么?业内解决方案是什么?
模型幻觉是指模型在生成文本时产生的不准确、无关或虚构的信息。这通常发生在模型在缺乏足够信息的情况下进行推理或生成时。业内的解决方案包括:
- 使用更多的数据和更高质量的训练数据来提高模型的泛化和准确性。
- 引入外部知识源,如知识库或事实检查工具,以提供额外的信息和支持。
- 强化模型的推理能力和逻辑推理,使其能够更好地处理复杂问题和避免幻觉。
问题6:翻译任务一般用什么架构
翻译任务主要使用的是seq2seq架构,目前主流的翻译架构是基于Transformer模型的,它采用自注意力机制(self-attention)来捕捉输入序列中不同位置的关联信息,并通过编码器-解码器结构来实现翻译。
问题7:encoder-only, decoder-only, encoder-decoder的区别
Encoder-only:只有编码器,用于将输入序列编码成固定维度的表示,常用于特征提取。
Decoder-only:只有解码器,用于从固定维度的表示生成输出序列,通常在生成式任务中使用。
Encoder-decoder:同时包含编码器和解码器,用于序列到序列的任务,如机器翻译。编码器将输入序列编码成上下文信息,解码器使用该信息生成输出序列。
问题8:讲一下transformer的结构
Transformer模型由编码器和解码器组成,其核心是自注意力机制。每个编码器和解码器均由多个相同的层叠加而成,每一层包含自注意力子层和全连接前馈网络子层。输入序列通过多头自注意力机制进行处理,然后通过前馈网络。每个子层后都有残差连接和层标准化。编码器和解码器之间通过编码器-解码器注意力连接。
问题9:见一下Flash Attention的原理
Flash Attention从attention计算的GPU memory的read和write方面入手来提高attention计算的效率。其主要思想是通过切块(tiling)技术,来减少GPU HBM和GPU SRAM之间的数据读写操作。
问题10:fp32和fp16的区别,混合精度的原理
fp32:32位浮点数,占用4字节,提供高精度的数值表示。
fp16:16位浮点数,占用2字节,提供相对较低的数值表示精度,但在许多情况下仍足够。
混合精度指的是在模型训练中同时使用fp16和fp32,以在计算中提高效率。通常,模型参数使用fp16表示,而梯度和累积值使用fp32表示。这样可以减少内存占用和计算开销,加速训练过程。
前沿技术资讯、算法交流、求职内推、算法竞赛、面试交流(校招、社招、实习)等、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~
我们建了算法岗技术&面试交流群, 想要进交流群、获取完整源码&资料、提升技术的同学,可以直接加微信号:mlc2060。加的时候备注一下:研究方向 +学校/公司+CSDN,即可。然后就可以拉你进群了。
方式①、微信搜索公众号:机器学习社区,后台回复:技术交流
方式②、添加微信号:mlc2060,备注:技术交流
原文链接:https://blog.csdn.net/2301_78285120/article/details/136332654?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171851498816800186586291%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171851498816800186586291&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-27-136332654-null-null.nonecase&utm_term=AI%E9%9D%A2%E8%AF%95