从零学习多模态——2024学习笔记总结
- 前言
- 1. preliminary
- 2. Transformer和NLP基础
- 3. 多模态模型原理和架构学习
- 4. 动手实验多模态模型
- 第一步尝试
- Swift框架使用
- 数据验证
- 5. 总结
前言
2024快结束啦,半年抽空学了学多模态还挺好玩的,学习和踩坑记录记一下,方便大家少走弯路~
学习记录的完整PPT在这里
1. preliminary
最基础的ML入门可以看李航的《统计学习方法》,看完学完前8章,纸笔再算一算例题,敲一敲代码实现基础的模型,不使用sklearn实现感知机、线性回归、逻辑回归、决策树、SVM、MLP。
2. Transformer和NLP基础
-
首先原理和代码阅读,推荐“基于transformers的自然语言处理(NLP)入门”,链接为这个,【看不懂的地方可以追问通义千问,通义千问很会!】
-
在了解了基本原理之后,实践部分可以参考下面:
- 手把手带你实战Transformers, b站地址为这个
- 手把手带你实战Transformers,代码地址为这个:
- 同时可以看huggingface的官方NLP的tutorial熟悉各种NLP流程,地址为这个
- 在了解了基本的使用流程之后,可以到阿里的天池比赛平台上找数据测一下找找感觉:
- gpu可以在各种云平台上租赁(1r/h不到),或者用colab的V100-16GB(每周3小时),跑通流程够用
- 天池提供了很多学习赛,也有其他人提供的baseline,比如医疗诊疗对话意图识别挑战赛、中文NLP地址要素解析、医学搜索Query相关性判断
- 借助比赛数据集可以熟悉文本分类、实体识别等任务的流程,以及transformer和bert的使用
3. 多模态模型原理和架构学习
学习现有多模态模型原理架构等,可以先搜论文作者在会议的报告ppt、汇报视频等,经典架构很多大学课堂ppt都挺好,可以在必应里面用英文搜索"xxxx ppt"或者"xxxx slide",然后再浏览一遍论文,最后过源代码,代码里面不明白的很多地方都可以一遍遍问通义千问。
- ViT,学习笔记见:【多模态】ViT模型技术学习
- CLIP,学习笔记见:【多模态】CLIP模型技术学习
- BLIP,学习笔记见:【多模态】BLIP模型技术学习
- BLIP2,学习笔记见:【多模态】BLIP-2模型技术学习
- Flagmingo,学习笔记见:【多模态】Flamingo模型技术学习
- MiniCPM-V-2.6 学习笔记见:【多模态】ViT模型技术学习
- InternVL2(和minicpm-v架构类似)
- qwen2-vl(没有用q-former,直接mlp连接和压缩)
4. 动手实验多模态模型
第一步尝试
- 玩一下cogvlm、cogvlm2、qwen2-vl和minicpm-v的demo,当时minicpm-v-2.5还是最强的
- 感觉minicpm-v的文档和各种支持是最好的,群里面群友们和阿丹老师也超级热心,先上手的minicpm-v-2.6,超流畅,流程可以见cpm的官方飞书文档
- minicpm-v的使用和踩坑记录——【多模态】MiniCPM-V多模态大模型使用学习(官方教程和支持非常好基本上没踩坑,官方b站也有相关的视频教程特别好可以看一下),官方群和文档在git上有
Swift框架使用
- 使用swift的2号版本swift2可以很方便的训练、量化、RLHF、推理加速等,swift2的文档也写得比较好,群里面大家也是很热心基本上没踩坑,使用记录——【多模态】swift框架使用qwen2-vl
- 在12月,swift进行了大更新,只有swift3支持internvl2.5,3号版本swift3和swift2很多不兼容,但是swift3对batch inference、vllm的支持更好,以及swift3数据加载升级了速度确实快很多,但是目前是很多不兼容&文档不太好所以踩了很多坑,踩坑记录——【多模态】多模态模型使用实践——swift3框架使用
- Swift的不同版本官方文档和群在ms-swift的git上有——ms-swift官网,如果找不到进官方群问
数据验证
- 正好天池有多模态的比赛,可以用这个数据验证: https://tianchi.aliyun.com/competition/entrance/532277
- 天池上也有其它长期比赛的数据一直开放
5. 总结
不明白的地方多问问会比较节省时间,一开始minicpm-v-int4的qlora微调一直报错卡了很久,群里问丹老师一句话的事情就解决了👍
不明白的地方多问问会比较节省时间,卡了老半天swift3训练和推理就是不收敛,原来是swift3不像2中有默认的学习率和warm和梯度累积等参数,swift3也不支持对swift2训的模型的推理,也是群里面问飞鱼老师一句话的事情👍