通过语言模型的自回归方法,在图像模型的预训练中应用Apple技术
来源:51CTO.COM
时间:2024-02-06 23:33:44 181浏览 收藏
“纵有疾风来,人生不言弃”,这句话送给正在学习科技周边的朋友们,也希望在阅读本文《通过语言模型的自回归方法,在图像模型的预训练中应用Apple技术》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新科技周边相关的技术文章,有好的建议欢迎大家在评论留言,非常感谢!
1、背景
在GPT等大模型出现后,语言模型这种Transformer+自回归建模的方式,也就是预测next token的预训练任务,取得了非常大的成功。那么,这种自回归建模方式能不能在视觉模型上取得比较好的效果呢?今天介绍的这篇文章,就是Apple近期发表的基于Transformer+自回归预训练的方式训练视觉模型的文章,下面给大家展开介绍一下这篇工作。
图片
论文标题:Scalable Pre-training of Large Autoregressive Image Models
下载地址:https://arxiv.org/pdf/2401.08541v1.pdf
开源代码:https://github.com/apple/ml-aim
2、模型结构
模型结构基于Transformer,并采用语言模型中的next token prediction作为优化目标。主要修改有三个方面。首先,与ViT不同,本文采用GPT的单向attention,即每个位置的元素只与前面的元素计算attention。其次,我们引入了更多的上下文信息,以提高模型的语言理解能力。最后,我们优化了模型的参数设置,以进一步提升性能。通过这些改进,我们的模型在语言任务上取得了显著的性能提升。
图片
在Transformer模型中,引入了一个新的机制,即在输入序列前面加入了多个prefix token。这些token采用了双向attention机制。这一变化的主要目的是为了增强预训练和下游应用之间的一致性。在下游任务中,类似于ViT的双向attention方法被广泛使用。通过在预训练过程中引入prefix双向attention,模型可以更好地适应各种下游任务的需求。这样的改进可以提高模型的性能和泛化能力。
图片
在模型最终输出MLP层的优化方面,原先的预训练方法通常会丢弃掉MLP层,并在下游任务中使用一个全新的MLP。这是为了避免预训练的MLP过于偏向预训练任务,导致下游任务的效果下降。然而,在本文中,作者提出了一种新的方法。他们对每个patch都使用一个独立的MLP,同时也采用了各个patch的表征与attention融合的方式来代替传统的pooling操作。这样一来,预训练的MLP head在下游任务中的可用性得到了提升。通过这种方法,作者能够更好地保留图像整体的信息,并且避免了过度依赖预训练任务的问题。这对于提高模型的泛化能力和适应性非常有帮助。
在优化目标上,文中尝试了两种方法,第一种是直接拟合patch像素,用MSE进行预测。第二种是提前对图像patch进行tokenize,转换成分类任务,用交叉熵损失。不过在文中后续的消融实验中发现,第二种方法虽然也可以让模型正常训练,但是效果并不如基于像素粒度MSE的效果更好。
3、实验结果
文中的实验部分详细分析了这种基于自回归的图像模型的效果,以及各个部分对于效果的影响。
首先,随着训练的进行,下游的图像分类任务效果越来越好了,说明这种预训练方式确实能学到良好的图像表征信息。
图片
在训练数据上,使用小数据集的训练会导致overfitting,而使用DFN-2B虽然最开始验证集loss较大,但是没有明显的过拟合问题。
图片
对于模型各个模块的设计方式,文中也进行了详细的消融实验分析。
图片
在最终的效果对比上,AIM取得了非常不错的效果,这也验证了这种自回归的预训练方式在图像上也是可用的,可能会成为后续图像大模型预训练的一种主要方式。
图片
理论要掌握,实操不能落!以上关于《通过语言模型的自回归方法,在图像模型的预训练中应用Apple技术》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
216 收藏
-
329 收藏
-
172 收藏
-
114 收藏
-
412 收藏
-
144 收藏
-
170 收藏
-
136 收藏
-
155 收藏
-
207 收藏
-
458 收藏
-
463 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 508次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习