Appearance
AI Infra 基础
Transformer 与模型结构
- 请完整描述 Transformer 从输入 token 到输出 logits 的计算流程。
- Self-Attention 的 Q、K、V 分别表示什么?为什么不能省略 K?
- 为什么注意力分数要除以
sqrt(d_k)? - MHA、MQA、GQA 的结构和推理阶段 KV Cache 差异是什么?
- 为什么 Decoder-only 架构成为主流?与 Encoder-only、Encoder-Decoder 有何区别?
- FFN 为什么采用先升维再降维?SwiGLU 与标准 FFN 有什么区别?
- RoPE 的核心原理是什么?长上下文下有哪些局限?
- LayerNorm、RMSNorm、BatchNorm 的区别是什么?
- Causal Mask 的作用是什么?训练和推理时如何使用?
- MoE 专家路由按 token 还是按序列?如何避免负载不均?
RAG、对齐与 Agent
- RAG 知识库的数据清洗、切分、索引和召回链路如何设计?
- 召回不到正确文档时,如何区分数据、Embedding、检索和排序问题?
- 召回正确但生成错误时,如何定位检索模块还是生成模块?
- PPO、DPO、GRPO 的目标、数据和训练流程有何区别?
- GAE、importance sampling 和 PPO clip 分别解决什么问题?
- SFT 后通用能力下降或模型过度拒答,如何调整训练?
- Agent、Workflow、Skill 的边界是什么?
- Agent 的记忆模块如何设计?如何评估记忆质量?
算法与手撕题
- 如何实现 LRU Cache?
- 如何实现环形队列或 Ring Buffer?
- 如何实现 CUDA 向量加法、Reduce、Softmax、GEMM 或 Conv2D?
- 如何实现链表反转、判断链表有环、合并 K 个有序链表?
- 如何实现二叉树层序遍历、镜像翻转或拓扑排序?
- 如何实现最长公共子序列、最大子数组和或单词接龙?
- 如何在不依赖库函数的情况下完成字符串处理和排序?
- 如何为手撕 Kernel 设计边界检查、线程映射、同步和误差验证?