返回文章列表
文字与思考

AI 大白话 04|大模型是怎样学会这些本领的?

AI 大白话

学到一点就写一点 · AI 大白话 用具体例子,把 AI 的原理和用法讲清楚。

通过反复练习和调整逐渐形成能力的概念封面 · 点击放大

上一篇,我们用高矮题看了大模型怎样联系条件、生成结论。

可这些本领从哪里来?人们并没有把所有问题和答案,一条条写成规则交给它。

这一篇,我们回到第 01 篇的一句话,看看模型怎样练习,预测偏了又怎样调整。没看过前面的文章也没关系,先把训练理解成:利用材料反复练习,调整内部参与计算的数字。

练习目标,就藏在材料里

假设训练材料中有这样一句话:

今天下雨了,出门记得带伞。

我们拿出前面的部分:

今天下雨了,出门记得带

让模型预测接下来是什么。

原文后面有“伞”,这就提供了这一处练习的目标。普通文本,也能这样变成许多预测练习,不必每一句都另请一个人写答案。

实际预测的是词元(Token),也就是模型处理文字的小单位。这里为了讲解,假设“伞”恰好对应一个词元;真实分词可能不同。

预测这一处时,模型只能参考“今天下雨了,出门记得带”这些已有文字。原文中的“伞”留到检查预测时使用,不能提前告诉模型。

下面的材料和情形都是教学例子,不是某个模型的训练记录。

不只看猜中了没有,还看概率分得怎样

模型有一份可以输出的词元清单,叫作词表。预测时,它会给清单中的各个词元分配概率。

看到“出门记得带”,它可能给“伞”较高的概率,也可能更偏向别的候选。

在这个例子里,训练程序会看模型给“伞”分配了多大的概率,并据此算出一个表示预测偏差的数,通常叫作损失。这里可以先把它理解成训练使用的误差。

对这一处练习来说,给“伞”的概率越低,损失就越大。

训练要看的,还有它给“伞”的概率有多高,而不只是有没有把“伞”排在第一位。即使两次预测都把“伞”排第一,给它的概率不同,损失也会不同。

但要分清:原文提供的是预测目标,不是一份经过核实的事实答案。 材料里也可能有错误、虚构和互相冲突的说法。

算出误差之后,调整的是什么?

模型内部有许多参与计算、能够被训练调整的数字,叫作参数。

它们会影响文字怎样变成数字表示、信息怎样被处理,以及最后给各个候选打多少分。

可以把参数暂时比作一组可调的旋钮。旋钮的位置不同,同样的输入经过计算,结果就可能不同。实际参数是数字,也没有一个旋钮专门负责“下雨要带伞”。

有了损失,训练程序就会通过计算,估计把哪些参数调大、把哪些调小,可能减小误差。接着,再按设定的调整幅度,改动这些数字。

调整后,模型继续处理材料、做预测、计算误差,再更新。

利用前文预测,与原文后续词元比较,再计算误差并更新参数 · 点击放大

教学示意:这里只画出一处预测练习。实际训练通常会把多段文字中多处预测的误差合起来,再更新参数,不是每猜一个字就单独更新一次。

这种反复调整,就是模型学习过程的重要部分。

不过,一次调整不保证每道题都变好,更不保证下一次一定接出“伞”。训练效果要用许多材料和问题来检验,不能只看这一句接得好不好。

大量这样的练习,构成预训练的重要部分

我们这里讲的,是前几篇介绍的那类逐步生成文字的语言模型。训练前,研究者会准备大量文本,进行筛选、清理和分词,再组织成训练材料。

材料可能包括叙述、对话、解释、代码或解题内容,具体组成因模型而异。

用这些材料反复做后续词元预测、更新参数,是预训练的重要做法。

要把各种文字接得更合适,模型往往需要利用句子怎样组织、前后内容怎样联系,以及材料中的知识和解题过程。通过反复预测和调整参数,它可以逐渐学到其中的一些规律。

但不能据此说,它已经可靠掌握了材料里的一切。

模型也可能记住部分原文;遇到换一种说法、需要组合条件的新问题,仍可能出错。

因此,检查训练效果时,还要用没有参与训练的材料,看看它能不能处理新情况。做熟题的表现,不能代替这项检查。

会接着写,还要练习怎样回应要求

回到雨天的例子。

把“今天下雨了,出门记得带”接成一句完整的话,是一种练习。

我们平时却更常这样提问:

今天下雨了,给准备出门的人写一句简短提醒。

我们期待的是按要求回答,比如:

出门记得带伞,路滑注意安全。

前一种练习,是根据已有文字往下写;后一种要求,是按用户的指令给出回答。聊天模型通常还会经历后续训练,练习怎样按要求回答和处理任务。

一种常见做法,是准备“要求+示范回答”,像上面的雨天提醒那样。训练程序用这些示范继续训练模型,让它练习怎样按要求回答。这通常叫作监督微调,也会更新模型参数。

另一类做法,是让模型生成回答,再根据反馈调整。例如,生成几句雨天提醒,比较哪句更符合“简短、适合出门的人”这些要求;遇到能核对答案的题目,也可以检查是否答对。

训练程序再利用这些评价结果来调整参数,让模型更倾向于生成符合训练目标的回答。评价可以来自人、其他模型,或能够检查结果的程序。

上一篇的高矮题,也可以帮助理解:训练可以提供解题示例,或对最终排序是否正确给出反馈。一些模型会借这类练习改善推理表现,但不保证换一道题就能做对。

这里介绍的是几种常见的训练方式。不同模型会根据训练目标,选择和组合这些方法。

我纠正了它,算不算在训练?

假设模型提醒你带伞,你接着说:

我已经穿了雨衣,请换一句提醒。

它可能改成:

路上注意湿滑,慢一点走。

回答变了,不代表模型参数当场变了。普通聊天通常使用已有参数,把你新说的话连同前面的对话一起用于计算,再生成回答。

几种情况可以这样区分:

你看到的过程主要发生了什么
训练模型根据材料和训练目标更新参数
在聊天中纠正回答根据你补充的信息,再生成回答;通常不更新参数
提供一份资料让它参考让模型参考资料里的相关内容;通常不更新参数

有的软件还能保存你说过的信息,供以后聊天时使用。这是在保存和提供信息,也不等于更新模型参数。

聊天数据是否会被收集、日后用于训练,要看具体服务的规则和设置。“以后可能用于训练”和“这句话刚说完就改变了模型参数”,是两件事。

所以,纠正回答、补充资料,都有实际作用。但它们通常是在帮助模型处理眼前的任务。

学过了,为什么还是会错?

训练时,模型反复根据材料做预测,训练程序根据误差调整参数。后续训练再帮助它练习怎样按要求回答、处理任务。

模型训练得更好,并不意味着它生成的每一句话都是真的。它仍可能把错误说得很流畅。

下一篇,我们就接着看:AI 为什么有时能把错误说得那么像真的?


配图说明:封面由 AI 生成,是反复练习和调整的视觉隐喻;正文图为程序绘制的教学示意,不是模型内部结构或实测数据。雨天材料、对话和回答均为假设例子;“旋钮”只类比参数可被调整,不表示参数有人工指定的语义分工。