从学习目标理解神经网络与语言模型
从训练目标与 token 预测解释模型行为,用 softmax 聚合实验理解注意力,并区分完整架构和应用评估。
验证注意力归一化性质,说明因果可见范围,并为语言任务设计独立评估。
输入一段教材,语言模型继续写出下一句,表面上像是在理解与回答。要判断它能承担什么任务,需要先区分训练目标、内部计算和应用要求。下一 token 预测可以产生有用文本,却不会自动保证引文、计算或业务决定正确。
本课以三个候选位置的分数和数值表示一次注意力聚合。它只展示归一化与加权计算,不训练网络,也不把小数权重解释成完整的语言理解。
学习目标决定优化什么
规则系统由人写条件,统计学习从样本估计规律,神经网络通过参数化计算学习映射。这些路径仍可同时存在,不能把 AI 历史写成所有方法最终都变成语言模型。选择方法要看输入、输出、数据与错误成本。
训练过程通常计算预测与目标之间的 loss,再利用梯度更新参数。loss 是可优化的代理目标,未必与产品目标完全一致。一个模型减少了训练误差,也可能记住样本或学到不适用于新输入的规律。
训练集用于更新参数,验证集用于选择配置,测试集用于独立评估。切分要避免相关样本跨组,例如同一文档的相邻段落分别进入训练与测试。若测试题已被用于反复改进提示或参数,它就逐渐失去独立性,应保留另外的最终检查集。
token 与概率解释生成过程
token 是模型分词器使用的单位,可以是字词、子词或其他片段。字符数不能直接代替 token 数,不同语言与分词器会产生不同划分。生成式语言模型常根据已见上下文预测下一个 token 的分布,再选择 token 并继续。
选择最大概率与采样会产生不同结果;调整采样参数会改变变化程度,但不能把低随机性当成事实准确性的证明。常见文本更容易被预测,也不意味着每次常见说法都正确。模型需要输出证据时,应用仍要核对来源。
上下文限制也影响行为。输入说明、示例、检索材料与生成输出需要按具体模型接口预算。被截断的关键条件可能使任务改变,所以长文处理应选择片段、保留来源和记录省略,而不是无限拼接全部历史。
注意力把位置之间的信息联系起来
在常见 scaled dot-product attention 中,输入经线性变换得到 Q、K、V。查询与键计算相容分数,按键维度的平方根缩放,再用 softmax 得到权重,用这些权重聚合 V。这个过程可以让一个位置的表示结合其他位置的信息。
softmax 把任意实数分数变成总和为一的正权重。减去最大分数不会改变数学上的归一化结果,同时减少指数计算溢出的风险。权重来自数值计算,不能单独当成模型解释某个结论的充分证据。
下面直接给出分数 0、1、2,与数值 10、20、30,省略 QK 矩阵乘法,只核验 softmax 与加权和。三份数值是教学表示,不是文本 embedding。
import math
scores = [0.0, 1.0, 2.0]
shift = max(scores)
weights = [math.exp(x-shift) for x in scores]
weights = [x/sum(weights) for x in weights]
values = [10, 20, 30]
result = sum(w*v for w, v in zip(weights, values))
assert abs(sum(weights)-1) < 1e-12
assert 10 < result < 30
print([round(x, 3) for x in weights], round(result, 3))
实际输出是 [0.09, 0.245, 0.665] 25.752。最大分数对应最高权重,但其他位置仍参与计算。结果在 10 与 30 之间,断言确认权重归一化与当前加权范围。输出的小数经过 round,内部计算使用未四舍五入的权重。
Transformer 还需要顺序与其他层
Attention Is All You Need 提出的 Transformer 使用注意力机制构建序列处理架构。完整结构还包括前馈网络、残差路径、归一化与位置信息等部分,不能把上面的几行代码称作完整 Transformer。
不使用循环网络并不表示不需要顺序。位置信息帮助区分相同词集合的不同排列。用于因果语言建模的注意力 mask 阻止当前位置看到未来 token;否则训练时会利用生成时无法得到的信息。编码器与解码器、双向与因果任务使用的可见范围有所不同。
多头注意力使用不同投影形成多组聚合,让表示具有不同计算路径,但不能保证每个头都对应一种清晰的人类概念。参数量增加也不直接等于应用效果提高,训练数据、目标与部署条件都参与结果。
词向量或 embedding 将离散输入表示为数值向量,训练后相似关系可能反映任务数据中的规律。相近向量不等于同一个事实,模型也可能把不同对象混合。监督标签、数据分布和优化过程决定这些表示怎样形成;本文直接给出的数值没有经历这种学习。
若未来 token 被 mask 掉,必须在归一化前让其不参与权重计算。只在聚合后删掉一部分值,会改变计算语义。实现中还需检查完全被遮挡的行、张量维度与数值范围,避免形式上有输出却使用了错误位置。
训练框架与应用评估分别负责什么
PyTorch 等框架提供 tensor、自动求导与参数更新等机制。完成一轮训练代码只能说明训练过程执行过,还需要检查 loss、数据切分、基线与独立测试。GPU 类型与模型大小影响资源,本文没有进行训练或性能比较。
若产品要求教材摘要准确,应评估事实覆盖、遗漏与引用;若要求分类,检查每类错误与拒绝;若要求计算结果,可以由确定性程序执行运算。模型可能擅长生成候选答案,但应用必须明确哪些字段可以自动采用、哪些需验证。
遇到失败先定位阶段。输入解析错误、关键材料缺失、模型生成错误与结果验证错误需要不同修复。用一个总分掩盖这些原因,会让改进动作无法对应实际缺陷。保存任务配置和样本版本,才能比较修改前后的差异。
练习:检验运算与任务边界
改变三个分数为完全相同,观察权重是否接近三分之一;再让某个分数大得多,检查权重如何集中。把所有分数加上同一个常数,结果应保持近似一致。加入负分数,权重仍应为正且总和为一。
验收时,说明这些变化只验证归一化运算,不能证明模型学会了任何语言任务。为教材分类设计训练、验证和测试切分,列出数据泄漏方式与至少一个无答案输入。最后把产品目标写成可观察错误类型,而不只写“模型更聪明”;若实施真实训练,另行记录框架、模型、数据与结果。
资料来源与延伸阅读
资料核验:2026-11-10。本文为原创工程讲解,教学示例不代表线上实测。