生成式模型介绍
我们本身就活在"生成"之中
生成,其实并不是一个陌生或遥远的概念。我们说出的每一句话,都是大脑在瞬间"生成"的产物;我们看到的每一张图像,本质上也是现实世界通过光线、结构与规律"生成"给我们的感知结果。从这个角度看,生成模型并不是凭空发明的新事物,而是人类在用机器去模拟一种早已存在于自然与认知中的能力。
正因如此,生成模型的意义远不止"造图""写文章"这么简单——它的核心价值在于辅助人类完成数据的生成过程,让机器具备与人类相似的、创造性地产出信息的能力。
从数学的角度理解生成模型
如果抛开具体的技术实现,从数学本质来看,生成模型要做的事情其实很纯粹:学习一个概率分布 p(x)。
这个分布描述的是"生成某个具体结果 x 的可能性有多大"。举一个直观的例子:
- p(海水是蓝色的) —— 概率较高,符合我们对世界的普遍认知;
- p(海水是黄色的) —— 概率较低,虽然并非完全不可能(比如浑浊的近海),但明显不符合常规经验。
一个训练良好的生成模型,就是要准确地捕捉到这种"合理性"的分布规律——让符合常识、符合数据规律的结果拥有更高的生成概率,而让不合理的结果自然地被赋予更低的概率。
生成模型的三大核心目标
综合以上的思考,我们可以将生成模型的目标清晰地归纳为三点:
1. 高效的采样能力
模型应当能够较快地从学到的分布中"采样"出结果,而不是耗费大量时间和算力才能生成一个样本。
2. 采样结果符合预期
生成出来的样本,应当大概率落在"合理"的区间内——即符合真实数据分布规律的结果被赋予更高概率,而不合理、不自然的结果则应当被赋予更低概率。
3. 具备无监督学习与特征提取能力
模型不应依赖大量人工标注数据,而应能够从海量的无标注原始数据中自主学习到数据背后的深层特征与规律。
自回归模型AR:让"过去"预测"未来"
拆解一下"回归"和"自"
回归(Regression)本身是统计学里的概念,指的是用一个或多个变量去预测另一个变量。比如经典的线性回归,是用"房屋面积""地段"等特征变量,去预测"房价"这个目标变量——这里预测用的变量和被预测的变量是不同的东西。
而**自回归(Auto-Regression)**的特殊之处就在于这个"Auto"(自)字:
- 它不是用外部的、别的变量去预测目标;
- 而是用这个变量自己过去时刻的值,去预测它自己未来时刻的值。
自回归模型(AutoRegressive Model, AR)遵循一个朴素而深刻的逻辑:当前时刻的结果,往往与此前发生的事情紧密相关。这类模型不依赖复杂精巧的特征工程,而是直接利用数据自身在过去的表现来预测未来走势,是时间序列分析中一种简洁却极为有效的方法。
具体来说,自回归模型的核心机制是:每一步的生成都建立在前一步已生成结果的基础上。这个过程很像人类说话的方式——语言是一个字、一个词逐步"蹦"出来的,每说出下一个词,都是在综合之前已经说过的所有内容之后做出的选择。模型正是以这种链式、递进的方式,一步步地完成整个序列的生成。
GPT:自回归模型
AR模型, 代表作GPT, 其特点为: Decoder-Only 基本原理: 从左往右学习的模型, 只能利用上文或者下文的信息 AR模型通常用于生成式任务, 在长文本的生成能力很强 比如自然语言生成(NLG) 领域的任务: 摘要、 翻译或抽象问答
GPT采用了Transformer的Decoder模块 但是GPT的Decoder Block模块与Transformer的Decoder模块相比, 做了一些改进:
GPT中取消了第二个encoder-decoder attention子层,只保留MaskedMulti-HeadAttention层,和FeedForward层。 对比于经典的Transformer架构,解码器模块采用了6个Decoder Block、 GPT的架构中采用了12 个Decoder Block.
GPT的训练包括两阶段过程:
• 无监督的预训练语言模型
• 有监督的下游任务fine-tunning
无监督的预训练语言模型给定句子U =[u1, u2, ..., un], GPT训练语言模型时的目标是最大化
下面的似然函数:
L_1(U) = Sum(Log(P(u(i) | u(i-k),...,u(i-1);Θ))
上述公式具体来说是要预测每个词u(i)的概率, 这个概率是基于它前面u(i-k)到u(i−1)个词, 以及模型Θ。
这里的k表示上文的窗口大小, 理论上来讲k取的越大, 模型所能获取的上文信息越充足, 模型的能力越强。
GPT训练过程
GPT是一个单向语言模型,模型对输入U 进行特征嵌入得到transformer 第一层的输入h_0
再经过多层transformer特征编码, 使用最后一层的输出即可得到当前预测的概率分布
计算过程如下:
h_0 = U x W_embedding + W_positional_embedding
Wp代表单词的位置编码,形状是[max_seq_len, embedding_dim]
We的形状是[vocab_size, embedding_dim].
得到输入张量h_0后, 要将h_0传入GPT的Decoder Block中, 依次得到h(t)
最后通过得到的h(t)来预测下一个单词:
ht= transformer_block(h(l−1)) l∈ [1,t]
P(u) = softmax(ht * We)
AR在自动驾驶中的应用
AR模型架构
- 输入部分: 动静态信息, 属性信息
- 网络编码部分: 信息编码
- 自回归模型计算部分: next token prediction
- token解码部分: 还原下一步预测结果
信息接入
在大语言模型中, 每个 token 通常对应一个单词或词组, 并以一个整数 ID 表示, 随后通过 Embedding 层映射为连续的特征向量。 相比之下, 自动驾驶场景中的 token 承载了更为丰富的语义信息, 包括空间位置、 时间位置、 几何形状以及语义属性等。 具体而言, 每个 token 由 4 个 sub-tensor 构成, 这些 sub-tensor 通过一个由 MLP 与 Embedding 层组成的网络进行编码, 最终融合为统一的特征向量, 并输入到后续的 Transformer blocks 中进行建模
AR模型优缺点
优点介绍
- 训练目标极其清晰——每一步就是个分类问题, 预测下一个token是啥
- 天然适合语言任务学习训练
- 扩展性好——模型变大、 数据变多, 效果就变好, scaling law在这条路上被验证得明明白白
缺点介绍
- 误差累积
- 多模态表达能力弱
- 长期规划能力有限
参考:自动驾驶之心