跳转到内容

LLM 基础原理

从整体任务到 Transformer、训练和推理的总览

语言模型根据已有 token,预测下一个 token 的分布。训练让这个分布接近正确答案;生成从分布中选出新 token,再继续预测。

文本 → 分词 → token IDs → Embedding → Transformer Blocks
→ 最后归一化 → LM Head → logits
├─ 训练:对齐标签 → loss → 反向传播 → 更新参数
└─ 生成:选择下一 token → 接回输入 → 继续 forward
问题笔记要点
整个模型输入和输出什么?Transformer 总览能画出 IDs → hidden states → logits
字符串为何变成这些整数?分词与对话格式ID 是索引,不是概率或语义大小
每一层如何利用上下文?Transformer Block区分跨位置 Attention 与逐位置 MLP
训练与生成为何不同?训练和推理训练并行,但每个位置仍看不到未来
loss 如何判断预测好坏?交叉熵能从正确 token 的概率算出 loss
loss 如何改变权重?反向传播与参数更新区分求梯度和 optimizer.step

本组主笔记使用简化的 decoder-only 模型:B=1, D=8, H=2, d=4, Vocab=100。词表中人为指定:小猫 11、坐在 23、窗边 37、晒太阳 42。这些切词、ID、概率与数值均是教学设定,不是真实 tokenizer 或训练好的模型输出。

训练输入 [[11,23,37]],标签 [[23,37,42]]。生成从 [[11,23]] 开始。核心区别是:训练已知正确序列,生成时未来 token 还不存在。

另一个 D=2 的完整手算例子用于检查矩阵乘法,不与本例的参数混用。

下一步:Transformer 总览。