当作面试一样回答一下这些问题: 1. 子序列两层for循环,if s[i] == s[j]: dp[i][j] = dp[i - 1][j - 1] + 1 else : dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]) 2. xx 3.xx 4. lora, p tuning v1 v2, adapter tuning, prefix tuning. 5. 绝对,相对位置编码, Rope旋转位置编码 6. 从输入开始,一个是绝对位置编码一个是Rope编码。经过embedding层后,transformer decoder直接输入注意力层,而llama则是先经过norm,一个是Post norm一个是Pre norm,同时norm这里的区别前者为layer norm后者为Root mean square norm,对于注意力层,llama是GQA而transformer decoder是MHA,再经过FFN层,FFN层的激活函数transformer deocder是Relu,而llama没记错的话是SwiGelu,(就想到这些,不知道还有没有不同) 7. 不知怎么答 8. SGD , w = w - lr * gradient, Adam引入了一阶动量与二阶动量(方差) 9. 交叉熵损失 10. 假设dB参数的大模型,模型与梯度半精度fp16保存,一个参数两个字节,则占用2d G + 2d G = 4d G显存,优化器如果用adam,fp32保存模型权重备份,动量与方差,则占用3 * 4 * d G = 12d G显存,对一个dB参数的大模型做full training显存占用估计在16dG。(deepspedd, 模型并行,张量并行之类的可能会继续问了) 欢迎补充点评