
很多人以为大模型是突然冒出来的新物种。其实它没有脱离深度学习,只是把深度学习的几个核心部件——表示、注意力、目标函数、优化器——放大到了极致。
一句话概括:
大模型 = Transformer 架构 × 海量数据 × 大算力 × 自监督目标。
而 Transformer 的心脏,就是自注意力。看懂它,你就看懂了大模型的一半。
传统深度学习:CNN 看图像,RNN 看序列,靠人工标注。
大模型深度学习:用 Transformer 做序列建模,用“预测下一个 token”做自监督,用规模化把能力“堆”出来。
核心目标函数非常简单:
给定前文,预测下一个 token。就是这句话,让模型在海量文本里学会了语法、知识、推理和表达。
下面这段代码,就是大模型最核心的计算。Q 是查询,K 是键,V 是值。模型通过 Q 和 K 的相似度,决定从 V 里取什么信息。
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])这段代码只做三件事:
大模型里的多头注意力,就是并行做多次,再拼接。 大模型里的多层,就是把这样的模块堆几十层。
自注意力只是前向传播。要让模型学会预测,还需要反向传播。
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()这就是大模型预训练的最小闭环:
前向预测 → 计算交叉熵 → 反向传播 → 更新参数。
区别只在于:数据多大、模型多宽、层数多深、训练多久。
一个完整的大模型,还需要这些部件:
你不需要一开始就手写完整 GPT。先用 20 行跑通自注意力,再用 HuggingFace、nanoGPT 或 LLaMA-Factory 跑通训练和微调。
大模型之深度学习,不是玄学,而是几个核心部件的规模化:
自注意力 + 下一词预测 + 反向传播 + 海量数据。
上面 20 行代码,已经让你看到了大模型最核心的注意力计算。接下来要做的,是理解多头、堆层、训练和对齐,再用现成框架把规模拉起来。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。