【论文阅读】DeepSeek-LV2:用于高级多模态理解的专家混合视觉语言模型

【论文阅读】DeepSeek-LV2:用于高级多模态理解的专家混合视觉语言模型

文章目录

  • 【论文阅读】DeepSeek-LV2:用于高级多模态理解的专家混合视觉语言模型
    • 一、介绍
    • 二、模型结构
    • 三、数据建设
      • **3.1 对齐**
      • **3.2 视觉语言预训练数据**
      • **3.3 监督微调数据**
    • 四、训练方法
    • 五、实验结果

通过两个关键的主要升级,显着改进了其前身DeepSeek-VL

对于视觉组件,采用了dynamic tiling vision encoding strategy 专门用于处理不同长宽比的高分辨率图像

对于语言组件,利用DeepSeekMoE模型和Multi-head Latent Attention机制,将键值缓存压缩为潜在向量,以实现高效推理和高吞吐量

在这里插入图片描述

一、介绍

语言模型(VLMs)已经成为人工智能领域的一股变革力量

以解决需要多模态理解的复杂现实世界应用。

DeepSeek-LV2 进步主要集中在三个关键方面:

  • 增强视觉理解的动态、高分辨率视觉编码策略
  • 显著提高训练和推理效率的优化语言模型架构
  • 精细的视觉语言数据构建管道,提高了整体性能,扩展到新的领域

(1)

引入了一种动态平铺视觉编码策略,可以有效地处理不同宽高比的高分辨率图像

  • 避免了旧的固定尺寸编码器的限制
  • 需要超高分辨率的任务中表现出色,包括视觉接地,文档/表格/图表分析和详细的特征提取
  • 保持可管理数量的视觉token

(2)

MLA通过将键值(KV)缓存压缩到潜在向量中来显著降低计算成本,从而加快推理速度并提高吞吐量。

通过DeepSeekMoE框架进一步提高效率

(3)

在质量、数量和多样性方面大大提高了我们的视觉语言训练数据

改进的训练数据还实现了新的能力,如视觉基础和图形用户界面(GUI)感知

在这里插入图片描述


如果说要对其进行图像思路的处理,难道是用提取出的文本token来对语义分割进行辅助吗。

思路1:

文本条件下的token来进行辅助融合。

思路2:

输出的文本,或者说定位信息来优化我们的分割模型的效果。

二、模型结构

DeepSeek-VL 2由三个核心模块组成:

  • 视觉编码器
  • 视觉语言适配器
  • 专家混合语言模型


这些创新能够更有效地处理高分辨率视觉输入和文本数据。

我觉得主要带来的影响是对图像信息的提取处理能力

动态平铺策略

通过将高分辨率图像分割为瓦片来实现动态瓦片化策略

使用单个SigLIP-SO 400 M-384视觉编码器有效处理具有不同纵横比图像

在这里插入图片描述


视觉语言适配器

实现了一个2 × 2像素的洗牌操作,将每个瓦片的视觉令牌从27 × 27压缩到14 × 14 = 196个令牌。

在全局缩略图块和局部块之间插入一个标记

在这里插入图片描述

随后使用双层多层感知器(MLP)将其投影到语言模型的嵌入空间中。我们的动态平铺策略的视觉说明如图3所示

DeepSeekMoE LLM

语言模型基于DeepSeekMoE,结合了多头潜在注意力机制[53]。MLA通过将键值缓存压缩到潜在向量中来提高推理效率,从而提高吞吐量

全局偏差项,以经济高效地改善专家之间的负载平衡

三、数据建设

训练过程分为三个不同的阶段:

  • VL对齐
  • VL预训练
  • 监督微调(SFT)

3.1 对齐

该阶段的重点是训练MLP连接器,以桥接预训练的视觉编码器和LLM

3.2 视觉语言预训练数据

预训练数据将视觉语言(VL)和纯文本数据结合

保持视觉语言(VL)功能和纯文本性能之间的平衡


1)交错的图像-文本数据

DeepSeek-VL 2-Tiny的初步实验确定了这个特定的混合比例

2)图像字幕数据

提供视觉和文本信息之间的直接对齐

开发了一个全面的图像字幕流程,该流程考虑:

  • OCR提示
  • Meta信息(例如,位置,相机设置)
  • 相关原始字幕作为提示

实现了一个质量控制管道,以简单地根据其写作质量对所有字幕进行评分以实现过滤低质量字幕

所以deepseek对于图像中的文字信息相对敏感

3)光学字符识别数据

开发OCR功能,我们使用了开源数据

4)视觉问答数据

  • General VQA
  • Table, chart and document understanding
  • Web-to-code and plot-to-Python generation
  • QA with visual prompt


5)视觉基础数据

其实我感觉我们能用的部分就是这一块,换个话说,我们应该怎么去利用他的输出信息

定位框出指定的图中物体

6)基础对话数据

在这里插入图片描述

3.3 监督微调数据

SFT数据将各种开源数据集与高质量的内部QA对相结合

一般的视觉问答

三个主要限制:

  • 简短的回答
  • 糟糕的OCR质量
  • 幻觉内容
  • 偶尔会在中文响应中不适当地插入英语单词

针对存在的问题来补充训练的数据集

  • 发了一个内部中文QA数据集
  • 额外的内部数据集,以补充现实世界和文化视觉知识
  • 成了特定于文档理解的多轮会话QA对
  • 原始问题重新生成所有公共数据,增强基于表格的QA数据
  • 更详细的推理过程增强了以公共推理为中心的数据集
  • 构建了一个专注于教科书的内部数据集
  • 扩展了我们内部的Web代码和Python Plot代码数据集
  • 开发我们的视觉基础数据集
  • 使用[62,72]构建接地对话数据,以进一步增强模型在预训练阶段建立的能力
  • Text-Only datasets

相关能力:

  • OCR和文档理解
  • 推理,逻辑和数学
  • 教科书和学术问题
  • Web到代码和Plot到Python生成
  • 视觉基础
  • Grounded conversation

四、训练方法

三阶段流程进行训练:

  • 初始阶段,使用详细描述的图像-文本配对数据训练视觉编码器和视觉语言适配器MLP,同时保持语言模型
  • 预训练阶段,使用数据进行视觉语言预训练
  • 微调阶段,使用的数据执行监督微调

预训练和微调阶段,所有模型参数同时训练

对齐

主要目标是在视觉特征和语言特征之间建立鲁棒的连接

调整固定分辨率的视觉编码器以适应动态的高分辨率图像,保持语言模型冻结

视觉-语言协调

主要目标是在视觉特征和语言特征之间建立鲁棒的连接

部分计算资源用于视觉语言预训练

解冻所有参数,包括视觉编码器,视觉语言适配器MLP和DeepSeekMoE LLM

监督微调

优化所有参数,同时只监督答案和特殊标记,屏蔽系统和用户提示

联合收割机多模态数据与来自DeepSeek-V2的纯文本对话数据相结合

五、实验结果

该模型在密集图像描述方面表现出色,能够识别常见地标,一般视觉知识,和丰富的文本在英语和中文

在这里插入图片描述

RefCOCO 数据集是一个多模态数据集,它包含了图像和对应的自然语言表达式,这些表达式指向图像中的特定对象

在这里插入图片描述


这也有点类似于打天梯图了,在视觉表现上也比如优秀

在这里插入图片描述

我们更加去关注DeepSeek对于物体的检索和找到能力

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

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

相关文章

一款为开发者而生的开源全栈LLMOps平台

🚀 超越ChatGPT!一款为开发者而生的全栈LLMOps平台:LMForge完全指南 作为一名AI应用开发者,你是否也曾遇到过这些令人头疼的问题? 成本失控:GPT-4的API账单像雪片一样飞来,却不知道钱具体花在…

DeepL Translate在线工具测评:精准翻译技术文档与学术论文,支持多格式文档上传保留原格式

之前跟你们聊过帮着梳理代码协作的 GitLens,今天换个偏向文档翻译的方向 —— 给你们安利一个在线 AI 翻译工具「DeepL Translate」,官网地址是DeepL Translate: The worlds most accurate translator,它跟普通翻译工具不一样,翻技…

系统配置不是“乐高积木”:制造企业如何通过科学变更管理保障稳定运行

在制造业的数字化进程中,系统配置的稳定性常被忽视。作为一家制造企业的行政经理,我曾亲历这样的场景:为应对生产波动,各部门频繁要求调整ERP系统参数,结果导致库存数据失真、订单处理延迟,甚至引发客户投诉…

vscode炒股插件-韭菜盒子AI版

基于vscode插件,原韭菜盒子3.15.0版本开发,新增选股宝快讯功能、AI投资助手、指定股票AI分析功能(目前只针对A股),内置AI大模型助手功能,支持ai分析最新资讯、ai分析当日资讯(让ai随时给你分析股…

Spring Cloud Config 核心原理

Spring Cloud Config 是 Spring Cloud 提供的一个用于集中化管理应用程序各个环境下的配置属性的解决方案。它支持统一管理配置,并且可以在不重启应用的情况下动态地更新配置信息,提高开发和运维效率。 主要特点 • 集中管理配置:可以将不同环…

springboot ioc 控制反转入门与实战

Spring Boot3 IOC 项目地址https://gitee.com/supervol/loong-springboot-study(记得给个start,感谢)IOC 概述在 Spring Boot 3 中,IOC(Inversion of Control,控制反转)是核心思想之一&#xff…

LangGraph 重要注意事项和常见问题

01. 数据状态与归纳函数在前面的课时中,我们说过在 LangGraph 中 节点 在默认情况下返回的字典数据会将原始数据覆盖,例如下面的代码最终返回结果是 {"messages": [4]} 而不是 [1,2,3,4],如下class MyState(TypedDict):messages: l…

避坑指南!解决Navicat运行SQL成功但没有表的问题

在运行转储的SQL文件时,成功运行,试了很多办法都不显示出表。原因:当从一个高版本的 MySQL 数据库导入数据到低版本的 MySQL 数据库时,可能会遇到兼容性问题。因为高版本的 MySQL 可能支持 utf8mb4_0900_ai_ci,而低版本…

在 Elasticsearch 中使用用户行为分析:使用 UBI 和 search-ui 创建一个应用程序

作者:来自 Elastic Eduard Martin 及 Alexander Dvila 通过一个实际示例学习如何在 Elasticsearch 中使用 UBI。我们将创建一个在搜索和点击结果时生成 UBI 事件的应用程序。 想要获得 Elastic 认证吗?看看下一次 Elasticsearch Engineer 培训什么时候开…

SpringBoot3中使用Caffeine缓存组件

SpringBoot3已经把EhCache从框架中删除了&#xff0c;SpringBoot3默认的缓存组件为Caffeine&#xff0c;那么我们在SpringBoot3中如何去使用它了&#xff1f; 1.添加依赖 <dependency><groupId>com.github.ben-manes.caffeine</groupId><artifactId>ca…

正则表达式与grep文本过滤详解

文章目录前言一、正则表达式概述1.1 定义1.2 主要用途1.3 Linux 中的正则表达式分类1.3.1 基础正则表达式&#xff08;BRE&#xff09;1.3.2 扩展正则表达式&#xff08;ERE&#xff09;二、正则表达式的基本组成2.1 普通字符2.2 元字符2.2.1 基本元字符2.2.2 重复次数相关2.2.…

Dify 集成 Milvus 配置指南

&#x1f9e9; Dify 集成 Milvus 配置指南 &#x1f527; 详细配置步骤 1. 环境准备与克隆仓库 首先确保你的系统已安装 Git、Docker 和 Docker Compose。然后克隆 Dify 的代码仓库&#xff1a; git clone https://github.com/langgenius/dify.git cd dify/docker2. 配置环境变…

为不平,不止于此

口碑可以成就一个人&#xff0c;也可以毁掉一个人&#xff0c; 所以我们选择用实力去创造两种无声的口碑。 要么让期待的你张口而呼&#xff0c; 要么让挑剔的你哑口无言。玛哈特科技创始人 #为不平&#xff0c;不止于此#

0902 C++类的匿名对象

Part 1.梳理思维导图一.匿名对象1.概念没有对象名的类对象2.格式类名();3.作用1.给有名对象初始化2.给对象数组初始化3.作为函数的参数传递给形参4.例子#include <iostream>using namespace std;class Dog {friend void Dogfriend(Dog &b); private:string name;int …

在 PySpark 中解锁窗口函数的力量,实现高级数据转换

本篇文章Mastering PySpark Window Functions: A Practical Guide to Time-Based Analytics适合数据分析和工程师入门了解PySpark的窗口函数。文章的亮点在于详细介绍了窗口函数的基本概念及其在销售数据分析中的实际应用&#xff0c;帮助读者理解如何进行复杂的数据计算而无需…

从理念到实践:三层解耦架构与“无系统”论

在上一篇中&#xff0c;我们揭示了“五层双闭环”治理模型如何像骨骼一样&#xff0c;为数字化转型提供支撑和定型。但再宏伟的蓝图也需要坚实的施工来实现。今天&#xff0c;我们将深入最具体的实施层面&#xff0c;将“业务重塑”和“以人为本”的理念&#xff0c;转化为可落…

详细介绍Linux 内存管理struct page数据结构中的_count和_mapcount有什么区别?

在Linux内核的struct page中&#xff0c;_count&#xff08;或_refcount&#xff09;和_mapcount是两个关键的引用计数成员&#xff0c;它们各自承担不同的职责。以下是深度解析和代码案例&#xff1a;1. _count vs _mapcount 区别详解_count&#xff08;或_refcount&#xff0…

面阵 vs 线阵相机:怎么选不踩坑?选型公式直接套用

面阵vs线阵相机&#xff1a;怎么选不踩坑&#xff1f;选型公式直接套用&#x1f3af;面阵vs线阵相机怎么选不踩坑&#xff1f;&#x1f3af;一、面阵相机&#xff1a;工业检测的“万能选手”&#xff0c;拍全图靠它&#x1f3af;二、线阵相机&#xff1a;大视野/高精度的“专属…

Spring Security 如何使用@PreAuthorize注解

&#x1f9f1; 第一步&#xff1a;环境准备✅ 1. 创建数据库&#xff08;MySQL&#xff09;-- 创建数据库&#xff0c;使用 utf8mb4 字符集支持 emoji 和多语言 CREATE DATABASE security_demo CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;-- 使用该数据库 USE security…

JVM中产生OOM(内存溢出)的8种典型情况及解决方案

Java中的OutOfMemoryError&#xff08;OOM&#xff09;是当JVM内存不足时抛出的错误。本文将全面剖析JVM中产生OOM的各种情况&#xff0c;包括堆内存溢出、方法区溢出、栈溢出等&#xff0c;并提供详细的诊断方法和解决方案。 一、OOM基础概念 1.1 OOM错误类型 Java中的OOM是…