【多模态】从零学习多模态——2024学习笔记总结

从零学习多模态——2024学习笔记总结

  • 前言
  • 1. preliminary
  • 2. Transformer和NLP基础
  • 3. 多模态模型原理和架构学习
  • 4. 动手实验多模态模型
    • 第一步尝试
    • Swift框架使用
    • 数据验证
  • 5. 总结

前言

  2024快结束啦,半年抽空学了学多模态还挺好玩的,学习和踩坑记录记一下,方便大家少走弯路~
学习记录的完整PPT在这里
在这里插入图片描述

1. preliminary

  最基础的ML入门可以看李航的《统计学习方法》,看完学完前8章,纸笔再算一算例题,敲一敲代码实现基础的模型,不使用sklearn实现感知机、线性回归、逻辑回归、决策树、SVM、MLP。

2. Transformer和NLP基础

  1. 首先原理和代码阅读,推荐“基于transformers的自然语言处理(NLP)入门”,链接为这个,【看不懂的地方可以追问通义千问,通义千问很会!】

  2. 在了解了基本原理之后,实践部分可以参考下面:

  • 手把手带你实战Transformers, b站地址为这个
  • 手把手带你实战Transformers,代码地址为这个:
  • 同时可以看huggingface的官方NLP的tutorial熟悉各种NLP流程,地址为这个
  1. 在了解了基本的使用流程之后,可以到阿里的天池比赛平台上找数据测一下找找感觉:
  • 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训的模型的推理,也是群里面问飞鱼老师一句话的事情👍

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/497487.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CAT3D: Create Anything in 3D with Multi-View Diffusion Models 论文解读

24年5月的论文,上一版就是ReconFusion 目录 一、概述 二、相关工作 1、2D先验 2、相机条件下的2D先验 3、多视角先验 4、视频先验 5、前馈方法 三、Method 1、多视角扩散模型 2、新视角生成 3、3D重建 一、概述 该论文提出一种CAT3D方法,实现…

Python中构建终端应用界面利器——Blessed模块

在现代开发中,命令行应用已经不再仅仅是一个简单的文本输入输出工具。随着需求的复杂化和用户体验的重视,终端界面也逐渐成为一个不可忽视的设计环节。 如果你曾经尝试过开发终端UI,可能对传统的 print() 或者 input() 函数感到不满足&#…

5.若依的角色权限控制

RBAC 基于角色的访问控制,通过角色来分配和管理用户的菜单权限。 修改课程管理的菜单到主类目下 新建角色并分配菜单 新建用户并分配角色 添加一个根菜单,父级为主类目

flutter插件开发-ios

flutter插件开发是一个重要的技能,拓展flutter与原生的通信,将一些公用的东西封装,给不同的项目使用。 阅读前置: flutter基本通道调用 objective-c基础语法 ios项目基础知识 目录 1、创建一个插件项目2、项目结构3、编写原生代码…

手机租赁平台开发全攻略打造高效便捷的租赁服务系统

内容概要 手机租赁平台开发,简单说就是让用户能轻松租赁各类手机的高效系统。这一平台不仅帮助那些想要临时使用高端手机的人们节省了不少资金,还为商家开辟了新的收入渠道。随着智能手机的普及,很多人并不需要长期拥有一部手机,…

【从零开始入门unity游戏开发之——C#篇34】C#匿名函数(delegate )和Lambda表达式

文章目录 一、匿名函数(delegate )1、什么是匿名函数?2、匿名函数的基本语法2.1 语法2.2 **没有参数的匿名函数:**2.3 **有参数的匿名函数:**2.4 **有返回值的匿名函数:** 3、匿名函数的使用示例3.1 作为参…

echarts没有map地图解决方案

在echarts4.9以后的版本中移除了map地图 使用命令npm install echarts --save它会下载最新版本 的echarts 所有我们要下载回echarts4.9版本中 如果已经下载了最新的可以卸载 // 卸载echarts运行: npm uninstall echarts然后再去下载4.9版本 // 安装4.9版本的ech…

WebP Vs. PNG:哪种图像格式适合您的网站?

图像对任何网站都至关重要,可以增强视觉吸引力和用户体验。但是,图像也会显着影响网站的加载时间,因此必须针对 Web 使用对其进行优化。一种方法是使用正确的图像格式。

【Git】—— 代码版本控制工具git的安装及基本使用

目录 一、Git的核心作用 二、安装Git 三、本地仓库命令 1、初始化 2、查看文件状态 3、将文件添加到暂存区 4、将文件提交到本地仓库 5、查看提交日志 6、将暂存区文件取消暂存 7、回溯到指定版本 四、忽略文件 一、Git的核心作用 远程备份:将代码备份到…

sentinel-请求限流、线程隔离、本地回调、熔断

请求限流:控制QPS来达到限流的目的 线程隔离:控制线程数量来达到限流的目录 本地回调:当线程被限流、隔离、熔断之后、就不会发起远程调用、而是使用本地已经准备好的回调去提醒用户 熔断:熔断也叫断路器,当失败、或者…

阿里云人工智能ACA(七)——计算机视觉基础

一、自然语言处理基本介绍 1. 自然语言处理的定义 1-1 自然语言 人类使用的在社会生活中自然形成的语言 1-2 自然语言处理 目标是让计算机能够理解、解析、生成和处理人类的自然语言 包含自然语言理解和自然语言生成两部分组成 2. 自然语言处理的发展趋势 3.自然语言处理…

细说STM32F407单片机通过IIC读写EEPROM 24C02

目录 一、操作说明 二、工程配置 1、时钟、DEBUG、GPIO、USART6、NVIC、Code Generator 2、 IIC2 (1)Master Features组,主设备参数 (2)Slave Features组,从设备参数 三、软件设计 1、KELED 2、E…

redis开发与运维-redis04-redis客户端Jedis与连接池及客户端异常模拟

文章目录 【README】【1】redis客户端通信协议【2】java客户端Jedis连接redis集群【2.1】Jedis基本用法【2.2】Jedis操作5种数据类型代码实践【2.3】Jedis使用序列化api操作【2.3.1】操作Jedis字节数组api代码实践 【3】Jedis连接池【3.1】Jedis连接池JedisPool代码实践【3.1.1…

KaiOS 4.0 | DataCall and setupData implemention

相关文档 1、KaiOS 3.1 系统介绍 KaiOS 系统框架和应用结构(APP界面逻辑)文章浏览阅读842次,点赞17次,收藏5次。对于Java开发者而言,理解JS的逻辑调用是有点困难的。而KaiOS webapp开发又不同于现代的web开发,更像chrome浏览器内嵌模式。在这里梳理一下kaios平台web应用…

正则化强度的倒数C——让模型学习更准确

引言 嘿,小朋友们,今天我们要学习一个叫做正则化强度倒数C的概念。这听起来可能有点复杂,但它其实是一种帮助计算机学习的方法。想象一下,我们教计算机识别动物,我们希望它既能识别出猫,也能识别出狗&…

飞牛NAS登录Fn Connect教程实测|远程访问教程

前言 有很多小伙伴已经用上飞牛NAS系统很久了,但大部分都是在局域网下使用,如果外出办公或者在办公室,就没办法连接到家里的NAS。 于是咱们今天先出一条关于远程连接到飞牛NAS的教程。 关于飞牛NAS的教程会一步步发布,请耐心等…

Python编程快速上手:让繁琐工作自动化(第2版)下载

适读人群 :本书适合任何想要通过Python学习编程的读者,尤其适合缺乏编程基础的初学者。通过阅读本书,读者将能利用非常强大的编程语言和工具,并且体会到用Python编程的快乐。 Python编程从入门到实践姊妹篇,零基础自学…

短视频矩阵账号管理技术源码搭建详解,支持OEM

一、引言 在短视频矩阵系统中,账号管理是至关重要的一环,它涉及到多平台账号的接入、用户信息的安全存储与高效管理、权限的精准控制以及账号数据的同步与更新等关键功能。一个健壮、灵活且安全的账号管理技术架构,能够为整个短视频矩阵系统的…

精读DeepSeek v3技术文档的心得感悟

最近宋大宝同学读完了DeepSeekv3的文档,心中颇多感慨,忍不住想在这里记录一下对这款“业界有望启示未来低精度训练走向”的开源大模型的观察与思考。DeepSeek v3的亮点绝不仅仅是“Float8”或“超长上下文”这么简单,而是贯穿了从数值精度、注…

43243242342

📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…