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

苏剑林“闭门造车”之多模态思路浅谈思考

原文来自科学空间苏剑林 “闭门造车”之多模态思路浅谈(一):无损输入和“闭门造车”之多模态思路浅谈(二):自回归,学习后总结。

文章目录

    • “闭门造车”之多模态思路浅谈(一):无损输入
      • 文本和图像生成的区别
      • 图像离散化,套文本生成框架
      • 压缩序列造成信息损失
      • 将图像视为连续型向量无损压缩
      • Patch输入后的操作
    • “闭门造车”之多模态思路浅谈(二):自回归

“闭门造车”之多模态思路浅谈(一):无损输入

文本和图像生成的区别

文本生成的研究方向是设计语言模型,建模条件概率 p ( x t ∣ x 1 , . . . , x t − 1 ) p(x_{t}|x_{1},...,x_{t-1}) p(xtx1,...,xt1)。不同的语言模型都是为了与该条件概率近似。对于离散的句子 ( x 1 , x 2 , . . . , x l ) (x_{1}, x_{2},..., x_{l}) (x1,x2,...,xl)每个 x t x_{t} xt都来自有限词表,条件概率本质是分类,在神经网络拟合之下,任何分类任务都能精确建模。

词表(Vocabulary):有限的集合,包含了所有可能的token,词表将文本中token映射到唯一的索引
码本(codebook):有限的集合,包含了所有可能的向量,码本将连续的潜在表示映射到离散的向量索引

图像生成并无清晰的研究方向,不同的模型建模理论也并不相同。造成图像生成手段多样化的根本原因,是对连续变量进行概率建模的困难性。若以文本的思路对图像进行建模,图像可看作连续型向量 ( x 1 , x 2 , . . . , x l ) (x_{1}, x_{2},..., x_{l}) (x1,x2,...,xl),概率密度必要条件是非负且 ∫ p ( x t ∣ x 1 , . . . , x t − 1 ) d x t = 1 \int p(x_{t}|x_{1},...,x_{t-1})dx_{t}=1 p(xtx1,...,xt1)dxt=1。神经网络可以拟合函数,但不能拟合概率密度。

图像离散化,套文本生成框架

图像在像素空间上可以看作离散的, n × n n\times n n×n的图像可以看作长度 3 n 2 3n^{2} 3n2,vocab_size是256的句子,套用文本生成框架能work,比如PixelRNN、PixelCNN和Sparse Transformer。

在像素空间操作序列长生成慢,考虑“先压缩,后生成”。利用AutoEncoder压缩序列长度,同时要保证离散性就不能用VAE而要用VQ-VAE、VQ-GAN等。VQ-VAE/GAN就相当于“图像Tokenizer”的角色,压缩后可通过Decode恢复原始图片,比如LWM和AnyGPT。

VAE压缩序列:潜在空间是连续的,使用正态分布的推断来生成潜在变量。
VQ-VAE压缩序列:潜在空间是离散的,使用向量量化来替代VAE中的连续潜在表示,避免了VAE中可能存在的潜在空间重参数化问题。文本tokenizer将连续文本转换为离散的符号序列,图像tokenizer将连续的像素空间映射到离散的符号空间。

压缩序列造成信息损失

对于 64 × 64 64\times 64 64×64的ImageNet图像,平均总信息熵 64 × 64 × 3 × 3 64\times64\times3\times3 64×64×3×3bit,对于vocab_size为V的词表,想要将编码长度压缩为L,实现无损压缩至少满足 L × l o g 2 V ≥ 64 × 64 × 3 × 3 L \times log_{2}V \ge 64\times64\times3\times3 L×log2V64×64×3×3,在实际应用中,若压缩到 16 × 16 16\times16 16×16那么V至少是 1 0 43 10^{43} 1043量级,必然会产生信息损失。

无损压缩必然是需要精益探索的。

将图像视为连续型向量无损压缩

离散型和连续型生成有所不同,离散型自回归生成的熵源是seq_len和vocab_size,而vocab_size的贡献是对数增长的(贡献小)所以主要靠seq_len,但是seq_len等价于成本(序列越长熵越大,计算步骤和推理时间更多),所以离散型的熵源是昂贵的;基于变换的连续型生成的熵源是高斯噪声,原则上可以无穷无尽,是廉价且可并行的。因此,扩散模型导出可逆ODE方程将标准高斯分布映射为目标分布可获取等多熵源。

高斯噪声从正态分布中采样的随机数,连续分布有无穷多的取值

任何编码手段都可能会造成失真,因此将原始图像切成patch输入是较为稳妥的方法(输入原图才能保证信息的完整)。要让模型具备图像生成能力,还需考虑到语义一致下细节差异,通过加噪和去噪调节。

多模态生成的做法。值得注意的是

多模态生成。文本生成token by token,图像生成并行。比如,Transfusion、Show-o

Patch输入后的操作

直接用原始patch作为输入
保留更多信息。避免特征间的孤立。

用预训练的编码器特征作为输入
在LDM的自编码器降维后的特征空间进行扩散

“闭门造车”之多模态思路浅谈(二):自回归

根据(一)可知离散化有严重的信息损失,输入连续性特征是更有前景的方案,但是连续性输入会增加图像生成的难度。只有离散化才能套用文本的自回归框架。

目标:1. 寻找更好的离散化方式(信息损失少) 2. 设计适合图像连续型输入的自回归框架

图像生成中的“无损”是什么要求

不同的Patchify可能会有不同程度的信息损失,其中VQ的信息损失往往是最严重且最明确的。如果图像在输入模型之前就有明显信息损失,那么必然会限制模型的图像理解能力。所以,为了更好地适应各种图像理解任务,多模态模型理想的图像输入方式应该就是尽可能无损的连续型特征,由模型自己在计算过程中根据上下文决定要损失什么。自适应、动态地选择

图像自回归生成(AutoRegressive)

DDPM本质是自回归模型,将单个图像设定为 x T , x T − 1 , . . . , x 1 , x 0 x_{T},x_{T-1},...,x_{1},x_{0} xT,xT1,...,x1,x0,建模 p ( x t − 1 ∣ x t ) p(x_{t-1}|x_{t}) p(xt1xt),这一过程本质上也是Teacher Forcing,所以也有Exposure Bias问题。
可能解决Exposure Bias的方法:Scheduled Sampling、Curriculum Learning、Reinforcement Learning和Beam Search

为什么Teacher Forcing存在Exposure Bias问题?Teacher Forcing模式在训练过程中输入是真实的前 t−1个元素(来自训练数据)预测第t个数据,与真实值计算损失。但在推理时,需要根据生成的内容逐步预测下一个元素。导致训练和推理的输入分布不一致,推理时受生成的低质量内容干扰,导致错误累积生成效果变差,这就是Exposure Bias。

因此,对于图像来说,问题并不是该不该做自回归,而是以何种方式来更好地去做自回归。它的作用不仅是为多模态模型赋予图像生成能力,而且还是一个重要的无监督学习途径。

加入噪声让 p ( x t ∣ x < t ) p(x_{t}|x_{<t}) p(xtx<t)接近高斯分布

扩散模型的核心思想正是“通过渐进式加噪让平方误差成为合理的损失函数”,对整张图片加噪,当然,也有对patch加噪的。
在这里插入图片描述

加噪后的效率问题和解决思路

学习效率这种t−1时刻的加噪图预测t时刻的加噪图的训练目标,需要对噪声进行双重采样,这会导致更大的训练方差,需要更多的训练步数才能把这个方差降下来,经过一系列降方差技巧后,更高效的方式是直接预测原图。

计算效率假如每个Patch通过加噪变成T个Patch,那么序列长度就变为原来的T倍,这样一来训练成本和推理成本都会显著增加。

1、扩散模型的理论和实践告诉我们,要预测xt的话只用xt−1就够了,可以忽略更早的输入,这意味同一个Patch的不同加噪结果之间不需要相互Attend;2、出于减少冗余的考虑,对于不同Patch之间的预测以及后面文本Token的预测,我们只需要Attend到没加噪的Patch。
在这里插入图片描述

如果允许两个不同的模型串联(但仍然可以端到端训练),那么我们还可以把扩散模型单独分离出来,Transformer只负责处理没有噪声的Patch,Transformer的输出则作为扩散模型的条件,如下图所示:

在这里插入图片描述

分patch排序方便自回归学习

大部份Patchify方法的输出特征依然保留了这个二维性质,而自回归生成则是单向的,所以需要指定一个生成顺序。常见的顺序比如 1)从左往右再从上往下 2)从中心到四周螺旋 3)从左上角出发走“Z”字 等等。“分Patch排序”是将图像解构为一个可供自回归学习的一维序列的过程,更通俗点就是将图像从二维序列转成一维序列。

相关文章:

苏剑林“闭门造车”之多模态思路浅谈思考

原文来自科学空间苏剑林 “闭门造车”之多模态思路浅谈&#xff08;一&#xff09;&#xff1a;无损输入和“闭门造车”之多模态思路浅谈&#xff08;二&#xff09;&#xff1a;自回归&#xff0c;学习后总结。 文章目录 “闭门造车”之多模态思路浅谈&#xff08;一&#xff…...

绿联nas docker 安装 rocketmq 队列。亲测可用

首先拉取docker 镜像&#xff0c;所需镜像如下&#xff1a; 安装 nameserver docker run -d -p 9876:9876 \ -v ${HOME}/docker/software/rocketmq/data/namesrv/logs:/opt/logs \ -v ${HOME}/docker/software/rocketmq/data/namesrv/store:/opt/store \ --name rmqnamesrv \ …...

C++(23):unreachable

C++23在头文件 "><utility>定义了std::unreachable(),用于指示编译器,该段代码不应该被允许,因此编译器可以对该位置进行优化,如果一旦允许了该位置的代码,行为未定义: #include <utility> #include <iostream>using namespace std;int func(…...

初等数论--欧几里得算法

1. 定义 u 0 u 1 ∈ Z , u 1 ≠ 0 , u 1 ∤ u 0 u_0\ u_1\in Z,u_1 \ne0,u_1 \nmid u_0 u0​ u1​∈Z,u1​0,u1​∤u0​ 根据带余除法可得下面一系列等式 u 0 q 0 u 1 u 2 0 < u 2 < ∣ u 1 ∣ u 1 q 0 u 2 u 3 0 < u 3 < u 2 ⋯ u k − 1 q k − 1 u k …...

阿里云前端自动化部署流程指南

本文详细介绍从前端代码开发到阿里云 OSS/CDN 自动化部署的完整流程。 一、流程概览 © ivwdcwso (ID: u012172506) 1.1 部署流程图 #mermaid-svg-H1LBBmwTHAAF3QTL {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermai…...

EXCEL解决IF函数“您已为此函数输入太多个参数”的报错

IF函数的基本结构是IF(条件, 值为真时的结果, 值为假时的结果)&#xff0c;所以标准的IF函数最多只能有三个参数。当用户输入的参数超过三个时&#xff0c;Excel就会报这个错误。比如多个IF语句叠加&#xff0c;但可能在嵌套的过程中没有正确关闭每个IF函数的括号&#xff0c;导…...

CAS单点登录(第7版)18.日志和审计

如有疑问&#xff0c;请看视频&#xff1a;CAS单点登录&#xff08;第7版&#xff09; 日志和审计 Logging 概述 Logging CAS 提供了一个日志记录工具&#xff0c;用于记录重要信息事件&#xff0c;如身份验证成功和失败;可以对其进行自定义以生成用于故障排除的其他信息。…...

2025年软件测试面试题大全(附答案+文档)

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、测试基础 1、测试策略或测试包括哪些&#xff0c;测试要覆盖哪些方面 UI、功能、性能、可靠性、易用性、兼容性、安全性、安装卸载 2、设计测试用例的办法 …...

太空飞船任务,生成一个地球发射、火星着陆以及下一次发射窗口返回地球的动画3D代码

import numpy as np import matplotlib.pyplot as plt from matplotlib.animation import FuncAnimation from mpl_toolkits.mplot3d import Axes3D# 天体参数设置&#xff08;简化模型&#xff09; AU 1.5e8 # 天文单位&#xff08;公里&#xff09; earth_orbital_radius …...

IDEA——Mac版快捷键

目录 按键含义常用组合代码生成快捷键&#xff1a;代码追踪快捷键&#xff1a;高效编辑快捷键&#xff1a;代码重构快捷键&#xff1a;工具类快捷键&#xff1a;常规文件操作快捷键&#xff1a; 按键含义 ⌘ command Command键&#xff08;⌘&#xff09;相当于Windows中的Con…...

智能体系统(AI Agent System)是什么?——从概念解析到企业数字化转型的全景落地及投资视角

文章目录 一、 前言1.1 背景介绍1.2 写作目的 二、 智能体系统及相关概念解析2.1 智能体系统定义2.2 关键概念区分2.2.1 自主代理&#xff08;Autonomous Agent&#xff09;2.2.2 多智能体系统&#xff08;MAS&#xff09;2.2.3 人工智能/机器学习&#xff08;AI/ML&#xff09…...

Vue 前端开发中的路由知识:从入门到精通

文章目录 引言1. Vue Router 简介1.1 安装 Vue Router1.2 配置 Vue Router1.3 在 Vue 实例中使用 Vue Router 2. 路由的基本用法2.1 路由映射2.2 路由视图2.3 路由链接 3. 动态路由3.1 动态路径参数3.2 访问动态参数3.3 响应路由参数的变化 4. 嵌套路由4.1 定义嵌套路由4.2 渲染…...

前端VUE+后端uwsgi 环境搭建

1整体架构 请求流程the web clinet--the web server->the socket->uwsgi--django 第一级的nginx并不是必须的&#xff0c;uwsgi完全可以完成整个的和浏览器交互的流程&#xff1b;在nginx上加上安全性或其他的限制&#xff0c;可以达到保护程序的作用&#xff1b;uWSGI本…...

I2C实践开发 ---【STM32-I2C-HDC1080温湿度采集系统】

I2C实践开发 — STM32-I2C-HDC1080温湿度采集系统 目录 I2C实践开发 --- STM32-I2C-HDC1080温湿度采集系统1. 引言2. 系统架构2.1 硬件架构2.2 软件架构 3. 代码分析3.1 I2C驱动文件 (i2c.h 和 i2c.c)3.2 HDC1080传感器驱动文件 (hdc1080.h 和 hdc1080.c) 4. 功能总结【HDC1080…...

【个人开发】deepspeed+Llama-factory 本地数据多卡Lora微调【完整教程】

文章目录 1.背景2.微调方式2.1 关键环境版本信息2.2 步骤2.2.1 下载llama-factory2.2.2 准备数据集2.2.3 微调模式2.2.3.1 zero-1微调2.2.3.2 zero-2微调2.2.3.3 zero-3微调2.2.3.4 单卡Lora微调 2.2.4 实验2.2.4.1 实验1&#xff1a;多GPU微调-zero12.2.4.2 实验2&#xff1a;…...

浏览器报错:无法访问此网站 无法找到xxx.xxx.net的DNS地址。正在诊断该问题。尝试运行Windows网络诊断。DNS_PROBE_STARTED

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;希望我的文章能帮到您&#x1f7ea;如有兴趣可点关注了解更多内容 &#x1f4d8;博主信息 点击标题&#x1f446;有惊喜 &#x1f4c3;文章前言 &#x1f537;文章均为学习和工作中整理的笔记&#xff0c;分享记录…...

【设计模式】 代理模式(静态代理、动态代理{JDK动态代理、JDK动态代理与CGLIB动态代理的区别})

代理模式 代理模式是一种结构型设计模式&#xff0c;它提供了一种替代访问的方法&#xff0c;即通过代理对象来间接访问目标对象。代理模式可以在不改变原始类代码的情况下&#xff0c;增加额外的功能&#xff0c;如权限控制、日志记录等。 静态代理 静态代理是指创建的或特…...

网络安全-攻击流程-用户层

用户层攻击主要针对操作系统中的用户空间应用程序及用户权限&#xff0c;利用软件漏洞、配置错误或用户行为弱点进行攻击。以下是常见的用户层攻击类型及其流程&#xff0c;以及防御措施&#xff1a; 1. 缓冲区溢出攻击 攻击流程&#xff1a; 目标识别&#xff1a;确定存在漏…...

网络安全等级保护测评(等保测评):全面指南与准备要点

等保测评&#xff0c;全称为“网络安全等级保护测评”&#xff0c;是根据《网络安全法》及《网络安全等级保护条例》等法律法规&#xff0c;对信息系统进行安全等级划分&#xff0c;并依据不同等级的安全保护要求&#xff0c;采用科学方法和技术手段&#xff0c;全面评估信息系…...

具身导航赋能智能物流!OpenBench:智能物流最后一公里语义导航新基准

作者&#xff1a;Junhui Wang, Dongjie Huo, Zehui Xu, Yongliang Shi, Yimin Yan, Yuanxin Wang, Chao Gao, Yan Qiao, Guyue Zhou 单位&#xff1a;澳门科技大学系统工程与协作实验室、智能科学与系统联合实验室&#xff0c;清华大学人工智能产业研究院&#xff08;AIR&…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名&#xff08;Class Name)2.协议名&#xff08;Protocol Name)3.方法名&#xff08;Method Name)4.属性名&#xff08;Property Name&#xff09;5.局部变量/实例变量&#xff08;Local / Instance Variables&…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

生成 Git SSH 证书

&#x1f511; 1. ​​生成 SSH 密钥对​​ 在终端&#xff08;Windows 使用 Git Bash&#xff0c;Mac/Linux 使用 Terminal&#xff09;执行命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​&#xff1a; -t rsa&#x…...

【git】把本地更改提交远程新分支feature_g

创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

vxe-table vue 表格复选框多选数据,实现快捷键 Shift 批量选择功能

vxe-table vue 表格复选框多选数据&#xff0c;实现快捷键 Shift 批量选择功能 查看官网&#xff1a;https://vxetable.cn 效果 代码 通过 checkbox-config.isShift 启用批量选中,启用后按住快捷键和鼠标批量选取 <template><div><vxe-grid v-bind"gri…...

【Linux】使用1Panel 面板让服务器定时自动执行任务

服务器就是一台24小时开机的主机&#xff0c;相比自己家中不定时开关机的主机更适合完成定时任务&#xff0c;例如下载资源、备份上传&#xff0c;或者登录某个网站执行一些操作&#xff0c;只需要编写 脚本&#xff0c;然后让服务器定时来执行这个脚本就可以。 有很多方法实现…...

LTR-381RGB-01RGB+环境光检测应用场景及客户类型主要有哪些?

RGB环境光检测 功能&#xff0c;在应用场景及客户类型&#xff1a; 1. 可应用的儿童玩具类型 (1) 智能互动玩具 功能&#xff1a;通过检测环境光或物体颜色触发互动&#xff08;如颜色识别积木、光感音乐盒&#xff09;。 客户参考&#xff1a; LEGO&#xff08;乐高&#x…...

git删除本地分支和远程分支

删除本地分支 git branch -d 分支名删除远程分支 git push origin --delete 分支名...