神经网络与深度学习第五周课程总结报告
Part 1:大模型技术概述
1.1 什么是大语言模型(LLM)
大语言模型(Large Language Model, LLM)是一种基于海量文本数据训练的深度学习模型。它不仅仅能够生成自然语言文本,更重要的是能够深入理解文本的语义信息,从而完成多种自然语言处理任务,包括:
-
文本摘要:从长文档中提取关键信息
-
问答系统:根据上下文回答用户问题
-
机器翻译:在不同语言之间进行转换
-
代码生成:根据自然语言描述生成程序代码
-
对话系统:与人类进行连贯的多轮对话
典型代表:
-
GPT-3.5、GPT-4(OpenAI)
-
文心一言(百度)
-
通义千问(阿里)
1.2 大语言模型的运作原理:单字接龙
大语言模型的核心机制可以形象地称为单字接龙。具体过程如下:
-
模型接收一段任意长度的上文(例如“我”)。
-
模型根据内部学习到的概率分布,预测下一个最可能出现的字(例如“是”)。
-
将新生成的字与原来的上文组合成新的上文(“我是”),再继续预测下一个字(例如“一”)。
-
不断重复这个过程,模型就可以生成任意长度的、语义连贯的文本。
关键点:
-
模型本身没有“意图”或“理解”,它只是根据训练数据中学到的统计规律,不断进行概率预测。
-
当用户提出一个问题时,模型将问题本身也作为上文的一部分,然后继续“接龙”生成回答内容。
-
模型生成的所有内容都来源于其训练材料中的模式和知识,并不具备真正的创造性思维。
1.3 GPT系列模型的演进与规模
GPT(Generative Pre-trained Transformer)系列模型的发展体现了大模型规模扩展的典型路径:
| 版本 | 参数量 | 训练数据量 | 主要特点 |
|---|---|---|---|
| GPT-1 | 1.17亿 | 5GB | 首次提出生成式预训练+微调范式 |
| GPT-2 | 15亿 | 40GB | 展示了零样本学习能力 |
| GPT-3 | 1700亿 | 45TB | 上下文学习(ICL)能力显著 |
| GPT-4 | 万亿级别 | >100TB | 多模态、更强推理能力 |
从表中可以看出,模型参数量和训练数据量呈现指数级增长,这也是大模型性能提升的主要驱动力。
1.4 大语言模型的训练三阶段
大语言模型的训练不是一蹴而就的,而是分为三个循序渐进的阶段:
阶段一:无监督预训练
-
目标:让模型掌握语言的基本规律,包括语法、句法、词义、常识等。
-
方法:给模型海量的无标注文本(网页、书籍、论文等),模型通过预测下一个词(或掩码词)进行自学。
-
技术细节:
-
语言模型预训练:根据上文预测下一个词。
-
掩码语言模型预训练:根据上下文预测被掩码的词(如BERT的方法)。
-
-
结果:模型具备了语言生成能力,但还没有学会如何回答问题或遵循指令。
阶段二:有监督微调
-
目标:让模型学会“如何回答问题”或“如何执行任务”。
-
方法:使用人工标注的高质量问答对(问题,标准答案)对模型进行有监督训练。模型通过梯度下降算法不断调整权重,最小化损失函数(如交叉熵损失)。
-
效果:模型从“只会接龙”转变为“能够回答问题”。
阶段三:强化学习(RLHF)
-
目标:进一步优化模型的回答质量,使其更符合人类偏好(更真实、更有用、更无害)。
-
方法:
-
训练奖励模型(Reward Model, RM):输入(提示,模型生成的回答),输出一个标量分数,表示该回答的质量。训练数据来自人类对多个回答进行的好坏排序。
-
使用强化学习(如PPO算法):利用奖励模型提供的分数作为奖励信号,更新语言模型的参数,使其倾向于生成高奖励的回答。
-
-
意义:这一阶段使得ChatGPT等模型能够呈现出“对齐”人类意图的行为。
Part 2:多模态大模型技术
2.1 多模态概念
人类感知世界是依靠多种模态的:视觉(眼睛看到)、听觉(耳朵听到)、语言(口头或书面表达)、触觉等。传统的单模态模型(如仅处理文本的LLM,或仅处理图像的CNN)无法全面理解世界。多模态大模型的目标就是融合多种模态的信息,实现更全面的智能。
2.2 多模态大模型的核心挑战
随着模型规模和数据集的扩大,从头训练一个多模态模型需要巨大的计算资源。因此,一个合理的做法是:
-
利用现成的单模态基础模型:例如使用预训练的LLM提供语言理解能力,使用预训练的ViT提供视觉表征能力。
-
核心挑战:不同模态的模型是分开训练的,它们的特征空间不一致。如何将视觉特征和语言特征“对齐”,实现协同推理,是核心技术难点。
2.3 解决方案:多模态预训练与指令微调
-
多模态预训练:在大规模图像-文本对数据上进行预训练,让模型学习将图像块和单词映射到同一个语义空间。典型方法如CLIP(对比学习)。
-
多模态指令微调:在预训练之后,使用多模态指令数据(例如“请描述这张图片中的物体”)对模型进行微调,使模型的输出更符合人类的交互意图。
2.4 常用多模态大模型(截至课程时间)
| 模型名称 | 发布者 | 最新版本 | 特长 |
|---|---|---|---|
| ChatGPT | OpenAI(微软) | ChatGPT-4.5 | 综合能力强,多模态对话 |
| Gemini | Deepmind(谷歌) | Gemini 2.5 Pro | 原生多模态,性能均衡 |
| Claude | Anthropic(AWS) | Claude 4.0 | 编程能力强,安全性高 |
| LLaMA | Meta | LLaMA 4.0 | 开源,NLP任务优秀 |
| Grok | xAI(马斯克) | Grok 4 | 综合能力,实时联网 |
| DeepSeek | 深度求索 | DeepSeek R1/R2 | 综合能力强,推理效率高 |
| Qwen | 阿里 | Qwen 3 | 问答/NLP任务突出 |
2.5 多模态模型发展历程
课程中给出了发展历程图(未在文本中详述),但总体趋势可以概括为:
-
早期:独立的视觉模型和语言模型,各司其职。
-
中期:通过注意力机制将视觉特征注入语言模型(如Flamingo)。
-
近期:统一架构(如GPT-4V、Gemini)支持任意模态的输入和输出。
Part 3:视觉Transformer(ViT)—— 详细展开
本部分基于配套材料《7-3 ViT.pdf》进行详细总结。
3.1 ViT概述
3.1.1 诞生背景
2020年,Google团队在CVPR上发表了论文《An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale》。该论文首次将Transformer架构(在NLP领域取得巨大成功)直接应用于图像识别任务,而不需要借助卷积神经网络(CNN)。
3.1.2 核心思想
-
将图像视为一句话:在NLP中,句子由单词(token)组成;在ViT中,图像被分割成固定大小的“图像块”(patches),每个patch被视为一个“词”。
-
Patch大小:论文中常用的patch大小为16×16像素(对于224×224输入图像,共有(224/16)²=196个patch)。
-
线性映射:每个patch被展平为一个向量,然后通过一个线性变换映射到指定的嵌入维度(例如768维),类似于NLP中的词嵌入。
3.1.3 实验结论
-
在足够大规模的数据集(如JFT-300M)上预训练后,ViT的表现可以超越当时最先进的CNN模型(如BiT)。
-
ViT在大数据下展现出优越的扩展性:模型越大、数据越多,性能提升越明显。
3.2 嵌入层(Embedding Layer)—— 详细拆解
ViT的嵌入层负责将原始图像转换为Transformer可接受的token序列。流程如下:
3.2.1 图像切分为Patch序列
-
输入图像:x∈RH×W×Cx∈RH×W×C,其中H=高度,W=宽度,C=通道数(RGB为3)。
-
Patch大小:p×p×Cp×p×C。
-
Patch数量:N=HWp2N=p2HW。
-
每个Patch被展平为一个向量:xp∈RN×(p2⋅C)xp∈RN×(p2⋅C)。
示例:ImageNet输入图像为224×224×3,patch大小16×16×3,则每个patch维度为16×16×3=768。Patch数量为(224/16)×(224/16)=14×14=196。因此输入序列长度为196,每个token维度为768。
3.2.2 添加类别Token(Class Token)
-
在序列的最前面(位置0)添加一个可学习的类别token(class token),记作 xclassxclass。
-
这个class token在Transformer编码过程中会聚合整个图像的信息,最终用于分类。
-
添加后序列长度变为 N+1=197N+1=197。
3.2.3 线性映射(Patch Embedding)
-
每个原始patch(维度 p2×Cp2×C)通过一个线性层(全连接层)映射到嵌入维度 DD(例如768维)。
-
线性映射矩阵:E∈R(p2⋅C)×DE∈R(p2⋅C)×D。
-
经过映射后,每个patch成为长度为D的向量,整个输入矩阵为 R(N+1)×DR(N+1)×D。
3.2.4 位置编码(Positional Embedding)
-
由于Transformer本身没有序列顺序的概念,需要加入位置编码来记录patch之间的空间位置关系。
-
ViT采用一维可学习位置编码:为每个位置(0到N)学习一个维度为D的向量,然后直接加到对应的token上。
-
位置编码的效果比较:论文实验了四种编码方式——无位置编码、一维编码、二维编码、相对位置编码。结果发现,在一维编码、二维编码、相对位置编码之间,性能几乎没有显著差异(约64.0% top-1准确率),而无位置编码则大幅下降至61.38%。因此ViT最终采用了最简单的一维可学习位置编码。
-
为何一维编码能处理二维图像? 可视化表明,一维位置编码在学习后会自动表现出二维结构:位置相近的patch其位置编码的相似度较高,形成网格状模式。因此一维编码足够。
3.3 编码器(Encoder)—— 详细结构
ViT的编码器与Transformer原文中的编码器基本一致,但有一个小差异:ViT先进行层标准化(LayerNorm),然后再进入多头注意力(Pre-LN结构)。
3.3.1 编码器公式
论文中给出的计算流程如下:
z0=[xclass;x1pE;x2pE;… ;xNpE]+Epos,zℓ′=MSA(LN(zℓ−1))+zℓ−1,ℓ=1…Lzℓ=MLP(LN(zℓ′))+zℓ′,ℓ=1…Ly=LN(zL0)z0zℓ′zℓy=[xclass;x1pE;x2pE;…;xNpE]+Epos,=MSA(LN(zℓ−1))+zℓ−1,ℓ=1…L=MLP(LN(zℓ′))+zℓ′,ℓ=1…L=LN(zL0)
其中:
-
z0z0:嵌入后的输入矩阵(197×768)
-
EposEpos:位置编码矩阵
-
MSA:多头注意力(Multi-head Self-Attention)
-
LN:层标准化(Layer Normalization)
-
MLP:多层感知机,通常包含两个线性层和一个激活函数(GELU)
-
zL0zL0:第L层编码器输出的class token(序列第一个位置)
-
yy:最终分类输出
3.3.2 层标准化(Layer Normalization)
层标准化与批标准化不同,它对每个样本的特征维度进行归一化:
-
对于每个样本,计算其在特征维度上的均值 μμ 和方差 σ2σ2。
-
将样本的每个特征减去均值并除以标准差,得到归一化值。
-
引入可学习的缩放参数 γγ 和平移参数 ββ,恢复网络的表达能力。
层标准化在Transformer中广泛应用,因为它不依赖批量大小,且在序列长度变化时表现稳定。
3.3.3 多头注意力(Multi-head Self-Attention)
自注意力机制允许序列中的每个token与其他所有token交互。多头注意力则是并行运行多个注意力“头”,每个头关注不同的特征子空间。
计算步骤:
-
对于输入序列 zz,通过三个不同的线性变换得到查询矩阵 QQ、键矩阵 KK、值矩阵 VV。
-
对每个头,计算注意力分数 Attention(Q,K,V)=softmax(QKTdk)VAttention(Q,K,V)=softmax(dkQKT)V。
-
将所有头的输出拼接(或加权求和),再经过一个线性变换得到最终输出。
3.3.4 激活函数:GELU
ViT的MLP中使用的是GELU(Gaussian Error Linear Unit)激活函数,而非ReLU。GELU的公式为:
GELU(x)=x⋅Φ(x)GELU(x)=x⋅Φ(x)
其中 Φ(x)Φ(x) 是标准正态分布的累积分布函数:
Φ(x)=12[1+erf(x2)]Φ(x)=21[1+erf(2x)]
相比ReLU,GELU在负数区域有一个非零的、平滑的梯度,这有助于训练更深层的网络。在Transformer模型中,GELU通常比ReLU表现更好。
3.4 MLP头(MLP Head)
-
作用:将编码器输出的class token转换为最终的分类结果。
-
预训练阶段(在ImageNet21K上):MLP头由两层线性层和中间的tanh激活函数组成:Linear → tanh → Linear。
-
微调阶段:当迁移到下游数据集时,通常丢弃预训练的MLP头,替换为一个新的线性层(或少量层),然后进行微调。这样可以更好地适应新任务的类别数量。
3.5 模型规格
ViT提供了三种不同规模的模型配置:
| 模型 | Patch大小 | 层数(L) | 隐藏维度(D) | MLP维度 | 注意力头数 | 参数量 |
|---|---|---|---|---|---|---|
| ViT-Base | 16×16 | 12 | 768 | 3072 | 12 | 86M |
| ViT-Large | 16×16 | 24 | 1024 | 4096 | 16 | 307M |
| ViT-Huge | 14×14 | 32 | 1280 | 5120 | 16 | 632M |
其中ViT-Huge使用了14×14的patch大小,因此序列长度更长((224/14)²=256),参数量也最大。
3.6 实验结果(与BiT CNN比较)
| 数据集 | ViT-H/14 (JFT) | ViT-L/16 (JFT) | ViT-L/16 (I21k) | BiT-L (ResNet152x4) | Noisy Student |
|---|---|---|---|---|---|
| ImageNet | 88.55 | 87.76 | 85.30 | 87.54 | 88.4 |
| ImageNet ReaL | 90.72 | 90.54 | 88.62 | 90.54 | 90.55 |
| CIFAR-10 | 99.50 | 99.42 | 99.15 | 99.37 | - |
| CIFAR-100 | 94.55 | 93.90 | 93.25 | 93.51 | - |
| Oxford Pets | 97.56 | 97.32 | 94.67 | 96.62 | - |
| Oxford Flowers | 99.68 | 99.74 | 99.61 | 99.63 | - |
| VTAB (19 tasks) | 77.63 | 76.28 | 72.72 | 76.29 | - |
| TPUv3-core-days | 2.5k | 0.68k | 0.23k | 9.9k | 12.3k |
结论:
-
ViT-H/14在ImageNet上达到88.55%的top-1准确率,略低于Noisy Student(88.4%~88.5%),但在其他数据集上表现优异。
-
更重要的是,ViT的训练成本远低于CNN:ViT-H/14仅需2.5k TPUv3-core-days,而BiT-L需要9.9k,Noisy Student需要12.3k。这说明ViT在大规模预训练时具有更高的效率。
-
在小数据集上直接训练ViT效果不如CNN,但在大数据集上预训练后,ViT能够超越CNN。
3.7 微调(Fine-tuning)
3.7.1 微调的目的
预训练好的ViT模型是一个强大的特征提取器。通过微调,可以将其应用于下游任务,包括:
-
细粒度图像分类
-
目标检测
-
语义分割
-
图像检索
微调时,通常保留主体架构,只替换MLP头,并在新数据集上进行小学习率的训练。
3.7.2 输入分辨率变化的问题
在实际应用中,下游任务的图像分辨率可能与预训练时不同。例如,预训练时使用224×224的图像,微调时可能使用1024×1024的高分辨率图像。此时:
-
保持patch大小不变(如16×16),则patch数量会从196增加到4096。
-
Transformer编码器本身可以处理任意长度的序列,但是可学习的位置编码是固定长度的(预训练时只学习了197个位置编码)。
-
解决方案:对预训练的位置编码进行2D插值。具体做法是:将原来的一维位置编码视为二维网格(14×14)上的向量,通过双线性插值扩展到新的网格尺寸(例如64×64),从而得到对应新patch数量的位置编码。
这样,模型可以无缝适应任意分辨率的输入,同时保留预训练学到的空间信息。
Part 4:通用视觉语言模型(CLIP)
详细内容在配套材料7-4中,以下基于课程中提及的要点进行总结。
4.1 CLIP的核心思想
CLIP(Contrastive Language-Image Pre-training)由OpenAI提出,旨在通过图像-文本对进行预训练,使得模型能够理解图像和文本之间的语义对应关系。
-
训练数据:4亿个从互联网收集的图像-文本对。
-
训练方式:对比学习。模型同时学习一个图像编码器和一个文本编码器,使得配对的图像和文本在特征空间中距离更近,而不配对的图像-文本距离更远。
4.2 CLIP的应用
-
零样本图像分类:给定一张图像和一组类别标签(如“猫”、“狗”),CLIP可以计算图像与每个类别文本的相似度,选择最匹配的类别,无需任何训练样本。
-
图像检索:输入文本描述,返回最匹配的图像。
-
多模态推理:结合图像和文本进行问答、推理等。
4.3 与ViT的关系
-
CLIP的图像编码器可以是ViT(或CNN),文本编码器通常是Transformer。
-
ViT作为图像编码器的版本(CLIP-ViT)在多模态任务中表现优异。
Part 5:知识蒸馏与DINO
详细内容在配套材料7-5中,以下基于课程要点进行总结。
5.1 知识蒸馏(Knowledge Distillation)
知识蒸馏是一种模型压缩技术,核心思想是用一个大的、性能好的教师模型指导一个小的学生模型学习。
-
过程:教师模型对输入数据产生“软标签”(概率分布),学生模型不仅学习真实标签(硬标签),还学习模仿教师模型的软标签输出。
-
好处:学生模型可以在参数量大幅减少的情况下,保持接近教师模型的性能。
5.2 DINO(Self-Distillation with No Labels)
DINO是一种自监督学习方法,利用知识蒸馏的思想,无需任何人工标注标签。
-
机制:
-
同一张图像经过不同的数据增强(全局裁剪和局部裁剪),分别输入教师模型和学生模型。
-
教师模型的输出作为“目标”,学生模型学习预测教师模型的输出。
-
教师模型的参数通过学生模型参数的指数移动平均(EMA)进行更新,不进行梯度回传。
-
-
特点:
-
DINO训练出的ViT模型展现出令人惊讶的无监督语义分割能力:即使没有标签,模型的注意力图也能自动勾画出物体轮廓。
-
DINO为视觉自监督学习提供了一个高效且强大的框架。
-
Part 6:总结
课程核心要点回顾
-
视觉大模型源自NLP:ViT成功地将Transformer架构从文本迁移到图像,核心是使用图像块(patch)代替单词(word)。
-
ViT是视觉Transformer的基础:ViT证明了在大规模数据上,纯Transformer可以达到甚至超越CNN的性能,并且训练效率更高。
-
CLIP实现了图像-文本对齐:通过对比预训练,CLIP能够在零样本条件下进行图像分类和多模态任务,具有极强的泛化能力。
-
DINO利用知识蒸馏实现自监督学习:无需标签即可训练出优秀的视觉特征提取器,甚至涌现出语义分割能力。
-
微调是关键技术:ViT和CLIP等大模型可以通过微调适应下游任务,包括处理不同分辨率的图像(通过2D插值调整位置编码)。
未来展望
-
多模态大模型将继续融合更多模态(视频、音频、3D点云等)。
-
模型效率与轻量化(如知识蒸馏、量化、剪枝)将成为重要研究方向。
-
自监督学习将减少对人工标注的依赖,推动视觉智能的发展。
更多推荐



所有评论(0)