Part 1:大模型技术概述

1.1 什么是大语言模型(LLM)

大语言模型(Large Language Model, LLM)是一种基于海量文本数据训练的深度学习模型。它不仅仅能够生成自然语言文本,更重要的是能够深入理解文本的语义信息,从而完成多种自然语言处理任务,包括:

  • 文本摘要:从长文档中提取关键信息

  • 问答系统:根据上下文回答用户问题

  • 机器翻译:在不同语言之间进行转换

  • 代码生成:根据自然语言描述生成程序代码

  • 对话系统:与人类进行连贯的多轮对话

典型代表

  • GPT-3.5、GPT-4(OpenAI)

  • 文心一言(百度)

  • 通义千问(阿里)

1.2 大语言模型的运作原理:单字接龙

大语言模型的核心机制可以形象地称为单字接龙。具体过程如下:

  1. 模型接收一段任意长度的上文(例如“我”)。

  2. 模型根据内部学习到的概率分布,预测下一个最可能出现的字(例如“是”)。

  3. 将新生成的字与原来的上文组合成新的上文(“我是”),再继续预测下一个字(例如“一”)。

  4. 不断重复这个过程,模型就可以生成任意长度的、语义连贯的文本。

关键点

  • 模型本身没有“意图”或“理解”,它只是根据训练数据中学到的统计规律,不断进行概率预测。

  • 当用户提出一个问题时,模型将问题本身也作为上文的一部分,然后继续“接龙”生成回答内容。

  • 模型生成的所有内容都来源于其训练材料中的模式和知识,并不具备真正的创造性思维。

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)
  • 目标:进一步优化模型的回答质量,使其更符合人类偏好(更真实、更有用、更无害)。

  • 方法

    1. 训练奖励模型(Reward Model, RM):输入(提示,模型生成的回答),输出一个标量分数,表示该回答的质量。训练数据来自人类对多个回答进行的好坏排序。

    2. 使用强化学习(如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)z0​zℓ′​zℓ​y​=[xclass​;x1p​E;x2p​E;…;xNp​E]+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)

层标准化与批标准化不同,它对每个样本的特征维度进行归一化:

  1. 对于每个样本,计算其在特征维度上的均值 μμ 和方差 σ2σ2。

  2. 将样本的每个特征减去均值并除以标准差,得到归一化值。

  3. 引入可学习的缩放参数 γγ 和平移参数 ββ,恢复网络的表达能力。

层标准化在Transformer中广泛应用,因为它不依赖批量大小,且在序列长度变化时表现稳定。

3.3.3 多头注意力(Multi-head Self-Attention)

自注意力机制允许序列中的每个token与其他所有token交互。多头注意力则是并行运行多个注意力“头”,每个头关注不同的特征子空间。

计算步骤:

  1. 对于输入序列 zz,通过三个不同的线性变换得到查询矩阵 QQ、键矩阵 KK、值矩阵 VV。

  2. 对每个头,计算注意力分数 Attention(Q,K,V)=softmax(QKTdk)VAttention(Q,K,V)=softmax(dk​​QKT​)V。

  3. 将所有头的输出拼接(或加权求和),再经过一个线性变换得到最终输出。

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(2​x​)]

相比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:总结

课程核心要点回顾

  1. 视觉大模型源自NLP:ViT成功地将Transformer架构从文本迁移到图像,核心是使用图像块(patch)代替单词(word)。

  2. ViT是视觉Transformer的基础:ViT证明了在大规模数据上,纯Transformer可以达到甚至超越CNN的性能,并且训练效率更高。

  3. CLIP实现了图像-文本对齐:通过对比预训练,CLIP能够在零样本条件下进行图像分类和多模态任务,具有极强的泛化能力。

  4. DINO利用知识蒸馏实现自监督学习:无需标签即可训练出优秀的视觉特征提取器,甚至涌现出语义分割能力。

  5. 微调是关键技术:ViT和CLIP等大模型可以通过微调适应下游任务,包括处理不同分辨率的图像(通过2D插值调整位置编码)。

未来展望

  • 多模态大模型将继续融合更多模态(视频、音频、3D点云等)。

  • 模型效率与轻量化(如知识蒸馏、量化、剪枝)将成为重要研究方向。

  • 自监督学习将减少对人工标注的依赖,推动视觉智能的发展。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐