一篇文章让你彻底熟悉AI大模型(一)

初识AI到了解AI

以下是个人学习的总结(一),干货满满,还望仔细阅读,如有问题,欢迎留言。

很多人可能在了解AI过程中,发现知识链路较为混乱,各种名词迭出,难以理清脉络,建立知识结构体系。

基础层:高频曝光词Token

在文本处理中,即通常所说的词元,它是处理文本的最小数据单元。

在图像处理中,即为图片的切块。

在音频处理中,即为时间的"切片"。

在视频处理中,即为画面与时间的交织。

token决定模型的记忆力、使用成本,并直接影响AI生成质量。

掌握Token拆分规则和优化技巧,就能更高效驾驭大模型。

1.Token 到底是什么

Token就是AI模型处理的基本数据单位

  • 自然语言处理(NLP)中, Token 通常是一个单词、一个标点符号、一个子词,甚至是一个字符。

原文:你好,世界!

Token结果:['你好', ',', '世界', '!']
原文:unhappiness

Token结果:['un', '##happiness'](##表示这是词根的一部分)

  • 图像 处理中,将图像分割成固定大小的"小块"(Patch,大小通常是 ‌14×14像素‌),每个小块通过线性投影转换为一个视觉Token。

1.计算分块数量:将缩放后图片的宽度和高度分别除以Patch大小,得到横向和纵向的块数,两者相乘即为基础Token数。

  • 公式 ‌:基础Token数 = (缩放后宽度 / 14) × (缩放后高度 / 14)
  • 注意‌:如果除法结果不是整数,模型会通过向上取整或填充(Padding)的方式处理,确保分块完整。

2.添加固定额外Token ‌:除了分块产生的Token,模型还会添加一些固定的特殊Token,用于标识图像的开始、结束或提供全局信息。这部分通常在 ‌10到256个Token‌ 之间,具体数量取决于模型和图像分辨率。

3.计算总视觉Token数

  • 音频处理中,有几种主流的方法和相关影响因素。
  1. 基于编码器的 Token 化(主流方法)

这是当前先进音频模型(如音乐生成、高质量语音处理)最常用的方法。将原始音频压缩到一个低维的"潜空间"(latent space),再通过‌向量量化‌(Vector Quantization, VQ)将连续的特征向量映射到一个有限的"码本"(codebook)中,每个码本索引就是一个 Token。

  • 计算公式 ‌: Token 数 ≈ 音频时长(秒) × 潜空间帧率(Hz)

  • 特点‌:这种方法能很好地保留音频的声学属性(如音色、韵律),适用于音乐生成、语音合成等对音质要求高的场景。‌

  1. 基于时间分帧的 Token 生成

这种方法更直观,常用于一些特定的模型或服务中,将音频按固定时间窗口(帧)切分,然后为每帧生成固定数量的 Token。

  • 计算公式 ‌: Token 数 = ⌈音频时长(秒) / 帧步长(秒)⌉ × 每帧生成的 Token 数

  • 特点‌:实现相对简单,但 Token 数量与帧步长和每帧 Token 数的设定强相关,不同系统间差异巨大。‌

  1. 基于语音识别(ASR)的 Token 化\

当目标是将语音转换为文本时,会先使用自动语音识别(ASR)模型(如 Whisper、Wav2Vec2)将音频转录为文字,然后对这些文字进行分词(如 BPE、WordPiece),生成文本 Token。

  • 计算方式‌:与文本 Token 计算完全相同。

  • 特点 ‌:生成的 Token 代表的是‌语义内容‌,而非原始声学特征。因此,它丢失了说话人的音色、情感等信息,但与语言模型的接口天然兼容。‌

  1. 服务提供商的特定规则

一些云服务商会提供自己明确的 Token 计算规则,通常以‌每秒音频对应多少 Token‌来定价或计费。

  • 权威示例 ‌:阿里云的 Qwen-Audio 模型明确规定,‌每一秒钟的音频对应 25 个 Token‌,不足 1 秒按 25 个 Token 计算。‌
  • 音乐生成示例 ‌:在 ACE-Step 等音乐生成模型中,Token 消耗与‌去噪步数 ‌和‌音频时长‌直接相关。总 Token 操作数 = 去噪步数 × (音频时长 × 潜空间帧率)。‌
  • 视频处理中,核心逻辑通常基于‌视频时长、帧率和每帧生成的 Token 数量。
  • Token 数 = 视频时长(秒) × 帧率(fps) × 每帧生成的 Token 数
  • 视频时长‌:以秒为单位。
  • 帧率(fps) ‌:每秒提取的帧数(如 15fps、30fps)。
  • 每帧 Token 数‌:由模型决定,取决于图像分辨率、分块策略(如 ViT 的 patch 大小)等。

2.Token在AI中的三大作用

输入的限制、计费的标准、模型理解

  • 输入限制------AI的"内存条"容量

1.每个大模型都有Token数量上限,就像手机内存有容量限制一样。

当我们将一段文字输入到AI模型中时,模型首先会将这段文字拆分成一个个Token。

同样,当AI生成回答时,也是以Token为单位逐个生成的。这就像是我们写文章时,一个字一个字地写,AI模型则是通过处理和生成Token来完成语言的生成。

2.超过上限会怎样?

模型会"失忆"!最早的对话内容会被自动删除,就像内存满了自动清理旧数据。这就是为什么聊天聊长了,AI会忘记最开始设定的角色。、

  • 计费标准------AI服务的"电表"

使用Token可以提高处理效率,因为AI可以更快地识别和处理预定义的单元。

同时,Token的数量也直接决定了模型处理文本所需的计算资源和时间。

这也是为什么几乎所有大模型公司都按照Token数量计费,因为Token数量直接对应背后的计算成本。

这是最直接的影响!几乎所有AI平台都按Token收费,包括:

  • 输入Token(你写的Prompt)
  • 输出Token(AI生成的回答)
  • 计费公式:总费用 = (输入Token数 + 输出Token数) × 单价
  • AI的"思考基石"

通过分析Token的顺序和它们之间的关系,AI模型可以理解句子的意思。 Token的质量直接影响AI的理解能力:

  • 分词准确 → AI理解更精准
  • Token太少 → 信息丢失
  • Token太多 → 计算缓慢

3.优化Token让AI更高效

在实际应用中,优化Token的使用是非常重要的。例如,在编写Prompt(提示词)时,我们可以尽量使用简洁明了的语言,避免冗余的词语,这样可以减少Token的数量,从而降低计算成本。

例1:节省开发成本

优化前:帮我写一个js函数,这个函数要能够接收两个参数,然后返回它们的和,函数名要叫addNumbers

优化后:js函数addNumbers:接收两参数,返回其和

例2:长文档处理,如论文,小说

  • 分段处理,每段5000字
  • 使用"继续"指令衔接内容
  • 提取核心摘要后再提问

例3:避免AI失忆

  • 关键信息放在对话末尾
  • 定期总结上下文
  • 使用系统提示(System Prompt)强化角色设定

基础层:Context Window上下文窗口

1.Context Window是什么

Context Window(上下文窗口)是一次对话中能"看到"和"记住"的最大信息量,单位是 Token

它决定了模型能够捕捉信息的范围。上下文窗口越大,模型能够考虑的信息就越多,生成的回答也就越相关和连贯。

一个最直观的比喻

把 AI 模型想象成一位只能看桌面的读者

  • 桌面的大小 = Context Window
  • 桌面上摆的纸张 = 当前对话中的所有内容(你说的话 + AI 回复 + 上传的文件)
  • 桌面放满了,新内容推进来,旧内容就会从桌面掉落消失

AI 每次回答,只基于"桌面上现有的内容"作判断,看不到桌面以外的东西。

2.Context Window里装的什么

一次对话的窗口,通常由四部分共同占用:

内容 描述
System Prompt(系统提示/人设设定) 通常由开发者预设,用户看不见
历史对话(你说的 + AI 回复的) 越聊越长,越占越多
当前输入(你这次发的消息/上传的文件) 文件越大,消耗越多
模型输出(AI 即将生成的回复) 输出越长,消耗越多

这四部分加在一起,不能超过模型的 Context Window 上限。

3.为什么 Context Window 很重要

它影响 AI 能干什么事:

任务 大概需要多少 Token
普通聊天 几百~几千
分析一篇长文章 1万~5万
阅读一本书 10万~30万
分析一个代码仓库 50万~100万+

Context Window 太小,就没法完成长文档分析、多轮复杂推理等任务。

4.三个容易混淆的误区

误区一:"Context Window 越大,记忆越好" 不完全对。Context Window 是短期工作记忆,不是长期记忆。对话结束后,下次新开对话,一切清零,AI 不记得你上次说了什么。

误区二:"标称 100 万 Token,就能可靠处理 100 万 Token 的内容" 实际上,大多数模型在接近上限时,对早期内容的注意力会显著下降,容易"遗忘"开头的信息。就像人读一篇超长文章,读到结尾时往往记不清开头的细节。

误区三:"Context Window 大 = 模型更聪明" Context Window 衡量的是记忆容量,而不是推理能力。一个窗口小但推理强的模型,不一定比窗口大但推理弱的模型差。

一句话理解:

Context Window = AI 的"工作桌面"大小。

桌面越大,能同时处理的信息越多;但桌面放满了,旧内容就会掉落;而且不管桌面多大,下次开会桌面都会清空重置。

核心层:LLM是什么

大语言模型(英文:Large Language Model,缩写LLM),也称大型语言模型,是一种人工智能模型,旨在理解和生成人类语言。

1.LLM------(大语言模型)

LLM = AI的"大脑"

LLM(大语言模型)本质上是一个"被动的思考者",它们在大量的文本数据上进行训练,可以执行广泛的任务,包括文本总结、翻译、情感分析等等。

LLM的特点是规模庞大,包含数十亿乃至更多的参数,帮助它们学习语言数据中的复杂模式。这些模型通常基于深度学习架构,如转化器,这有助于它们在各种NLP任务上取得令人印象深刻的表现。

NLP:自然语言处理(NLP)是一种可让计算机解释、操纵和理解人类语言的技术。

总结: LLM在"运行时"是被动系统,你给它输入,它给你输出,但它自己不会主动行动,只负责对话;但在"训练时"可以通过大规模的学习训练获得强大的预测能力,使得输出越来越像"高质量人类回答"。

阶段 模型状态 是否主动
训练阶段(Training) 学习语言规律 ✅ 主动被优化提升
使用阶段(Inference) 固定函数 ❌ 被动响应输出

LLM 是一个被动运行、但通过大规模训练变得越来越"会回答"的系统。

什么是「被动的思考者」

当人们说:LLM 是被动的思考者(Passive Thinker),指的是 运行时的推理阶段(Inference)

即 LLM(大语言模型) 不会自己启动,它永远是:

复制代码
等待输入
↓
计算概率
↓
输出token
↓
停止

如果没人输入,LLM(大语言模型)什么都不会发生,它不会:

  • ❌ 自己产生目标
  • ❌ 自己决定行动
  • ❌ 自己持续思考
  • ❌ 自己访问世界
大规模训练的作用

模型更擅长预测:

  • 人类通常会如何表达
  • 合理推理的文本结构
  • 正确知识出现的位置
  • 问题 → 回答的语言模式

表现为:输出越来越像"高质量人类回答"

提升预测能力、预测下一个token 这类术语,实际上说人话就是:输出更符合人类期望的答案

注意:LLM大模型训练优化的是,看起来最合理,而非更客观真实

概念 LLM优化目的
语言合理性 ✅ 是
人类期望一致 ✅ 是
事实真实性 ❌ 间接
逻辑必然正确 ❌ 不保证
总结

大规模训练让 LLM 更准确地预测"人类会如何回答",因此输出更符合要求;但模型在运行时仍只是一个被动的概率函数(P(tokent∣token1,token2,...,tokent−1)),永远等待新的输入token。

例如:

scss 复制代码
输入:  
今天的天气
  
模型预测:  
好 (0.62)  
热 (0.15)  
不错 (0.12)  
......

最终心智模型:LLM = 一个经过长期训练的人 + 只能在被提问时回答 + 回答方式基于概率而非确定事实

2.LLM(大语言模型)有多大

LLM 的"训练数据大小"不用 GB/TB 衡量,而用:Token(标记)数量

  • 1 token ≈ 0.75 英文单词(平均)
  • 中文通常 1~2 字 ≈ 1 token
  • 1000 亿 tokens ≈ 几千万本书文本量级

所以 token 才是核心指标。

拿OpenAI 的 GPT来说, GPT 其实出现了好几代:

模型 训练数据规模(tokens) 数据量级 说明
GPT-1 ~8亿 tokens GB级 BookCorpus
GPT-2 ~100亿 tokens 十GB级 WebText
GPT-3 300--5000亿 tokens 百GB级 首次互联网规模
GPT-3.5 ≈ GPT-3 + RLHF 相近 主要是对齐训练
GPT-4 ≈10--20万亿 tokens(估计) TB级 多模态
GPT-4.x / 4o 未公开(推测更大) > GPT-4 强依赖合成数据

从量变到质变:经过这样的一个量的学习之后,它产生的一些就是做 AI 的这些计算机学家们,他们没有想到会有这种变化,无法合理解释这一现象的产生即------当数据量超过某个临界点时,模型实现了显著的性能提升,并出现了小模型中不存在的能力,比如上下文学习(in-context learning)。

这也就催生了两个事件:

  • 各大AI巨头提高训练参数量以期达到更好的效果
  • 由于质变原因的无法解释带来的AI安全性考量

3.LLM(大语言模型)训练阶段

上前面有提到,LLM分为训练阶段使用阶段,准确来说包括从预训练后训练神经网络幻觉现象(Hallucinations)以及推理过程。

从整体上看,训练LLM主要包括两个关键阶段 :预训练(Pre-training)和后训练(Post-training)。

预训练(Pre-training)------基础模型

预训练是 LLM 最昂贵、最核心的阶段。

目标不是完成任务,而是:学习语言如何运作。 可以理解为:模型的"基础教育"。

在LLM能够生成文本之前,它首先必须学习语言的工作方式,而这一过程就是预训练------一个极其计算密集的任务。

  • 步骤1:数据收集与预处理

LLM 需要极其庞大的文本数据,以覆盖尽可能广泛的人类知识。

常见来源包括:

  • 网页(如 Common Crawl)
  • 书籍
  • 代码
  • 论文
  • 论坛讨论等

一个常见的数据库是Common Crawl,这是一个免费的、开放的网页爬取数据存储库,包含过去18年间约2500亿个网页的原始数据。

但原始数据存在大量问题:

  • 垃圾内容
  • 重复文本
  • SEO 内容
  • 无意义页面

因此必须进行:过滤 → 去重 → 质量评分 → 清洗

FineWeb提供了一个整理后的Common Crawl版本,并已在Hugging Face上公开可用。

为什么数据质量如此重要?

因为模型不会判断真假,它只学习:出现频率最高的语言模式

低质量数据会直接降低模型输出质量。

一旦文本数据、资料库经过整理,就可以进行分词(Tokenization)处理。

  • 步骤2:分词(Tokenization)

神经网络处理文本之前,输入的文本必须先转换为数值形式

这一过程就是分词 ,它将单词、子词或字符映射为唯一的数值token

可以把 Token 想象成构建语言模型的基本单元。在 GPT-4 中,词表大小(即可能的 Token 总数)为 100,277 个。一个英文单词通常对应 1~3 个 Token,而中文每个汉字通常对应 1 个 Token。

分词就像把一篇文章拆成乐高积木------每块积木(Token)都有自己的编号,后面的神经网络只处理这些编号,而非原始文字。

一个常见的分词工具是Tiktokenizer,它允许你进行分词实验,并查看文本是如何被拆解为token的。

  • 步骤3:神经网络训练(Neural Network Training)

神经网络(Neural Network) 是一种模仿人脑神经元连接方式设计的数学计算系统。它由大量"节点"(类比神经元)组成,节点之间通过"权重"(Weights)相连。

神经网络的核心思想是:通过大量数据的反复训练,自动调整这些权重,使神经网络能够从输入中的token学习规律并做出(通过网络)预测下一个token。

一个神经网络主要由两个关键部分组成:

  1. 参数(参数权重,Weights) :通过训练学习得到的数值。
  2. 架构(数学表达式,Architecture) :定义输入token如何被处理以生成输出的结构。

最初,模型的预测是随机的,但随着训练的进行,它逐渐学会为可能的下一个token分配概率。

当正确的token被识别后,模型会通过反向传播(Backpropagation)来调整数十亿个参数(权重) 。这是一个优化过程,通过提高正确预测的概率、降低错误预测的概率来强化模型的学习。

这个过程会在海量数据集上重复数十亿次。

举例: 让模型学会,看到"我今天去菜市场买了",下一个词应该是"菜"或"肉"之类的词,而不是"飞机"。

第一步:随机猜测(训练最开始)

模型刚初始化时,数十亿个参数都是随机数值。所以它的预测完全是乱的------看到"我今天去菜市场买了",可能输出"飞机"的概率最高。这显然是错的。

第二步:计算错了多少(损失函数)

系统拿模型的预测结果,和正确答案对比,算出一个"错误分数",叫做损失(Loss) 。预测越离谱,损失越大;预测越准确,损失越小。训练的目标就是让这个损失不断变小。

第三步:找出"谁的锅"(反向传播)

损失算出来后,系统需要知道:数十亿个参数里,哪些参数设置得不对,导致了这次预测错误?

反向传播(Backpropagation)就是干这件事的------它从输出层出发,一层一层往回追溯,计算出每一个参数对这次错误"贡献了多少责任",用数学术语叫梯度(Gradient) 。梯度可以理解为"这个旋钮现在拧偏了多少、往哪个方向拧能改善结果"。

第四步:微调所有旋钮(梯度下降)

拿到每个参数的梯度之后,系统用梯度下降(Gradient Descent) 算法,对数十亿个参数各自做一次微小调整------把拧偏的旋钮稍微纠正一点点。注意,每次只调一点点,不是一步到位,因为调太猛容易矫枉过正。

第五步:重复数十亿次

以上四步,对训练数据里的每一个句子、每一个位置都要做一遍。做完一万亿个 Token 之后,数十亿个参数都被反复微调过无数次,模型逐渐从"乱猜"变成了"很准"。

比喻: 想象你在学投篮。一开始随机出手,球完全投偏了(随机预测)。教练告诉你偏了多远(损失)。你回想整个投篮动作,找出是手腕角度出了问题(反向传播)。然后稍微调整手腕(梯度下降)。下次再投,偏差小了一点。就这样投了一百万次之后,你已经能稳定命中了。

最终: 得到预训练的产物------ 基础模型(Base Model) ,到此为止,基础模型已经学会了:

  1. 单词、短语和句子之间的关联
  2. 训练数据中的统计模式

然而,基础模型并未针对真实世界任务进行优化。你可以将其类比为一个高级自动补全系统------它能够基于概率预测下一个token,但缺乏良好的指令跟随能力。

说人话就是: 预训练结束后,模型只会"续写",不会"听话"。

简单说就是:你在问题里先给他举例子,他会照着例子的格式续写。比如你说"苹果→水果,狗→动物,玫瑰→",他能答出"植物"。但这只是在"模仿格式",不是真正理解了你的意图。

所以基础模型的状态就是:知识量巨大,但不受控、不听指令,需要后训练阶段继续打磨,才能变成真正好用的助手。

后训练(Post-Training):让模型更实用

预训练结束后,我们得到的基础模型就像一个博览群书却从未工作过的人------知识储备丰富,但不懂得怎么配合别人、完成具体任务,有时还会说出不合时宜的话。后训练要解决的正是这个问题。

后训练的核心手段是监督微调(SFT ------ Supervised Fine-Tuning):不再用万亿级的海量数据,而是用一批精心设计的高质量示例继续训练模型。这批数据量虽然小得多,但每一条都是"标准答案"------明确告诉模型,遇到这种情况,应该怎么回应。

由于神经网络无法像传统软件那样被显式编程,我们只能通过训练它来"编程"它,即让它学习有结构的、带标注的数据集,这些数据代表了理想的交互示例

为什么不能直接"编程"模型的行为?

传统软件可以写代码规定它做什么,比如"如果用户问天气,就调用天气API"。但神经网络不行------它的"知识"和"行为"都藏在数十亿个参数数值里,没有哪行代码对应"礼貌回答"或"拒绝有害请求"。唯一能改变它行为的方式,就是继续用数据训练它。

  • 后训练方式一:指令微调(Instruction Fine-Tuning)

目标:让模型学会"听话"。

具体来说,就是让模型能够遵循用户指令、完成实际任务、进行多轮对话、拒绝恶意请求、遵守安全规范。

这是怎么做到的?本质上是给模型喂大量"问答对"示例:

复制代码
用户说:帮我把这段话翻译成英文。 
模型应该回答:(正确的翻译结果) 
用户说:告诉我怎么制作危险品。 
模型应该回答:这个我无法提供帮助。

模型看了足够多这样的示例,就慢慢学会了:哦,用户发来指令,我应该理解意图、然后完成任务,而不是随意续写文字。

真实案例:OpenAI 在 2022 年训练 InstructGPT 时,雇佣了约 40 名标注员,他们的工作就是每天写问题、写"理想回答",积累出一个高质量的示例数据集。现在这个过程已经大量由 AI 辅助完成,人工主要负责审核和修正。

  • 后训练的方式二:领域特定微调(Domain-Specific Fine-Tuning)

目标:让模型成为某个领域的专家。

通用模型什么都懂一点,但在专业领域往往不够精准。如果你需要一个专门用于医疗问诊、法律咨询或代码审查的模型,就需要在该领域的专业数据上再做一轮微调。

例如:

医疗领域的微调数据可能包括大量病历描述、诊断逻辑、用药规范等,模型训练之后就能更准确地理解医学术语、给出更专业的回应。

  • 特殊 Token:让模型分清"谁在说话"

后训练阶段还会引入一类在预训练中从未出现过的特殊 Token,它们不代表任何自然语言词汇,而是起到"结构标记"的作用。

为什么需要它?想象一下,模型在预训练阶段读的全是普通文章,它并不知道什么叫"对话"、什么是"用户在提问"、什么是"我应该回答"。特殊 Token 就是为了解决这个问题而设计的------用专属标记告诉模型:对话的结构是这样的:

sql 复制代码
<|user|> ← 用户开始说话 帮我写一首诗。
<|end|> ← 用户说完了
<|assistant|> ← 现在该模型回答了 好的,这里是一首诗......

有了这些标记,模型就能清楚地区分"这是用户的输入"和"这是我该输出的内容",不会在多轮对话里搞混角色,也不会答非所问。

推理(Inference)------模型如何生成文字

推理就是模型"实际工作"的过程,也就是你发一条消息、它给你回复的那一刻背后发生的事。

整个生成过程其实是一个字一个字蹦出来的,而不是一次性生成整段话。每次只预测下一个 Token,预测完把它拼到已有内容后面,再预测下下一个,如此循环,直到生成结束。

用一个具体例子走一遍:

arduino 复制代码
你输入:今天天气 
第1次预测:今天天气 → 下一个词最可能是"真"(40%)、"不"(25%)、"很"(20%)...... 
模型选出:真

第2次预测:今天天气真 → 下一个词最可能是"好"(60%)、"差"(15%)...... 
模型选出:好 

第3次预测:今天天气真好 → ......

就这样一个词一个词滚动下去,直到生成完整回复。

为什么同样的问题每次回答不一样?

模型并非总是选择最可能的 Token,而是在概率分布中采样

模型每次预测都会给所有词算出一个概率,比如:

erlang 复制代码
"真" → 40% 
"不" → 25% 
"很" → 20% 
"超" → 10% 
其他 → 5%

它不是机械地每次都选概率最高的"真",而是按概率随机抽签------"真"中奖概率最大,但"不"和"很"也有机会被抽到。

这就是为什么你问同一个问题,每次得到的回答措辞会略有不同,也是为什么模型能生成训练数据里没有出现过的新句子,而不是照搬原文。

这个随机程度可以用 Temperature(温度) 控制。

温度是控制 AI 模型生成输出随机性的参数。它决定了模型在生成输出时更倾向于创造性还是保守和确定性。

温度值越高,模型越倾向于生成随机的、意想不到的输出,但也可能导致语法错误或无意义的文本。温度值越低,模型越倾向于生成符合逻辑和常识的输出,但也可能缺乏创造性和趣味性。

例如: 在设置较低温度时,语言模型可能会生成以下句子:"今天天气晴朗,适合户外活动。" 而设置较高温度时,模型可能会生成以下句子:"天空像一块巨大的蓝宝石,点缀着棉花糖般的白云。鸟儿在枝头歌唱,微风拂过脸庞,一切都是那么美好。"

幻觉(Hallucinations)------当LLM生成错误信息

幻觉(Hallucination)是指LLM生成虚假或错误的信息

幻觉这个名字起得很形象------模型言之凿凿地说出了一件根本不存在或不正确的事,就像人在发烧时看到了不存在的东西。

根本原因只有一个:模型从来不是在"查事实",它只是在根据训练数据"预测概率"(最可能的token序列)。

举个例子,你问模型:"鲁迅的代表作《春天的故事》写于哪一年?"

模型内心的运作不是去检索数据库确认这本书存不存在,而是:我见过大量"鲁迅的代表作是......"、"写于某某年"这样的句子,所以我来预测一个听起来最合理的回答------然后它可能非常自信地告诉你"1923年",尽管这本书根本不存在。

因此,当被问到一个未知人物 时,模型不会默认回答"我不知道",因为这种模式在训练过程中并未被强化 。相反,它会基于已有模式生成最可能的猜测 ,这往往会导致编造的信息

在早期,LLM的幻觉问题十分严重

4.LLM(大语言模型)强化学习

我们讨论了训练LLM的两个主要阶段:

  1. 预训练:从海量数据集中学习,形成基础模型。
  2. 后训练------监督微调(SFT):通过精心挑选的示例优化模型,使其更实用。

现在,我们将深入探讨第三个关键阶段:强化学习(Reinforcement Learning,RL)

尽管预训练和SFT已经是成熟的方法,但RL仍在不断发展,并成为训练流程中不可或缺的一部分。

RL(强化学习)的目的是什么

人类和LLM处理信息的方式存在显著差异。

例如,对于人类来说,基本的算术是直观的,而LLM则将文本视为一串token序列,这对它们来说并不直观。

然而,LLM能够在复杂主题上生成专家级回答,仅仅因为它们在训练过程中见过足够多的示例。

这种认知差异使得人类注释者难以提供一组"完美"的标签来持续引导LLM找到正确答案。

RL弥补了这一差距,它允许模型从自身的经验中学习。模型不再仅仅依赖显式标签,而是通过探索不同的token序列,并根据哪些输出最有用来获得反馈(奖励信号)。随着时间的推移,模型学会了更好地与人类意图对齐。

  • RL(强化学习)背后的直觉

LLM本质上是随机的------即使是相同的提示,输出也可能不同,因为它是从概率分布中采样的。

我们可以利用这种随机性,通过并行生成成千上万甚至数百万个可能的响应。这可以看作是模型在探索不同的路径------有些是好的,有些是差的。我们的目标是鼓励模型更多地选择较好的路径。

为了实现这一点,我们让模型在那些导致更好结果的token序列上进行训练。

与监督微调(SFT)不同,SFT依赖人类专家提供的标签数据,而RL则允许模型从自身的学习中进步。模型通过发现哪些响应最有效,并在每个训练步骤后更新其参数。随着时间的推移,这使得模型在未来收到相似提示时,更有可能生成高质量的答案。

  • RL(强化学习)能超越人类专业水平

RL的强大力量的一个经典例子是DeepMind的AlphaGo,它是第一个击败职业围棋选手的AI,并最终超越了人类水平。

在2016年《自然》杂志的论文中,当一个模型仅通过SFT训练(即给模型大量好的示例让其模仿)时,模型能够达到人类水平的表现,但永远无法超越它。

虚线代表韩国围棋选手李世石的表现。这是因为SFT关注的是复制,而非创新------它无法让模型发现超越人类知识的新策略。然而,RL使AlphaGo能够与自己对弈,改进策略,并最终超越人类的专业水平(蓝线)。

强化学习(RL)代表了人工智能领域的一个令人兴奋的前沿。通过将模型训练在一个多样化且充满挑战的问题池中,RL使模型能够探索超越人类想象的策略,从而优化其思维和决策能力。

RL(强化学习)基础

RL的关键组成部分:

  • Agent(智能体): 这是学习的主体,负责在环境中采取行动。
  • Environment(环境): 智能体与之交互的外部世界,它会根据智能体的行动给出反馈。
  • State(状态): 环境在某一时刻的具体情况,智能体根据状态决定行动。
  • Action(动作): 动作会将环境从当前状态转移到新的状态。
  • Reward(奖励): 数值形式的反馈,用于评估动作的好坏。
  • Policy(策略): 智能体的决策规则。

用一个统一的比喻锚定------训练一只狗

RL 概念 对应"训狗"场景
Agent(智能体)
Environment(环境) 训练场 + 训练师
State(状态) 当前情况(训练师发出了什么指令)
Action(动作) 狗做出的行为(坐下、握手、乱跑...)
Reward(奖励) 做对了给零食(+),做错了不给或斥责(-)
Policy(策略) 狗形成的"习惯":听到"坐"就坐下

整个训练过程就是:狗不断尝试各种行为 → 根据奖励判断哪些行为好 → 逐渐固化成稳定的策略。

  • Policy(策略)是什么

策略就是 Agent 的决策规则:在当前状态下,我应该做什么?

如果智能体遵循一个好的策略,它将在每个状态下做出正确的决策,从而在多个步骤中累积更高的奖励。

用数学术语来说,策略是一个函数(πθ(a|s)),它定义了在给定状态下选择不同动作的概率。

πθ(a|s)很直白的讲就是:

css 复制代码
π     → 策略(Policy)的符号
θ     → 策略里的参数(可以被训练调整)
a     → action,动作
s     → state,状态
a|s   → 在状态 s 下,选择动作 a

整体意思:在当前状态 s 下,选择每个动作 a 的概率是多少。 对应到 LLM 里,就是"看到当前这段文字,下一个 Token 选哪个、概率多少"------这和前面讲的推理过程完全一致。

  • Value Function(价值函数)是什么

策略告诉 Agent"现在选什么动作",而价值函数回答的是另一个问题:当前这个状态,从长远来看有多好?

例如:

下棋时,当前棋盘局面是好是坏?价值函数就是棋手脑子里对"这个局面的胜率"的判断。它不只看当下,而是预估从这个局面继续走下去,最终能拿到多少奖励。

对 LLM 来说,价值函数评估的是:当前已经生成的这段文字,有多大可能最终产出一个高质量的回答?

  • Actor-Critic 架构

这是把策略和价值函数拆给两个角色分别负责的框架:

Actor(演员)= 负责"做决定" ,也就是执行策略,决定下一步选哪个动作。对 LLM 来说,就是预测下一个 Token。

Critic(评论者)= 负责"打分评价" ,也就是评估策略,评估 Actor 做的选择好不好,给出反馈,帮助 Actor 改进。

两者的协作流程:

markdown 复制代码
Actor 选了一个动作(生成了一个 Token)
         ↓
Critic 评估:这个选择让整体结果变好了还是变差了?
         ↓
把评估结果反馈给 Actor
         ↓
Actor 调整策略,下次在这种情况下做出更好的选择
         ↓
循环往复......

例如:

Actor 是演员,负责上台表演;Critic 是导演,坐在台下实时给反馈------"这个动作太夸张了"、"这里语气不对"。演员根据导演的意见不断打磨,表演越来越好。两者缺一不可,只有演员没有导演会走偏,只有导演没有演员什么都做不了。

  • 总结

将其与LLM结合

把上面所有概念对应到 LLM 的训练场景里:

RL 概念 在 LLM 里对应什么
Agent(智能体) LLM 模型本身
Environment(环境) 用户的对话 + 奖励模型
State(状态) 当前对话中已有的所有文字
Action(动作) 生成下一个 Token
Reward(奖励) 奖励模型(或人类)给这段回答的评分
Policy(策略) 模型选下一个 Token 的规则(就是模型本身)
Value Function(价值函数) 判断当前生成的内容,最终能不能产出好回答
Actor-Critic 架构(Actor) 负责生成 Token 的模型
Actor-Critic 架构(Critic) 负责评估当前文本质量的价值网络

整个 RL 的强化训练逻辑就是:LLM(Actor)不断生成回答 → 奖励模型(Critic)打分 → 分数反向指导 LLM 调整参数 → LLM 生成的回答越来越符合人类期望。

RLHF(带有人工反馈的强化学习------Reinforcement learning with Human Feedback)

为什么创意任务比数学题难评估?

数学题的对错很简单------ 就是对, 就是错,可以自动判断,不需要人来看。1+1=2``=3

但你让模型写一首诗、总结一篇文章,什么叫"好"?没有标准答案。两个人看同一首诗可能一个觉得很美、一个觉得很平庸。这种主观性任务,只能靠人来评判

直接用人工评估,为什么行不通?

训练一个模型需要数以亿计次的反馈。如果每次模型生成一段文字,都要找一个真人来打分,代价是:

复制代码
1亿次生成 × 每次请人评估 = 贵到不可能实现

所以不能完全靠人,需要一个更聪明的方案。

RLHF 的解法:训练一个"替代裁判"

RLHF 的核心思路是:先用少量人工反馈,训练出一个会模仿人类判断的 AI 奖励模型,再用这个奖励模型来替代人,大规模地给 LLM 打分。

流程是这样的:

arduino 复制代码
第一步:收集人类偏好数据 
    → 让模型对同一个问题生成多个回答
    → 请真人对这些回答排序(哪个更好) 
    → 注意:是排序,不是打分 
第二步:训练奖励模型 
        → 用这批排序数据训练一个 AI 裁判
        → 它学会了"人类觉得什么样的回答更好" 
第三步:用奖励模型大规模训练 LLM 
    → LLM 生成回答 
    → 奖励模型打分 
    → 反馈给 LLM 调整 
    → 这一步可以自动跑数亿次,不再需要真人介入

为什么用"排序"而不是"打分"?

让人给一段文字打一个 1-10 分,其实很难------你的 8 分和别人的 8 分标准不一样,不同人、不同心情打出来的分数都可能有偏差。

但如果给你两段文字,问你"哪个更好",这个判断就容易得多、也更一致。所以 RLHF 收集的是相对排序而非绝对分数,数据质量更高,也更容易标注。

  • RLHF的优点:
  1. 广泛适用性:RLHF可以应用于任何领域,包括创意写作、诗歌、总结等开放性任务。
  2. 简化评估:对输出进行排名比生成人工标签或创意输出更容易。
  • RLHF的隐患:

奖励模型可以被"钻空子".

奖励模型毕竟只是一个近似,它学到的是"看起来像好回答的模式",而不是真正理解什么是好回答。LLM 在训练中有时会发现:有些奇怪的输出能骗过奖励模型、拿到高分,但实际上回答质量很差。

例如

学生发现考试有规律------只要开头写"这是一个复杂的问题,需要多角度分析......",老师就容易给高分。于是开始套模板,分数很高,但内容越来越空洞。奖励模型被"应试"了。

这就是为什么训练时间不能太长------训太久,模型就从"学习真正好的回答"变成了"专门欺骗奖励模型"。

  • RLHF 和传统 RL 的本质区别
传统 RL RLHF
典型场景 下棋、打游戏、解数学题 写作、对话、总结
奖励来源 明确规则(赢/输/对/错) 人类偏好(哪个回答更好)
训练目标 探索并发现全新最优策略 把模型行为对齐到人类期望
能跑多久 可以无限跑,越跑越强 有上限,跑太久会钻空子

一句话总结:传统 RL 是让 AI 在规则明确的世界里变得更强,RLHF 是让 AI 在没有明确规则的世界里变得更像人类期望的样子。

学到这里,结合实际情况,我们现在火爆的Vibe Coding中Skills如何理解呢?

RLHF 更多影响的是模型的"行为方式"------ 比如回答是否礼貌、是否安全、是否符合人类期望的风格。这是一种偏"态度和价值观"层面的干预。

Skills(技能) ,比如"能画图"、"能搜索网页"、"能写某方面代码",这些更多是通过另外两种方式实现的:

(1) 工具调用(Tool Use) :模型本身不会画图,但它学会了"什么时候该调用画图工具、怎么调用",背后真正干活的是外部 API。这个能力主要通过 SFT 训练------给模型大量"遇到这类请求就调用某个工具"的示例数据。

(2) 专项微调:比如让模型更擅长写代码,就在大量代码数据上做额外的 SFT,强化这个方向的能力。

相关推荐
小碗细面2 小时前
多智能体编排神器:oh-my-claudecode 让你效率起飞!
aigc·ai编程
深藏blue472 小时前
GPT-5.3 Instant 重磅上线!2026最新 ChatGPT 告别说教,国内使用与 Plus 升级教程
gpt·chatgpt·openai
NikoAI编程2 小时前
并行开发利器:worktree
ai编程
乘风gg14 小时前
从 Structured Output 到企业级 AI 架构——如何把 LLM 放进可控系统
openai·ai编程·cursor
孟健17 小时前
用OpenClaw给12个AI下属定KPI,它们自己复盘、迭代、进化
ai编程
蝎子莱莱爱打怪18 小时前
OpenClaw 从零配置指南:接入飞书 + 常用命令 + 原理图解
java·后端·ai编程
MaXiaoTiao110518 小时前
OpenCode配置详细教程(Windows版)
ai编程
Kagol18 小时前
TinyVue 支持 Skills 啦!现在你可以让 AI 使用 TinyVue 组件搭建项目
前端·agent·ai编程
黄粱梦醒19 小时前
大模型企业级部署方案-vllm
人工智能·llm