[{"data":1,"prerenderedAt":408},["ShallowReactive",2],{"article:column:/column/llm-to-agent-learning/05":3},{"id":4,"title":5,"body":6,"description":400,"extension":401,"meta":402,"navigation":403,"path":404,"seo":405,"stem":406,"__hash__":407},"column/column/llm-to-agent-learning/05.md","05｜什么才算学会：拟合、泛化与数据分布",{"type":7,"value":8,"toc":382},"minimark",[9,13,16,19,24,27,30,33,36,39,42,46,49,52,55,58,61,64,67,71,74,77,80,83,86,93,96,99,109,113,121,124,127,130,133,136,142,145,153,156,159,163,166,169,172,175,181,184,187,190,198,202,210,213,216,219,233,236,240,243,246,249,257,260,263,266,269,273,279,282,287,290,295,298,303,306,309,314,317,322,325,330,333,338,341,344,349,352,357,360,365,368,373,376,379],[10,11,12],"p",{},"你让模型从会议通知里提取时间和地点。准备好的几十条示例，它几乎全答对；换成同事临时发来的消息，地点没写，它却补出了一个会议室。",[10,14,15],{},"它究竟是还没学会，还是只学会了你给它出的那套题？判断这个问题，需要把“旧样本答得怎样”“真正的新样本答得怎样”“以后会遇到什么样的样本”分开。",[10,17,18],{},"本篇不讨论模型有没有人的理解体验。我们给“学会”一个能检验的含义：经过训练得到的计算关系，在明确的任务和使用范围内，对未参与训练的新输入也有用。",[20,21,23],"h2",{"id":22},"_1先把训练真正改变的东西找出来","1．先把训练真正改变的东西找出来",[10,25,26],{},"从一个很小的任务开始。输入一个数x，希望预测另一个数y。手里有三条记录：输入1，结果3；输入2，结果5；输入4，结果9。",[10,28,29],{},"我们先选一种计算形式：预测结果＝a×x＋b。a、b是待确定的参数。a控制输入每增加1时，输出增加多少；b控制整体向上或向下移动多少。",[10,31,32],{},"取a＝1、b＝0，三次预测是1、2、4。取a＝2、b＝1，预测就变成3、5、9，与记录完全一致。训练要做的，是根据数据和误差标准来确定参数；本篇先手工挑选，下一阶段再解释怎样自动调整。",[10,34,35],{},"用某种计算关系贴合已观察数据，叫拟合。贴合得有多好，需要统一的尺子。例如，把每次“预测减去目标”的差平方，再求平均，就是平均平方误差。",[10,37,38],{},"第一组参数的三次平方误差是4、9、25，平均为38÷3，约12.67；第二组的误差全为0。这把尺子奖励预测接近记录，却没有单独检查模型会怎样回答新问题。",[10,40,41],{},"参数确定以后，输入3，按2×3＋1得到7，这叫一次预测。算出一个新答案并不要求重新训练，a和b可以始终保持不动。",[20,43,45],{"id":44},"_2三道旧题全对仍有无数种解释","2．三道旧题全对，仍有无数种解释",[10,47,48],{},"现在摆出另一条故意构造的规则：",[10,50,51],{},"预测结果＝2×x＋1＋（x－1）×（x－2）×（x－4）",[10,53,54],{},"看着长，检查起来很简单。输入1、2或4时，最后三个括号里必有一个等于0，整个追加项就变成0。因此，这条规则在三道旧题上也全部正确。",[10,56,57],{},"输入3，追加项却是2×1×（－1）＝－2，预测成了5。简单规则预测7，复杂规则预测5。它们都解释了已有记录，却对没见过的位置产生分歧。",[10,59,60],{},"这揭示了学习中一个根本限制：有限样本通常不能唯一确定所有新输入的答案。选择直线、曲线、怎样的网络结构，以及训练时更倾向哪种解，都会给推断加入额外的限制或偏好。这些选择统称为归纳偏置。",[10,62,63],{},"这里的“偏置”不是贬义。如果完全不作任何假设，已知1、2、4的答案，对3几乎不会提供约束。偏好平滑、偏好某种简单结构，能帮助我们利用有限数据；遇到不符合这些偏好的任务，也可能限制效果。",[10,65,66],{},"我们眼下选择直线，只是把“这段范围可能近似保持同一增长率”作为假设。不能因为它比较简洁，就证明真实世界一定遵循它。两条规则也是人为构造的候选，尚未展示训练算法如何找到它们。",[20,68,70],{"id":69},"_3盖住答案做一次纸笔实验","3．盖住答案，做一次纸笔实验",[10,72,73],{},"在纸上写下五张卡片：1→3、2→5、3→7、4→9、5→11。它们是为本篇安排的教学数据。",[10,75,76],{},"先只露出1、2、4三张，用它们拟合候选规则；把3号卡作为验证题，用来比较两个候选；5号卡暂时封起来，等方案选定再用。",[10,78,79],{},"揭开3号卡，真实结果是7。直线预测7，平方误差0；带追加项的规则预测5，平方误差4。如果我们依据这道题选择直线，这张卡片就已经参与了方案选择。",[10,81,82],{},"最后揭开5号卡。已选定的直线预测11，误差0。仅作教学对照，另一条规则会预测23，平方误差144；这里不再依据测试成绩重新挑选方案。这给出了新的一份证据：在这个小实验里，直线对留出的两个位置更合适。",[10,84,85],{},"图1先画两条规则的实际曲线，再标不同阶段才揭开的点。观察它们如何同时通过三个训练点，又在别处拉开距离；曲线形状本身不能裁定哪条更符合新数据。",[10,87,88],{},[89,90],"img",{"alt":91,"src":92},"05｜什么才算学会：拟合、泛化与数据分布：图1","/collections-assets/llm-to-agent-learning/9b61e3ac3dd00940f4808071a4634fb7fcfb44755078b283d99013edbcb88c78.png",[10,94,95],{},"图1｜A＝2x＋1；B＝2x＋1＋（x－1）（x－2）（x－4）。两者通过相同训练点；x＝3时A预测7、B预测5；x＝5时A预测11、B预测23。空心圆为验证目标，方形为选定方案后揭开的测试目标；测试处的B仅供教学对照，不参与再选择。",[10,97,98],{},"把训练经验用于未参与学习的新输入，叫泛化。刚才只检查了两个位置，所以能支持的范围很小。它不证明输入100也可靠，更不证明真实业务必然是一条直线。",[10,100,101,102],{},"如果一个模型连训练中的主要关系也没贴合好，常会讨论欠拟合；如果它贴合了训练样本的偶然细节，新样本表现却较差，就要警惕过拟合。但看到成绩下降，还应检查数据来源、评分规则与使用范围，不能只凭“新题更差”就断定原因。",[103,104,108],"a",{"href":105,"rel":106},"https://developers.google.com/machine-learning/crash-course/overfitting/overfitting",[107],"nofollow","Google机器学习课程：拟合与过拟合",[20,110,112],{"id":111},"_4训练集验证集测试集分别负责什么","4．训练集、验证集、测试集分别负责什么",[10,114,115,116],{},"把刚才的卡片放大，就得到常见的三种数据职责。训练集直接用于拟合参数；验证集用于挑选模型、训练时长和其他设置；测试集则在方案确定后，评价这套最终方案。",[103,117,120],{"href":118,"rel":119},"https://developers.google.com/machine-learning/crash-course/overfitting/dividing-datasets",[107],"Google机器学习课程：数据集划分",[10,122,123],{},"关键在信息怎么流动。假如你看了测试题，发现模型总漏掉某种通知，于是专门补数据、改提示词、换模型，再用同一套题报告成绩，那么这套测试题已经影响了系统设计。哪怕没有把答案直接送进参数更新，它也失去了原先那种独立性。",[10,125,126],{},"可以继续用它定位问题，但应另外保留新题，评估最终版本。工程里的回归测试可以反复帮助修错；统计评估若要继续声称是独立检查，就必须承认已看过的错题已经参与设计。这两类测试都重要，支持的结论不同。验证集也会因为反复挑方案而逐渐被“适应”，因此验证成绩同样不是无限可靠的保证。",[10,128,129],{},"还有更隐蔽的泄漏。训练集放“周五15点在A室开会”，测试集放“会议地点A室，时间周五下午三点”。文字不同，事件和答案却几乎相同。如果目标是处理全新的会议，这道测试题就过于熟悉了。",[10,131,132],{},"同一篇文章的段落、同一张图片的裁剪、同一份通知的改写，也可能造成类似问题。应该先按原始文档、事件或其他相关单位分组，再把整组分到不同集合，而不是只把文本行随机打散。若任务本来只要求识别已知事件的不同表达，可以专门做改写测试，但应说清测的是这种能力。",[10,134,135],{},"图2把同一事件的原文与改写先系在一起，再把整组交给一个集合。这里选择“事件”作为分组单位，是因为我们要检查新事件的处理能力；如果实际目标不同，分组单位也需要相应调整。",[10,137,138],{},[89,139],{"alt":140,"src":141},"05｜什么才算学会：拟合、泛化与数据分布：图2","/collections-assets/llm-to-agent-learning/26f867936908f80e9995847d7dc8897dac6138074d3e5f1f5a548a3d5f2d950d.png",[10,143,144],{},"图2｜教学划分：事件甲与全部改写进入训练集；事件乙与全部改写进入验证集；事件丙与全部改写进入测试集。训练用于拟合，验证用于选择，测试在方案固定后评估；共享事件没有跨集合。图中的每组只用于解释机制，不代表实际评估应只用三个事件。",[10,146,147,148],{},"某些预处理也会泄漏信息。例如，用全体样本算出平均值，再用这个平均值调整训练输入，测试数据就提前影响了准备步骤。需要从训练数据估计的变换，应先只用训练集确定，再原样应用到验证和测试数据。",[103,149,152],{"href":150,"rel":151},"https://scikit-learn.org/stable/common_pitfalls.html#data-leakage",[107],"scikit-learn：数据泄漏与预处理",[10,154,155],{},"“各留百分之多少”没有统一答案。真正重要的是独立性、代表性和样本量。只测两条全对，可信程度显然不同于在足够多、覆盖关键场景的新题上稳定答对。",[10,157,158],{},"同一个模型换一批新题，分数也会有抽样波动。两个方案只差一点时，先看具体错在什么地方、样本是否足够，别急着把微小差距解释成稳定提升。业务中代价很高的少见错误，也值得单独安排测试，不能等平均分替我们发现。",[20,160,162],{"id":161},"_5同一模型换一批问题平均分为什么会变","5．同一模型，换一批问题，平均分为什么会变",[10,164,165],{},"数据分布可以先理解为：哪些输入和答案容易出现，各类情况大约占多少，以及输入与答案存在怎样的对应关系。它既关心“有什么”，也关心“什么更常见”。",[10,167,168],{},"假设一套通知测试题中，90条写明地点，10条没写。模型在前一类答对90条，在后一类全部胡乱补地点，整体正确率仍有90%。",[10,170,171],{},"后来业务变化，两类各占50条。假设模型在每一类里的行为都没变，它只会答对50条，整体正确率降为50%。这里不需要模型突然变笨，只要题目构成改变，平均成绩就会改变。",[10,173,174],{},"图3让每类表现保持不变，只改变两类题的比例。两条总长度相同的条带，是两次各100条的评测，比例不能凭视觉任意伸缩。",[10,176,177],{},[89,178],{"alt":179,"src":180},"05｜什么才算学会：拟合、泛化与数据分布：图3","/collections-assets/llm-to-agent-learning/6d6254cee6204e9bc8bfcfe0ac5dd6848d8c51c0989c37f96991089587319249.png",[10,182,183],{},"图3｜“写明地点”类始终全对，“没写地点”类始终全错。两类数量从90/10变为50/50，整体正确率便从90%变为50%。总体分数变化来自样本构成，图中没有改变模型。",[10,185,186],{},"变化还可能来自别处：原先是规范通知，后来是带错别字的语音转写；原先只处理一种语言，后来加入另一种语言；原先有效的业务规定变了，同一句描述对应的答案也可能改变。这些情况需要分别检查，不能用一个总分抹平。",[10,188,189],{},"普通随机留出的测试集，主要告诉我们模型对相近数据来源的新样本怎样。若计划处理未来通知，可以按时间留出较晚的数据；若计划服务新客户，可以把整个客户留出。前提是避免相关事件跨集合，同时保留能反映实际使用的样本组成。",[10,191,192,193],{},"分布发生变化时，旧测试成绩的适用范围也会变。Google的生产机器学习课程专门强调，离线训练后仍需监测输入和数据关系的变化。",[103,194,197],{"href":195,"rel":196},"https://developers.google.com/machine-learning/crash-course/production-ml-systems/static-vs-dynamic-training",[107],"静态训练与数据变化",[20,199,201],{"id":200},"_6真实研究怎样拆开记住与泛化","6．真实研究怎样拆开“记住”与“泛化”",[10,203,204,205],{},"一个经典实验比口头比喻更直接。Zhang等人在《Understanding deep learning requires rethinking generalization》中，把图像分类训练集的标签随机化，再训练卷积神经网络。实验发现，这些网络仍能很好地拟合随机标签。",[103,206,209],{"href":207,"rel":208},"https://arxiv.org/abs/1611.03530",[107],"原论文",[10,211,212],{},"标签就是样本对应的目标类别。正确标签表达我们想学的任务；随机改配以后，这种对应关系不再提供原来的分类规律。模型仍能把旧样本的标签拟合好，说明“能贴合一批记录”与“这批记录教出了可迁移的规律”需要分别检验。",[10,214,215],{},"这项实验不能推出“神经网络永远只会背答案”。同一类网络也可能在有规律的数据上形成有用的表示。它提供的反例更具体：很低的训练误差，单独不足以证明泛化；参数多、能表示复杂关系，也不是对新样本可靠的保证。",[10,217,218],{},"现实任务里，记忆与可迁移模式还可能同时存在。一些专有名称需要被记住，一种提取规则需要适用于新名称。评价应对准用途，而不是试图用一个分数给整个模型贴上“只会记忆”或“已经理解”的标签。",[10,220,221,222,227,228],{},"公开训练示例也需要这道检查。Qwen官方教程提供了Qwen3-32B的Axolotl微调路线；查看其所用示例的v0.9.2固定版本，能看到val_set_size设为0.0，即没有从这份训练数据中划出验证集。",[103,223,226],{"href":224,"rel":225},"https://github.com/QwenLM/Qwen3/blob/main/docs/source/training/axolotl.md",[107],"Qwen官方教程","、",[103,229,232],{"href":230,"rel":231},"https://github.com/axolotl-ai-cloud/axolotl/blob/v0.9.2/examples/qwen3/32b-qlora.yaml",[107],"固定版本配置",[10,234,235],{},"这份配置帮助读者启动训练，并不自动提供完整的独立评估。若换成自己的通知任务，仍应先按事件留出验证与测试数据。暂时不必认识配置里的每个训练术语；只要先问清“在哪里检查没见过的题”，就能避免把一次成功运行误当成效果证明。",[20,237,239],{"id":238},"_7想改善成绩先确定是哪一种问题","7．想改善成绩，先确定是哪一种问题",[10,241,242],{},"回到会议通知。训练题都很差，先检查任务是否说清、标注是否一致、模型是否有能力表示需要的关系、训练是否充分。训练题很好、同来源的新题差，重点检查泄漏、覆盖不足和过拟合。旧测试很好、新业务差，则应比较新旧数据的区别。",[10,244,245],{},"增加训练数据可能有帮助，但要看新增了什么。把同一模板改写很多遍，会增加行数，却未必补上“没写地点”“临时改地点”“一条消息提到两场会议”这些真正的缺口。",[10,247,248],{},"限制模型灵活度、给参数加惩罚、根据验证结果选择停止位置，改变的是不同环节。仍用最初的三条记录，比较y＝2x＋1与y＝1.8x＋1。前者训练平均平方误差为0；后者的三项平方误差为0.04、0.16、0.64，平均为0.28。只看拟合，前者胜出。",[10,250,251,252],{},"现在人为把训练目标改成“平均平方误差＋a²”，只惩罚斜率a，偏置固定为1。前者目标值0＋4＝4，后者目标值0.28＋3.24＝3.52，排序反过来了。加入惩罚是在明确偏好：愿意接受一点训练误差，换取较小斜率。它没有凭空证明新题更准，惩罚强度仍需验证；若约束过强，必要的关系也可能学不进去。",[103,253,256],{"href":254,"rel":255},"https://developers.google.com/machine-learning/crash-course/overfitting/regularization",[107],"L2正则化与早停的官方解释",[10,258,259],{},"早停则可以依据验证表现挑训练进度：例如训练损失仍在下降，验证损失却在第3次检查后开始回升，那么第3次保存的参数可能更值得保留。这里是在已有训练轨迹上选择位置，不是在当前损失里额外加一项a²。第07章会画出这一类训练与验证曲线。",[10,261,262],{},"另外，预测关联不自动等于因果解释。模型可能利用通知模板判断地点是否缺失，这在当前数据里有效，却不能据此认为“换一个模板就会使会议产生地点”。预测记录，与研究改变某件事会造成什么结果，需要不同的证据。",[10,264,265],{},"因此，“模型学会了”后面最好接上一句完整限定：在哪种任务、什么来源的新数据、按哪些指标、表现到什么程度。格式正确、字段正确、遇到缺信息能否克制，应分别看清。",[20,267,268],{"id":268},"本章练习",[270,271,272],"h3",{"id":272},"题目",[10,274,275],{},[276,277,278],"strong",{},"问题1｜拿留出的点检查规则",[10,280,281],{},"本章A＝2x＋1，B＝2x＋1＋（x－1）（x－2）（x－4）。验证点为x＝3、目标7。算出两条规则的预测与平方误差，并按这一次验证选择候选。",[10,283,284],{},[276,285,286],{},"问题2｜设计检查新事件的划分",[10,288,289],{},"要评价提取全新会议通知的能力。数据里每个事件有一条原文和两条改写。应怎样划分训练、验证、测试数据？看过测试错题并改提示词以后，还应怎样评估最终版？",[10,291,292],{},[276,293,294],{},"问题3｜预测总体分数怎样变化",[10,296,297],{},"模型在“写明地点”类正确率100%，在“没写地点”类正确率0%。新一批100条通知中，前者70条、后者30条，整体正确率是多少？若只报告这个总分，会漏掉什么？",[10,299,300],{},[276,301,302],{},"问题4｜改变训练偏好",[10,304,305],{},"偏置固定为1，只比较a＝2与a＝1.8。两者训练平均平方误差分别为0与0.28。若目标改为“平均平方误差＋a²”，各为多少，哪一个更低？这个选择是否已经经过独立测试？",[270,307,308],{"id":308},"思考提示",[10,310,311],{},[276,312,313],{},"提示1｜对应问题1",[10,315,316],{},"追加项中有一个负括号；先求预测，再与目标相减平方。",[10,318,319],{},[276,320,321],{},"提示2｜对应问题2",[10,323,324],{},"先确定哪些文本共享同一事件与答案，再追踪测试信息有没有影响选择。",[10,326,327],{},[276,328,329],{},"提示3｜对应问题3",[10,331,332],{},"分别计算每类答对条数，再相加；还要看全错的那类是否具有实际代价。",[10,334,335],{},[276,336,337],{},"提示4｜对应问题4",[10,339,340],{},"惩罚项使用各自的a，再与该候选的训练误差相加；目标评分不等于新样本成绩。",[270,342,343],{"id":343},"参考答案与解析",[10,345,346],{},[276,347,348],{},"答案1｜对应问题1",[10,350,351],{},"A预测7，平方误差0；B追加项2×1×（−1）＝−2，预测5，平方误差4。按这次验证选择A，但一个验证点不足以保证它对所有新输入都更好。",[10,353,354],{},[276,355,356],{},"答案2｜对应问题2",[10,358,359],{},"先按事件把原文及两条改写分组，再把整组分给某一个集合；不要让同一事件跨集合。用训练集拟合、验证集选择，最后以未参与选择的测试集评估。若已经用测试错题改提示词，可继续把旧题用于修错与回归检查，但应另留新的独立测试数据评估最终版。",[10,361,362],{},[276,363,364],{},"答案3｜对应问题3",[10,366,367],{},"答对70×1＋30×0＝70条，总正确率70%。总分会掩盖“没写地点”这一类仍全部失败，无法说明模型遇到缺失信息时会可靠地克制补写。",[10,369,370],{},[276,371,372],{},"答案4｜对应问题4",[10,374,375],{},"a＝2时为0＋2²＝4；a＝1.8时为0.28＋1.8²＝3.52，后者更低。这说明新目标偏好较小斜率，并未提供独立测试；是否适合新数据还须验证与最终测试。",[20,377,378],{"id":378},"下一章",[10,380,381],{},"我们已经知道，选择计算结构会影响可拟合的关系，评价还需要独立数据。那么，多层神经网络到底增加了什么？下一章沿着一套固定的权重、偏置和激活走一遍，看“很多参数”具体放在哪里。",{"title":383,"searchDepth":384,"depth":384,"links":385},"",3,[386,388,389,390,391,392,393,394,399],{"id":22,"depth":387,"text":23},2,{"id":44,"depth":387,"text":45},{"id":69,"depth":387,"text":70},{"id":111,"depth":387,"text":112},{"id":161,"depth":387,"text":162},{"id":200,"depth":387,"text":201},{"id":238,"depth":387,"text":239},{"id":268,"depth":387,"text":268,"children":395},[396,397,398],{"id":272,"depth":384,"text":272},{"id":308,"depth":384,"text":308},{"id":343,"depth":384,"text":343},{"id":378,"depth":387,"text":378},"从信息表示和学习出发，用可核算的例子与白板图逐步理解大模型、后训练、推理和Agent系统。","md",{},true,"/column/llm-to-agent-learning/05",{"title":5,"description":400},"column/llm-to-agent-learning/05","W7yGJEH0Zmil5A_65p94Ttb-sZyrvZbsYnMsbiGrcls",1791935828762]