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

第六节 LLava模型数据处理源码解读(input_ids/labels/attention_mask/image,下篇)

文章目录

  • 前言
  • 一、数据格式标签
  • 二、LazySupervisedDataset的__gettitem__函数源码解读
    • 1、source获取
    • 2、图像数据处理
      • 1、对话内容source获取(存在图像条件)
      • 2、对话内容source获取(不存在图像条件)
    • 3、对话文本数据加工
    • 4、data_dict进一加工
    • 5、data_dict的image元素添加
    • 6、返回结果
  • 三、图像处理
    • 1、获取加工函数与路径
    • 2、读取图片
    • 3、图像pad数字
    • 4、图像pad填充
      • 1、图像pad方法
      • 2、图像pad示意图
    • 5、图像加工成模型输入格式
      • 1、图像加工主函数
      • 2、图像rescale处理
      • 3、图像normal处理
      • 4、更换通道
  • 四、对话文本处理
    • 1、文本加工主函数
    • 2、preprocess文本处理函数
    • 3、返回结果
  • 五、对话文本处理(preprocess_v1)
    • 1、preprocesss_v1函数调用与参数
    • 2、preprocesss_v1完整源码
    • 3、角色获取
    • 3、对话数据获取(conversations)
    • 4、获得input_ids
      • 1、tokenizer_image_token调用源码
      • 2、tokenizer_image_token完整源码
      • 3、通过<image>切分文本
      • 4、构建新input_ids
      • 5、数据格式转换
      • 6、返回结果
    • 5、获得 targets
      • 1、完整源码
      • 2、targets初始化赋值
      • 3、循环体源码-for conversation, target in zip(conversations, targets)
        • 1、源码注释解读
        • 2、变量结果说明
    • 6、preprocess_v1返回结果
  • 六、dataloader(DataCollatorForSupervisedDataset)
    • 1、input_ids与labels的pad
    • 2、attention_mask获取


前言

本篇文章直接介绍llava模型数据加工部分,整体结构说明llava多模态模型输入数据格式,其中包含input_ids/labels/attention_mask与image格式,并给出对应代码位置与整个数据加工流程。最重要,通过debug给出数据解释与代码解读,也通过一个真实数据给出模型输入格式说明。当你阅读完此篇文章,绝对透彻理解llava数据加工过程与内容。上一篇文章给出了数据处理大轮廓,本篇文章将解读LazySupervisedDataset类的__getitem__函数内容。


一、数据格式标签

在后面解读模型前,我先给出llava数据格式标签,以便更好理解后面源码解读,其数据格式如下:

[
{"id": "000000319154","image": "coco/train2017/000000319154.jpg",

相关文章:

  • 数据结构-图的基本概念
  • 小程序项目业务逻辑回忆4
  • huggingface连不上的解决方案
  • oracle发送http请求
  • C++ 反转一个二进制串
  • cd 命令特殊路径符 mkdir命令
  • Android | 性能优化 之 TraceView工具的使用
  • 基于SSM+Jsp的体育竞赛成绩管理系统
  • 45、基于深度学习的螃蟹性别分类(matlab)
  • 网络编程(TCP协议,UDP协议)
  • tron-passwd写入提权
  • 音视频开发—FFmpeg 打开摄像头进行RTMP推流
  • SSLyze:一款快速高效的SSLTLS扫描工具
  • 2024年全球架构师峰会(ArchSummit深圳站)
  • 大型语言模型在AMD GPU上的推理优化
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 0基础学习移动端适配
  • Android单元测试 - 几个重要问题
  • docker python 配置
  • ES6之路之模块详解
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • Linux中的硬链接与软链接
  • Spring核心 Bean的高级装配
  • Transformer-XL: Unleashing the Potential of Attention Models
  • Vue官网教程学习过程中值得记录的一些事情
  • Web Storage相关
  • 经典排序算法及其 Java 实现
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 数据科学 第 3 章 11 字符串处理
  • 跳前端坑前,先看看这个!!
  • 学习使用ExpressJS 4.0中的新Router
  • 移动端解决方案学习记录
  • 用jQuery怎么做到前后端分离
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​​​​​​​​​​​​​​Γ函数
  • ​Spring Boot 分片上传文件
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • # linux从入门到精通(三)
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (1)svelte 教程:hello world
  • (7) cmake 编译C++程序(二)
  • (zt)最盛行的警世狂言(爆笑)
  • (分布式缓存)Redis分片集群
  • (六)激光线扫描-三维重建
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (文章复现)基于主从博弈的售电商多元零售套餐设计与多级市场购电策略
  • (一)Thymeleaf用法——Thymeleaf简介
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转载)CentOS查看系统信息|CentOS查看命令
  • .Family_物联网
  • .net Application的目录