# 从学习目标理解神经网络与语言模型

原文: https://yishto.com/learn/ai-foundations/learning-attention-and-language-models/

作者: [Yishto](https://yishto.com/about/)

从训练目标与 token 预测解释模型行为，用 softmax 聚合实验理解注意力，并区分完整架构和应用评估。

首次发布: 2026-11-10
内容更新: 2026-11-10

输入一段教材，语言模型继续写出下一句，表面上像是在理解与回答。要判断它能承担什么任务，需要先区分训练目标、内部计算和应用要求。下一 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。

```python
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 类型与模型大小影响资源，本文没有进行训练或性能比较。

若产品要求教材摘要准确，应评估事实覆盖、遗漏与引用；若要求分类，检查每类错误与拒绝；若要求计算结果，可以由确定性程序执行运算。模型可能擅长生成候选答案，但应用必须明确哪些字段可以自动采用、哪些需验证。

遇到失败先定位阶段。输入解析错误、关键材料缺失、模型生成错误与结果验证错误需要不同修复。用一个总分掩盖这些原因，会让改进动作无法对应实际缺陷。保存任务配置和样本版本，才能比较修改前后的差异。

## 练习：检验运算与任务边界

改变三个分数为完全相同，观察权重是否接近三分之一；再让某个分数大得多，检查权重如何集中。把所有分数加上同一个常数，结果应保持近似一致。加入负分数，权重仍应为正且总和为一。

验收时，说明这些变化只验证归一化运算，不能证明模型学会了任何语言任务。为教材分类设计训练、验证和测试切分，列出数据泄漏方式与至少一个无答案输入。最后把产品目标写成可观察错误类型，而不只写“模型更聪明”；若实施真实训练，另行记录框架、模型、数据与结果。

## 资料来源与延伸阅读

- [Attention Is All You Need](https://arxiv.org/abs/1706.03762)
- [Deep Learning textbook](https://www.deeplearningbook.org/)
- [Learning neural-network basics](https://docs.pytorch.org/tutorials/beginner/basics/intro.html)

资料核验：2026-11-10。教学示例不代表线上实测。

## 相关文章

- [大模型 API 入门：Token 与上下文预算](https://yishto.com/learn/models/context-and-tokens/)
- [大模型评测：用任务集比较质量、延迟与成本](https://yishto.com/learn/models/model-evaluation/)
