草庐IT

中山大学HCP实验室新突破:用因果范式再升级多模态大模型

机器之心 2023-03-28 原文
中山大学人机物智能融合实验室(HCP)在 AIGC 及多模态大模型方面成果丰硕,在近期的 AAAI 2023、CVPR 2023 先后入选了十余篇,位列全球研究机构的第一梯队。

​其中一个工作实现了用因果模型来显著提升多模态大模型在调优中的可控及泛化性——《Masked Images Are Counterfactual Samples for Robust Fine-tuning》。

链接:https://arxiv.org/abs/2303.03052

使用预训练的大规模模型在下游任务上进行微调是当前流行的深度学习范式。尤其是近期预训练语言大模型 ChatGPT 的出色表现,使得这套技术范式得到了广泛的认可。经过海量数据的预训练,这些预训练大模型能够适应现实环境中多变的数据分布,因而在通用场景中表现出较强的鲁棒性。

然而,当用下游场景数据对预训练大模型进行微调以适应特定应用任务时,绝大多数情况下这些数据具有单一性。以这些数据对预训练大模型进行微调训练,往往会降低模型鲁棒性,使基于预训练大模型的应用变得困难。特别是在视觉模型方面,由于图像的多样性远远超过语言,下游微调训练导致视觉相关的预训练大模型鲁棒性下降的问题尤其突出。

之前的研究方法通常通过模型集成等方式在模型参数层面隐式地保持微调后预训练模型的鲁棒性。但是,这些工作并没有分析微调导致模型分布外性能下降的本质原因,也没有明确解决上述大模型微调后鲁棒性下降的问题。

该工作以跨模态大模型为基础,从因果关系的角度分析了预训练大模型鲁棒性损失的本质原因,并据此提出了一种能够显著提升模型鲁棒性的微调训练方法。该方法使得模型在适应下游任务的同时,仍能保持较强的鲁棒性,更好地满足实际应用需求。

以 OpenAI 在 2021 年发布的跨模态预训练大模型 CLIP(Contrastive Language–Image Pre-training)为例:CLIP 是一种基于对比的图片 - 文本联合学习的跨模态预训练大模型,是 Stable Diffusion 等生成式模型的基础。该模型通过包含约 4 亿个图像 - 文本对的海量多源数据进行训练,在一定程度上学习到了一些对于分布变化鲁棒的因果关系。

然而,当用特征单一的下游数据对 CLIP 进行微调时,容易破坏模型学习到的这些因果知识,因为训练图像的非语义表征和语义表征是高度纠缠的。例如,将 CLIP 模型迁移应用到 “农场” 这一下游场景时,许多训练图像中的 “奶牛” 都在草地上。此时,微调训练可能使模型学习到依赖草地这一非 “奶牛” 的语义表征来预测图像的语义。然而,这种相关性并不一定是真实的,例如 “奶牛” 也可能出现在公路上。因此,模型在进行微调训练后,其鲁棒性会降低,应用时的输出结果可能变得极不稳定,缺乏可控性。

基于团队多年的大模型搭建和训练经验,该工作从因果关系的角度重新审视了预训练模型微调导致鲁棒性下降的问题。基于因果建模与分析,该工作提出了一种基于图像掩码构造反事实样本,并通过掩码图像学习提高模型鲁棒性的微调训练方法。

具体而言,为了打破下游训练图像中的假性相关,该工作提出了一种基于类激活图(CAM)的方法掩盖并替换图像特定区域的内容,用以操纵图像的非语义表征或语义表征,产生反事实样本。微调模型可以通过蒸馏的方式学习模仿预训练模型对这些反事实样本的表征,从而更好地解耦语义因素与非语义因素的影响,提高对下游领域中分布偏移的适应能力。


实验表明,该方法能够显著提高预训练模型在下游任务中的性能,同时在提升鲁棒性方面相较于现有大模型微调训练方法有显著优势。

该工作的重要意义是在一定程度上打开了预训练大模型从深度学习范式中继承的 “黑盒子”,是解决大模型的 “可解释性” 和 “可控性” 问题的重要探索,让我们离切实可享受的由预训练大模型带领的生产力提升越来越近。

中山大学 HCP 团队自 Transformer 机制问世起,从事大模型技术范式研究多年,致力于提升大模型的训练效率和引入因果模型来解决大模型的 “可控性” 问题。团队多年来自主研究开发了多个视觉、语言、语音和跨模态的预训练大模型,与华为诺亚方舟实验室联合开发的 “悟空” 跨模态大模型 (链接:https://arxiv.org/abs/2202.06767) 即是其中的典型案例。

团队简介

中山大学人机物智能融合实验室 (HCP Lab) 在多模态认知计算、机器人与嵌入式系统、元宇宙与数字人、可控内容生成等领域开展体系化研究,并深入应用场景打造产品原型,输出大量原创技术及孵化创业团队。实验室由 IAPR Fellow 林倞教授于 2010 年创办,获得中国图像图形学会科技一等奖、吴文俊自然科学奖、省级自然科学一等奖等荣誉;培养了梁小丹、王可泽等国家级青年人才。

有关中山大学HCP实验室新突破:用因果范式再升级多模态大模型的更多相关文章

  1. ruby - 通过 rvm 升级 ruby​​gems 的问题 - 2

    尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub

  2. ruby-on-rails - 项目升级后 Pow 不会更改 ruby​​ 版本 - 2

    我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby​​版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby​​版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘

  3. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  4. ruby - 在不使用 RVM 的情况下在 Mac 上卸载和升级 Ruby - 2

    我最近决定从我的系统中卸载RVM。在thispage提出的一些论点说服我:实际上,我的决定是,我根本不想担心Ruby的多个版本。我只想使用1.9.2-p290版本而不用担心其他任何事情。但是,当我在我的Mac上运行ruby--version时,它告诉我我的版本是1.8.7。我四处寻找如何简单地从我的Mac上卸载这个Ruby,但奇怪的是我没有找到任何东西。似乎唯一想卸载Ruby的人运行linux,而使用Mac的每个人都推荐RVM。如何从我的Mac上卸载Ruby1.8.7?我想升级到1.9.2-p290版本,并且我希望我的系统上只有一个版本。 最佳答案

  5. ruby - 我正在学习编程并选择了 Ruby。我应该升级到 Ruby 1.9 吗? - 2

    我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or

  6. ruby-on-rails - 从 Rails 2.3 升级到 Rails 4.0 - 2

    我们有一个目前在Rails2.3.12版和Ruby1.8.7版上运行的应用程序。我们想将我们的应用程序更新到Rails4.0和Ruby2.1.0。我们有大约200个模型和150个Controller。我想知道升级过程需要多大的努力。您还可以提供升级可以遵循的步骤。我们应该先升级Ruby然后再升级Rails还是相反? 最佳答案 您想要实现的目标将是史诗般的努力。我无法为您提供分步说明,因为不可能在一个答案中涵盖所有情况。我建议不要同时升级Ruby和Rails,而是分步升级。升级本身的复杂性是巨大的,但只要您的应用程序具有合理的测试覆盖

  7. ruby-on-rails - Rails 4.1.0.beta1 升级失败 - 2

    我最近尝试安装rails4.1.0.beta1,但是railss导致以下错误。[RVM]/gems/ruby-2.0.0-p247/gems/activesupport-4.1.0.beta1/lib/active_support/core_ext/module/aliasing.rb:32:in`alias_method':undefinedmethod`graft'forclass`ActiveRecord::Associations::JoinDependency'(NameError)[RVM]/gems/ruby-2.0.0-p247/gems/activesupport-4

  8. ruby-on-rails - ActionCable 无需升级到 Rails 5 beta - 2

    我目前有一个运行在4.2.5上的Rails应用程序,我想使用ActionCable而不必将整个应用程序升级到Rails5.0.0.beta3版本并冒破坏所有其他gem的风险。按照我在互联网上看到的指南,我已经尝试过gem'actioncable',github:'rails/actioncable'这不起作用,因为ActionCable存储库已合并到Rails存储库中。我什至试过gem'actioncable',github:'rails/rails'但这似乎不适用于ActionCable合并到Rails时发生的版本重新编号。(唯一低于5.0.0.beta*的版本是0.0.0,这似乎是

  9. ruby-on-rails - Rails 5 升级 :/actionpack-5. 0.0/lib/action_controller/test_case.rb:49:in `initialize':参数数量错误(0 代表 2)(ArgumentError) - 2

    我最近正在进行Rails5升级,当我尝试启动Rails控制台时遇到了这个错误:/actionpack-5.0.0/lib/action_controller/test_case.rb:49:ininitialize':wrongnumberofarguments(0for2)(ArgumentError)当前bundleupdaterails已经完成了gem依赖项的解决,足以更新到5.0.0,rspec正在运行(尽管我正在修复很多中断)。我也可以运行railss没有错误。这里是代码中断行:https://github.com/rails/rails/blob/master/action

  10. ruby-on-rails - 无法加载 lib 目录模块 - 未初始化的常量 - rails 2 到 rails 3 升级 - 2

    我目前正在将Railsv2中的应用程序迁移到v3在我的lib/我在子目录中有一些模块,例如,我有lib/search/host_search.rb有一个moduleHostSearchdefdo_search(args)#...endend然后我需要在名为Discovery::HostController的Controller中使用它defsearch_resultsoutput=HostSearch.do_search(:search_string=>@search_string,:page=>params[:page],:user=>@current_user)#...end但是我

随机推荐