← 课程库
推理 · 评测 · 冲刺冲刺 · 代码填空(模块三·四·五·八)代码16 分钟

第一轮冲刺:代码填空专项

样题最爱的几段代码,逐个吃透

学完这节你能:
  • 熟记高频代码模式
  • 看清易错的符号/维度
  • 能独立补全关键行

第一轮的代码填空来来去去就那几段:注意力、RoPE、MoE 路由、LoRA、RAG 池化。把它们的「关键行」和「常见陷阱」记牢,就能稳拿分。

① 注意力(缩放别忘、softmax 维度别错)
scores = Q @ K.transpose(-2, -1) / (dk ** 0.5)   # 记得 /√dk
weights = softmax(scores, dim=-1)                # 沿 key 维
out = weights @ V
② RoPE(第一行减、第二行加)
q_rot_even = q_even * cos - q_odd * sin
q_rot_odd  = q_even * sin + q_odd * cos
③ MoE 路由(softmax 沿专家维,再 topk)
probs = F.softmax(gate(x), dim=-1)               # 不是 sigmoid、不是 dim=0
topk_w, topk_idx = torch.topk(probs, k, dim=-1)  # 选 Top-K 专家
④ RAG 掩码平均(padding 不入池化)
vec = (emb * mask.unsqueeze(-1)).sum(1) / mask.sum(1, keepdim=True)

⚠️ 陷阱清单:注意力忘除 √dk、softmax 用错 dim;RoPE 符号写反或用加法;MoE 用 sigmoid/沿 batch 维;LoRA 忘了冻结 W;池化忘了掩码。这些正是选项里的错误项。

自测MoE 路由里,把 logits 变成专家概率分布应使用:
// 带走一句话

代码填空五段:注意力(/√dk+softmax dim=-1)、RoPE(先减后加)、MoE(softmax dim=-1+topk)、LoRA(冻结 W)、RAG(掩码平均);错误项都在这些坑上。

独立练习

做到这些,才算完成本节

  1. 在本地运行代码,打印每个关键张量的 shape。
  2. 关闭示例后从空文件重写核心部分,并补一个异常或边界测试。
学习记录

记录本节阅读进度

建议先独立回答自测。读完记录不等于已经掌握。

继续下一课
← 上一课
第一轮冲刺:计算题专项
下一课 →
第二轮冲刺:编程实战 + 全真模考

学完不要急着赶进度:去练习自测,或完成对应的阶段实验