当前位置: 首页 > news >正文

论文阅读:TinyGPT-V 论文阅读及源码梳理对应

!!!目前只是初稿,静待周末更新

引言

TinyGPT-V来自论文:TinyGPT-V: Efficient Multimodal Large Language Model via Small Backbones,是一篇基于较小LLM作为backbone的多模态工作。相关工作已经开源,地址为:Github

之所以选择这篇文章,是因为比较具有落地意义,且便于本地运行,查看和调试。

整体结构图
推理流程
训练阶段
Q & A
QFormer作用?

QFormer来自论文BCLI2工作中,用来弥补Frozen Image encoder和Frozen LLM之间的gap。
基于Bert作为初始化的。

推理结构图
Image
blip2_image_eval
QFormer
Liner
Linear
get_context_emb
prompt
Give the following image: <Img>ImageContent</Img>. "
"You will be able to see the image once I provide it to you. Please answer my questions.

融合方法:
先将图像转为向量。将prompt除Image部分其他部分依次转为向量。
再将两者mix,得到最终向量。

def get_context_emb(self, prompt, img_list):device = img_list[0].deviceprompt_segs = prompt.split("<ImageHere>")assert (len(prompt_segs) == len(img_list) + 1), "Unmatched numbers of image placeholders and images."seg_tokens = [self.llama_tokenizer(seg, return_tensors="pt", add_special_tokens=i == 0).to(device).input_ids  # only add bos to the first segfor i, seg in enumerate(prompt_segs)]seg_embs = [self.embed_tokens(seg_t) for seg_t in seg_tokens]# TODO: 这里具体如何混合在一起的,需要Debug查看mixed_embs = [emb for pair in zip(seg_embs[:-1], img_list) for emb in pair] + [seg_embs[-1]]mixed_embs = torch.cat(mixed_embs, dim=1)return mixed_embs

相关文章:

  • 独孤思维:​没时间做副业,怎么办?
  • Apache OFBiz groovy 远程代码执行漏洞(CVE-2023-51467)复现
  • 在windows11系统上利用docker搭建linux记录
  • C++内存分配策略
  • 《微信小程序开发从入门到实战》学习七十九
  • Leaflet + Vue使用案例
  • (学习日记)2024.01.09
  • pyspark 使用udf 进行预测,发现只起了一个计算节点
  • 半监督学习 - 自训练(Self-training)
  • java进阶-java与http
  • Android Gradle Plugin、Gradle、Android Studio版本关系
  • 具有15µA低消耗电流、零漂移、轨到轨输入输出、高EMC抑制特性的 双路运算放大器“NL6012”上市
  • ffmpeg写YUV420文件碰到阶梯型横线或者条纹状画面的原因和解决办法
  • Camunda Spin
  • 【ASP.NET Core 基础知识】--MVC框架--Models和数据绑定
  • 【译】JS基础算法脚本:字符串结尾
  • 分享的文章《人生如棋》
  • .pyc 想到的一些问题
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 2017届校招提前批面试回顾
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • Logstash 参考指南(目录)
  • Python学习之路13-记分
  • React中的“虫洞”——Context
  • SpiderData 2019年2月16日 DApp数据排行榜
  • yii2权限控制rbac之rule详细讲解
  • 大型网站性能监测、分析与优化常见问题QA
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 对象引论
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 小程序测试方案初探
  • postgresql行列转换函数
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • #Java第九次作业--输入输出流和文件操作
  • #预处理和函数的对比以及条件编译
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (4)Elastix图像配准:3D图像
  • (Note)C++中的继承方式
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (转)编辑寄语:因为爱心,所以美丽
  • .“空心村”成因分析及解决对策122344
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .Net 高效开发之不可错过的实用工具
  • .NET 药厂业务系统 CPU爆高分析
  • .NET 中创建支持集合初始化器的类型
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)