网易首页 > 网易号 > 正文 申请入驻

带有视觉能力的llama3:在图像和视频数据上的训练(上)

0
分享至

大模型项目开发线上营第二》文末开秒!!!

接上文>>>

据llama3.1 paper第54页所示,他们还进行了一系列实验,通过一个由两个主要阶段组成的组合方法,将视觉识别能力融入Llama 3(不过,论文中说这个多模态的llama3 还在开发中,后面才会发布,所以本文更多侧重对其架构、原理的讲解)

首先,通过在大量图像-文本对上引入和训练一组交叉注意力层,将预训练的图像编码器(Xu等,2023)和预训练的语言模型组合起来(Alayrac等,2022)

这导致了下图所示的模型(涉及五个阶段的训练:1 语言模型预训练,2 多模态编码器预训练,3 视觉适配器训练,4 模型微调,5 语音适配器训练)

其次,引入了时间聚合层和额外的视频交叉注意力层,这些层在大量的视频-文本对上运行,以学习模型识别和处理视频中的时间信息

基础模型开发的组合方法有几个优点:

  1. 它使我们能够并行开发视觉和语言建模能力

  2. 它避免了视觉和语言数据联合预训练的复杂性,这些复杂性源于视觉数据的tokenization、来自不同模态的token的背景困惑度差异以及模态之间的争用

  3. 它保证了文本任务的模型性能不受视觉识别能力引入的影响

  4. 交叉注意力架构确保我们不必在推理过程中将全分辨率图像通过越来越多的LLM骨干(特别是每个transformer层中的前馈网络),从而提高了效率。

图像与视频数据

1.1 图像训练数据

图像编码器和适配器是在图像-文本对上训练的,通过一个复杂的数据处理管道构建这个数据集,该管道包括四个主要阶段:

  1. 质量过滤

    过程中,实施了质量过滤器,通过启发式方法(如由Radford et al., 2021生成的低对齐分数)去除非英语字幕和低质量字幕,比如移除所有低于某个CLIP评分的图像-文本对

  2. 感知去重

    对大规模训练数据集进行去重有利于模型性能,因为可以减少在冗余数据上花费的训练计算量(Esser等,2024;Lee等,2021;Abbas等,2023) 和记忆化(Carlini等,2023;Somepalli等,2023)

    因此,出于效率和隐私原因对训练数据进行去重。为此,使用内部版本的最先进的SSCD复制检测模型(Pizzi等,2022)来大规模去重图像

    对于所有图像,首先使用SSCD模型计算一个512维的表示,使用这些嵌入来对数据集中所有图像执行最近邻(NN)搜索,使用余弦相似度度量。将高于某个相似度阈值的示例定义为 重复项

    接着,使用连通分量算法对这些重复项进行分组,并且每个连通分量仅保留一个图像-文本对。 过程中,通过以下方式提高去重管道的效率:(1)使用k-means聚类对数据进行预聚类,(2)使用FAISS(Johnson等,2019)进行NN搜索和聚类

  3. 重采样

    我们通过类似于Xu等人(2023);Mahajan等人(2018);Mikolov等人(2013)的重采样方 法确保图像-文本对的多样性

    首先,通过解析高质量的文本来源构建一个n-gram词汇表

    接下来,计算数据集中每个词汇n-gram的频率

    然后我们按如下方式重采样数据:如果标题中的任何n-gram在词汇表中出现的次数少于 T次,我们保留相应的图像-文本对

    否则,以概率独立采样标题中的每个n-gram :,其中表示n-gram 的频率(Otherwise, we independently sample each of the n-grams ni in the caption with probability √T /fi where fi indicates the frequency of n-gram ni)

    如果任何n-gram被采样,保留图像-文本对(we keep the image-text pair if any of the n-grams was sampled) 这种重采样有助于提高在低频类别和细粒度识别任务中的表现

  4. 光学字符识别

    通过提取图像中写入的文本并将其与标题连接来进一步改进我们的图像-文本数据。书写文本是使用专有的光学字符识别(OCR)管道提取的

    他们观察到,将OCR数据添加到训练数据中极大地改善了需要OCR能力的任务,例如文档理解

1.2 视频数据

对于视频预训练,使用了一个大型的视频-文本对数据集,且通过多阶段过程来策划我们的数据集

  1. 使用基于规则的启发式方法过滤和清理相关文本,例如确保最小长度和修正大小写

  2. 然后,运行语言识别模型以过滤掉非英语文本 运行OCR检测模型以过滤掉带有过多叠加文本的视频

  3. 为了确保视频-文本对之间的合理对齐,使用CLIP(Radford等,2021,至于CLIP的详细介绍,详见此文: AI绘画原理解析:从CLIP、BLIP到DALLE、DALLE 2、DALLE 3、Stable Diffusion 的第一部分)风格的图像-文本和视频-文本对比模型

    具体而言,我们首先使用视频中的单帧计算图像-文本相似度,并过滤掉低相似度对,然后随后过滤掉视频-文本对齐度低的对

    其中一些数据包含静态或低运动视频;使用基于运动评分的过滤(Girdhar等,2023)来过滤掉这些数据。我们不对视频的视觉质量应用任何过滤,例如美学评分或分辨率过滤。

数据集包含平均时长为21秒的视频,中位时长为16秒,超过 99%的视频时长不到一分钟。空间分辨率在320p和4K视频之间显著变化,其中超过 70%的视频短边大于720像素。视频具有不同的纵横比,几乎所有视频的纵横比都在 1:2和 2:1之间,中位数为 1:1

模型架构与其预训练

视觉识别模型由三个主要组件组成:(1)图像编码器, (2)图像适配器,和 (3)视频适配器

2.1 图像编码器

图像编码器是一个标准的视觉变换器(ViT;Dosovitskiy等人2020),训练用于对齐图像和文本(Xu等人,2023),具体而言

1. 使用了ViT-H/14变体的图像编码器,它有630M——6.3亿参数,在25亿图像-文本对上训练了五个epoch

2. 图像编码器在分辨率为 224 × 224的图像上进行了预训练

图像被分割成 16 × 16个块,每个块的大小为14x14(即The image encoder is pre-trained on images with resolution 224 × 224; images were split up into 16 × 16 patches of equal size(i.e., a patch size of 14x14 pixels),注意,此处和ViT原始论文中的设置不一样,因为此处的块大小为14× 14像素——a patch size of 14x14 pixels,相当于横着有16个像素块,竖着也有16个像素块)


顺带多说一下,原始的ViT论文中,是 “以ViT_base_patch16为例,一张224 x 224的图片先分割成 16 x 16 的 patch ,很显然会因此而存在 个 patch(这个patch数如果泛化到一般情况就是图片长宽除以patch的长宽,即且图片的长宽由原来的224 x 224 变成:14 x 14(因为224/16 = 14)

你可能还没意识到这个操作的价值,这相当于把图片需要处理的像素单元从5万多直接降到了14x14 = 196个像素块,如果一个像素块当做一个token,那针对196个像素块/token去做self-attention不就轻松多了么(顺带提一句,其实在ViT之前,已经有人做了类似的工作,比如ICLR 2020的一篇paper便是针对CIFAR-10中的图片抽 的像素块)”

至于ViT的细节,详见此文《 图像生成发展起源:从VAE、VQ-VAE、扩散模型DDPM、DETR到ViT、Swin transformer 》的第4部分

3. 正如之前的工作如ViP-Llava (Cai等,2024年)所示,我们观察到通过对比文本对齐目标训练的图像编码器无法保留细粒度的定位信息

为了解决这个问题,采用了多层特征提取,除了提供最终层特征外,还提供了第4层、第8层、第16层、第24层和第31层的特征

此外,在交叉注意力层预训练之前进一步插入了8个门控自注意力层(总共40 transformer block),以学习对齐特定的特征

因此,图像编码器最终总共有 850M参数和附加层 通过多层特征,图像编码器为每个结果的16× 16 = 256个patch生成一个7680维的表示(计算过程是:224✖️224/14✖️14 = 256) 且发现,在后续训练阶段不冻结图像编码器的参数可以提高性能,特别是在文本识别等领域

2.2 图像适配器:在图像token与语言token之间插入交叉注意力

在图像编码器生成的视觉token表示和语言模型生成的语言token表示之间引入了交叉注意层(Alayrac等,2022,即We introduce cross-attention layers between the visual token representations produced by the image encoder and the token representations produced by the language model)

而交叉注意层在核心语言模型中的每第4个自注意层之后应用(The cross-attention layers are applied after every fourth self-attention layer in the core language)。与语言模型本身一样,交叉注意层使用广义查询注意(GQA)以提高效率

交叉注意层为模型引入了大量额外的可训练参数:对于Llama 3 405B,交叉注意层有 ≈100B参数,且在两个阶段对图像适配器进行预训练:

  1. 初始预训练

    在上述描述的约6B 图像-文本对的数据集上对图像适配器进行预训练 出于计算效率的原因,将所有图像调整为最多4个 336× 336 像素的图块,过程中,排列图块以支持不同的纵横比,例如,672× 672, 672× 336, 和1344× 336

    且使用 16,384 的全局批量大小和余弦学习率调度,初始学习率为 10 × 10−4,权重衰减为 0.01。其中,初始学习率是基于小规模实验确定的。然而,这些发现并没有很好地推广到非常长的训练计划中,并且在损失值变得停滞时,在训练过程中多次降低了学习率

  2. 退火

    继续在上述描述的退火数据集中的约500M 图像上训练图像适配器 相当于在基础预训练之后,我们进一步提高图像分辨率,并在退火数据集上继续训练相同的权重——以提高在需要高分辨率图像的任务上的性能,例如信息图理解

    最终,优化器通过热身重新初始化到学习率 2 × 10−5,并再次遵循余弦调度

2.3 视频适配器:从已有的图像预训练和退火权重开始

模型最多可以输入64帧(从完整视频中均匀采样),每帧都由图像编码器处理。通过两个组件对视频中的时间结构进行建模——添加视频聚合器和交叉注意层:

  1. 编码的视频帧由时间聚合器聚合,32个连续帧合并为一个

  2. 在每第4个图像交叉注意层之前添加额外的视频交叉注意层(additional video cross attention layers are added before every fourth image cross attention layer)

    时间聚合器实现为感知器重采样器(Jaegle et al., 2021; Alayrac et al., 2022),且在预训练时每个视频使用16帧(聚合为1帧),但在监督微调期间将输入帧数增加到64帧。对于Llama 3 7B和70B,视频聚合器和交叉注意层分别有0.6B和4.6B参数

最后,值得一提的是,在将视觉识别组件添加到Llama 3之后,模型包含自注意层、交叉注意层——包含图像交叉注意层和视频交叉注意层,和一个ViT图像编码器。为了训练较小的8B和70B参数模型的适配器,发现数据和张量并行的组合是最有效的

在这些规模下,模型或流水线并行并不会提高效率,因为模型参数的聚集会主导计算。然而,在训练405B参数模型的适配器时,确实还使用了流水线并行(除了数据和张量并行),不过在405B这种规模下训练除了上文「1.3节 模型并行」中概述的挑战外,还引入了三个新的挑战:模型异质性、数据异质性和数值不稳定性

  1. 模型计算是异质性的,因为在某些token上执行的计算比其他token更多。特别是,图像token由图像编码器和交叉注意层处理,而文本token仅由语言主干处理

    这种异质性导致了流水线并行调度中的瓶颈,最终通过确保每个流水线阶段包含五层来解决这个问题:即语言主干中的四个自注意力层和一个交叉注意力层(回想一下,我们在每四个自注意力层之后引入一个交叉注意力层)

    此外,在所有流水线阶段复制图像编码器。因为在配对的图像-文本数据上进行训练,这使我们能够在计算的图像和文本部分之间进行负载平衡

  2. 数据异质性

    数据是异质的,因为平均而言,图像比关联的文本有更多的token:一个图像有2,308个token,而关联的文本平均只有192个token 因此,交叉注意力层的计算比自注意力层的计算需要更多的时间和内存

    最终通过在图像编码器中引入序列并行化来解决这个问题(本博客内后续会详细介绍什么是序列并行),以便每个GPU处理大致相同数量的token。由于平均文本大小相对较短,还使用了大得多的微批量大小(8而不是1)

  3. 数值不稳定性

    在将图像编码器添加到模型后,发现使用 bf16 进行梯度累积会导致数值不稳定性

    对于此点,最可能的解释是图像token通过所有交叉注意力层引入语言主干。这意味着图像标记表示中的数值偏差对整体计算有着巨大的影响,因为错误是累积的

    最终通过在 FP32 中执行梯度累积来解决这个问题。

    限于篇幅先更到此,下篇继续

更多细节见七月在线「大模型项目开发线上营


「大模型项目开发线上营 第二期」不止新学员青睐,大模型第一期学员大多数都续报了第二期。商用项目果然受用

  • 校长July寄语

为何讲大模型商用项目的课程很罕见

一方面,即便在大厂,虽有技术但没法讲其内部项目,而专门搞应用开发的小厂,很难将其赖之生存的项目拿出来讲

二方面,一般职业讲师 背后没有项目团队 只能搞个demo,至于一般教育机构也很难再搞个项目团队,成本大 招人难 做出成果更难

而我司教育团队外,我司去年专门成立了大模型项目开发团队(由我带全职和在大厂的兼职组成),且从「教育为主」,逐步转型到了「科技为主 教育为辅」

现在报名加送:
① 一年GPU,封装了诸如ChatGLM3等各大主流大模型
② 一个VIP年卡
「200多个AI小课、5个大模型小课(即ChatGPT原理、类ChatGPT微调实战、SD及其二次开发、垂直大模型实战、大模型数据处理实战)」

多送1个大模型小课:LLM与langchain/知识图谱/数据库的实战

↓↓↓扫码了解详情/抢购↓↓↓

课程咨询可找苏苏老师VX:julyedukefu008或七月在线其他老师





特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
去年12万跌到6万的杭州顶级学区房,近日4万多流拍!同小区今年已2次流拍

去年12万跌到6万的杭州顶级学区房,近日4万多流拍!同小区今年已2次流拍

不掉线电波
2024-09-25 12:05:10
一枚东风快递搅动全球,2国理解1国支持3国反对,五常或重排名?

一枚东风快递搅动全球,2国理解1国支持3国反对,五常或重排名?

说天说地说实事
2024-09-28 07:08:20
2024-09-28 21:16:49
七月在线
七月在线
AI与智能网联汽车职教平台
797文章数 37关注度
往期回顾 全部

科技要闻

豆包“王炸”,字节版Sora来了,有多厉害

头条要闻

媒体:中国经济经历关键一周 宏观经济政策转向信号传出

头条要闻

媒体:中国经济经历关键一周 宏观经济政策转向信号传出

体育要闻

那个偶像是德里克-罗斯的男孩

娱乐要闻

噩耗!英国皇家影星玛吉史密斯离世

财经要闻

沪市部分股票深夜成交?回应来了!

汽车要闻

售11.99-14.69万元 深蓝2025款SL03正式上市

态度原创

旅游
艺术
教育
手机
军事航空

旅游要闻

国庆假期长线游受青睐 应季游特色游成亮点

艺术要闻

故宫珍藏的墨迹《十七帖》,比拓本更精良,这才是地道的魏晋写法

教育要闻

这所大学2025年保研1416人,位居211大学榜首

手机要闻

骁龙8 Gen4/天玑9400旗舰涨价板上钉钉了:有厂商拟定价4299元

军事要闻

黎巴嫩真主党声明证实领导人已被杀害

无障碍浏览 进入关怀版