Redian新闻
>
模块化重构LLaVA,替换组件只需添加1-2个文件,开源TinyLLaVA Factory来了

模块化重构LLaVA,替换组件只需添加1-2个文件,开源TinyLLaVA Factory来了

公众号新闻

AIxiv专栏是机器之心发布学术、技术内容的栏目。过去数年,机器之心AIxiv专栏接收报道了2000多篇内容,覆盖全球各大高校与企业的顶级实验室,有效促进了学术交流与传播。如果您有优秀的工作想要分享,欢迎投稿或者联系报道。投稿邮箱:[email protected][email protected]

TinyLLaVA 项目由清华大学电子系多媒体信号与智能信息处理实验室 (MSIIP) 吴及教授团队和北京航空航天大学人工智能学院黄雷老师团队联袂打造。清华大学 MSIIP 实验室长期致力于智慧医疗、自然语言处理与知识发现、多模态等研究领域。北航团队长期致力于深度学习、多模态、计算机视觉等研究领域。

近日,清华和北航联合推出了 TinyLLaVA Factory, 一款支持定制、训练、评估多模态大模型的代码库,代码和模型全部开源。该代码库以软件工程的工厂模式作为设计理念,模块化地重构了 LLaVA 代码库,注重代码的可读性、功能的扩展性、和实验效果的可复现性。方便研究者和实践家们更容易地探索多模态大模型的训练和设计空间。


  • Github 项目:https://github.com/TinyLLaVA/TinyLLaVA_Factory
  • 论文地址:https://arxiv.org/abs/2405.11788
  • Hugging Face 模型地址:https://huggingface.co/tinyllava/TinyLLaVA-Phi-2-SigLIP-3.1B or https://huggingface.co/bczhou/TinyLLaVA-3.1B-SigLIP
  • 机器之心 SOTA 模型地址:https://sota.jiqizhixin.com/project/tinyllava

LLaVA 作为多模态社区的优质开源项目,备受研究者和开发者的青睐;新入坑多模态大模型的初学者们也习惯以 LLaVA 项目作为起点,学习和训练多模态大模型。但是 LLaVA 项目的代码较为晦涩难懂,一旦不慎更改错误,就可能会影响训练效果,对于新手来说,往往不敢轻易修改其中的细节,给理解和探索多模态大模型的本质细节造成了一定的困难。

近日,清华和北航联合推出 TinyLLaVA Factory,将本来的 LLaVA 代码进行模块化重构,专注于简洁的代码实现、新功能的可扩展性、以及训练结果的可复现性,让你以最小的代码量,定制并训练属于自己的多模态大模型,同时减少代码错误率!相同的模型配置、训练数据和训练策略条件下,使用 TinyLLaVA Factory 可训练出比用 LLaVA 代码性能略胜一筹的模型。为了让用户更容易地读懂代码和使用模型,TinyLLaVA Factory 项目还配备了代码文档和 Demo 网站。其总体架构图如下。


数据预处理部分,TinyLLaVA Factory 摒弃了 LLaVA 代码中烧脑的图片处理和 Prompt 处理过程,提供了标准的、可扩展的图片和文本预处理过程,清晰明了。其中,图片预处理可自定义 Processor,也可使用一些官方视觉编码器的 Processor,如 CLIP ViT 和 SigCLIP ViT 自带的 Image Processor。对于文本预处理,定义了基类 Template,提供了基本的、共用的函数,如添加 System Message (Prompt)、Tokenize、和生成标签 Ground Truth 的函数,用户可通过继承基类就可轻松扩展至不同 LLM 的 Chat Template。



模型部分,TinyLLaVA Factory 很自然地将多模态大模型模块化成 3 个组件 —— 大语言模型组件、视觉编码器组件、中间的连接器组件。每个组件由一个工厂对象控制,负责新模型的注册和替换,使用户能够更容易地替换其中任何一个组件,而不会牵连到其他部分。


TinyLLaVA Factory 为每个组件提供了当前主流的模型,如下表所示。


训练器仍然仿照 LLaVA,采取 Hugging Face 自带的 Trainer,集成了 Gradient Accumulation,Wandb 做日志记录等特性,同样支持 DeepSpeed ZeRO2/ZeRO3 并行训练。对于评估部分,TinyLLaVA Factory 提供了 SQA/GQA/TextVQA/VQAv2/POPE/MME/MM-Vet/MMMU 8 个 Benchmark 的评估。

接下来,划重点!TinyLLaVA Factory Github 项目还手把手教你定制自己的多模态大模型。只需简单地添加 1-2 个文件,就可以轻松替换 LLM 组件、视觉编码器组件、连接器组件。

拿替换 LLM 模型举例。据使用过 LLaVA 代码库的同学反应,LLaVA 代码想替换非 Llama 系列的语言模型容易出错。而 TinyLLaVA Factory 可以方便地替换语言模型,只需添加 2 个 py 文件,一个是 Chat Template 文件,一个是模型文件。替换视觉编码器时,也只需添加 1 个 py 文件,继承视觉编码器的基类即可。


TinyLLaVA Factory 还支持对训练策略进行定制,对使用者来说只需在配置文件中进行修改,就能在 pretraining 和 finetuning 阶段对 3 个模块组件(LLM / 视觉编码器 / 连接器)实现冻住 / 全量微调 / 部分微调 /lora 微调的任意组合。堪称小白易上手式的教程!


早在今年 2 月,TinyLLaVA 项目就敏锐地捕捉到了 3B 以下 LLM 在多模态大模型中的潜力,利用市面主流的小规模 LLM,训练了一系列多模态大模型,参数量在 0.89B-3.1B。实验结果表明经过高质量的数据选择和更加细致的训练策略,利用小规模 LLM 同样可以实现和大模型相近甚至更加优越的任务表现。(细节详见技术报告 https://arxiv.org/abs/2402.14289



© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:[email protected]

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
亚马逊Prime Day来了!数百万商品独家优惠(附省钱攻略)美国文化探究,我喜欢的瞬间:雨水拒绝写重复代码,试试这套开源的 SpringBoot 组件,效率翻倍~Delphi:模块化借贷是 DeFi 货币市场的下一阶段独立开发8年的软件,开源并让大家“白嫖”,我赚得更多了React 19 再进化:编写过去无法实现的组件深夜,老师发在家长群里的一个文件,让海淀妈妈愁秃了头……相隔3000英里,用苹果头显遥控机器人!UCSD、MIT华人团队开源TeleVision微信为什么傻乎乎的同一个文件存储多份?可令笔记本变身 RISC-V 架构,Framework 联手深度数智推出定制模块化主板微软决定不为Linux和macOS开源WebView2组件,开发者:白等了四年还是用ElectronFramework 13 模块化笔记本更新,换装英特尔酷睿 Ultra 处理器太牛了!20mins完成SCI初稿!中科院博士整理的模块化写作法!套用即可出稿……端午点燃見龍生財线香!香气雅致还添加18K金,点燃生活的仪式感“美味陷阱”?!Neurology超3万人数据:这类食品的摄入量每增加10%,认知障碍风险增加16%,中风风险增加8%习近平在重庆考察时强调 进一步全面深化改革开放 不断谱写中国式现代化重庆篇章“远上寒山石径斜”读xiá,还是xié?跟孩子吵了一架后,才知道原来……模块化黑塔,有钞能力还可以合成更大的,指环王新品震撼公布青海海西事件只是把“垂帘听审”的底裤公之于众了学长风采丨翁彦俊:数字化重塑博物馆 让文物融入时代和生活陈丹琦团队提出最新MoE架构Lory谷歌开源TimesFM:1000亿个时间点训练,入选ICML 2024去中信取护照,是全家人一个文件袋嘛?|移投路群问答谈谈对哈佛斯坦福学生的印象[电脑] 黑白双色,百变太极,九州风神模块化机箱墨菲斯装机分享个人感慨之125 坏分子【求职战报】全球金融交易平台Deutsche Börse Systems销售运营面试邀约!24GB单卡全量微调Llama 3-8B,仅需添加一行代码19.2k star,三分钟实现一套 Web 版的 Excel 组件,这个开源工具强的离谱!精选SDE岗位丨Boeing、Milliman、Kyndryl公司持续热招!65个即插即用涨点模块! 5个最新Mamba模块《梦圆》&《貌美如花》150B token从头训练,普林斯顿Meta发布完全可微MoE架构LoryNYU拼室友|NYU 主校区或者NYU sps校区, Ritz plaza拼中国男生室友
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。