在上一篇《Diffusion 的本质》中,我们建立了一个视角:几乎所有的图像生成式 AI,本质上都在做同一件事——从数据分布 中采样。
好奇的读者会问:那 LLM 这类文本为主的生成式 AI 呢?
其实,我们可以把上面那个结论中「图像」二字去掉,不管是什么模态,「从一个概率分布中采样」是大多数现代「生成式」AI 的一个通用抽象。
好奇的读者此时又会问:既然如此,为什么用于文本生成的 LLM 和用于图像生成的 Diffusion 看上去差别这么大?为什么不用一套技术呢?
这个想法非常好,其实也是业界很多科学家和工程师努力的目标。我们就在这个系列教程中插入一个章节,来讲讲这个问题的来龙去脉。
这里是公众号「零一瓦舍」,博主 tomsheep 是一个践行终身学习的硬核技术人。拥有丰富的行业经验和高效的学习方法论,也经常分享一些致力于让新手也能看懂的「保姆式」知识解读。如果你想一同学习,欢迎关注我。任何互动都非常欢迎,也鼓励「批判性」转发~
一、生成即采样
首先,我们再聊一聊「生成即采样」这个抽象的合理性。如果不把生成看作「从分布中采样」,还有别的方法吗?
当然有。比如:
- 规则:写死一套规则,比如:如果是狗,先画一个椭圆身子,再画四条线当腿,随机选个颜色填充……早期游戏里的地形和贴图通常是这么干的。虽然能生成多样的图,但它们看起来都很假、很生硬。因为现实世界的复杂性(比如毛发的质感、光影的反射)是无法用几行代码规则写尽的。
- 检索:你发指令「画一只狗」,模型去它庞大的数据库里翻,找到一张匹配度高的「狗」的图片给你。如果你觉得这不是「生成」,希望模型更有创造性一些。那我们可以不直接检索原图,而是检索出一堆和你的描述相关度比较高的「特征」,把这些特征融合拼装成一张新的图片。大名鼎鼎的声音转换软件 RVC,原理其实差不多就是这样。
- 确定性拟合:训练一个模型,输入「狗」,强行让它拟合一个标准答案。但是,世界上的狗类型千千万万,如果你强行让模型输出一个「确定」的答案,模型为了「既像金毛又像哈士奇」,最后会生成一个四不像。
其中「确定性拟合」的方法是初学者最容易陷入的误区,也解释了为什么我们要拥抱「概率」。就好比,你问一万个人「我们要去哪吃饭?」,大家有的说火锅,有的说日料。
- 概率分布的做法是:掷骰子,选一个(这次吃火锅,下次可能吃日料)。
- 确定性的做法是:把所有人的坐标取平均值。最后大家被带到了地图中心的一个公共厕所门口。
总结一下:非概率的方法,有的在翻书(检索),有的在算平均数(回归);而基于概率分布的采样,离想象(生成)更接近。
- 现实是不确定的:输入「一只狗」,对应的不是一张图,而是一亿张可能的图。这一亿张图构成了那个神秘的 (数据分布)。只有拥抱概率,模型才能承认:这些图都是对的,我只要随机挑一张(采样)给你就好。
- 拒绝平庸:「采样」保证了多样性。这次采样到了金毛,下次采样就是柯基。如果不使用概率分布,模型往往会坍缩成单一的、死板的输出。
- 填补空白:学习分布,意味着模型不是在死记硬背图片,而是在学习「像素之间如何组合才是合理的」。所以哪怕它没见过「中国男足勇夺世界杯」这种科幻场面,它也能根据学到的概率规律(中国人长这样,大力神杯长那样,庆祝动作通常是这样),无中生有地捏造出一个合理的新样本。
二、图像和文本生成的核心区别
好了,现在我们认可了「生成即采样」是一个好的抽象,现在我们来看最初的问题:为什么文本和图像生成的技术路线(在早期)看上去差别这么大呢?
你可能会猜测:大概是搞 NLP 和搞 CV 的是两波人的原因吧。嗯……也不能说完全没有这个因素,但不本质。跨圈抄作业在这个时代太稀松平常了,不算什么核心障碍。
区别 1:离散 vs 连续
文本和图像的第一个差异,在于「离散」与「连续」的不同。
当我们谈论 ChatGPT 生成文本时,我们实际上是在做选择题。就好比你有一本超级字典(Vocabulary),里面有 5 万个常用的词(实际上是「子词」,技术上叫 token)。每一个词都有一个固定的编号:ID 100 是「猫」,ID 101 是」桌子「……当 LLM 想要生成一句话时,它面临的局面是:它必须、且只能从这 5 万个 ID 里选一个。
这就是「离散」的含义:
- 非黑即白:你要么选 ID 100,要么选 ID 101。你不能选 ID 100.5。
- 中间态无意义:在数学上,100 和 101 挨得很近,但在语义上,「猫」和「桌子」八竿子打不着。你无法找到一个「半猫半桌子」的词。
而数字图像是由像素组成的。一个像素点的颜色(比如 RGB 值),通常是用数字来表示的。虽然在计算机存储时通常是 0-255 的整数(也就是说本质上它也是离散的),但在数学处理时,它们被视为连续的浮点数。
这就好比你在调色盘上混色:
- 你可以有纯红色
(1.0, 0.0, 0.0); - 你可以加一点点白色(同时增加绿色和蓝色通道),变成浅红
(1.0, 0.1, 0.1); - 你可以再加一点点白色,变成更浅的粉红
(1.0, 0.11, 0.11)。
这就是连续的含义:中间态是有意义的。你可以非常丝滑地从一张图「渐变」到另一张图,中间不会出现断层。
PS:请再次注意,像素存储在最底层仍然是「离散」的,但我们之所以把它当成「连续」来看待,是因为在这种表征方法中,「中间态」是有意义的,这是和文本那种基于「字典」的表征方法最本质的区别。
为什么这个区别很重要?因为它直接决定了:你能不能定义「往前走一小步」这件事。
在图像这种连续空间中,「一步」是一个非常自然、非常温和的概念。更重要的是:这些中间态依然是「合法」的图像。哪怕它们不好看、不清晰,但它们仍然是一张张可以被网络处理、被人理解的图片。扩散模型(Diffusion)正是利用了这一点:它通过计算梯度,在这个连续的空间里一点一点地把噪点「推」向清晰的图像。
而文本的离散空间里,你无法定义一个「连续、平滑、处处可微」的生成路径。而没有这样的路径,扩散模型赖以生存的那整套数学语言,就失去了落脚点。
在机器学习领域,我们习惯把可平滑优化、可微的表示或过程叫做「软」(Soft)的,把非此即彼、不可微的决策称为「硬」(Hard)的。
你可能会问:既然 token 是「硬」的,那梯度从哪里来?LLM 这种模型怎么训练?
如果你能问出这个问题,说明你对深度学习有不错的直觉。答案是:「硬」只发生在「最终选择」的那一瞬间,训练阶段几乎完全是「软」的。
模型并不是直接输出一个 token ID,而是输出一个对整个词表的概率分布:。这个分布是连续的、可微的。
也就是说,LLM 的庞大身躯中,绝大部分其实都是在「连续空间」里做计算,模型在训练时,比对的是它预测的「概率分布」和真实词的「概率分布」之间的差异(即交叉熵损失),这个过程全程是可导的。最后的这层,在机器学习里也叫做「分类头」。
只有到了推理阶段(通常也叫采样或者解码),才做一个「掷骰子」一样的「离散」操作,把这个「软」的分布,变成一个「硬」的 token。
区别 2:顺序结构 vs 整体结构
如果说「离散 vs 连续」决定了能不能定义平滑的生成路径,那文本和图像的第二个关键差异,则决定了:生成这件事,是所有元素「一个个地来」,还是「一起改」。
文本是一种高度顺序化的对象。一句话天然就有从左到右的结构:第一个词出现之后,第二个词才有意义;前半句话没说完,后半句根本无从谈起。
这意味着,在文本生成中,不断根据上下文去「预测下一个词」是一个很符合直觉的任务定义。这就是 LLM 所谓的自回归(Autoregressive)建模。在每一步,从词表中选一个最合适的答案。把「全局生成」变成了「局部选择」。
而图像的结构则不同:一张图像并没有一个「天然正确」的生成顺序。你可以先画轮廓,也可以先涂背景;你可以从左上角开始,也可以从中间开始。向 LLM 那样自回归式地按顺序一个一个地预测像素,不是不行,而是看上去没有必要,而且太慢了。
对于图像生成而言,你大可以对整张图进行并行建模,在全局尺度上逐步修正,把「生成」看作一个整体状态不断演化的过程。这正是扩散模型所采用的视角。
从机器学习的角度看,这种由数据形态差异所导致的架构选择,本质上就是一种归纳偏置(Inductive Bias)。
LLM 的自回归结构,隐含着对语言「顺序生成、条件依赖」的假设;扩散模型的连续演化过程,则隐含着对图像「平滑变形、整体协调」的假设。这些偏置并非孰优孰劣,而是对各自数据结构最自然的回应。当模型的归纳偏置与数据的内在结构高度匹配时,学习就会变得高效而稳定;反之,则往往事倍功半。
LLM 与 Diffusion 的架构差异,本质上就是对不同数据结构所施加的不同归纳偏置。
三、LLM 与 Diffusion 的融合
到了这里,我想你应该对「文本和图像生成为什么不用同一套技术」有了一个初步的认识。但要注意的是,这不是「对不对」的问题,而是只是「合不合适」的问题。
- LLM 擅长离散、顺序、语义结构
- Diffusion 擅长连续、并行、全局一致性
理论上,我们也可以用 Diffusion 的思想来生成文本,用自回归的方式生成图像。融合这两种范式,也正是业内很多人孜孜不倦进行探索的方向。
这超出了我们这个系列教程的范畴,为了不向读者增加额外的认知负担,我们仅仅简要提及一下主要的思路,作为一个拓展知识点,选择性了解:
- 图像「离散化」:将图片切块并转化为 token 序列,应用 LLM 自回归范式中的研究成果
- Diffusion LM:文字本身是离散的,但词向量(Embeddings) 是连续的,可以在后者上做扩散,再在字典里找最接近的 token。
- DiT (Diffusion Transformers):简单来说,就是把扩散模型里负责「预测噪声」的那个大脑(通常是 U-Net),换成了和 ChatGPT 一样的 Transformer 架构。Sora 和 Stable Diffusion 3 用的就是这个技术。它证明了 Transformer 不仅能做文本接龙,也能处理图像的去噪过程。
总结
核心知识点:
- 生成即采样:生成式 AI 的本质是从概率分布中采样,以此保证结果的多样性,避免确定性拟合带来的「平庸平均值」。
- 离散 vs 连续:文本是离散的 Token(无中间态),图像是连续的数值(可微分),这使得图像能利用梯度进行平滑扩散,而文本则难以为之。
- 顺序 vs 全局:文本是线性的时间序列(适合 LLM 自回归预测),图像是二维的空间结构(适合 Diffusion 全局并行修正)。
- 归纳偏置:LLM 和 Diffusion 技术路线的差异,本质上是因为模型架构必须顺应数据(文本 vs 图像)的内在结构。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。