LLM面试题: Transformer

Q:请详细解释一下 Transformer 模型中的自注意力机制是如何工作的?它为什么比 RNN 更适合处理长序列?

难度:⭐⭐

公司:字节、阿里、腾讯(高频)

算法岗回答要点:

  1. 自注意力机制原理

    • 输入序列通过三个线性变换得到 Q(Query)、K(Key)、V(Value)
    • 计算注意力分数:scores = QK^T / √d_k
    • Softmax 归一化得到注意力权重
    • 加权求和:output = softmax(scores) · V
  2. 数学推导

    Attention(Q,K,V) = softmax(QK^T/√d_k)V
    
    • 为什么除以√d_k?防止点积过大导致梯度消失
    • Multi-Head 机制:并行计算多个注意力头,捕获不同子空间的特征
  3. vs RNN 的优势

    • 并行计算:RNN 必须顺序计算,Transformer 可以并行处理整个序列
    • 长距离依赖:RNN 存在梯度消失/爆炸,Transformer 通过直接注意力机制解决
    • 计算复杂度:序列长度 n,RNN 为 O(n),Self-Attention 为 O(n²)但可并行

开发岗回答要点:

  1. 理解注意力机制的作用

    • 模型能自动关注序列中重要的部分
    • 类似于"加权平均",权重由模型学习得到
  2. 工程实现要点

    • 使用成熟框架(PyTorch/TensorFlow)内置的 Attention 层
    • 注意 Attention Mask 的使用(Padding mask、Causal mask)
    • 推理时可以使用 KV Cache 加速
  3. 优化技巧

    • Flash Attention:减少显存占用,加速计算
    • Multi-Query Attention(MQA):共享 K/V,降低显存

延伸问题:

  • Multi-Head Attention 的作用是什么?
    • 答:类似CNN的多通道,不同head关注不同特征子空间
  • Self-Attention vs Cross-Attention 的区别?
    • 答:Self-Attention 的 Q/K/V 来自同一序列;Cross-Attention 的 Q 来自一个序列,K/V 来自另一个序列(如 Encoder-Decoder)

面试技巧:

  • 开场先说核心公式,展示理论功底
  • 画图说明计算流程(Q/K/V 矩阵乘法)
  • 主动提及优化技术(Flash Attention)加分
#AI求职记录#
全部评论

相关推荐

一面 - 自我介绍- 大模型和传统机器学习 / 深度学习有什么区别?- Agent 里的工具调用是怎么实现的?- 用 LangChain / Agent 框架时,一般要配哪些东西?- ReAct 是怎么用的?- ReAct 有什么缺点?- ReAct 的成功率怎么看?- 你用 ReAct 做过什么任务?- Plan-Exec 要解决什么问题?- 调 prompt 有什么规范?- 你调 prompt 遇到过什么 case?- 最近看过哪些前沿框架 / 记忆架构?- 你在记忆上有什么实践?- Skill 和上下文管理是什么关系?- 现场编码:链表分组反转 / 区间反转- 协程和线程区别是什么?- 协程中断和线程中断的区别?- Go 的 GC 做过什么优化?- GC 暂停时间一般多少?看过指标吗?- 数据库索引为什么用 B+ 树?- 堆的底层存储结构是什么?- channel 里有锁吗?实现看过吗?- 有缓冲 channel 用在什么场景?- 什么场景会出现 goroutine 泄漏?- 什么场景会用协程池 / worker pool?二面忘记录音了- 自我介绍- 项目拷打- 对redis的理解- 排序算法- 索引- 手撕 LC 33三面- 实习拷打- 手撕 LC 301三面后第二天OC
点赞 评论 收藏
分享
03-31 21:47
东南大学 C++
彭于晏前来求offe...:吓晕了
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务