节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂同学、参加社招和校招面试的同学,针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何备战、面试常考点分享等热门话题进行了深入的讨论。
合集在这里:《大模型面试宝典》(2024版) 正式发布!
今天我们分享合集中一个同学的面试题,希望对后续找工作的有所帮助。喜欢记得点赞、收藏、关注。更多技术交流&面经学习,可以文末加入我们。
技术交流群
前沿技术资讯、算法交流、求职内推、算法竞赛、面试交流(校招、社招、实习)等、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~
我们建了大模型算法岗技术与面试交流群, 想要进交流群、需要源码&资料、提升技术的同学,可以直接加微信号:mlc2060。加的时候备注一下:研究方向 +学校/公司+CSDN,即可。然后就可以拉你进群了。
方式①、微信搜索公众号:机器学习社区,后台回复:加群
方式②、添加微信号:mlc2060,备注:技术交流
问题1、LLAMA 的结构有什么特点?
-
前置的RMSNorm;
-
在Q、K上使用RoPE旋转式位置编码,使用causal mask保证每个位置只能看到前面的tokens;
-
LLaMA可以将更早的K、V拼接到当前K、V前面,可以用Q查找更早的信息。
-
MLP表达式:\operatorname{down}(u p(x) \times \operatorname{SiLU}($ gate $(x))),其中down, up, gate都是线性层。
问题2、讲一下 LLAMA 的 layer norm。
RMS Norm是一般LayerNorm的一种变体,可以在梯度下降时令损失更加平滑,与layerNorm相比,RMS Norm的主要区别在于去掉了减去均值的部分(re-centering),只保留方差部分(re-scaling)。
问题3、讲一下 LLAMA 的激活函数。
SwiGLU激活: ReLU替换成了SwiGLU。SwiGLU是一种激活函数,它是Gated Linear Units (GLU)的一种变体,使用Swish函数代替sigmoid函数。它可以提高transformer模型的性能,比ReLU或GELU激活函数更好。SwiGLU的优点是它可以动态地调整信息流的门控程度,根据输入的不同而变化。ReLU的缺点是它会导致神经元死亡,即输出为零的情况。GELU的缺点是它比ReLU更复杂,计算量更大。
问题4、详细介绍一下 Transformer 的结构。
Transformer 的结构主要包括:
-
Encoder:由多层自注意力机制模块和全连接前馈神经网络组成,用于将输入序列编码成隐藏表示。
-
Decoder:由多层自注意力机制模块、编码器-解码器注意力机制模块和全连接前馈神经网络组成,用于生成目标序列。
问题5、为什么计算注意力 QK 分数要除以维度开根号?为什么不能直接除以维度?
在计算注意力 QK(Query-Key)分数时,除以维度的开根号是为了控制注意力分布的范围,使得注意力值的大小相对稳定,更加适应不同维度的输入。如果直接除以维度,可能会导致梯度过大或过小的情况,影响模型的训练效果。
问题6、讲一下对位置嵌入的了解。
位置嵌入是 Transformer 中用于引入序列位置信息的一种方式。它通过学习得到的位置编码向量,将位置信息嵌入到输入序列的表示中,使得模型能够区分不同位置的单词或标记。
问题7、讲一下 tokenizer 的分词方法有那些?
-
基于规则的分词:根据语言的特点和规则进行分词,如中文的逐字分词或者英文的空格分词。
-
基于词典的分词:利用预先构建好的词典,将输入文本切分成词语或者子词。
-
子词切分:将词汇表中的单词进行进一步切分,得到更加细粒度的子词,如 Byte Pair Encoding(BPE)或者WordPiece。
问题8、Leetcode:岛屿数量。
def numIslands(grid):def dfs(grid, i, j):if i < 0 or i >= len(grid) or j < 0 or j >= len(grid[0]) or grid[i][j] == '0':returngrid[i][j] = '0'dfs(grid, i + 1, j)dfs(grid, i - 1, j)dfs(grid, i, j + 1)dfs(grid, i, j - 1)if not grid:return 0count = 0for i in range(len(grid)):for j in range(len(grid[0])):if grid[i][j] == '1':count += 1dfs(grid, i, j)return count
用通俗易懂方式讲解系列
- 用通俗易懂的方式讲解:自然语言处理初学者指南(附1000页的PPT讲解)
- 用通俗易懂的方式讲解:1.6万字全面掌握 BERT
- 用通俗易懂的方式讲解:NLP 这样学习才是正确路线
- 用通俗易懂的方式讲解:28张图全解深度学习知识!
- 用通俗易懂的方式讲解:不用再找了,这就是 NLP 方向最全面试题库
- 用通俗易懂的方式讲解:实体关系抽取入门教程
- 用通俗易懂的方式讲解:灵魂 20 问帮你彻底搞定Transformer
- 用通俗易懂的方式讲解:图解 Transformer 架构
- 用通俗易懂的方式讲解:大模型算法面经指南(附答案)
- 用通俗易懂的方式讲解:十分钟部署清华 ChatGLM-6B,实测效果超预期
- 用通俗易懂的方式讲解:内容讲解+代码案例,轻松掌握大模型应用框架 LangChain
- 用通俗易懂的方式讲解:如何用大语言模型构建一个知识问答系统
- 用通俗易懂的方式讲解:最全的大模型 RAG 技术概览
- 用通俗易懂的方式讲解:利用 LangChain 和 Neo4j 向量索引,构建一个RAG应用程序
- 用通俗易懂的方式讲解:使用 Neo4j 和 LangChain 集成非结构化知识图增强 QA
- 用通俗易懂的方式讲解:面了 5 家知名企业的NLP算法岗(大模型方向),被考倒了。。。。。
- 用通俗易懂的方式讲解:NLP 算法实习岗,对我后续找工作太重要了!。
- 用通俗易懂的方式讲解:理想汽车大模型算法工程师面试,被问的瑟瑟发抖。。。。
- 用通俗易懂的方式讲解:基于 Langchain-Chatchat,我搭建了一个本地知识库问答系统
- 用通俗易懂的方式讲解:面试字节大模型算法岗(实习)
- 用通俗易懂的方式讲解:大模型算法岗(含实习)最走心的总结
- 用通俗易懂的方式讲解:大模型微调方法汇总