从零了解大语言模型,非常详细收藏我这一篇就够了!
Large language model(大语言模型,以后简称LLM)无疑是最近最火的话题,本文将从0开始,分为以下几个部分介绍什么是LLM以及LLM的训练过程:
1 从y=kx+b开始的线性回归
2 分类问题
3 什么是神经网络,为什么需要神经网络
4 大语言模型的本质
5 什么是pre-train
6 什么是post-train
7 怎么教模型学会推理
8 大语言模型与agent
第一部分我们从最最简单的例子开始,解释什么是模型,如何训练模型;第二部分我们说明怎么用模型处理分类问题;第三部分我们解释为什么神经网络必须设计成那个样子;第四部分我们讲述什么是自回归以及LLM就是以自回归的方式预测下一个词源,第五部分我们讲述什么是预训练,为什么预训练需要大量资料,第六部分我们介绍如何教LLM与人类对话。第七部分,我们讲述如何训练一个reasoning model(会推理的模型)
最后几点声明:首先,本文是写给非AI从业人员的科普,本文的目的是让非专业人员知道AI是怎么一回事,而不是教大家怎么设计训练一个模型,所以会忽略大量细节并简化一些操作。第二,本文假设读者忘记了所有数学知识,所以尽量避免使用数学符号,文中出现的公式仅供展示,不看也不影响理解,我会用尽可能符合直接的方式解释数学定理说到底说了什么,虽然这会失去严谨性!另外在不影响理解的情况下会跳过一些知识点,比如梯度下降的具体过程。最后,本人能力有限,文章如有不到及错误之处,望各位海涵与指证。
1从y=kx+b开始的线性回归
传说伟大的数学家笛卡尔提出过“用数据记录事物的运行,找出其规律与轨迹,并据此预测事物的发展”的思想。
不管这个传说是真是假,今天的AI玩的就是这个路子,收集数据,训练模型,然后使用模型进行预测,判断,生成序列等各种工作。
今天的各种深度学习模型已经十分复杂,但是说起来,其本质只在做两件事——计算乘法和加法。
现在让我们从y=kx+b开始。
y=kx+b恐怕是所有人学习的第一个函数,下图为y=2x+1在笛卡尔坐标系中的图像,图中蓝色横轴为x轴,红色纵轴为y轴,平面上的随便一点,都可以通过有序对(x,y)标记。

这个简单的函数可以干什么?答案是,拟合一条直线!当然,实际情况中,能用一条直线拟合的东西少之又少,我们将在第三节说明怎么弄出一条曲线。
举一个简单但是不太符合实际的例子:天气越热,冷饮就越畅销,如果我们用x轴代表气温,y轴代表柠檬茶的销量,那么我们是不是可以在坐标轴上画一条直线,对照直线的x,y坐标,我们就可以根据天气预报预测柠檬茶的销量?
说了半天,这不就是道小学数学应用题么?并且比其实际情况他实在太简陋,但是没关系,让我们从最简单的画一条直线开始。请不要小看这个“画一条直线”,之后复杂的卷积神经网络与图片识别玩的也是这个套路,画一条合理的直线的过程,其实就是模型的训练过程。
现在我们假设柠檬茶销量与气温的数据如下图。

怎么画一条直线拟合数据呢?这里的核心思想在于,我们希望直线预测的y值与真实的销量尽可能接近!更具体一点来说,就是下图中,所有蓝线长度加起来尽可能小!!!!!!注意是所有点到直线的距离,为了省事我只画了很少几条。

(一条靠谱的直线)

(一条不靠谱的直线)
这个对比是非常直观的,就不再赘述了!
现在需要说明的是,y=kx+b就是一个模型,他有两个参数k和b,这两个参数决定了模型是否准确,而模型的训练指的是不断调整k和b的值,直到模型取得令人满意的效果,也就是把一条“不靠谱的直线”,变成一条“靠谱的直线”。

具体怎么做呢?保证所有蓝线长度加起来尽可能小!!!!!!这里所有蓝线长度加起来就叫做“损失函数”,模型的训练就是不断的减少损失函数!直到模型得到的结果和实际情况差不多为止。
ok,让我们看看模型的训练过程,首先我们收集一些真实数据,假设有5个数据,从(x1,y1)到(x5,y5),这5个真实数据称为“训练样本”。我们先随便初始化k与b的值,画一条不靠谱的直线。
损失函数为:|kx1+b - y1| + |kx2+b - y1|+ |kx3+b - y1|+ |kx4+b - y1|+ |kx5+b - y1|,注意这里用||表示绝对值,也就是如果算出负数来就把他变成正的。
这里需要说明的是,实际的线性回归一般不使用上述的损失函数,取而代之用的是“均方差损失函数”。我之所以写这么个玩意是为了方便理解,从本质上损失函数都是模型预测结果与实际结果的差距。“损失”二字其实已经明确的表达了损失函数的含义!
现在要做的就是调整k 和 b的值,使损失函数尽量小。怎么做呢?梯度下降!简单说我们可以把Loss函数当成一座山,loss就是山的高度。所谓梯度就是我们当前所处位置最陡峭的下坡,所谓梯度下降就是沿着最陡峭的下坡走一小段,再找到新的最陡峭的下坡再走一小段,直到下到山脚。

总而言之就是一点一点一遍又一遍的调整k与b,在计算机上执行起来其实就是不停的算加法和乘法。
得到了k和b的具体数字,我们的模型就算训练完成,至于你问怎么用,把x带进去计算就行,比如k=3 ,b = 3则气温30度,柠檬茶销量为:3*30 + 3 = 93杯。
至此,关于模型与训练已经结束。事实上,一个复杂的模型,动则上百亿参数,训练样本更是恐怖,比如deepseek v3就用了15T token(十五万亿15000000000000),但是不论数字再大,模型的训练都是这个套路,调整模型参数,减少损失函数,直到可以工作!
现在,让我们思考一下AI的缺陷,AI的训练依赖于“损失函数”,而“损失函数”表示的是模型给出结果与训练集中真实结果的差距。也就是说AI模型极度依赖训练数据的质量!设想如果用一堆“垃圾话”去训练LLM,这就好像一直用“家人们谁懂啊,这个LLM真是绝绝子啦”教小孩子说话,后果可想而知!
并且这个训练机制其实很容易作弊,假设只是为了显示我们的AI牛逼!我们完全可以在特定的训练/测试集上把损失函数缩的很小!但是现实情况却五花八门!突出一个“看起来牛逼,用起来SB”,说了那么多,我只想表达一点,AI是强大的,但不一定是完全可靠的!
2 分类问题
分类是个古老的话题,最简单的二分类可以回答“是不是”,而多分类可以回答是什么。让我们从一个简单的问题开始——追女生能不能成功。
追女生能不能成功,有些抽象,让我们把一些数值具体化,身高,体重,年龄,收入,房产平米数,开的车多少钱等等吧。
当然,这些数字对应不同的权重,能不能成功是一个综合的权衡,而不是单个数字比较大小,所以一个相对客观有效的办法是,将每一个数值,乘上对应的权重,再全部加起来得到一个数。

显然,这个数越大,追女生越容易成功。现在我们看一个叫Sigmoid的函数

只看图像就行,Sigmoid函数输入的z越大,输出就越接近1,输入z越小,就越接近0,那么Sigmoid的输出用来代表成功的概率是不是非常合理?
OK,于是我们的模型变成了这样:

现在的模型,以b1到bn为参数,怎么训练呢?一个简单的办法是,找一组数据(a1,a2,a3 ........ an , 1)代表成功 (a1,a2,a3 ........ an , 0)代表失败。
通过这组数据来训练b1到bn,损失函数依旧是网络预测与真实数据的差距,训练方法依旧是梯段下降缩小损失函数。
得到b1到bn,怎么判断能不能成功,还是带进去计算就行,大于0.5就算成功!还是一样的套路,也挺简单的对吧?对了,这玩意的名字叫logistic回归
至于多分类,其实很简单,Sigmoid换成softmax就好。
Softmax是个什么函数呢,很遗憾,这玩意不能像Sigmoid那样在坐标中把图画出来。。。。。。因为这个函数以向量作为输入与输出。简单说就是输入一堆数字,输出一堆数字.......

对他我们只需要知道,这个函数可以输入任意个数字, 输入10个数字就输出10个数字,输出的数字每一个都在0和1直接,并且输出的数字全部加起来等于1。
具体怎么计算呢?首先要明白符号∑表示全部加起来,以上图中计算第二项1,0为例就是:e的1次方除以 e^2 + e^1 + e^0.1次方。e是个具体的数字等于(2.718281828459............,e是无理数写不完计算机上取个小数点后几位就可以了)
这不就是为多分类准备的么?softmax的每个输出都可以看作是属于某个种类的概率,取最大的不就是分类问题的答案。
让我们以进行3分类为例看看情况:

分类问题怎么计算loss其实也很简单,模型输出的数字代表输入属于某一类的概率,只需要对比模型预测的概率和真实情况的差别就可以了,比如说我们的输入是一张图片,输出代表猫,狗,海豹三种动物,模型输出(0.2,0.1,0.7)就是输入图片是猫,狗,海豹的概率分别为0.2,0.1,0.7。假设我们输入的图片是海豹概率为(0,0,1),就只需要对比0.7与1的差距就好。这个对比概率的损失叫做交叉熵损失。
顺便一说其实大语言模型也是个分类问题。
3 什么是神经网络,为什么需要神经网络
终于进入最重要的主题了,AI应用实际的模型,一般都是神经网络模型,虽然听着高大上了不少,但是其实也并不算复杂。

至于你要问怎么出结果,我们用个小的网络演示,每个圈都代表一个数字(如果你知道矩阵乘法,那么其实下面的运算主要就是在做矩阵乘法。当然不知道也没关系,当我没说就行)

这里的g和g`都是一些函数,特别的g在神经网络中充当的“激活函数”,最常用的是relu,注意“激活函数”不能是线性函数(简单说就是不能是一条直线)。relu就拐弯了!
为什么需要非线性的激活函数其实非常直接,在没有激活函数的情况下y = k1*(k2*(k3*x)),这时候我们可以将k“乘进去”于是y = Kx不论堆多少k最终结果都是一条直线,但是当加入非线性的激活函数后y= k1*g (k2*g(k3*x) )这个g会阻挡“乘进去”的操作让最终y不是一条直线。
这玩意确实没什么了不起的,不就是把前面介绍的东西多套几层嘛?确实如此!但这个多套几层却让模型的威力大了不止一点!
还记得第一部分我们说过,能用直线拟合的东西的东西少之又少么?y=kx+b是一个仿射映射,也就是说你不论你怎么弄,你只能弄出直线,平面,超平面......反正你没玩玩出弯的东西!
如下图所示的数据,你没法用一条直线把叉和圈很好的分开。

或许,有朋友会想到使用多项式展开或是使用sin cos展开,理论上可以,但实际情况是根本不好操作!
y=k1*x+k2*x^2+k3*x^3+k4*x^4+k5*x^5+.............
你要是乐意,不但有平方,还有根号......这还只是一个输入,成百上千个输入的例子多得是,你也很难知道怎么个“摆弄”这些个输入会比较好!
“通用近似定理”说明神经网络可以拟合任何连续函数。也就是说我们把前两节的东西多套就可以拟合上图的曲线。
做法其实很简单,一条直线搞不定,就多来几条,单挑不行,群殴啊!请看下图3条橙色的直线

某种程度,神经网络就是把一堆直线拼凑在一起!如下图

一堆relu弄出来的折线加起来,总能凑出我们想要的形状!
OK,最后一个问题,我们用只有一个隐藏层的神经网络就可以拼出我们想要的图形,为什么还要把神经网络搞的那么深?

从直观上说,更深的网络可以用更少的参数达到效果,以使用relu激活函数为例,在第一个hidden layer中一个圈提供一条“折线”,显然拼凑在一起的折线越多,输出的结果就越精细,然而计算这样的一层需要“输入的圆圈个数” * “输出的圆圈个数”个参数(不适用bias的话),如果单凭借在这一层扩展网络则需要及大量的参数,比如输入为100,hidden layer为1W则我们就需要100W个参数。
而如果网络更深,越往后的层拼接的图形就越复杂,也更容易拼接出精细的结果,同样输入为100,如果用2个dim为100的hidden layer(就是有100个圆圈)。则需要 100*100 + 100*100个参数,显然2W<100W!
当然,以上描述全是直观上看的结果。事实上模型的架构很大程度上是工程实践或者为例解决某个“小问题”而加入某些“组件”的实验性的结果。一个典型的例子是“残差连接”,在“残差连接”被提出之前,因为梯度消失问题导致我们根本无法训练很深的网络。“残差连接”通过加入一条恒等映射的旁路将不稳定的乘法转换为加法解决梯度消失的问题(这一段你可以当我没说)。
但不论如何“神经网络”使AI具有了拟合复杂数据的可能性,接下来就是见证大力出奇迹的时刻。
4 大语言模型的本质
如果用一句话说明——Large language model就是用decoder-only 的transformer以auto regressive(自回归)的方式做 next token prediction(预测下一个词元)。
这句话除了“不是人话”以外没有其他任何缺点,接下来我们就一点点解释这句话含义。
首先decoder-only 的transformer指的是模型架构,还记得我们说的模型就是一个数学上的函数么?y=kx+b是个函数,上一节我们说到的DNN也是一个函数,transformer当然也是。
下图是Deepseek v3的架构:

不管他看起来多复杂,本质上他就是输入一堆数字再输出一堆数字(没错文字可以转换成一堆数字,图片语音也可以转换为一堆数字)。
接下来我们解释什么叫next token prediction,简单说就是“文字接龙”。比如我们给模型输入“黄河远上白云”,则模型吐出一个“间”字。没错就是单个往外吐字!
之前我们说过其实LLM也是做分类问题,对于之前说的动物图片分类,无非是输入一张图片,让模型输出这张图片是[猫,狗,海豹]等事先指定好的动物品种的概率。
而对于LLM,无非是输入一段文字,让模型输出下一个字的概率是多少(这里的字可以是任何语言),没错模型能输出的所有字都是事先准备好的,模型的输出就是一串长度和准备好的字一样的数字,每个数字代表输出一个字的概率。(当然确切的说LLM使用BPE算法确定token,一个token并不对应一个字1个 token 大约 0.6 个中文字)。下图就是事先准备好的“字”。
![]()
现在我们看一看在LLM应用最常见的大家可能遇到过的参数temperature,LLM是个“函数”确定的输入一定会产生确定的输出。但是我们和LLM聊天的时候,同样的内容他却会回答不同的答案。
要做到“确定的输出”产生“不确定的”回复其实很简单,LLM的输出不是概率么?我们没必要选概率最高的一个啊,找几个概率高的随便选一个不就行了?
比如输入“黄河”概率高的token 如下 “远”(黄河远上白云间),“入”(黄河入海流) ,“之”(黄河之水天上来).........
temperature参数就是用来控制选择的随机性,temperature越高选择就越不确定!
最后我们需要解释什么叫auto regressive。LLM是一个个往外吐字,没人喜欢和只会说一个字的人交流,让LLM一次说一段话的方式就是auto regressive。
简单说auto regressive就是把llm自己说的话“喂回去”,比如输入“黄河远上”,模型输出“白”,在输入“黄河远上白”,模型输出“云”,在输入“黄河远上白云”.....直到输出表示结束的eos token或是达到模型能处理的最大长度。

最后我们需要再次强调的是LLM是一个函数,函数的输出取决于参数,你和LLM聊天并不会改变LLM的参数,所以LLM不会记住你是谁。也就是说LLM没有记忆!
关于“你是谁”的问题,LLM只能从之前的对话上下文中找到答案,也就是说对话上下文就是LLM的记忆!所以新开一个会话LLM会忘记之前你们聊过的所有内容!要继续一次会话就得回到那次会话(将聊过的所有内容喂给LLM)。
当然我们也有让LLM跨会话保存记忆的办法,这些我们将在第八部分说明。
5 大语言模型的pre-train
所谓的pre-train就是“用大量资料教llm背书”,具体做法和图片分类类似,比如我们的资料是“黄河远上白云间”,那么黄字对应的输出就是“河”,“黄河”对应的输出就是“远”,“黄河远”对应的输出就是“上”.......
我们要做的就是将模型的输出与真实情况的差别做为loss function,然后最小化loss function。

LLM几乎“无所不知”就是因为使用了大量的资料进行pre-train。这里的大量有多大呢,我直接从Qwen3的技术报告截了一句话:

千问3使用包含119种语言和方言的36T tokens 进行预训练。
数字大了就没有概念,36T是多少呢?36万亿!!!!!!!!作为对比莎士比亚全集也只有几百万字,就算500W吧......500W是多少T呢?0.0005!
关于pre-train除了资料数量外,我还想强调“资料质量”,要让LLM变得聪明又博学就必须用高质量的资料做pre-train,如果36T的资料全是“家人们谁懂啊”......后果可想而知!!!!
6 大语言模型的post-train
经过pre-train的llm已经具有了大量的知识,但是请注意这时候的LLM只会背书,却几乎不会交流。
如何让LLM学会交流,最简单也最直接的办法就是让LLM学一学应该如何完成聊天,重新,生成等各种任务,这个学一学的过程就叫做Supervised Fine-Tuning简称(SFT)。
具体来说以聊天为例,我们会用类似于下面的数据训练LLM。
请注意看一下,下面的例子标明了这是一段对话,AI的“人设”(聪明,友善,有创造力,乐于助人),并且标明了那句话是谁说的。

今天的LLM会使用chatML格式去组织对话,具体来说,chatML的作用还是标明AI的人设,那句话是谁说的等信息。

你也许会说chatML的格式怎么那么难看,但是请注意chatML是给AI看的,不是给人看的!
除了教会LLM如何与人交流的SFT,post-train还包括一些列“强化学习(Reinforcement Learning)”的过程,所谓“强化学习”其实非常类似于“训狗”。
我们想一想训犬师如何教会狗狗握手,首先发出指令,如果狗狗执行了指令则给予奖励比如口头鼓励“好狗!”或者给零食。如果狗不执行则进行“评判”,如果狗咬人或许可以打几下。
无论如何训狗的关键在于评价狗行为的好坏,如果好就奖励,坏就惩罚。强化学习只是把狗换成了模型。
RLHF (Reinforcement Learning from Human Feedback) 人类反馈强化学习,是post-train中的重要步骤。
具体来说,我们给模型一个“问题”然后让模型生成一个“答案”,接下来我们就可以对答案进行“打分”,如果这是一个好的答案我们就鼓励模型这样做,否则就阻止模型。
不管实践上RLHF需要怎么做,他的核心就是一个打分和奖惩的问题。
7 如何让模型进行深度思考
“已深度思考32秒”这句话相信大家并不陌生。接下来我们将简介一个训练模型进行深度思考的办法GRPO,我们将教会模型思考的过程也归入post-train中。
回忆一下强化学习无非是评价模型行为的好坏,好就奖,坏就罚。GRPO的思想很简单,对于可以验证的问题,比如解一道数学题,GRPO有两个标准评价模型回答的好坏,1 答案对不对,2 格式对不对。
所谓格式就是要求模型输出一段夹在<think>与</think>中间的思考过程(这就是我们在使用中看到的深度思考),如下图所示:

GRPO的核心思想非常简单,给定一个问题,让模型生成一堆回答,每个答案都根据上述的“答案对”“格式对”的标准进行打分。然后算一个平均分,如果一个答案比平均要好就鼓励模型继续这样生成,否则阻止模型这样生成。

q就是我们的问题,请看紫色数字,1就是我们需要训练的模型,2就是模型生成的一堆问题,3就是评分标准,4就是每个答案的得分,5就是每个答案的好坏(比平均分高还是低),根据5我们就可以对模型进行奖惩。
当然需要说明的是,GRPO只是reasoning的一个核心算法,并不是说deepseek跑一跑GRPO就会变成deepseek R1!
8 大语言模型与Agent
事实上一个经过post-train的LLM就已经能完成很多任务了,不过还可以让LLM变得更加多才多艺,比如我们可以让模型画图,可以让模型从互联网查找资料,甚至可以让模型帮我们订外卖。
Agent的构建其实是一个复杂的问题,这里我只基于tool call说说怎么让模型进行诸如画图等功能。
为了让模型“多才多艺”我们可以给模型准备各种工具,比如说从互联网搜索资料就是一个工具。
具体而言,我们可以在system的部分告诉LLM——你可以使用一个叫‘互联网搜索’的工具,使用该工具时你需要指定搜索的关键字。比如‘transformer’。没错真的就是直接描述工具的功能和用法就可以了。
当然LLM只是一个函数,他能做的事只有预测下一个词元,开发者需要帮LLM完成真正调用这个工作。
看到这样的输出,我们就需要帮LLM去调用搜索引擎,然后告诉LLM你要的搜索结果是“一些列搜索结果”(当然这个过程由编程完成)
现在LLM就可以根据搜索结果回答你的问题了。当然画图,检索记忆等功能也由类似的步骤完成。在之前我们提过的让LLM跨会话保持记忆的办法,就是给LLM提供一个查询所有对话的工具,你问LLM“我是谁”,LLM就会查询记忆,如果你对LLM说过“我叫tom”
那么查询就会返回你的名字。
9 结语
以上就是一个极简的直观的关于LLM的旅程。其实我写这篇文章的目的就是希望能揭开LLM的面纱,LLM并不是什么黑魔法,我们不应该盲目崇拜或是排斥LLM,而是理性使用。
AI大模型从0到精通全套学习大礼包
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
只要你是真心想学AI大模型,我这份资料就可以无偿共享给你学习。大模型行业确实也需要更多的有志之士加入进来,我也真心希望帮助大家学好这门技术,如果日后有什么学习上的问题,欢迎找我交流,有技术上面的问题,我是很愿意去帮助大家的!
如果你也想通过学大模型技术去帮助就业和转行,可以点扫描下方👇👇
大模型重磅福利:入门进阶全套104G学习资源包免费分享!
01.从入门到精通的全套视频教程
包含提示词工程、RAG、Agent等技术点
02.AI大模型学习路线图(还有视频解说)
全过程AI大模型学习路线


03.学习电子书籍和技术文档
市面上的大模型书籍确实太多了,这些是我精选出来的

04.大模型面试题目详解


05.这些资料真的有用吗?
这份资料由我和鲁为民博士共同整理,鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位,在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利,同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。
所有的视频由智泊AI老师录制,且资料与智泊AI共享,相互补充。这份学习大礼包应该算是现在最全面的大模型学习资料了。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。


智泊AI始终秉持着“让每个人平等享受到优质教育资源”的育人理念,通过动态追踪大模型开发、数据标注伦理等前沿技术趋势,构建起"前沿课程+智能实训+精准就业"的高效培养体系。
课堂上不光教理论,还带着学员做了十多个真实项目。学员要亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事!

如果说你是以下人群中的其中一类,都可以来智泊AI学习人工智能,找到高薪工作,一次小小的“投资”换来的是终身受益!
应届毕业生:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。
零基础转型:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界。
业务赋能 突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型。
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
更多推荐
所有评论(0)