首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >大模型之深度学习实战:用 20 行代码,看懂注意力与训练闭环

大模型之深度学习实战:用 20 行代码,看懂注意力与训练闭环

原创
作者头像
资源shanxueit.com
发布2026-09-17 14:28:49
发布2026-09-17 14:28:49
310
举报

很多人以为大模型是突然冒出来的新物种。其实它没有脱离深度学习,只是把深度学习的几个核心部件——表示、注意力、目标函数、优化器——放大到了极致。

一句话概括:

大模型 = Transformer 架构 × 海量数据 × 大算力 × 自监督目标。

而 Transformer 的心脏,就是自注意力。看懂它,你就看懂了大模型的一半。


一、深度学习到大模型的三级跳

传统深度学习:CNN 看图像,RNN 看序列,靠人工标注。

大模型深度学习:用 Transformer 做序列建模,用“预测下一个 token”做自监督,用规模化把能力“堆”出来。

核心目标函数非常简单:

代码语言:javascript
复制
给定前文,预测下一个 token。

就是这句话,让模型在海量文本里学会了语法、知识、推理和表达。


二、20 行核心代码:自注意力

下面这段代码,就是大模型最核心的计算。Q 是查询,K 是键,V 是值。模型通过 Q 和 K 的相似度,决定从 V 里取什么信息。

代码语言:javascript
复制
import torch
import torch.nn.functional as F

def self_attention(x, Wq, Wk, Wv):
    Q, K, V = x @ Wq, x @ Wk, x @ Wv
    scores = Q @ K.transpose(-2, -1) / (Q.size(-1) ** 0.5)
    weights = F.softmax(scores, dim=-1)
    return weights @ V

x = torch.randn(4, 8)  # 4 个 token,每个 8 维
Wq, Wk, Wv = [torch.randn(8, 8, requires_grad=True) for _ in range(3)]
out = self_attention(x, Wq, Wk, Wv)
print(out.shape)  # torch.Size([4, 8])

这段代码只做三件事:

  1. 把输入映射成 Q、K、V;
  2. 用 QK 相似度算注意力权重;
  3. 用权重对 V 加权求和。

大模型里的多头注意力,就是并行做多次,再拼接。 大模型里的多层,就是把这样的模块堆几十层。


三、训练闭环:少量代码,但关键

自注意力只是前向传播。要让模型学会预测,还需要反向传播。

代码语言:javascript
复制
for x, y in dataloader:
    logits = model(x)
    loss = F.cross_entropy(logits.view(-1, vocab_size), y.view(-1))
    loss.backward()
    torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0)
    optimizer.step()
    optimizer.zero_grad()

这就是大模型预训练的最小闭环:

前向预测 → 计算交叉熵 → 反向传播 → 更新参数。

区别只在于:数据多大、模型多宽、层数多深、训练多久。


四、从自注意力到大模型的拼图

一个完整的大模型,还需要这些部件:

  • 词嵌入:把 token 变成向量;
  • 位置编码:让模型知道顺序;
  • 因果掩码:防止看到未来 token;
  • 多头注意力:从不同角度提取关系;
  • 残差连接 + LayerNorm:让深层网络可训练;
  • 前馈网络:做非线性变换;
  • 输出层:映射到词表,预测下一个 token。

你不需要一开始就手写完整 GPT。先用 20 行跑通自注意力,再用 HuggingFace、nanoGPT 或 LLaMA-Factory 跑通训练和微调。


五、实战工作流

  1. 准备数据:收集语料,训练 tokenizer,切分训练/验证集。
  2. 搭建模型:Embedding + 位置编码 + N 层 Decoder。
  3. 预训练:next token prediction,交叉熵,AdamW,warmup。
  4. 微调对齐:SFT、LoRA、DPO,让模型听懂指令。
  5. 推理部署:温度、top-k、top-p 控制生成。
  6. 评估迭代:困惑度、下游任务、人工评测、安全测试。

六、常见坑

  • 只堆参数,不堆数据:模型大但数据少,必然过拟合。
  • 忽略位置编码:模型分不清“猫追狗”和“狗追猫”。
  • 不做残差和归一化:深层网络根本训不起来。
  • 学习率乱设:大模型通常需要 warmup 和余弦衰减。
  • 显存爆炸:用混合精度、梯度累积、ZeRO、LoRA。
  • 只看 loss:loss 低不代表回答好,还要看事实性和安全性。
  • 忽视对齐:预训练模型会说话,但不一定听指令。

七、总结

大模型之深度学习,不是玄学,而是几个核心部件的规模化:

自注意力 + 下一词预测 + 反向传播 + 海量数据。

上面 20 行代码,已经让你看到了大模型最核心的注意力计算。接下来要做的,是理解多头、堆层、训练和对齐,再用现成框架把规模拉起来。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一、深度学习到大模型的三级跳
  • 二、20 行核心代码:自注意力
  • 三、训练闭环:少量代码,但关键
  • 四、从自注意力到大模型的拼图
  • 五、实战工作流
  • 六、常见坑
  • 七、总结
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档