一、大模型大模型通常指使用海量数据训练、参数规模较大、具有较强泛化能力的深度学习模型。以大语言模型为例它能够处理自然语言任务比如文本生成、问答、翻译、摘要等。大语言模型的基本思想其实并不神秘。它通过大量文本学习语言中的统计规律和语义关系从而能够根据上下文预测下一个词或生成合理的回答。从训练过程来看大模型通常经历几个阶段第一是预训练。模型在大规模语料上学习通用知识和语言规律。这个阶段往往不依赖人工标注而是通过语言模型任务或掩码语言模型任务让模型自动从数据中学习。第二是有监督微调。通过人工构造的问题和答案让模型更适应具体任务和对话场景。第三是奖励模型和强化学习优化。奖励模型用于判断模型输出是否更符合人类偏好再通过强化学习方法进一步调整模型使其回答更有用、更符合人类需求。所以大模型并不是一开始就会“聊天”或者“推理”。它通常是先学习大量基础知识再通过微调和人类反馈逐步变得更符合实际使用需求。二、多模态大模型让模型理解不止一种信息人类理解世界并不是只靠文字。我们会看图像、听声音、理解语言还会把这些信息综合起来进行判断。因此多模态大模型的目标就是让模型同时理解视觉、语言、声音等不同形式的信息。比如一张图片和一句描述“一个人在骑自行车”它们表面上是完全不同的数据形式一个是像素一个是文字。但如果模型能够把图像和文本映射到相近的语义空间就能理解这张图片和这句话之间的对应关系。这也是视觉大模型、视觉语言模型的重要基础。从这个角度看多模态大模型的难点不只是“让模型看懂图片”更重要的是让不同模态之间建立联系。图像中的区域、物体、动作和文本中的词语、短语、句子需要对齐。只有完成这种对齐模型才能真正具备图文理解、图文检索、视觉问答、图像生成等能力。三、视觉大模型的发展主线视觉大模型的发展和 Transformer 密切相关。过去计算机视觉领域主要依赖 CNN因为卷积神经网络非常适合处理图像局部结构。卷积可以提取边缘、纹理、形状等局部特征层层堆叠后形成更高级的语义表示。但 Transformer 的出现改变了这种思路。Transformer 通过注意力机制建模序列中不同位置之间的关系而图像也可以被拆成一系列 patch相当于把图像转成一个 token 序列。这样原本用于自然语言处理的 Transformer也可以迁移到视觉任务中。由此产生了 Vision Transformer也就是 ViT。此外视觉大模型的发展还包括 CLIP、DINO、SAM、扩散模型等方向。CLIP强调图像和文本之间的对齐DINO强调自监督学习下的视觉表征SAM则面向通用分割任务。这些模型都说明一个趋势视觉模型正在从单一任务模型逐渐走向通用基础模型。四、ViT 的核心思想把图像当成句子处理ViT 最有意思的地方在于它把图像处理问题转化成了序列建模问题。在自然语言处理中一个句子可以分成很多 token比如单词或子词。Transformer 接收这些 token 的向量表示再通过自注意力机制建模它们之间的关系。ViT 借鉴了这个思想。它先把一张图像切成多个小块也就是 patch。每个 patch 类似一句话中的一个 token。然后将每个 patch 展平成向量再通过线性映射转成固定维度的 embedding。这样一张图片就变成了一个 patch token 序列。例如输入图像大小为 224×224×3如果 patch 大小为 16×16×3那么图像在宽和高方向上各被分成 14 份总共得到 14×14196 个 patch。再加上一个用于分类的 class token最终输入 Transformer Encoder 的序列长度就是 197。这一步非常关键。它说明 ViT 并不是直接把二维图像送进 Transformer而是先把图像转换成 Transformer 能处理的序列形式。五、位置编码让模型知道 patch 在哪里将图像切成 patch 之后还会产生一个问题Transformer 本身并不知道这些 patch 的空间位置。对于图像来说空间位置非常重要。同样一个局部纹理出现在图像上方和下方语义可能完全不同。比如天空通常在上方道路通常在下方人脸中眼睛、鼻子、嘴巴的位置也有明显结构。因此ViT 需要加入位置编码。位置编码的作用就是告诉模型每个 patch 在原图中处于什么位置。这和自然语言中的位置编码类似。词嵌入告诉模型“这个词是什么”位置编码告诉模型“这个词在句子中的哪里”。在 ViT 中patch embedding 告诉模型“这个图像块包含什么视觉信息”位置编码告诉模型“这个图像块来自图像的哪个位置”。只有二者结合模型才能既理解局部内容又理解空间结构。六、ViT Encoder图像 patch 之间的信息交互ViT 的主体结构是 Transformer Encoder。它和普通 Transformer 编码器非常接近主要由多头自注意力、层归一化、MLP 层和残差连接组成。自注意力机制的作用是让每个 patch 都可以和其他 patch 建立联系。比如图像中的车轮、车窗、车身可能分布在不同 patch 中但它们共同构成“汽车”这个物体。通过自注意力机制模型可以在全局范围内建模这些 patch 之间的关系。这和 CNN 有明显不同。CNN 更强调局部感受野先从局部特征开始再逐层扩大感受野ViT 一开始就可以让不同位置的 patch 直接交互因此更擅长捕捉全局关系。多头注意力则进一步增强了这种能力。不同注意力头可以关注不同类型的信息有的可能关注局部纹理有的可能关注长距离结构有的可能关注目标整体形状。多个头的结果再综合起来形成更丰富的图像表示。七、MLP Head完成图像分类经过多层 Transformer Encoder 后ViT 会得到整张图像的特征表示。前面加入的 class token 就承担了汇总全图信息的作用。最后模型会把 class token 对应的输出取出来送入 MLP Head 进行分类。也就是说ViT 的分类不是对每个 patch 单独分类而是通过 class token 汇聚整张图像的信息再判断图像属于哪个类别。在预训练和迁移到其他任务时分类头可以根据任务进行调整。预训练好的 ViT 可以看作一个强大的视觉特征提取器后续只需要在新任务上进行微调就能适配不同的数据集和任务目标。八、为什么 ViT 需要大规模数据ViT 的一个重要特点是它通常更依赖大规模数据预训练。CNN 在结构上天然包含一些图像先验比如局部连接、平移等变性、权值共享等。这些设计使得 CNN 在数据量相对有限时也能学到不错的视觉特征。而 ViT 的结构先验相对弱一些。它把图像看成 patch 序列更依赖数据本身让模型学会图像中的空间关系和视觉规律。因此在小数据集上直接训练 ViT效果不一定比 CNN 好但如果经过大规模数据预训练ViT 的性能就会显著提升甚至超过传统 CNN 模型。这也说明大模型时代的一个重要特点模型结构、数据规模和预训练策略是相互配合的。单独看模型结构并不够还要看它是否有足够的数据和训练方式支撑。九、微调把预训练模型迁移到下游任务预训练完成后ViT 可以作为通用视觉特征提取器用于不同下游任务。比如图像分类、目标检测、语义分割等。微调的思想是保留预训练模型已经学到的大部分视觉表达能力只针对新任务调整部分参数或增加新的任务头。这样既能利用已有模型的能力又能让模型适配新的数据和任务。这和人类学习有点像。我们不是每次遇到新任务都从零开始而是在已有知识基础上迁移。模型微调也是类似的过程。预训练解决的是“学到通用表示”微调解决的是“适应具体任务”。十、视觉大模型的本质是视觉表征的统一化视觉大模型并不是单纯把模型做大而是在尝试把图像、文本和其他模态统一到更通用的表示空间中。CNN 时代模型往往是为某个具体任务设计的比如分类、检测、分割。ViT 和多模态大模型出现后视觉模型逐渐走向基础模型范式先通过大规模数据学习通用表征再通过微调、提示或任务头适配具体任务。如果说 CNN 的核心是“利用图像局部结构”Transformer 的核心是“建模 token 之间的关系”那么 ViT 的核心就是“把图像转化成 token 序列再用 Transformer 建模全局视觉关系”。进一步看CLIP、DINO、SAM 等模型则说明视觉大模型正在从单一视觉识别走向更通用的视觉理解。未来的视觉模型可能不只是判断图片类别而是能够理解图像内容、回答图像问题、分割任意目标甚至根据语言指令完成复杂视觉任务。视觉大模型的发展是从卷积网络的局部特征提取走向基于 Transformer 的全局关系建模再进一步走向图像、文本等多模态信息的统一表示与对齐。
从大模型基础到视觉 Transformer
一、大模型大模型通常指使用海量数据训练、参数规模较大、具有较强泛化能力的深度学习模型。以大语言模型为例它能够处理自然语言任务比如文本生成、问答、翻译、摘要等。大语言模型的基本思想其实并不神秘。它通过大量文本学习语言中的统计规律和语义关系从而能够根据上下文预测下一个词或生成合理的回答。从训练过程来看大模型通常经历几个阶段第一是预训练。模型在大规模语料上学习通用知识和语言规律。这个阶段往往不依赖人工标注而是通过语言模型任务或掩码语言模型任务让模型自动从数据中学习。第二是有监督微调。通过人工构造的问题和答案让模型更适应具体任务和对话场景。第三是奖励模型和强化学习优化。奖励模型用于判断模型输出是否更符合人类偏好再通过强化学习方法进一步调整模型使其回答更有用、更符合人类需求。所以大模型并不是一开始就会“聊天”或者“推理”。它通常是先学习大量基础知识再通过微调和人类反馈逐步变得更符合实际使用需求。二、多模态大模型让模型理解不止一种信息人类理解世界并不是只靠文字。我们会看图像、听声音、理解语言还会把这些信息综合起来进行判断。因此多模态大模型的目标就是让模型同时理解视觉、语言、声音等不同形式的信息。比如一张图片和一句描述“一个人在骑自行车”它们表面上是完全不同的数据形式一个是像素一个是文字。但如果模型能够把图像和文本映射到相近的语义空间就能理解这张图片和这句话之间的对应关系。这也是视觉大模型、视觉语言模型的重要基础。从这个角度看多模态大模型的难点不只是“让模型看懂图片”更重要的是让不同模态之间建立联系。图像中的区域、物体、动作和文本中的词语、短语、句子需要对齐。只有完成这种对齐模型才能真正具备图文理解、图文检索、视觉问答、图像生成等能力。三、视觉大模型的发展主线视觉大模型的发展和 Transformer 密切相关。过去计算机视觉领域主要依赖 CNN因为卷积神经网络非常适合处理图像局部结构。卷积可以提取边缘、纹理、形状等局部特征层层堆叠后形成更高级的语义表示。但 Transformer 的出现改变了这种思路。Transformer 通过注意力机制建模序列中不同位置之间的关系而图像也可以被拆成一系列 patch相当于把图像转成一个 token 序列。这样原本用于自然语言处理的 Transformer也可以迁移到视觉任务中。由此产生了 Vision Transformer也就是 ViT。此外视觉大模型的发展还包括 CLIP、DINO、SAM、扩散模型等方向。CLIP强调图像和文本之间的对齐DINO强调自监督学习下的视觉表征SAM则面向通用分割任务。这些模型都说明一个趋势视觉模型正在从单一任务模型逐渐走向通用基础模型。四、ViT 的核心思想把图像当成句子处理ViT 最有意思的地方在于它把图像处理问题转化成了序列建模问题。在自然语言处理中一个句子可以分成很多 token比如单词或子词。Transformer 接收这些 token 的向量表示再通过自注意力机制建模它们之间的关系。ViT 借鉴了这个思想。它先把一张图像切成多个小块也就是 patch。每个 patch 类似一句话中的一个 token。然后将每个 patch 展平成向量再通过线性映射转成固定维度的 embedding。这样一张图片就变成了一个 patch token 序列。例如输入图像大小为 224×224×3如果 patch 大小为 16×16×3那么图像在宽和高方向上各被分成 14 份总共得到 14×14196 个 patch。再加上一个用于分类的 class token最终输入 Transformer Encoder 的序列长度就是 197。这一步非常关键。它说明 ViT 并不是直接把二维图像送进 Transformer而是先把图像转换成 Transformer 能处理的序列形式。五、位置编码让模型知道 patch 在哪里将图像切成 patch 之后还会产生一个问题Transformer 本身并不知道这些 patch 的空间位置。对于图像来说空间位置非常重要。同样一个局部纹理出现在图像上方和下方语义可能完全不同。比如天空通常在上方道路通常在下方人脸中眼睛、鼻子、嘴巴的位置也有明显结构。因此ViT 需要加入位置编码。位置编码的作用就是告诉模型每个 patch 在原图中处于什么位置。这和自然语言中的位置编码类似。词嵌入告诉模型“这个词是什么”位置编码告诉模型“这个词在句子中的哪里”。在 ViT 中patch embedding 告诉模型“这个图像块包含什么视觉信息”位置编码告诉模型“这个图像块来自图像的哪个位置”。只有二者结合模型才能既理解局部内容又理解空间结构。六、ViT Encoder图像 patch 之间的信息交互ViT 的主体结构是 Transformer Encoder。它和普通 Transformer 编码器非常接近主要由多头自注意力、层归一化、MLP 层和残差连接组成。自注意力机制的作用是让每个 patch 都可以和其他 patch 建立联系。比如图像中的车轮、车窗、车身可能分布在不同 patch 中但它们共同构成“汽车”这个物体。通过自注意力机制模型可以在全局范围内建模这些 patch 之间的关系。这和 CNN 有明显不同。CNN 更强调局部感受野先从局部特征开始再逐层扩大感受野ViT 一开始就可以让不同位置的 patch 直接交互因此更擅长捕捉全局关系。多头注意力则进一步增强了这种能力。不同注意力头可以关注不同类型的信息有的可能关注局部纹理有的可能关注长距离结构有的可能关注目标整体形状。多个头的结果再综合起来形成更丰富的图像表示。七、MLP Head完成图像分类经过多层 Transformer Encoder 后ViT 会得到整张图像的特征表示。前面加入的 class token 就承担了汇总全图信息的作用。最后模型会把 class token 对应的输出取出来送入 MLP Head 进行分类。也就是说ViT 的分类不是对每个 patch 单独分类而是通过 class token 汇聚整张图像的信息再判断图像属于哪个类别。在预训练和迁移到其他任务时分类头可以根据任务进行调整。预训练好的 ViT 可以看作一个强大的视觉特征提取器后续只需要在新任务上进行微调就能适配不同的数据集和任务目标。八、为什么 ViT 需要大规模数据ViT 的一个重要特点是它通常更依赖大规模数据预训练。CNN 在结构上天然包含一些图像先验比如局部连接、平移等变性、权值共享等。这些设计使得 CNN 在数据量相对有限时也能学到不错的视觉特征。而 ViT 的结构先验相对弱一些。它把图像看成 patch 序列更依赖数据本身让模型学会图像中的空间关系和视觉规律。因此在小数据集上直接训练 ViT效果不一定比 CNN 好但如果经过大规模数据预训练ViT 的性能就会显著提升甚至超过传统 CNN 模型。这也说明大模型时代的一个重要特点模型结构、数据规模和预训练策略是相互配合的。单独看模型结构并不够还要看它是否有足够的数据和训练方式支撑。九、微调把预训练模型迁移到下游任务预训练完成后ViT 可以作为通用视觉特征提取器用于不同下游任务。比如图像分类、目标检测、语义分割等。微调的思想是保留预训练模型已经学到的大部分视觉表达能力只针对新任务调整部分参数或增加新的任务头。这样既能利用已有模型的能力又能让模型适配新的数据和任务。这和人类学习有点像。我们不是每次遇到新任务都从零开始而是在已有知识基础上迁移。模型微调也是类似的过程。预训练解决的是“学到通用表示”微调解决的是“适应具体任务”。十、视觉大模型的本质是视觉表征的统一化视觉大模型并不是单纯把模型做大而是在尝试把图像、文本和其他模态统一到更通用的表示空间中。CNN 时代模型往往是为某个具体任务设计的比如分类、检测、分割。ViT 和多模态大模型出现后视觉模型逐渐走向基础模型范式先通过大规模数据学习通用表征再通过微调、提示或任务头适配具体任务。如果说 CNN 的核心是“利用图像局部结构”Transformer 的核心是“建模 token 之间的关系”那么 ViT 的核心就是“把图像转化成 token 序列再用 Transformer 建模全局视觉关系”。进一步看CLIP、DINO、SAM 等模型则说明视觉大模型正在从单一视觉识别走向更通用的视觉理解。未来的视觉模型可能不只是判断图片类别而是能够理解图像内容、回答图像问题、分割任意目标甚至根据语言指令完成复杂视觉任务。视觉大模型的发展是从卷积网络的局部特征提取走向基于 Transformer 的全局关系建模再进一步走向图像、文本等多模态信息的统一表示与对齐。