语料、词元与词表
约 55 分钟
语料、词元与词表
先把一个真实预测问题缩到能手算
今天解决:记录规范化、未知词和频数截断。先写预测时刻能看到哪些字段、标签何时产生、模型输出怎样触发行动,再构造五到十个样本的小表。我们先在纸上完成一轮训练或评估,得到程序必须复现的真值;这样不会把库函数成功返回误当成模型正确。(问题锚:ai-03-d2l/u8/l01/语料、词元与词表/question。)
为什么这一节出现在这里
上一节《视觉错误切片》留下的数据、假设或评估协议,现在成为《语料、词元与词表》的输入。 本章主线是“从数据索引到隐藏状态,逐时间步反查序列模型。”。若旧工具只能拟合训练集,我们补泛化协议;若只能输出分数,我们补概率和决策;若平均指标掩盖风险,我们补切片与区间;若离线结果无法维持,我们补数据契约、监控和回滚。每个新对象都有明确缺口,不堆算法名。
对象、公式和条件必须一起写
逐项说明样本、特征、标签、参数、损失、概率、阈值或指标的形状与单位;说明数据是否 IID,预处理在哪里拟合,哪些超参数由验证集选择,测试集是否仍封存。公式脱离数据生成、切分协议和适用条件不能单独使用。(定义锚:ai-03-d2l/u8/l01/语料、词元与词表/conditions。)
教师推导:从小表到可测结果
针对“记录规范化、未知词和频数截断”,第一步列数据与前提;第二步构造目标函数或统计量;第三步保留至少四行代数、计数、梯度或状态更新;第四步得到预测、损失、指标或决策;第五步代回原定义核对。解析推导和直接枚举必须在小样本上得到同一答案。(推导锚:ai-03-d2l/u8/l01/语料、词元与词表/derivation。)
完整例题要包含基线和对照
先算不会学习的常数或规则基线,再算本节方法;只改变一个因素,比较训练、验证和测试角色。除最终数值外,还要报告数据划分、预处理参数、随机种子或确定性顺序、误差来源和资源成本。若方法未稳定胜过基线,应保留失败结论而不是挑一次最好结果。(例题锚:ai-03-d2l/u8/l01/语料、词元与词表/worked-example。)
《语料、词元与词表》还要提交一张逐行数据审计表:每个字段写来源、产生时间、部署可用时间、缺失机制、允许范围和是否参与标签构造;再用其中两行手算预处理前后数值。把这张表与模型输入逐列核对,能比训练完成后的猜测更早暴露泄露、单位错位和线上线下不一致。(审计锚:ai-03-d2l/u8/l01/语料、词元与词表/data-audit。)
最容易让结论失效的边界
本节危险说法是:在全语料建词表会泄露测试分布。请构造最小反例并定位首个坏步骤,优先检查时间/实体泄露、分母为零、类别基率、特征尺度、共线性、数值溢出、调参污染、分布漂移和把相关当因果。只写“真实数据复杂”不得分。(反例锚:ai-03-d2l/u8/l01/语料、词元与词表/failure。)
从离线指标走到行动
模型输出不是终点。写出阈值、排序容量或人工复核规则,把 FP、FN、延迟和资源换成可讨论代价;再按群体、时间、设备和置信度切片。若标签延迟,区分即时数据质量代理和最终真实性能。每个上线结论都必须有停止、降级或回滚条件。(决策锚:ai-03-d2l/u8/l01/语料、词元与词表/decision。)
可运行实验怎样验收
程序只用 Python 3 标准库,从标准输入读取小数据并输出可复算结果;至少四测覆盖手算正常值、边界、非法输入和曾经失败的回归。涉及浮点时写容差和稳定形式,涉及拟合时保存初始化与迭代条件。一次曲线漂亮不证明算法或评估协议正确。(实验锚:ai-03-d2l/u8/l01/语料、词元与词表/code。)
随课四题严格分工
单选检查假设与角色,多选检查证据链,数值题要求逐步计算,工程解释题按10分验收:问题与数据2分,推导3分,评估与决策2分,反例/漂移2分,可复现性1分。只写算法优缺点或软件调用不得分。
交给下一节的接口
下一节《随机与顺序采样》会直接复用本节产物。 闭卷回答:预测时刻是什么?数据怎样产生?哪部分拟合、调参、最终评估?公式怎样从小表反查?部署分布变化时哪里先坏?能换一个代价矩阵或时间窗口重做,才算真正学会。(交接锚:ai-03-d2l/u8/l01/语料、词元与词表/handoff。)
深度学习专用的形状账本
围绕《语料、词元与词表》建立逐算子表:输入 shape/dtype/device,参数 shape 与共享方式,输出 shape,训练期缓存,反向梯度 shape,以及推理期是否仍存在。先让 、长度或空间边长很小的张量逐元素可算,再推广到批量。任何“维度自动对上”的实现都要核对轴语义和广播来源。(形状锚:ai-03-d2l/u8/l01/语料、词元与词表/shape-ledger。)
先手推一条梯度,再相信自动微分
从 选一个标量损失路径,写局部导数、上游梯度和向量—Jacobian积,至少核对一个参数元素的中心差分。若自动梯度与数值梯度不符,按原地修改、detach、mask、reduction、训练/推理模式和浮点精度顺序排查。(梯度锚:ai-03-d2l/u8/l01/语料、词元与词表/gradient-check。)
从单卡小批到生产系统
先要求极小数据可过拟合,再扩大数据和模型;同时记录随机种子、数据顺序、优化器/调度器状态、混合精度缩放、检查点步数和硬件环境。上线前逐输出比对训练框架与导出运行时,并给动态形状、空输入、超长序列、资源耗尽和回滚测试。(系统锚:ai-03-d2l/u8/l01/语料、词元与词表/system-check。)
这不是抄 Notebook,而是复现实验
先把《语料、词元与词表》对应的主张写成“在固定数据、模型、预算和指标下,改变一个因素会得到什么可观察变化”。然后分别保存参考实现、自己的最小实现和失败实现;三者使用同一输入与随机状态,从首个不同的中间张量开始定位。(复现锚:ai-03-d2l/u8/l01/语料、词元与词表/claim-to-test。)
本节必须提交的实验制品
提交环境清单、数据来源与哈希、配置、运行命令、原始日志、指标表、关键中间张量、失败反例和一键重跑说明。图表必须能追溯到原始数据列;截图和手工抄写的最好数值不算制品。若使用框架高级接口,还要用小张量手算或纯 Python 参考实现反查其语义。(制品锚:ai-03-d2l/u8/l01/语料、词元与词表/artifacts。)
复现结论的三种强度
逐位复现要求同环境同算法得到完全相同输出;数值复现允许预先声明的容差;统计复现要求多次运行的方向、区间或效应一致。深度学习跨版本、硬件和并行策略时通常只能主张后两者,因此报告必须明确强度,不能把“同一个 seed”写成普遍保证。(边界锚:ai-03-d2l/u8/l01/语料、词元与词表/repro-level。)
Practice
本课练习
先独立作答再提交;编程题会在隔离沙箱中真实编译、运行并对拍。
从 text\to tokens\to ids 出发完成“记录规范化、未知词和频数截断”;写数据生成与切分、四行关键推导、基线与指标、针对“在全语料建词表会泄露测试分布”的最小反例,以及上线监控/回滚条件。