<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
  <title>Paweł Dubiel Tech Blog: 术语表</title>
  <link>https://paweldubiel.com/zh</link>
  <atom:link href="https://paweldubiel.com/zh/glossary.xml" rel="self" type="application/rss+xml" />
  <description>关于 AI、语言模型和软件工程的笔记。</description>
  <language>zh</language>
  <lastBuildDate>Sun, 11 Oct 2026 00:00:00 GMT</lastBuildDate>
<item>
  <title>Overfitting</title>
  <link>https://paweldubiel.com/zh/glossary/overfitting</link>
  <guid isPermaLink="true">https://paweldubiel.com/zh/glossary/overfitting</guid>
  <pubDate>Sun, 11 Oct 2026 15:59:40 GMT</pubDate>
  <dc:creator>Paweł Dubiel</dc:creator>
  <category>ai</category>
  <category>llm</category>
  <category>glossary</category>
  <description>你经营着一个冰淇淋摊。10 天里，你在账本上记下了中午的气温和卖出的冰淇淋球数。你想把这些记录变成一条规则：明天预计 24°C，该准备多少冰淇淋？</description>
  <content:encoded><![CDATA[<p>你经营着一个冰淇淋摊。10 天里，你在账本上记下了中午的气温和卖出的冰淇淋球数。你想把这些记录变成一条规则：明天预计 24°C，该准备多少冰淇淋？</p>
<p>最简单的规则是一条直线：“每高一度，就多卖几个球”。在这篇笔记的例子里，它在记下的这些天上的典型误差是 27.5 个球，因为它看不到最热的时候销量反而下降。于是可以给规则更多的自由，允许曲线拐弯。试过的曲线中最灵活的那条，恰好穿过全部 10 个点。它在账本里这些天上的误差是 0。</p>
<p>这看起来是一条完美的规则。只不过账本里的那些天已经过去了，而规则是要在明天起作用的。在同一个摊子的 400 个新日子上，这条“完美”曲线的典型误差是 236.5 个球。灵活度适中的曲线在账本上表现更差（10.9），在新日子上的误差却是 16.8。</p>
<p><strong>Overfitting</strong> 指的是这样一种情形：模型在用于学习的数据上误差很小，而在同类的新数据上误差与之相比过大（<a href="https://www.deeplearningbook.org/contents/ml.html" rel="noopener noreferrer">Goodfellow、Bengio 和 Courville, <em>Deep Learning</em>, §5.2</a>）。模型拟合了自己那份数据集中在别处不会重现的特征。相反的毛病叫 <strong>underfitting</strong>：规则太简单，连它见过的数据都描述不好。我们例子里的直线就是这样。</p>
<p><img src="https://paweldubiel.com/assets/overfitting-smooth-rule-versus-tangled-line-through-every-point.webp" alt="两个冰淇淋摊并排：第一个上方，一条平滑的线以柔和的弧度从各点之间穿过；第二个上方，一条缠绕的线经过每一个点，并远远冲出画面之外。" loading="eager" decoding="async" width="1536" height="1024"></p>
<h2 id="这种差别从何而来">这种差别从何而来</h2>
<p>账本里的每一条记录都由两样东西组成：规律（天更热，所以冰淇淋卖得更多）和偶然（恰好来了一个旅行团）。规则应当抓住前者，略过后者。可是模型并不知道哪个是哪个。它只看得到点。</p>
<p>模型会吸收多少偶然，取决于它的灵活度，文献中称之为 <strong>capacity</strong>：拟合许多不同形状的能力。例子中的曲线由 2 到 10 个数字描述，这些数字根据数据来选定；数字的个数等于曲线的次数加一。9 次曲线有 10 个这样的数字，对应 10 天，所以它能命中每一个点，连同全部的偶然。教科书的作者是这样描述的：非常灵活的模型能够表示正确的关系，但也能表示大量别的、同样符合训练数据的关系，而它恰好选中往后还管用的那一个的可能性很小（§5.2）。</p>
<p>典型的过程是这样的：灵活度增大时，训练数据上的误差减小，而新数据上的误差先减小，然后开始增大（§5.2，图 5.3）。由此得出一条实用的原则。不在模型学习过的数据上评估模型，也不按这些数据上的误差来选择灵活度，因为它总会指向最大的那个。要把一部分数据留出来：<strong><a href="https://paweldubiel.com/glossary/validation-set" hreflang="pl">validation set [Polski]</a></strong> 用于选择设置，单独的 <strong>test set</strong> 用于最终评估（§5.3）。</p>
<h2 id="自己试试">自己试试</h2>
<p>下面是同一个冰淇淋摊。这篇笔记里的所有数字都可以重现：点击“重新开始”后可以看到 10 天，而实验 1–5 会设置好文中描述的各种情形。</p>
<div id="overfitting-lab"></div>
<p>有两件事值得做一做，它们是静态图表展示不了的。第一，打开“另外 24 本账本”并改变次数：次数低时，灰线彼此靠得很近；次数高时，它们向四面八方散开，尽管每一条都来自同一个摊子。第二，把一个点高高地往上拖。2 次曲线只会挪动一点点，而 9 次曲线会为了命中它而在整条线上重新调整。</p>
<h2 id="什么有帮助">什么有帮助</h2>
<ul>
<li><strong>更多数据</strong>。有 80 天时，同一条 9 次曲线在账本上的典型误差是 14.8 个球，在新日子上是 15.9。差别几乎消失了，因为曲线已经无法命中每一个点（§5.2）。</li>
<li><strong>更小的灵活度</strong>。3 次曲线用 10 天：账本上 10.9，新日子上 16.8。</li>
<li><strong>Regularization</strong>，也就是对学习方式的改动，目的是减小新数据上的误差，而不是训练数据上的误差（§5.2.2）。一个例子是对大系数的惩罚，它与 <a href="https://paweldubiel.com/glossary/weight-decay" hreflang="pl">Weight decay [Polski]</a> 是近亲：带惩罚 λ = 0.01 的 9 次曲线，在账本上的误差是 5.8，在新日子上是 21.2，而不是 236.5。</li>
</ul>
<p>这些设置中的任何一个，都无法只靠看训练数据上的误差来选定。</p>
<h2 id="局限">局限</h2>
<ul>
<li>这是一个自拟的例子，只有一个输入量，数据是模拟的。在这里，单是偶然就会带来典型值为 15 个球的误差，任何规则在新日子上都降不到它以下。</li>
<li>“先变好，后变差”的形状是典型的，却不是必然的。作者指出，在深度网络中，甚至很难确定模型实际的灵活度，因为它还取决于学习算法（§5.2）。所以，单凭 LLM 的参数量，说明不了模型是否过拟合。</li>
<li>新数据上误差小，说的是来自同一来源的数据。如果摊子搬到了海边，城里的账本什么也保证不了。</li>
</ul>
<h2 id="相关条目">相关条目</h2>
<ul>
<li><a href="https://paweldubiel.com/glossary/weight-decay" hreflang="pl">Weight decay [Polski]</a> 限制权重的大小，是缩小训练数据与新数据上误差之差的方法之一。</li>
<li><a href="https://paweldubiel.com/glossary/grokking" hreflang="pl">Grokking [Polski]</a> 描述的是这样一些情形：看起来已经过拟合的模型，在长时间的继续训练之后开始在新数据上表现良好。</li>
<li><a href="https://paweldubiel.com/glossary/fine-tuning" hreflang="pl">Fine-tuning [Polski]</a> 在小数据集上进行时需要同样的把关：要有模型在学习时没有见过的单独数据。</li>
<li><a href="https://paweldubiel.com/glossary/catastrophic-forgetting" hreflang="pl">Catastrophic Forgetting [Polski]</a> 是另一个问题：那里的模型在新的学习之后丢掉了旧的能力，而这里的模型从一开始就难以推广到自己的训练数据之外。</li>
</ul>]]></content:encoded>
</item>
<item>
  <title>Time horizon</title>
  <link>https://paweldubiel.com/zh/glossary/time-horizon</link>
  <guid isPermaLink="true">https://paweldubiel.com/zh/glossary/time-horizon</guid>
  <pubDate>Sun, 11 Oct 2026 15:02:00 GMT</pubDate>
  <dc:creator>Paweł Dubiel</dc:creator>
  <category>ai</category>
  <category>papers</category>
  <category>llm</category>
  <category>agents</category>
  <category>benchmarks</category>
  <description>在智能体评估中，Time horizon 描述的是智能体达到选定成功率水平时所对应的任务长度。长度用人类所需的时间来衡量，而不是 AI 的运行时间。</description>
  <content:encoded><![CDATA[<p>在智能体评估中，<strong>Time horizon</strong> 描述的是智能体达到选定成功率水平时所对应的任务长度。长度用人类所需的时间来衡量，而不是 AI 的运行时间。</p>
<p>以 50% 的版本为例：我们收集智能体在人类耗时各不相同的任务上成功和失败的尝试，拟合出一条成功几率曲线，再读出它与 50% 相交处的时间。这是针对某一耗时的任务分布所作的预测；它并不表示其中每一项任务被完成的几率都相同。<a href="https://metr.org/time-horizons/" rel="noopener noreferrer">METR：定义与方法</a>。</p>
<p>一个教学示例：如果拟合出的曲线在两小时处达到 50%，那么两小时就是时间跨度。智能体完成一项成功的任务所用的时间可能短得多。这个结果本身也不说明它在另一个领域的任务上会有怎样的成功率。</p>
<p>要读出这个数值，人类耗时与任务对 AI 的难度之间必须存在合理的关系。当曲线平坦时，成功几率的微小变化就可能让它与阈值的交点移动很远。<a href="https://paweldubiel.com/zh/articles/a-longer-metr-horizon-does-not-mean-proportionally-harder-tasks">关于 METR 时间跨度换算的文章</a>用一个可以算出来的例子展示了这个问题，并讨论了对 METR 数据的新拟合。<a href="https://arxiv.org/html/2610.12466v1#S2" rel="noopener noreferrer">Nguyen 和 Fithian, §2–3</a>。</p>
<p>比较时间跨度时，必须保留有关任务集、智能体运行环境、尝试次数预算和所采用的成功率阈值的信息。</p>]]></content:encoded>
</item>
<item>
  <title>Item response theory</title>
  <link>https://paweldubiel.com/zh/glossary/item-response-theory</link>
  <guid isPermaLink="true">https://paweldubiel.com/zh/glossary/item-response-theory</guid>
  <pubDate>Sun, 11 Oct 2026 15:01:00 GMT</pubDate>
  <dc:creator>Paweł Dubiel</dc:creator>
  <category>ai</category>
  <category>papers</category>
  <category>llm</category>
  <category>agents</category>
  <category>benchmarks</category>
  <description>Item response theory (IRT) 是一类方法，它根据对各个任务的作答，同时估计作答者的能力和任务的难度。在 AI 评估中，作答者是智能体，而作答可以是一次完整尝试的成功或失败。</description>
  <content:encoded><![CDATA[<p><strong>Item response theory (IRT)</strong> 是一类方法，它根据对各个任务的作答，同时估计作答者的能力和任务的难度。在 AI 评估中，作答者是智能体，而作答可以是一次完整尝试的成功或失败。</p>
<p>假设两个智能体解同样的三项任务。第一个通常能完成 A 和 B，第二个还能完成 C。单看成功的百分比，可以得到一个排名。IRT 还试图进一步估计 C 相对于其余任务有多难，以及多大的能力差异能够解释这样的作答模式。这是一个教学示例；这么小的表格不足以得出可靠的拟合。</p>
<p>在简单的 Rasch 模型中，智能体的能力相对于任务难度越高，成功的几率就越大。这两个量都是隐藏的：我们从结果中推断它们，而不是一上来就把难度等同于指令的长度或人类的耗时。IRT 的各种变体会加入更多的参数和假设。</p>
<p>在<a href="https://paweldubiel.com/zh/articles/a-longer-metr-horizon-does-not-mean-proportionally-harder-tasks">对 METR 时间跨度的分析</a>中，作者用一条学习得到的曲线把隐藏的难度与人类的工作时间联系起来。他们还加入了任务族效应和重复尝试结果之间的差异。这样就可以检验，在哪个区间里时间确实能区分对 AI 来说难和易的任务。<a href="https://arxiv.org/html/2610.12466v1#S2.SS3" rel="noopener noreferrer">Nguyen 和 Fithian, §2.3 和 §3.1</a>。</p>
<p>对作答预测得好，并不能证明学到的参数涵盖了智能体所有类型的能力。解读时必须检查模型的假设，以及在拟合时未使用的任务上的结果。</p>]]></content:encoded>
</item>
<item>
  <title>Elastic Weight Consolidation</title>
  <link>https://paweldubiel.com/zh/glossary/elastic-weight-consolidation</link>
  <guid isPermaLink="true">https://paweldubiel.com/zh/glossary/elastic-weight-consolidation</guid>
  <pubDate>Sun, 11 Oct 2026 12:00:11 GMT</pubDate>
  <dc:creator>Paweł Dubiel</dc:creator>
  <category>ai</category>
  <category>llm</category>
  <category>glossary</category>
  <description>一个模型负责把客户的提问分派给“配送”和“退货”两个部门。现在它要学会识别投诉，可旧的消息已经不允许再保存了。所以学习时没法回放它们。旧任务留下的唯一东西就是模型本身：在早先的训练中调好的数以百万计的数字，称为权重。</description>
  <content:encoded><![CDATA[<p>一个模型负责把客户的提问分派给“配送”和“退货”两个部门。现在它要学会识别投诉，可旧的消息已经不允许再保存了。所以学习时没法回放它们。旧任务留下的唯一东西就是模型本身：在早先的训练中调好的数以百万计的数字，称为权重。</p>
<p>可以不加任何限制地让模型学习投诉。那样，权重会朝着对新任务有利的方向移动，其中也包括识别配送和退货所依赖的那些权重。也可以对每一处改动施以同样的惩罚，但那样模型会死死守住旧的设置，新东西学不好。我们需要回答的问题是：<strong>哪些权重可以动，哪些最好别动？</strong></p>
<p><strong>Elastic Weight Consolidation (EWC)</strong> 在新任务的学习中加入一项惩罚，惩罚权重偏离旧任务结束时的取值，而且某个权重对旧任务越重要，惩罚就越大。作者把它比作系在每个权重上的弹簧：重要的权重上弹簧硬，其余的权重上弹簧松（<a href="https://arxiv.org/abs/1612.00796" rel="noopener noreferrer">Kirkpatrick et al., <em>Overcoming catastrophic forgetting in neural networks</em>, §2</a>）。</p>
<p><img src="https://paweldubiel.com/assets/elastic-weight-consolidation-stiff-and-loose-springs.webp" alt="一排用弹簧系在小柱子上的圆片：系着又粗又硬的弹簧的圆片留在原地，系着又细又松的弹簧的圆片则朝红色圆圈移动。" loading="eager" decoding="async" width="1536" height="1024"></p>
<h2 id="两个权重一项新任务">两个权重，一项新任务</h2>
<p>我们只取两个权重。学完配送和退货之后，两者的值都是 1。第一个对旧部门非常重要（重要性 10），第二个几乎无关紧要（重要性 0.1）。新任务只要求<strong>两个权重之和等于 4</strong>。满足这一点的设置有很多：(2, 2) 可以，(1, 3) 也可以。</p>
<ul>
<li><strong>不加保护</strong>时，学习让两个权重移动同样的距离，到达 (2, 2)。新任务学会了，但重要的权重跑开了 1，旧任务上的损失从 0 升到 5.05。</li>
<li>对两个权重施加<strong>同等惩罚</strong>，会让它们停在半路，停在 (1.67, 1.67)。旧任务受的损害小一些，但和是 3.33 而不是 4。</li>
<li><strong>EWC</strong> 把几乎全部的移动都转到不太重要的权重上：(1.02, 2.80)。和为 3.82，旧任务上的损失只有 0.16。</li>
</ul>
<p>损失是一个数字，表示模型错得有多厉害；越小越好。在下面的实验中，你可以改变惩罚强度 λ 和保护方式。结果是针对这个两权重的例子精确算出来的；这不是对真实网络的模拟。</p>
<div id="ewc-spring-lab"></div>
<h2 id="怎么知道哪个权重重要">怎么知道哪个权重重要</h2>
<p>在真实的网络里，没有人事先给出重要性。它是在旧任务结束之后、其数据还可以取得的时候估计出来的：考察某个权重的微小变化会在多大程度上改变模型对旧样本的回答。论文为此使用了 <em>Fisher 信息矩阵</em>的对角线，也就是每个权重对应一个重要性数字。之后数据就可以删除；留下的是权重的旧值和它们的重要性。</p>
<p>在新的学习过程中，被最小化的是两项之和（论文中的公式 3）：</p>
<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mi>L</mi><mo stretchy="false">(</mo><mi>θ</mi><mo stretchy="false">)</mo><mo>=</mo><msub><mi>L</mi><mi>B</mi></msub><mo stretchy="false">(</mo><mi>θ</mi><mo stretchy="false">)</mo><mo>+</mo><munder><mo>∑</mo><mi>i</mi></munder><mfrac><mi>λ</mi><mn>2</mn></mfrac><msub><mi>F</mi><mi>i</mi></msub><mtext> </mtext><mo stretchy="false">(</mo><msub><mi>θ</mi><mi>i</mi></msub><mo>−</mo><msubsup><mi>θ</mi><mrow><mi>A</mi><mo separator="true">,</mo><mi>i</mi></mrow><mo>∗</mo></msubsup><msup><mo stretchy="false">)</mo><mn>2</mn></msup></mrow><annotation encoding="application/x-tex">L(\theta) = L_B(\theta) + \sum_i \frac{\lambda}{2} F_i \,(\theta_i - \theta^*_{A,i})^2</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal">L</span><span class="mopen">(</span><span class="mord mathnormal" style="margin-right:0.0278em;">θ</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord"><span class="mord mathnormal">L</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3283em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight" style="margin-right:0.0502em;">B</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mopen">(</span><span class="mord mathnormal" style="margin-right:0.0278em;">θ</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:2.6491em;vertical-align:-1.2777em;"></span><span class="mop op-limits"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.05em;"><span style="top:-1.8723em;margin-left:0em;"><span class="pstrut" style="height:3.05em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">i</span></span></span><span style="top:-3.05em;"><span class="pstrut" style="height:3.05em;"></span><span><span class="mop op-symbol large-op">∑</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:1.2777em;"><span></span></span></span></span></span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.3714em;"><span style="top:-2.314em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord">2</span></span></span><span style="top:-3.23em;"><span class="pstrut" style="height:3em;"></span><span class="frac-line" style="border-bottom-width:0.04em;"></span></span><span style="top:-3.677em;"><span class="pstrut" style="height:3em;"></span><span class="mord"><span class="mord mathnormal">λ</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em;"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.1389em;">F</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">i</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mopen">(</span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0278em;">θ</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:-0.0278em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">i</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:1.2472em;vertical-align:-0.3831em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0278em;">θ</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.7387em;"><span style="top:-2.453em;margin-left:-0.0278em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">A</span><span class="mpunct mtight">,</span><span class="mord mathnormal mtight">i</span></span></span></span><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mbin mtight">∗</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.3831em;"><span></span></span></span></span></span></span><span class="mclose"><span class="mclose">)</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8641em;"><span style="top:-3.113em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span></span></span></span></span>
<p><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>L</mi><mi>B</mi></msub></mrow><annotation encoding="application/x-tex">L_B</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">L</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3283em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight" style="margin-right:0.0502em;">B</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span> 是新任务上的损失，<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>θ</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">\theta_i</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8444em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0278em;">θ</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:-0.0278em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">i</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span> 是第 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6595em;"></span><span class="mord mathnormal">i</span></span></span></span> 个权重的当前值，<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msubsup><mi>θ</mi><mrow><mi>A</mi><mo separator="true">,</mo><mi>i</mi></mrow><mo>∗</mo></msubsup></mrow><annotation encoding="application/x-tex">\theta^*_{A,i}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.1059em;vertical-align:-0.4114em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.0278em;">θ</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.6887em;"><span style="top:-2.4247em;margin-left:-0.0278em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">A</span><span class="mpunct mtight">,</span><span class="mord mathnormal mtight">i</span></span></span></span><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mbin mtight">∗</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.4114em;"><span></span></span></span></span></span></span></span></span></span> 是它在旧任务结束时的值，<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>F</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">F_i</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.1389em;">F</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3117em;"><span style="top:-2.55em;margin-left:-0.1389em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">i</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span> 是它的重要性，而 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>λ</mi></mrow><annotation encoding="application/x-tex">\lambda</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6944em;"></span><span class="mord mathnormal">λ</span></span></span></span> 表示旧任务相对于新任务有多大分量。在我们的例子中，<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>F</mi><mo>=</mo><mo stretchy="false">(</mo><mn>10</mn><mo separator="true">,</mo><mtext> </mtext><mn>0.1</mn><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">F = (10,\ 0.1)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord mathnormal" style="margin-right:0.1389em;">F</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">(</span><span class="mord">10</span><span class="mpunct">,</span><span class="mspace"> </span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord">0.1</span><span class="mclose">)</span></span></span></span>，<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>λ</mi><mo>=</mo><mn>1</mn></mrow><annotation encoding="application/x-tex">\lambda = 1</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6944em;"></span><span class="mord mathnormal">λ</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">1</span></span></span></span>。</p>
<h2 id="方法的边界">方法的边界</h2>
<p>重要性是在一个点上、对每个权重分别计算的近似值。作者自己就指出，他们的估计在判断哪些权重无关紧要时往往过于自信，并把这称为该方法的主要弱点（§2.2 和 §3）。在他们的 Atari 游戏实验中，带 EWC 的智能体依次学会了许多游戏，但没有赶上为每个游戏单独训练的网络。这些结果针对的是数字识别和游戏，而不是大型语言模型。我们的两个权重和客户消息是自拟的简化。</p>
<ul>
<li><a href="https://paweldubiel.com/glossary/catastrophic-forgetting" hreflang="pl">Catastrophic Forgetting [Polski]</a> 是新的学习之后旧能力的显著退化；EWC 试图在无法取得旧数据的情况下减轻它。</li>
<li><a href="https://paweldubiel.com/zh/glossary/experience-replay">Experience Replay</a> 用另一种方式解决同一个问题：它保存的是一部分旧样本，而不是权重的重要性。</li>
<li><a href="https://paweldubiel.com/zh/glossary/continual-learning">Continual Learning</a> 确定的是目标，也就是在保留原有任务的同时学习后续的任务；EWC 是其中一种方法。</li>
<li><a href="https://paweldubiel.com/glossary/fine-tuning" hreflang="pl">Fine-tuning [Polski]</a> 是对现成模型的继续训练；EWC 改变了它的目标，为改动重要权重加上惩罚。</li>
</ul>
<p><em>文字和插图在 AI 的协助下完成。两个权重、它们的重要性和演示是自拟的简化教学示例；插图是比喻，而不是模型构造的示意图。</em></p>]]></content:encoded>
</item>
<item>
  <title>Reservoir Sampling</title>
  <link>https://paweldubiel.com/zh/glossary/reservoir-sampling</link>
  <guid isPermaLink="true">https://paweldubiel.com/zh/glossary/reservoir-sampling</guid>
  <pubDate>Sun, 11 Oct 2026 12:00:11 GMT</pubDate>
  <dc:creator>Paweł Dubiel</dc:creator>
  <category>ai</category>
  <category>llm</category>
  <category>glossary</category>
  <description>一个客服模型在一条接一条到来的消息上学习。你想留下其中几条供以后回放，但记忆里只有四个位置。你也不知道还会来多少条消息：二十条，还是两百万条。</description>
  <content:encoded><![CDATA[<p>一个客服模型在一条接一条到来的消息上学习。你想留下其中几条供以后回放，但记忆里只有四个位置。你也不知道还会来多少条消息：二十条，还是两百万条。</p>
<p>留下最先的四条？那样记忆只认识开头。永远保留最后四条？那样它只认识结尾。公平地“从全体中抽四条”，则需要把所有消息都存下来，或者事先知道消息的数量。问题是：<strong>在位置数量固定、数据流长度未知的情况下，怎样让每条消息都有同样的机会？</strong></p>
<p><strong>Reservoir Sampling</strong> 是一种在对数据的一次遍历中维持固定大小随机样本的方法，而数据的数量事先并不知道。每来一条消息之后，这里称为蓄水池的记忆里装的，都是到目前为止全部来过的消息的一份公平的随机样本。最简单的版本 Algorithm R，由 <a href="https://doi.org/10.1145/3147.3165" rel="noopener noreferrer">Vitter, <em>Random Sampling with a Reservoir</em>, §2</a> 描述，他把它归于 Alan Waterman。</p>
<p><img src="https://paweldubiel.com/assets/reservoir-sampling-pebble-stream-four-slot-tray.webp" alt="一长串卵石和贝壳从一个有四个凹槽的小木盘旁边流过；一只手从木盘里取出一颗卵石，另一只手把流里的一颗卵石放到它的位置上。" loading="eager" decoding="async" width="1536" height="1024"></p>
<h2 id="两步的做法">两步的做法</h2>
<ol>
<li>最先的四条消息不经抽签，直接进入记忆。</li>
<li>第 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>t</mi></mrow><annotation encoding="application/x-tex">t</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6151em;"></span><span class="mord mathnormal">t</span></span></span></span> 条消息（第五条、第六条以及之后的每一条）以 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mn>4</mn><mi mathvariant="normal">/</mi><mi>t</mi></mrow><annotation encoding="application/x-tex">4/t</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord">4/</span><span class="mord mathnormal">t</span></span></span></span> 的机会进入记忆。如果它进去了，就替换掉已保存的四条中随机选出的一条。</li>
</ol>
<p>所以第五条消息以 4/5 的机会进入，第一百条以 4/100 的机会进入。新消息进入的机会越来越小，但旧消息已经多次面临被挤出去的风险，这两种效应恰好相互抵消。我们在第五条消息之后验证一下。它以 4/5 的机会进入。第一条消息只有在第五条进入了（4/5）并且恰好落在它的位置上（1/4）时才会被挤出，也就是 1/5 的机会。它留下来的机会是 4/5：与第五条的相同。经过 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>t</mi></mrow><annotation encoding="application/x-tex">t</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6151em;"></span><span class="mord mathnormal">t</span></span></span></span> 条消息之后，其中每一条留在记忆里的机会都是 <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mn>4</mn><mi mathvariant="normal">/</mi><mi>t</mi></mrow><annotation encoding="application/x-tex">4/t</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord">4/</span><span class="mord mathnormal">t</span></span></span></span>。</p>
<h2 id="机会均等并不是保证">机会均等并不是保证</h2>
<p>在实验中，数据流有 20 条消息。十八条与配送有关，而第九条和第十五条这两条与退货有关。每次运行都把这样的数据流跑 2000 遍，并统计每个位置最终留在记忆里的频率。抽签是真实的，所以每次的结果都会相差零点几个百分点。</p>
<div id="reservoir-sampling-lab"></div>
<p>采用 Reservoir Sampling 时，每根柱子都在 20% 左右，也就是 4/20。与此同时，在大多数轮次中，两条退货消息没有一条留在记忆里。精确值是 3060/4845，约 63%：在从 20 条消息中选出的所有四条组合里，完全由那十八条配送消息组成的就占这么多。这种方法对单条消息是公平的，但并不保证每个类别都有代表。</p>
<h2 id="这在哪里要紧">这在哪里要紧</h2>
<p>在带回放的学习中，Reservoir Sampling 常被用作写入缓冲区的方式：既不需要知道数据流的长度，也不需要知道任务之间的边界。<a href="https://arxiv.org/html/1902.10486v2#S2" rel="noopener noreferrer">Chaudhry et al., <em>Continual Learning with Tiny Episodic Memories</em>, §2, 算法 2</a> 正是这样用它的。在他们针对图像任务的实验中，它表现良好，只有记忆非常小时例外，那时较早的类别会从缓冲区里消失；这种情况下，注重各类别均等代表的策略表现更好（§4.4）。这是图像分类上的结果，而不是 LLM 上的。</p>
<p>算法本身与机器学习无关。Vitter 1985 年的论文描述的是从长度未知的磁带上随机抽取记录，并提出了更快的变体：它们不在每条记录上都抽签，而是算出要跳过多少条记录。客户消息和 20 个位置的数据流是自拟的例子。</p>
<ul>
<li><a href="https://paweldubiel.com/zh/glossary/experience-replay">Experience Replay</a> 需要一个装有旧样本的缓冲区；Reservoir Sampling 是决定哪些样本进入其中的方法之一。</li>
<li><a href="https://paweldubiel.com/zh/glossary/continual-learning">Continual Learning</a> 设想的是在记忆有限的条件下从数据流中学习，也就是无法把一切都保留下来的情形。</li>
<li><a href="https://paweldubiel.com/glossary/catastrophic-forgetting" hreflang="pl">Catastrophic Forgetting [Polski]</a> 在某个旧类别的样本全部从小记忆中被挤出时可能加剧。</li>
</ul>
<p><em>文字和插图在 AI 的协助下完成。消息流和演示是自拟的简化教学示例；插图是比喻，而不是算法的示意图。</em></p>]]></content:encoded>
</item>
<item>
  <title>Experience Replay</title>
  <link>https://paweldubiel.com/zh/glossary/experience-replay</link>
  <guid isPermaLink="true">https://paweldubiel.com/zh/glossary/experience-replay</guid>
  <pubDate>Sun, 11 Oct 2026 08:22:26 GMT</pubDate>
  <dc:creator>Paweł Dubiel</dc:creator>
  <category>ai</category>
  <category>llm</category>
  <category>glossary</category>
  <description>模型已经学会把客户的提问分派给“配送”和“退货”两个部门。现在你要继续训练它识别投诉，比如“商品送到时已经损坏”。如果在接下来的练习里它只看到投诉，那么对从前熟悉的“包裹在哪里？”，它可能会处理得更差。完整的旧存档已经无法取得。那么，能不能至少回头用上留存下来的几条消息呢？</description>
  <content:encoded><![CDATA[<p>模型已经学会把客户的提问分派给“配送”和“退货”两个部门。现在你要继续训练它识别投诉，比如“商品送到时已经损坏”。如果在接下来的练习里它只看到投诉，那么对从前熟悉的“包裹在哪里？”，它可能会处理得更差。完整的旧存档已经无法取得。那么，能不能至少回头用上留存下来的几条消息呢？</p>
<p><strong>Experience Replay (ER)</strong> 的做法是保存一部分早先的样本，并在训练中重新使用它们。在简单的版本里，我们往一批新数据中掺入来自记忆的样本，这块记忆称为 <em>replay buffer</em>。它是存放回放数据的容器，而不是模型全部知识的记录。<a href="https://arxiv.org/html/1902.10486v2#S2" rel="noopener noreferrer">Chaudhry et al., <em>Continual Learning with Tiny Episodic Memories</em>, §2, 算法 1</a> 描述了这种合在一起的训练。</p>
<p><img src="https://paweldubiel.com/assets/experience-replay-card-box-returning-examples.webp" alt="留存下来的深蓝色和赭色卡片从一个小盒子里回到一排新的红色卡片之中：比喻继续学习时的回放。" loading="eager" decoding="async" width="1536" height="1024"></p>
<h2 id="下一次练习里放进了什么">下一次练习里放进了什么</h2>
<p>在存档丢失之前，我们记下了四条消息以及它们的正确部门。现在我们有四条新的投诉。没有回放时，模型在四条新消息上学习。有了回放，它还会在四条旧消息上练习：再次得到信号，知道“包裹在哪里？”属于配送。在这个小例子里我们用上了整个缓冲区；较大的缓冲区通常提供的是随机抽取的一批。</p>
<p>不过，只数记忆里有几个位置是不够的。保存下来的四条配送提问里，一条退货的样本也没有。把其中两条换成“怎么把买的东西寄回去？”和“我想退一件衬衫”之后，回放的数量不变，却覆盖了原先的两个部门。下面的实验<strong>统计的是一批数据里的样本；它并不预测模型的准确率</strong>。</p>
<div id="experience-replay-lab"></div>
<h2 id="回放只对手头有的数据起作用">回放只对手头有的数据起作用</h2>
<p>模型得到的是练习早先答案的机会，而不是保住所有能力的保证。随机抽出的小样本可能把少见的类别完全漏掉；研究者在缓冲区非常小时观察到过这样的问题（同一篇论文的 §4.4）。我们的消息是自拟的例子，不是那些实验的结果。学习的效果必须在单独的、没有用于训练的旧消息和新消息上检验。缓冲区还会占用存储空间，并且要求把选中的数据保留下来。</p>
<p>另见：<a href="https://paweldubiel.com/zh/glossary/reservoir-sampling">Reservoir Sampling</a>——一种决定数据流中哪些样本进入固定大小缓冲区的方法，它给每个样本同等的机会。</p>
<p>在游戏中，在 <a href="https://paweldubiel.com/glossary/reinforcement-learning" hreflang="pl">Reinforcement Learning [Polski]</a>（根据奖励来学习行动）里，保存的是情境、行动、奖励和下一个情境。对这些记录随机抽取，可以减少对紧接着发生的事件的依赖（<a href="https://storage.googleapis.com/deepmind-media/dqn/DQNNaturePaper.pdf#page=7" rel="noopener noreferrer">Mnih et al., <em>Human-level control through deep reinforcement learning</em>, Methods, “Training algorithm for deep Q-networks”</a>）。这与带有正确部门的消息是不同的数据；Atari 上的结果不应直接搬到 LLM 上。</p>
<ul>
<li><a href="https://paweldubiel.com/zh/glossary/continual-learning">Continual Learning</a> 确定的是在保留原有能力的前提下继续学习这一目标；ER 是实现它的方法之一。</li>
<li><a href="https://paweldubiel.com/glossary/catastrophic-forgetting" hreflang="pl">Catastrophic Forgetting [Polski]</a> 描述的是旧能力的显著退化，而回放可以减轻这种退化。</li>
<li><a href="https://paweldubiel.com/glossary/fine-tuning" hreflang="pl">Fine-tuning [Polski]</a> 是对模型的继续训练；replay 改变的是其数据的选取。仅仅把旧消息粘贴进对话，并不是这样的模型更新。</li>
</ul>
<p><em>文字和插图在 AI 的协助下完成。消息和演示是自拟的简化教学示例；插图是比喻，而不是模型构造的示意图。</em></p>]]></content:encoded>
</item>
<item>
  <title>Continual Learning</title>
  <link>https://paweldubiel.com/zh/glossary/continual-learning</link>
  <guid isPermaLink="true">https://paweldubiel.com/zh/glossary/continual-learning</guid>
  <pubDate>Sat, 10 Oct 2026 20:03:52 GMT</pubDate>
  <dc:creator>Paweł Dubiel</dc:creator>
  <category>ai</category>
  <category>llm</category>
  <category>glossary</category>
  <description>一个模型负责把客户消息分派给“订单”和“退货”两个部门。它认得出“我的包裹在哪里？”这样的消息。现在公司新设了投诉部门。你用有关商品损坏的消息继续训练模型。投诉分派得越来越准，可一部分询问配送的消息也开始落到新部门去了。如果只检查投诉，就会产生进步的错觉。</description>
  <content:encoded><![CDATA[<p>一个模型负责把客户消息分派给“订单”和“退货”两个部门。它认得出“我的包裹在哪里？”这样的消息。现在公司新设了投诉部门。你用有关商品损坏的消息继续训练模型。投诉分派得越来越准，可一部分询问配送的消息也开始落到新部门去了。如果只检查投诉，就会产生进步的错觉。</p>
<p>你需要的是<strong>教模型学会新的东西，同时保住原有的能力</strong>。这正是 <strong>Continual Learning</strong> 的目标：在依次到来的数据或任务上学习，并顾及模型此前已经学会的内容。这个名称指的是一个问题和一类方法；它并不保证不会遗忘。<a href="https://arxiv.org/html/1612.00796v2#S1" rel="noopener noreferrer">Kirkpatrick et al., <em>Overcoming catastrophic forgetting in neural networks</em>, §1</a> 描述了这种需求。</p>
<p><img src="https://paweldubiel.com/assets/continual-learning-embroidered-sampler-growing-repertoire.webp" alt="同一块布料上保留着绣好的圆形和三角形，针正在添上新的波浪纹样：比喻在保留原有技能的同时发展新技能。" loading="eager" decoding="async" width="1536" height="1024"></p>
<h2 id="我们在学习和检验中改变了什么">我们在学习和检验中改变了什么</h2>
<p>假设早先训练所用样本的完整存档已经无法取得。在它被删除之前，我们留下了一小份样本：20 条已知正确部门的消息。一种可行的方法，是把这份样本掺进新的投诉样本里。这样，后续训练同时也会得到信号，要求模型继续正确处理“我的包裹在哪里？”。重新使用旧样本，是 <a href="https://arxiv.org/pdf/1904.07734v1" rel="noopener noreferrer">van de Ven 和 Tolias, <em>Three scenarios for continual learning</em>, §3.3</a> 所描述的策略之一。</p>
<p>另见：<a href="https://paweldubiel.com/zh/glossary/experience-replay">Experience Replay</a>——保存一小份旧样本，并把它掺入新的学习之中。</p>
<p>评估团队另外保留一份旧消息测试集，我们<strong>不拿它来训练</strong>。每次更新之后，旧类别和新类别都要检查。下面的数字是虚构的例子，不是研究结果；每个测试集包含 100 条消息。</p>

























<table><thead><tr><th>模型版本</th><th>旧消息分派正确</th><th>投诉分派正确</th></tr></thead><tbody><tr><td>新一轮学习之前</td><td>90/100</td><td>0/100——没有这个类别</td></tr><tr><td>只学习投诉之后</td><td>40/100</td><td>92/100</td></tr><tr><td>掺入旧消息样本学习之后</td><td>89/100</td><td>87/100</td></tr></tbody></table>
<p>最后一个版本更好地保住了原有的能力，尽管识别投诉不如第二个版本。这张表说明的是<strong>该比较什么</strong>；它并不承诺加入 20 条样本后就会得到这样的结果。</p>
<h2 id="条件会改变难度">条件会改变难度</h2>
<p>在我们的例子里，模型要自己从所有学过的部门中做选择。如果给出“这是一条新类别的消息”这样的提示，测试就会变容易。在比较各种方法时，这类提示以及任务之间的边界是否可得，是很重要的（<a href="https://arxiv.org/pdf/1904.07734v1" rel="noopener noreferrer">van de Ven 和 Tolias, §2–2.3</a>）。小样本可能漏掉少见的问题；平均成绩好，并不能证明每一项能力都保住了。</p>
<ul>
<li><a href="https://paweldubiel.com/glossary/catastrophic-forgetting" hreflang="pl">Catastrophic Forgetting [Polski]</a> 描述的是旧能力的显著退化；其中的演示展示了新的学习如何改变共用的设置。</li>
<li><a href="https://paweldubiel.com/glossary/fine-tuning" hreflang="pl">Fine-tuning [Polski]</a> 是在选定的样本上对模型继续训练。每一轮训练之后，我们也要检查原有的能力。</li>
<li><a href="https://paweldubiel.com/glossary/knowledge-distillation" hreflang="pl">Knowledge Distillation [Polski]</a> 可以把较旧模型给出的指引传递给正在更新的模型；这与保存原始消息是不同的策略（van de Ven 和 Tolias 论文的 §3.3）。</li>
</ul>
<p><em>文字和插图在 AI 的协助下完成；消息、样本大小和表中的结果都是自拟的教学示例。插图表现的是保留原有技能这一目标，而不是模型的构造。</em></p>]]></content:encoded>
</item>
</channel>
</rss>