← 文章 / AI技术
低碳之窗 5小时前 · 2026-09-27 16:12:13 · 5 阅读

AI大模型的基本工作原理(上)

你打开腾讯workbudy,输入一句:

低碳之窗何时能够成为百万粉大博主?

几秒后,屏幕上可能出现这样的回答:

也许下一篇就会出圈,百万粉还得靠持续的好内容积累。

我们已经习惯了这样的对话,却很少追问:计算机执行的是程序、处理的是数字,它为什么能够读懂一句提问,再组织出一段像样的回应?

要解释这件事,需要把三个问题分开:模型如何通过训练形成回答能力?模型如何通过推理形成具体回答?硬件如何执行模型所需的计算?

这个系列分上、中、下三篇,沿着训练、推理、执行这条主线逐步展开。本篇先讲第一个问题:一套由大量数字组成的模型,是怎样通过训练获得回答能力的。讨论以常见的Transformer自回归文本大模型为例,文中的问答、切分和小算例均用于解释机制。

一、完整回答从预测下一枚Token开始

模型生成时在做什么?

语言模型处理文字,需要将其切分成称为Token的基本单位。一个Token可能对应一个字、一个词语片段或一个标点,也可能只是字符的一部分。这里先把它理解为参与计算的文字“小块”。

在基础的逐步生成过程中,模型根据问题和已有上下文,计算下一枚Token的候选概率。生成程序选出一枚,将它接到已有内容后面,再进行下一轮预测。

从屏幕上看,刚才的回答可能这样展开:

也许…… → 也许下一篇…… → 也许下一篇就会出圈…… → 也许下一篇就会出圈,百万粉还得靠持续的好内容积累。

这里展示的是文字逐渐增加的过程,实际Token边界取决于分词器。

关键在于:已经生成的内容,会成为后续生成的条件。每多一块文字,下一轮计算所依据的上下文也随之变化。这种根据已有内容接续生成的方式,叫作自回归生成。

于是,一个看似复杂的问题出现了:只是在预测后续文字,为什么能表现出问答、翻译、写代码等能力?

仍看“低碳之窗何时能够成为百万粉大博主”这个问题。“低碳之窗”是讨论对象,“百万粉大博主”是目标,“何时”则要求回答涉及时间或实现条件。

假如你在问题后补充“幽默一点”,模型可能侧重轻松的表达;如果补充“请结合账号目前的数据认真分析”,合适的回应就需要利用已有数据,或者询问缺少的信息。

同一个问题,仅仅增加一条要求,就可能改变接下来的内容。即使最终只生成“也许”这样的开头,模型也需要利用前面的提问与回答要求,计算它在当前语境中是否适合出现。

预测目标可以小到下一枚Token,支撑预测的信息是涉及整段上下文的。训练让模型逐渐形成利用这些信息的能力。它怎样从数字中学到这些关系,还要从参数说起。

二、模型参数决定输入怎样变成输出

可以把模型想成一台装有大量可调旋钮的计算机器。

机器的结构规定数据经过哪些运算,旋钮的位置决定运算使用哪些数值。在计算机里,这些可以通过训练调整的数值,就是模型参数。

当这句提问进入模型,文字会先转成编号和向量,向量就是一组参与计算的数字。具体转换过程留到中篇,这里先截取网络中的一处计算来看。

假设处理这句提问时,某一计算单元收到的中间表示简化为三个数:

[1,2,3]。

这组数是为讲解编写的教学表示。各分量共同参与计算,不能逐项指定为“粉丝数量”“时间”或“内容质量”。

分别给它们乘上三个权重[1,0,1],再相加,得到:

1×1+2×0+3×1=4。

如果把中间的权重从0改成2,计算变成:

1×1+2×2+3×1=8。

同一句提问、同一组中间输入,只调整一个权重,计算结果就从4变成8。这类变化继续沿网络传递,可能影响最后的候选Token分数。权重的作用很具体:决定输入怎样参与组合。

在神经网络中,一个典型计算单元会进行加权求和,再加上偏置,并经过激活函数处理。偏置可以理解为整体加减的一个数,激活函数则进一步改变输入和输出的对应关系。这样的数学计算单元通常称为神经元。

简单计算单元怎样组成复杂网络

仍用[1,2,3]这组输入。另一组权重[0,1,1]会给出:

1×0+2×1+3×1=5。

采用最初的权重[1,0,1]与这组新权重,同一组输入就得到[4,5]两个结果。将这些结果作为下一层输入,继续组合,就形成了多层计算。

这里还需要一种重要成分:非线性处理。假设每层都只有乘系数和加偏置,那么无论叠加多少层,都能合并成同类的一次变换。

激活函数让计算具有更丰富的变化方式。例如,用于教学的ReLU把负数变成0,正数保持原值。假设处理这句提问的某层得到了[4,5,-2],经过ReLU就会变成[4,5,0]。它使不同数值区间产生不同响应。多层变换与非线性处理结合,网络才能表达更复杂的关系。

真实大模型会组织数量庞大的参数和计算模块。许多乘加运算可以排列成矩阵,交由硬件批量执行;Transformer则是一种组织这些计算的架构,中篇会具体展开。

现在只需抓住两件事:结构决定计算怎样组织,参数决定具体怎样变换输入。所谓700亿参数,就是这样一套规模庞大的数值集合,知识与行为由许多参数共同参与表达。

那么,这些旋钮由谁调整,又凭什么判断调得好不好?

三、训练通过误差反馈调整参数

训练需要一个能够评价预测结果的目标,再依据反馈更新参数。

为了把这件事与开头连起来,暂时把那组问答当作一份假设的训练样本:输入是“低碳之窗何时能够成为百万粉大博主?”,示范回答是“也许下一篇就会出圈,百万粉还得靠持续的好内容积累。”

接下来观察训练系统怎样学习这个示范。这里回看的是部署前的训练过程;真正聊天时,模型通常已经训练完成。

先只看回答的第一个位置:看到这个问题,回答既可能从“也许……”开始,也可能从“如果……”开始。“也许”和“如果”是同一个位置上的两个候选开头,模型要计算的是:下一枚Token分别有多大概率是它们。

为了把过程缩小到可以手算,我们把这两个词各看作一枚Token,构造一个只有这两个候选的小模型。真实语言模型会对完整词表计算概率,实际切分也由分词器决定。

这里需要分清两件事:模型给出的是预测概率,训练样本给出的是学习目标。本例的示范回答以“也许”开头,所以这一步的目标是“也许”;“如果”仍然是参与比较的另一个候选。训练要让模型在这个上下文中,更倾向于预测出示范里实际出现的“也许”。

从候选分数到训练损失

模型先分别给两个候选打分,再把分数换算成概率。分数本身可以是任意实数,还没有百分比的含义。

沿用上一节的三个输入[1,2,3],将“也许”的分数设为:

“也许”的分数=1×1+2×w+3×1=4+2w。

只让中间这个参数w可以调整,其余数值暂时固定。为了观察它带来的变化,另一个候选的分数设为固定值:

“如果”的分数=4。

当w=0时,“也许”的分数是4,“如果”的分数也是4。

分数经过Softmax换算,得到总和为100%的候选概率。它的做法是:把各候选分数取指数,再除以这些指数值的总和。两个分数相同,换算结果是:“也许”的初始概率为50%,“如果”的初始概率也为50%。这表示小模型此时对两个开头没有偏向。

对这一训练位置,常用的交叉熵损失可以写成:

损失=-ln(目标Token的预测概率)。

ln表示自然对数。暂时记住它在这里的作用即可:目标概率越高,损失越小。由于这份样本的目标是“也许”,这里代入的是“也许”的预测概率50%,对应损失约为0.693。训练系统由此评价当前预测与示范目标的匹配程度,并据此调整参数。

再确定参数怎样调整

调整方向可以由梯度提供。可以把它理解为一个局部提示:在当前参数附近,往哪个方向小幅改变参数,损失会怎样变化。

在这个两候选小模型里,损失对w的梯度为:

梯度=2×(“也许”的预测概率-1)。

其中2来自与w相乘的输入,1表示这一位置的目标是“也许”。代入初始概率0.5,梯度就是-1,表示适当增大w可以降低这次损失。

采用最简单的梯度下降规则:

新参数=旧参数-学习率×梯度。

学习率控制每一步的调整幅度。在本例中取0.5,就得到:

新参数=0-0.5×(-1)=0.5。

再算一次,“也许”的分数变成4+2×0.5=5,“如果”仍为4。经过同样的概率换算,“也许”的概率升至约73.1%,“如果”的概率降至约26.9%,这一位置的损失降至约0.313。

为什么“如果”的分数没变,概率却下降了?因为概率由两个候选的相对分数共同决定。“也许”的分数提高后,在总和为100%的概率中占了更大份额,“如果”的份额就相应减小。

比较项更新前更新后
参数w00.5
“也许”的分数45
“如果”的分数44
“也许”的概率50%约73.1%
“如果”的概率50%约26.9%
这一位置的损失约0.693约0.313

一次参数更新,让这个教学模型更倾向于用“也许”接续回答。这就是一次最小的训练过程:先预测,再评价,再调整,然后重新预测。

73.1%指的是这个小模型赋给下一枚Token“也许”的预测概率,与账号实现百万粉的概率没有对应关系。“如果”也可以作为合理开头,只是在这一份示范里,实际出现的是“也许”。

大量参数怎样一起调整

真实网络的计算有许多层,一个参数改变,影响可能沿着后续计算不断传递。

反向传播利用链式法则,从最终损失往前计算各参数的梯度;优化器再使用梯度,按照一定规则更新参数。前者计算变化关系,后者执行更新,两者共同完成调整。

完整训练循环是:

输入提问和示范文本 → 预测后续Token → 计算损失 → 反向传播 → 更新参数 → 处理下一批样本。

大型模型会在大量样本上重复这个过程。学习率、数据顺序和优化器等因素共同影响训练,损失也会出现波动。实际关注的是持续训练后的表现,以及它在新样本上是否仍然有效。

这里最重要的变化是:原本按初始规则设置的参数,经过数据反馈,逐渐形成了有用的计算方式。

四、文本本身就能提供语言训练的目标

刚才只学习了“也许”这个开头,后面整句回答怎样学习?

示范回答里,后面的文字已经给出了后续目标。继续使用同一句话,将它按教学方式切分:

也许|下一|篇|就|会|出圈|,|百万|粉|还|得|靠|持续|的|好|内容|积累|。

将完整提问作为条件,把回答中已经给出的前缀接在后面,就能构造一系列预测位置。下表的“完整提问”始终指开头那句话:

已有内容目标Token
完整提问也许
完整提问+“也许”下一
完整提问+“也许下一”篇
完整提问+“也许下一篇”就
完整提问+“也许下一篇就”会
完整提问+“也许下一篇就会”出圈

后续位置依此类推,直到句末及表示回答结束的位置。模型在各位置给出预测分布,训练系统再根据示范中的目标计算损失,汇总后用于参数更新。

训练时,这些前缀可以直接来自示范文本。例如预测“篇”时,前面的“也许下一”由样本提供,无需先等模型自己生成正确的前缀。多个位置的预测可以并行计算,但每个位置只能读取允许访问的前文,不能提前看到自己的目标。

真正回答用户时,情况有所不同:后续内容尚未给定,模型需要接着自己已经生成的Token往下计算。训练与生成,都在预测后续Token,但前缀的取得方式不同。

这种从文本实际后续构造目标的方法,也用于大规模自回归预训练。预训练材料可以是连续的文章、书籍或代码,无须全部写成问答;文本本身提供大量预测目标,属于自监督学习。我们这里人为组织的“提问+示范回答”,则更接近下一节介绍的指令微调样本。

同一个问题也可以有多种合理回答。“也许”可以引出一种回应,“如果”可以引出另一种。大量不同样本共同参与训练,会帮助模型学习不同条件下的表达方式,而非只围绕本例的一句回答调整。

当训练覆盖大量、多样的文本,模型便有机会学到词语关系、句子结构、事实关联和代码规律。它还可能把学到的关系应用到未曾逐字见过的新问题上,这种能力称为泛化。

本文用这组问答演示学习过程。真实使用中,即使训练资料没有“低碳之窗何时能够成为百万粉大博主”这句原话,模型仍可能结合“账号成长”“粉丝目标”“时间预测”等关联,组织出回应。

这里也能看出模型出错的一个原因:训练会奖励对样本文本的有效预测,而一段语言自然的回答,仍可能缺少现实依据。百万粉何时实现,要依赖真实运营数据和未来发展,单靠生成一句话无法确定,但模型依旧会做出预测,这也是豆包不知道就胡说这个梗的逻辑来源,其实这并不是豆包一个模型的问题。

五、从广泛预训练走向按要求回答

学会大量语言规律,为问答提供了基础。要成为好用的助手,需要进一步塑造模型处理任务的方式。

预训练形成广泛基础

预训练让模型在大规模材料上学习,形成支持语言生成和多种任务的参数配置。

这个阶段提供的是广泛能力基础。面对一段输入,模型接下来怎样组织回答,还需要结合任务格式以及后续训练。

指令微调提供作答示范

指令微调向模型提供“用户提出任务、助手怎样回答”的样本。

我们前面假设的那组问答,就可以演示这样的数据形式:用户提出百万粉目标,助手用一段回应作示范。如果任务再要求“用一句话回答”,样本还可以体现相应的长度与表达要求。

模型仍然通过预测和参数更新学习,只是训练材料更直接地体现了任务要求与回应方式。它由此学习怎样围绕用户意图组织内容。

偏好与奖励进一步改善表现

同一个问题可以有多种回答,有的清楚,有的空泛,有的虽然顺耳,却缺少依据。

后续训练可以利用回答比较、评分或任务是否完成等反馈,让模型更倾向于符合目标的输出。偏好优化和基于反馈的强化学习,是其中常见的技术路线。

以InstructGPT公开研究为例,训练先使用人工示范回答进行监督微调,再利用回答排序构造反馈,通过强化学习进一步调整模型。具体模型的训练流程可以有所不同。

放回我们的例子,可以把原先那句“也许下一篇就会出圈,百万粉还得靠持续的好内容积累”,与“明天一定成为百万粉大博主”作比较。按是否避免无依据承诺来评价,前者更合适;按是否提供具体运营建议来评价,它仍有改进空间。比较和奖励的标准,会影响模型朝哪个方向优化,实际效果还需要评测。

这几类训练共同参与能力形成:预训练提供广泛基础,指令微调示范任务行为,偏好与奖励进一步优化回答表现。

结语

现在再看这台装有大量旋钮的计算机器,它获得回答能力的过程已经清楚了。

研究者设计计算结构,组织训练数据并设置学习目标;训练系统不断计算预测、评价损失、更新参数。大量更新之后,参数形成了能够利用上下文、生成语言和完成任务的计算方式。

等你真正问出“低碳之窗何时能够成为百万粉大博主”,模型使用的就是这些已经训练好的参数,依据本次上下文逐步生成回应。你补充“语气轻松一点”,首先改变的是当前上下文;模型据此给出不同回答,通常无需在这次请求中更新参数。

训练形成可重复使用的能力,推理把这种能力用于当前问题。这是理解大模型的第一条主线。

接下来还有一个更具体的问题:输入明明是一句中文,模型参数却是一堆数字,它们究竟怎样发生联系?

中篇将沿着同一句提问,继续拆解Token、向量、矩阵运算与注意力机制,看清文字怎样进入计算,又怎样变成下一枚Token。

原始来源: 低碳之窗

评论 (0)