深度学习的前世今生

声明

本文所有内容均来自本人学习过程中的总结,仅代表个人立场,请勿充分信任本文,可以进行多方查询验证,未经允许请勿直接抄袭。

1、启蒙

深度神经网络在现如今已经变成一个爆火的IP,几乎所有模型产品都有他的身影,好像不用这个的产品就不是好产品一样。他的四大影响因素是芯片性能,操作系统,数据和模型结构。那么一切的一切,都要从那第一颗GPU开始。

1999年 GeForce 256上市,标志着为了处理立体图形等更高级物品计算渲染问题,专门从CPU中分离出了一个GPU来进行高效处理。在2001年 GeForce 3上市后,利用GPU来进行编程正式提上了台面。本身GPU是以浮点数为基础,并行处理上万个像素点实现图形渲染的,这个与深度神经网络需要的大规模并行非常相似,但是GPU本身的着色器提供的编程非常简陋,用代码工程角度来说就是又长又臭。

所以在这个时候,出现了Brook语言,将GPU抽象为流式服务器,类似于现在编程中的高级语言,定义了一系列流、核函数、规约等适用于并行的框架,早期的Brook编译效率很低,并且只能使用像素着色器进行运算。 受GPU架构限制,Brook也缺乏有效的数据通信机制。 AMD/ATI公司在其GPGPU通用计算产品Stream中采用了Brook的改进版本Brook+作为高级开发语言。
论文链接

2、开端

李飞飞团队创建并维护的ImageNet提供了一个超大规模(14,197,122)的高标准图像数据集,并诞生了关于图像的年度竞赛平台(ILSVRC),为图像分类任务提供了一个良好的评估和测试标准。在2011年的ILSVRC中,由Alex Krizhevsky、Ilya Sutskever和Geoffrey Hinton提出了一种经典的卷积神经网络。

AlexNet输入为RGB三通道的224 × 224 × 3大小的图像(也可填充为227 × 227 × 3 )。AlexNet 共包含5 个卷积层(包含3个池化)和 3 个全连接层。其中,每个卷积层都包含卷积核、偏置项、ReLU激活函数和局部响应归一化(LRN)模块。第1、2、5个卷积层后面都跟着一个最大池化层,后三个层为全连接层。最终输出层为softmax,将网络输出转化为概率值,用于预测图像的类别。

AlexNet卷积层结构概述

AlexNet是一种经典的卷积神经网络(CNN),包含五个卷积层(C1到C5)。每个层的基本流程包括:卷积操作、偏置项添加、ReLU激活函数、池化(可选)和局部响应归一化(LRN,可选)。这些组件协同工作,从输入图像中提取特征。考虑到可能听不懂卷积、池化等专业术语,我将基于AlexNet的具体描述,逐步解释卷积、池化和归一化的流程和作用。

整体卷积层流程

在AlexNet中,每个卷积层的典型流程如下(以C1层为例):

卷积操作:使用卷积核在输入特征图上滑动,计算加权和并添加偏置项。

ReLU激活:对卷积输出应用ReLU函数( f ( x ) = max ⁡ ( 0 , x ) f(x) = \max(0, x) f(x)=max(0,x)),引入非线性。

池化(可选):对激活图进行下采样(如最大池化)。

归一化(可选):应用LRN模块调整特征值。

C3、C4、C5层相互连接,中间没有池化或归一化,这减少了计算量但保持了特征传递的连续性。接下来,我将分别详细说明卷积、池化和归一化的流程和作用。

1.卷积(Convolution)的流程和作用

流程:

卷积是核心操作,用于提取输入数据的空间特征。具体步骤:

输入:特征图(例如C1层的输入是 224 × 224 × 3 224 \times 224 \times 3 224×224×3的图像)。

卷积核滤波:使用多个卷积核(如C1层的96个核,每个大小为 11 × 11 × 3 11 \times 11 \times 3 11×11×3)在输入上滑动。滑动步长(stride)控制移动距离(如C1的stride=4)。

数学公式:输出特征图的每个元素 O i , j , k O_{i,j,k} Oi,j,k计算为: O i , j , k = ∑ m ∑ n ∑ c I i ⋅ s + m , j ⋅ s + n , c ⋅ K m , n , c , k + b k O_{i,j,k} = \sum_{m} \sum_{n} \sum_{c} I_{i \cdot s + m, j \cdot s + n, c} \cdot K_{m,n,c,k} + b_k Oi,j,k=m∑n∑c∑Ii⋅s+m,j⋅s+n,c⋅Km,n,c,k+bk 其中:
I I I 是输入特征图(尺寸 H × W × C H \times W \times C H×W×C),
K K K 是卷积核(尺寸 F h × F w × C × N F_h \times F_w \times C \times N Fh×Fw×C×N, F h F_h Fh和 F w F_w Fw为核高宽, N N N为核数量),
b b b 是偏置项,
s s s 是步长(如C1的 s = 4 s=4 s=4),

输出尺寸由输入尺寸、核大小、步长和填充决定(AlexNet中通常无填充)。

输出:生成新特征图(如C1输出为 55 × 55 × 48 55 \times 55 \times 48 55×55×48的一对特征图)。

作用:

特征提取:卷积核充当滤波器,捕捉局部模式(如边缘、纹理)。例如,C1层的大核( 11 × 11 11 \times 11 11×11)提取粗粒度特征。

参数共享:减少模型参数,提高效率。

在AlexNet中的体现:C2层使用256个 5 × 5 × 48 5 \times 5 \times 48 5×5×48核,从C1输出提取更抽象特征;C3、C4、C5层使用小核( 3 × 3 3 \times 3 3×3)细化特征。

2. 池化(Pooling)的流程和作用

流程:

池化是下采样操作,通常在ReLU激活后应用。AlexNet使用最大池化(Max Pooling)。

输入:激活后的特征图(如C1的ReLU输出)。

池化操作:定义池化窗口(如C1的size= 3 × 3 3 \times 3 3×3),以步长(stride)滑动窗口,取窗口内最大值。

数学公式:输出元素 P i , j , k = max ⁡ ( 窗口区域 ) P_{i,j,k} = \max(\text{窗口区域}) Pi,j,k=max(窗口区域)。

例如,C1层池化:输入 55 × 55 × 48 55 \times 55 \times 48 55×55×48,窗口 3 × 3 3 \times 3 3×3,stride=2,输出尺寸计算为 ⌊ 55 − 3 2 + 1 ⌋ = 27 \left\lfloor \frac{55 - 3}{2} + 1 \right\rfloor = 27 ⌊255−3+1⌋=27,得到 27 × 27 × 48 27 \times 27 \times 48 27×27×48特征图。

输出:降维后的特征图。

作用:

降维和计算效率:减少特征图尺寸(如C1池化后从 55 × 55 55 \times 55 55×55到 27 × 27 27 \times 27 27×27),降低后续层计算负担。

平移不变性:对输入小位移不敏感,提升模型鲁棒性(例如物体位置变化不影响识别)。

防止过拟合:通过下采样减少参数,抑制噪声。

在AlexNet中的体现:池化只在C1和C5层使用(C5池化核size= 3 × 3 3 \times 3 3×3,stride=2),C2、C3、C4无池化以保留更多细节。

3. 归一化(Normalization)的流程和作用

在AlexNet中,归一化特指局部响应归一化(LRN),应用于池化后。

流程:

LRN对特征图的局部区域进行归一化,增强邻近特征图间的对比。

输入:池化后的特征图(如C1的 27 × 27 × 48 27 \times 27 \times 48 27×27×48)。

LRN操作:对每个位置 ( i , j , k ) (i,j,k) (i,j,k),计算其与邻近特征图的归一化值。

数学公式:输出 N i , j , k = A i , j , k ( κ + α ∑ k ′ = max ⁡ ( 0 , k − n 2 ) min ⁡ ( K − 1 , k + n 2 ) ( A i , j , k ′ ) 2 ) β N_{i,j,k} = \frac{A_{i,j,k}}{\left( \kappa + \alpha \sum_{k'=\max(0,k-\frac{n}{2})}^{\min(K-1,k+\frac{n}{2})} (A_{i,j,k'})^2 \right)^\beta} Ni,j,k=(κ+α∑k′=max(0,k−2n)min(K−1,k+2n)(Ai,j,k′)2)βAi,j,k

其中:
A A A 是输入特征图,
κ , α , β \kappa, \alpha, \beta κ,α,β 是超参数(AlexNet中通常 κ = 2 , α = 1 0 − 4 , β = 0.75 \kappa=2, \alpha=10^{-4}, \beta=0.75 κ=2,α=10−4,β=0.75),
n n n 是局部邻域大小(如AlexNet用 n = 5 n=5 n=5),

求和范围是当前特征图 k k k的邻近 n n n个图。

输出:归一化后的特征图(尺寸不变)。

作用:

增强泛化能力:通过抑制大激活值,防止某些特征主导学习,改善模型泛化。

加速训练:归一化使特征分布更稳定,有助于梯度下降收敛。

在AlexNet中的体现:LRN只用于C1和C2层(如C1池化后),C3、C4、C5层无LRN以简化结构。

总结在AlexNet中的协同作用

在AlexNet中,卷积、池化和归一化共同构建高效特征提取管道:

卷积是基础,提取层次特征(C1提取低级特征,C5提取高级特征)。

池化在关键层(C1、C5)降维,平衡计算和精度。

归一化(LRN)在早期层(C1、C2)增强鲁棒性,但后期层(C3、C4、C5)省略以提升速度。

总结一下成果:Alexnet创新性的加入了ReLu激活函数,为了防止过拟合,AlexNet 引入了数据增强和 Dropout 技术,训了迄今为止最大的卷积神经网络,6250万个参数和65万个神经元,取得了迄今为止最好的结果。

3、seq2seq和Attention的引入

当时主流的是基于统计或者SMT方式来进行翻译等序列到序列的任务,因为深度神经网络是定死了输入和输出的长度向量的,对翻译这种变长任务无法胜任。

这个时候引入了seq2seq模型,通过Encoder-Decoder模型,利用LSTM和RNU两个RNN单元实现了序列到序列的建模问题。

该模型引入了注意力机制,解决了隐藏状态的性能瓶颈,为Transformer的诞生埋下了伏笔(因为程序每个特征层和池化层要求维度必须匹配,所以前后两个RNN作用就是实现序列到固定长度向量的相互转换):通过将输入句子编码为一系列向量,为输入的每个词生成一个表示(annotation);并在解码时计算每个源词表示对生成当前目标词的注意力权重(attention weights),这些权重被用来计算一个加权的源表示上下文向量(context vector),与先前生成的目标词以及解码器的隐藏状态一起,用于预测下一个目标词。

seq2seq和普通RNN训练的差异

普通RNN训练:

输入是一个序列(如时间步数据),输出通常是一个序列(与输入长度相同)或一个单值(如分类结果)。

例如,在序列标注任务中,输入序列长度 T T T,输出序列长度也为 T T T。训练时,每个时间步 t t t计算损失: L = ∑ t = 1 T loss ( y t , y ^ t ) L = \sum_{t=1}^{T} \text{loss}(y_t, \hat{y}_t) L=t=1∑Tloss(yt,y^t) 其中 y t y_t yt是真实标签, y ^ t \hat{y}_t y^t是预测输出。

如果输出是单值(如情感分类),则损失仅基于最终时间步。使用反向传播通过时间(BPTT)计算梯度,优化网络权重。

seq2seq训练:

输入序列和输出序列长度可以不同(如 T in T_{\text{in}} Tin和 T out T_{\text{out}} Tout),常见于机器翻译(输入英文句子,输出法语句子)。

训练时,编码器处理输入序列生成一个上下文向量,解码器基于该向量生成输出序列。损失函数覆盖整个输出序列: L = ∑ t = 1 T out loss ( y t ′ , y ^ t ′ ) L = \sum_{t=1}^{T_{\text{out}}} \text{loss}(y_t', \hat{y}_t') L=t=1∑Toutloss(yt′,y^t′) 其中 y t ′ y_t' yt′是输出序列的真实标签, y ^ t ′ \hat{y}_t' y^t′是解码器的预测。

seq2seq同样使用BPTT,但涉及两个子网络:编码器和解码器。梯度需从解码器传播回编码器。

常用teacher forcing技术:训练解码器时,输入是真实目标序列的移位版本(而非自身预测),以加速收敛。例如,解码器在时间步 t t t的输入是 y t − 1 ′ y_{t-1}' yt−1′(真实值),而非 y ^ t − 1 ′ \hat{y}_{t-1}' y^t−1′(预测值)。

论文链接

4、蒸馏

随着模型利用范围变广,模型的输入序列变的越来越长,同时模型内部神经层和参数变大,导致其无论是训练还是推理的资源消耗都很大,在大多数服务器、手机等资源有限的机器上无法部署。于是蒸馏思想被提出,小模型通过从"教师模型"中学习预测的输出和处理方式,而不用学习全部的知识库。简单来说就是不需要知道原理,跟着教授做就能做出来一样的结果。

教师模型提供"软标签":也就是对于同一个问题不同答案的输出预测概率,辅助小模型更好的学习到如何预测输出。同时也利用传统训练中的"硬标签"(正解),对 "软标签" "软标签" "软标签"计算KL散度,对 "硬标签" "硬标签" "硬标签"计算交叉熵损失,保证小模型的泛化能力。

说白了就是大模型的资源消耗量太大了,而不得不进行压缩蒸馏的做法,除了以上知识蒸馏的手段还有中间层蒸馏(学习教师模型的中间层特征)和关系蒸馏(学习教师模型对不同样本之间的关系理解)。与微调不同,微调是为了构建垂直领域模型,通过新的数据集,牺牲模型泛化能力提高模型的专业性。

论文链接

5、ResNet

很显而易见的道理,从AlexNet我们知道模型层数越高,模型的效果就越好。那接下来是不是疯狂堆层数堆参数量就行了?结果并非如此。当层数来到一百层以上时,模型效果反而在降低,出现了退化问题。为了继续加深层数提高模型效果,何恺明(MIT教授)提出了ResNet(残差网络)论文链接

残差结构定义:

在残差块中,输入 x x x 通过一个非线性变换 F ( x ) F(x) F(x)(如卷积层),然后与原始输入相加,得到输出 H ( x ) H(x) H(x)。公式表示为: H ( x ) = F ( x ) + x H(x) = F(x) + x H(x)=F(x)+x 这里, F ( x ) F(x) F(x) 学习的是残差(即 H ( x ) − x H(x) - x H(x)−x),而非直接映射 H ( x ) H(x) H(x)。这简化了优化过程,因为当理想映射是恒等时, F ( x ) F(x) F(x) 只需逼近 0,而非一个复杂的函数。

捷径连接(Shortcut Connection):

这是残差块的核心组件,直接将输入 x x x 添加到变换后的输出 F ( x ) F(x) F(x) 上。捷径连接允许数据"跳过"某些层:

当输入和输出维度匹配时,使用恒等映射( x x x 直接相加)。

当维度不匹配时,使用 1 × 1 1 \times 1 1×1 卷积调整维度,确保 F ( x ) + x F(x) + x F(x)+x 可计算。 这种设计避免了信息损失,并强制网络学习残差而非完整变换。

梯度传播优化:

捷径连接创建了梯度流动的"高速公路"。在反向传播中,梯度可以通过加法操作直接回传到浅层: ∂ L ∂ x = ∂ L ∂ H ⋅ ( ∂ F ∂ x + 1 ) \frac{\partial \mathcal{L}}{\partial x} = \frac{\partial \mathcal{L}}{\partial H} \cdot \left( \frac{\partial F}{\partial x} + 1 \right) ∂x∂L=∂H∂L⋅(∂x∂F+1) 其中 ∂ L ∂ H \frac{\partial \mathcal{L}}{\partial H} ∂H∂L 是损失函数梯度。即使 ∂ F ∂ x \frac{\partial F}{\partial x} ∂x∂F 很小,梯度也不会消失(因为 + 1 +1 +1 项),这使深层网络(如超过 100 层)易于训练。

6、transformer

终于来到大家喜闻乐见的transformer了,这个问题可以回头看看我的文章我这里就只说明一下其主要成果。

将序列构造重点集中在了注意力机制,完全基于此来对序列关系进行建模(后续发展中,Encoder这个要素也被丢掉了),就是给token提供了上下文,理论上提高了捕捉规律的能力。

建模能力增强+适合并行,为后面"大力出奇迹"的scaling埋下了伏笔。

7、ML强化学习(2017)

2017年阿尔法狗打败李世石之后,虽然将AI带到了一个新的高度,但是实际上阿尔法狗仍然依赖人类学识,通过围棋专家传授围棋相关的特征知识。这个时候Karen Simonyan提出了AlphaGo Zero(论文链接):通过单纯的强化学习,实现了更少的资源达成更好的效果。

算法上,自对弈强化学习,完全从随机落子开始,不用人类棋谱。之前使用了大量棋谱学习人类的下棋风格)。

数据结构上,只有黑子白子两种状态。之前包含这个点的气等相关棋盘信息。

模型上,使用一个神经网络。之前使用了策略网络(基于深度卷积神经网)学习人类的下棋风格,局面网络(基于左右互搏生成的棋谱,为什么这里需要使用左右互搏是因为现有的数据集不够,没法判断落子胜率这一更难的问题)来计算在当前局面下每一个不同落子的胜率。

策略上,基于训练好的这个神经网,进行简单的树形搜索。之前会使用蒙特卡洛算法实时演算并且加权得出落子的位置。

启发了OpenAI开发thinking模式(test-time compute scaling):AlphaGo Zero每走一步棋都会执行1600次MCTS搜索。事实上,不做thinking的话,至今没有哪个围棋模型能击败人类。

感兴趣的可以看这个链接

8、MOE的开端

人们意识到,更大参数的模型能从更大规模的数据集中提取出更多规律,随着无监督学习的流行,大规模的数据集已经逐渐成为主流。模型参数的变大,会显著的增加训练成本,但这是一次性投入(可以被摊销),但每次推理的成本(边际成本)也会因此显著上升。

人类的大脑是分区的,每次思考并不会激活全部区域,所以大脑是"稀疏"和"专业化"的:如果能训练一个有海量参数(知识库)的神经网络,但在处理每个具体任务时,只动用其中一小部分相关的计算资源,成本就能降低,也就是moe的起源。

混合专家模型 (MoE) 的理念起源于 1991 年的论文 "Adaptive Mixture of Local Experts"。这个概念与集成学习方法相似,旨在为由多个单独网络组成的系统建立一个监管机制。在这种系统中,每个网络 (被称为"专家") 处理训练样本的不同子集,专注于输入空间的特定区域。那么,如何选择哪个专家来处理特定的输入呢?这就是门控网络发挥作用的地方,它决定了分配给每个专家的权重。在训练过程中,这些专家和门控网络都同时接受训练,以优化它们的性能和决策能力。

混合专家模型 (MoE) 的一个显著优势是它们能够在远少于稠密模型所需的计算资源下进行有效的预训练。这意味着在相同的计算预算条件下,您可以显著扩大模型或数据集的规模。特别是在预训练阶段,与稠密模型相比,混合专家模型通常能够更快地达到相同的质量水平。

论文链接

9、CoT:Prompt Engineering的奠基之作

在现如今的人工智能特别是自然语言处理(NLP)板块,prompt engineering已经成为不可或缺的一部分,鉴于其具有极高的普适性和泛用性,即使是普通人也能参与研究,造成其浪潮一波接着一波。而其中,链式思维链chain-of-thought( C O T COT COT)可以说开启了这个浪潮的序幕。

在之前这么多成果推动下,人们发现增强LLM的规模虽然会带来广泛的好处,但在算数/常识/符号推理等领域收益不足SFT虽然能够解决推理的问题,但构建大规模的推理监督数据成本高昂;传统的few-shot方法,在推理能力的任务上效果不佳,所以需要一个可以每轮都进行更改的人工提示,对模型进行引导提高其效果,于是prompt engineering应运而生。

在传统的 Prompt engineering 中,我们往往给模型一个问题,然后希望模型能够直接给出答案。然而,这种方法在处理复杂问题时,可能会导致模型难以掌握问题的全貌,从而产生错误的答案。而通过 chain-of-thought,我们可以将问题分解为多个子步骤,模型通过逐步回答这些子步骤,最终得出问题的整体答案。

这种方法的核心在于将问题分解。举个简单的例子,假设我们要求模型计算一个复杂的数学表达式。如果直接要求模型给出结果,模型可能会出错。但如果我们引导模型逐步进行加减乘除的运算,模型就可以更准确地得出最终答案。这种逐步思考的方式就是 chain-of-thought 的基本逻辑。

通过向模型展示推导的中间步骤,帮助模型进行 few-shot 学习,即可以大幅提升其在推理任务上的表现。充分的展示了模型的推理能力超出人们当时的认知,没有得到充分的利用(前提是模型规模大到足够"涌现")其实说白了就是让大模型模仿学习人类的思维逻辑和方式,通过分步求解的方法解决问题,吸引scaling的重心从预训练逐渐转向后训练,以至后来thinking模型的诞生。
论文链接

10、LoRA微调

常规的全量微调(full-tuing)学习到的参数维度跟预训练中的维度是一致的,这在模型参数量逐渐增大的当下显得捉襟见肘,所以我们就在想能不能用较少的参数去表示全部的参数量从而降低训练资源消耗程度,也就是LoRA微调。

LoRA 的核心创新点在于:它不直接修改原始模型的大型权重矩阵,而是通过引入一对小的、低秩(Low-Rank)的矩阵来学习权重更新。原始矩阵 W W W 有 d × k d \times k d×k 个参数。LoRA 添加的参数数量仅为 d × r + r × k = r ( d + k ) d \times r + r \times k = r(d + k) d×r+r×k=r(d+k)。因为 r ≪ m i n ( d , k ) r \ll min(d, k) r≪min(d,k),所以新增参数数量远小于原始参数数量。例如,对于一个 d = 768 , k = 768 d=768, k=768 d=768,k=768 的权重矩阵,原始参数为 768 × 768 = 589 , 824 768 \times 768 = 589,824 768×768=589,824。使用 r = 8 r=8 r=8 的 LoRA,新增参数仅为 8 × ( 768 + 768 ) = 12 , 288 8 \times (768 + 768) = 12,288 8×(768+768)=12,288。

1.冻结原始权重:

在微调过程中,预训练模型的原始权重 W W W 被冻结(即不被更新)。

2.引入低秩矩阵:

对于原始模型中的某个权重矩阵 W ∈ R d × k W \in \mathbb{R}^{d \times k} W∈Rd×k,LoRA 会添加两个新的、更小的矩阵:

矩阵 A ∈ R d × r A \in \mathbb{R}^{d \times r} A∈Rd×r

矩阵 B ∈ R r × k B \in \mathbb{R}^{r \times k} B∈Rr×k 其中 r r r 是一个远小于 d d d 和 k k k 的秩(Rank),例如 r = 8 r=8 r=8 或 r = 16 r=16 r=16。矩阵 A A A 通常用随机高斯分布初始化,矩阵 B B B 初始化为零。

3.增量更新:

在模型的前向传播过程中,LoRA 模块的作用是计算一个增量 Δ W \Delta W ΔW: Δ W = B A \Delta W = BA ΔW=BA 这个增量 Δ W \Delta W ΔW 会被加到原始的冻结权重 W W W 上: h = W x + Δ W x = W x + B A x h = Wx + \Delta W x = Wx + BAx h=Wx+ΔWx=Wx+BAx 这里 x x x 是该层的输入向量, h h h 是该层的输出向量。

伪代码实例

python 复制代码
import torch
import torch.nn as nn

class LoRALayer(nn.Module):
    def __init__(self, original_layer, rank):
        super().__init__()
        self.original = original_layer  # 原始线性层,其权重将被冻结
        self.original.requires_grad_(False)  # 冻结原始权重
        d, k = original_layer.weight.shape
        self.A = nn.Parameter(torch.randn(d, rank))  # 初始化为随机值
        self.B = nn.Parameter(torch.zeros(rank, k))   # 初始化为零

    def forward(self, x):
        # 原始层输出
        h_original = self.original(x)
        # LoRA 增量输出: (x A^T)^T B^T = B (A x)
        h_lora = x @ self.A.t() @ self.B.t()  # 或等效地 (x @ self.A.t()) @ self.B.t()
        # 合并输出
        return h_original + h_lora

# 使用示例:替换模型中的某个线性层
model.some_linear_layer = LoRALayer(model.some_linear_layer, rank=8)

论文链接

11、ReAct

通过放大参数量实现的性能涌现和CoT的提出两者加持下,大模型在复杂推理任务上已经展现出来非常强大的能力,但是他到目前为止只停留在"想"的阶段,容易出现幻觉且无法与外界互动,高度依赖于自身知识库而做不到实时更新。

ReAct框架的核心思想就是将推理和行动结合在一起,让大模型拥有与外部交互的能力,符合人类角度的"实践出真知"的原理,通过实操调度实时信息,使大模型减少了幻觉,在需要多步推理、实时性要求高的问题中表现突出。

模型在每一步 t t t 的输出被格式化为:

crystal 复制代码
思考 $thought_t$: [模型生成的推理、分析或计划]
行动 $action_t$: [模型选择的动作名称]
输入 $action_input_t$: [动作所需的输入参数]
观察 $observation_t$: [环境执行动作后返回的结果]

论文链接

12、未来

在2022年之后,还涌现出了一批新的思想和方法,比如

视觉-语言统一建模:如DeepSeek-VL等模型实现跨模态联合训练,其损失函数融合: L = λ 1 L t e x t + λ 2 L i m a g e \mathcal{L} = \lambda_1 \mathcal{L}{text} + \lambda_2 \mathcal{L}{image} L=λ1Ltext+λ2Limage

自回归模型可控生成:基于Classifier-Free Guidance的引导策略: ϵ θ ( x t , c ) = ϵ θ ( x t , ∅ ) + s ⋅ ( ϵ θ ( x t , c ) − ϵ θ ( x t , ∅ ) ) \epsilon_\theta(\mathbf{x}t, \mathbf{c}) = \epsilon\theta(\mathbf{x}t, \emptyset) + s \cdot (\epsilon\theta(\mathbf{x}t, \mathbf{c}) - \epsilon\theta(\mathbf{x}_t, \emptyset)) ϵθ(xt,c)=ϵθ(xt,∅)+s⋅(ϵθ(xt,c)−ϵθ(xt,∅)) 其中 s s s为引导强度系数。

人类偏好对齐算法:如DPO(Direct Preference Optimization)替代RLHF中的强化学习步骤: L D P O = − log ⁡ σ ( β log ⁡ π θ ( y w ∣ x ) π r e f ( y w ∣ x ) − β log ⁡ π θ ( y l ∣ x ) π r e f ( y l ∣ x ) ) \mathcal{L}{DPO} = -\log \sigma\left( \beta \log \frac{\pi\theta(y_w|x)}{\pi_{ref}(y_w|x)} - \beta \log \frac{\pi_\theta(y_l|x)}{\pi_{ref}(y_l|x)} \right) LDPO=−logσ(βlogπref(yw∣x)πθ(yw∣x)−βlogπref(yl∣x)πθ(yl∣x))

还有模仿人类大小脑的专家解决建模、量子神经网络等各种优秀方法,将大模型的性能和适用领域的专业性不断提高。

在模型不断演变的过程中,我们可以发现所有重大成果的推出实际上都离不开对于耳熟能详真理的重复利用,通过将模型不断向人类的结构、思维方式等靠拢,其能力也在不断提高,所以传统文化对于大模型也发挥着巨大作用,潜移默化中影响着其发展进步。

相关推荐
swanwei2 小时前
AI与电力的深度绑定:算力与能源分配的趋势分析
大数据·人工智能
逻极2 小时前
Spec-Kit 实战指南:从零到一构建“照片拖拽相册”Web App
人工智能·ai·agent·ai编程·web app
骄傲的心别枯萎2 小时前
RV1126 NO.40:OPENCV图形计算面积、弧长API讲解
人工智能·opencv·计算机视觉·音视频·rv1126
极客学术工坊4 小时前
2023年第二十届五一数学建模竞赛-A题 无人机定点投放问题-基于抛体运动的无人机定点投放问题研究
人工智能·机器学习·数学建模·启发式算法
Theodore_10225 小时前
深度学习(9)导数与计算图
人工智能·深度学习·机器学习·矩阵·线性回归
PPIO派欧云6 小时前
PPIO上新GPU实例模板,一键部署PaddleOCR-VL
人工智能
TGITCIC8 小时前
金融RAG落地之痛:不在模型,而在数据结构
人工智能·ai大模型·ai agent·ai智能体·开源大模型·金融ai·金融rag
chenzhiyuan201811 小时前
《十五五规划》下的AI边缘计算机遇:算力下沉与工业智能化
人工智能·边缘计算
whaosoft-14311 小时前
51c深度学习~合集11
人工智能