大语言模型本质是基于token预测的数学系统,通过分词、嵌入、自注意力三步实现输入—计算—输出;参数即大型数字矩阵,训练与推理均为标准运算;动手验证比死记概念更有效。

大语言模型不是黑箱,它是一套可理解、可追踪的数学与工程系统。掌握其工作原理,关键在于看清“输入—计算—输出”这条主线,而不是死记术语。
从一句话开始:模型到底在干什么
它在持续预测下一个 token。比如你输入“春风又绿”,模型不会直接吐出“江南岸”,而是先算出“江”的概率最高,把它接上;再以“春风又绿江”为新输入,预测下一个最可能的字——“南”;如此循环。整个过程就像一个高速运转的自动填空机,每一步都依赖前一步的输出。
这个机制决定了两件事:
- 模型没有“理解”语义,只在拟合统计规律
- 每次生成结果不同,是因为它按概率采样,不是总选最高分的那个词
拆开看:token、嵌入、注意力三步走
输入文本先被分词器(Tokenizer)切分成 token,比如“apple”可能是1个 token,“cannot”可能被切成 “can” + “not”。每个 token 被映射成一个固定长度的向量,这就是词嵌入(Embedding)——相当于给每个词发一张带坐标的身份证。
立即学习“Python免费学习笔记(深入)”;
这些向量进入 Transformer 后,核心动作是自注意力(Self-Attention):每个词向量会分别计算与句中所有词(包括自己)的关联强度,生成 Q(查询)、K(键)、V(值)三组向量。简单说,就是让“他”主动去找“男孩”和“街”,看谁更相关,再加权组合信息。
你可以用这段代码快速验证注意力倾向:
DESTOON网站管理系统是基于PHP+MySQL的开源建站系统解决方案,原名为DESTOON B2B网站管理系统(B2B电子商务行业门户网站解决方案)。 经过十多年的发展,系统功能不断增强,除了B2B电子商务网站外,系统已能满足大部分网站的功能需求,是一套专业的开源建站系统解决方案。 系统使用当前流行的PHP语言开发,以MySQL为数据库,采用B/S架构,MVC开发模式。融入了模型化
import torch
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3.2-1B")
model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3.2-1B", output_attentions=True)
inputs = tokenizer("The boy didn't cross the street because he was too ", return_tensors="pt")
outputs = model(**inputs)
attentions = outputs.attentions[-1][0] # 最后一层第一个样本的注意力矩阵
print("he 对各位置的关注分数:", attentions[9].sum(dim=0)) # 第10个token(he)的注意力分布
参数不是魔法,只是海量数字矩阵
一个70亿参数的模型,本质就是一个或多个超大矩阵(比如 embedding 表是 [50257, 4096],即5万多个词 × 每个词4096维向量)。训练过程就是不断调整这些矩阵里的数字,让预测更准;推理时,就是拿输入向量在这堆矩阵里做乘法、加法、激活函数等标准运算。
你可以把它想象成一本查表+算术手册:查词向量 → 做注意力加权 → 过多层变换 → 查最后的 logits 表 → 按概率挑下一个词。
不需要记住所有矩阵名,但要清楚:每个模块输出什么、接收什么、维度是否对得上。这是调试和微调的基础。
动手验证比背概念更有效
别只读原理,马上做三件小事:
- 用 tokenizer.encode() 看同一句话被切成哪些 token,长度是否随模型变化
- 加载一个小型开源模型(如 Phi-3 或 TinyLlama),用 model.state_dict() 打印几层参数形状,观察 embedding 和 attention 层的尺寸差异
- 把一段文本输入模型,逐 token 获取 logits,画出前5个最高分候选词及其概率变化曲线
看到数字在动,模型就不再抽象了。









