具体是做大模型训练套件的中台组,所以很考察涉及大模型内部计算的细节。
1.自我介绍
2.手撕 和最大的连续子序列
3 写一个多头注意力 reshape transpose
4 为什么要使用多头注意力 更多的qkv嵌入更好的表达能力
5 单头注意力和多头注意力计算量比较。多头略多一些,具体应该是多在多头注意力concat之后的又一次线性变换上。这题当时没答对。
6 为什么使用gqa,gqa的好处有啥。略微减少参数量,均衡性能并减少kv cache的压力。
7 为什么是kv cache 而不是qv cache。我理解是,如果是qv cache,这东西能算的注意力是最后一列而不是最后一行,这种计算甚至是反因果系统这个前提的,我感觉我的解释有道理,但面试官不满意,可能有更好的答案。
8 lora具体为什么能减少计算过程中的显存占用,具体减少在那部分上了?我认为权重和前向过程中的激活值在加上lora之后,整体也不会少太多,那么少的只能是来自梯度和优化器状态,其中大头是优化器状态。
9 拷打Megatron中的张量并行都存在哪些地方,具体如何做张量并行,当时没太完全看透Megatron(虽然现在也没看透),所以这题直接爆炸了。
10 具体来说Megatron在transformers中的张量并行,可以发生在mlp,attention,embedding,cross entropy这几块。在mlp上,存在一个因为非线性变换,而对两个矩阵乘中的右侧矩阵列split,左侧矩阵不切的方式进行并行,减少一个同步点。attention中的并行主要是对头并行。embedding和cross entropy中这是要减少vocab这个超大纬度给计算带来的压力,做vocab纬度的张量并行。
11 见我Megatron 张量并行打的不是很好,可能是想引导一下,面试官问我长文本训练中,需要算loss的token很多,怎么缓解这个过程的计算压力,我觉得他当时想引导我讲cross entropy的张量并行的,但我当时没想到。
反问 很套路的了解部门业务
结果 面完秒挂 😭