苏剑林“闭门造车”之多模态思路浅谈思考
原文来自科学空间苏剑林 “闭门造车”之多模态思路浅谈(一):无损输入和“闭门造车”之多模态思路浅谈(二):自回归,学习后总结。
文章目录
- “闭门造车”之多模态思路浅谈(一):无损输入
- 文本和图像生成的区别
- 图像离散化,套文本生成框架
- 压缩序列造成信息损失
- 将图像视为连续型向量无损压缩
- Patch输入后的操作
- “闭门造车”之多模态思路浅谈(二):自回归
- 图像生成中的“无损”是什么要求
- 图像自回归生成(AutoRegressive)
- 加入噪声让 p ( x t ∣ x < t ) p(x_{t}|x_{<t}) p(xt∣x<t)接近高斯分布
- 加噪后的效率问题和解决思路
- 分patch排序方便自回归学习
“闭门造车”之多模态思路浅谈(一):无损输入
文本和图像生成的区别
文本生成的研究方向是设计语言模型,建模条件概率 p ( x t ∣ x 1 , . . . , x t − 1 ) p(x_{t}|x_{1},...,x_{t-1}) p(xt∣x1,...,xt−1)。不同的语言模型都是为了与该条件概率近似。对于离散的句子 ( 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(xt∣x1,...,xt−1)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×log2V≥64×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输入是较为稳妥的方法(输入原图才能保证信息的完整)。要让模型具备图像生成能力,还需考虑到语义一致下细节差异,通过加噪和去噪调节。
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,xT−1,...,x1,x0,建模 p ( x t − 1 ∣ x t ) p(x_{t-1}|x_{t}) p(xt−1∣xt),这一过程本质上也是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(xt∣x<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排序”是将图像解构为一个可供自回归学习的一维序列的过程,更通俗点就是将图像从二维序列转成一维序列。
相关文章:

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

绿联nas docker 安装 rocketmq 队列。亲测可用
首先拉取docker 镜像,所需镜像如下: 安装 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,u10,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(条件, 值为真时的结果, 值为假时的结果),所以标准的IF函数最多只能有三个参数。当用户输入的参数超过三个时,Excel就会报这个错误。比如多个IF语句叠加,但可能在嵌套的过程中没有正确关闭每个IF函数的括号,导…...

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

2025年软件测试面试题大全(附答案+文档)
🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、测试基础 1、测试策略或测试包括哪些,测试要覆盖哪些方面 UI、功能、性能、可靠性、易用性、兼容性、安全性、安装卸载 2、设计测试用例的办法 …...

太空飞船任务,生成一个地球发射、火星着陆以及下一次发射窗口返回地球的动画3D代码
import numpy as np import matplotlib.pyplot as plt from matplotlib.animation import FuncAnimation from mpl_toolkits.mplot3d import Axes3D# 天体参数设置(简化模型) AU 1.5e8 # 天文单位(公里) earth_orbital_radius …...
IDEA——Mac版快捷键
目录 按键含义常用组合代码生成快捷键:代码追踪快捷键:高效编辑快捷键:代码重构快捷键:工具类快捷键:常规文件操作快捷键: 按键含义 ⌘ command Command键(⌘)相当于Windows中的Con…...

智能体系统(AI Agent System)是什么?——从概念解析到企业数字化转型的全景落地及投资视角
文章目录 一、 前言1.1 背景介绍1.2 写作目的 二、 智能体系统及相关概念解析2.1 智能体系统定义2.2 关键概念区分2.2.1 自主代理(Autonomous Agent)2.2.2 多智能体系统(MAS)2.2.3 人工智能/机器学习(AI/ML)…...
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并不是必须的,uwsgi完全可以完成整个的和浏览器交互的流程;在nginx上加上安全性或其他的限制,可以达到保护程序的作用;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:多GPU微调-zero12.2.4.2 实验2:…...

浏览器报错:无法访问此网站 无法找到xxx.xxx.net的DNS地址。正在诊断该问题。尝试运行Windows网络诊断。DNS_PROBE_STARTED
🤟致敬读者 🟩感谢阅读🟦希望我的文章能帮到您🟪如有兴趣可点关注了解更多内容 📘博主信息 点击标题👆有惊喜 📃文章前言 🔷文章均为学习和工作中整理的笔记,分享记录…...

【设计模式】 代理模式(静态代理、动态代理{JDK动态代理、JDK动态代理与CGLIB动态代理的区别})
代理模式 代理模式是一种结构型设计模式,它提供了一种替代访问的方法,即通过代理对象来间接访问目标对象。代理模式可以在不改变原始类代码的情况下,增加额外的功能,如权限控制、日志记录等。 静态代理 静态代理是指创建的或特…...
网络安全-攻击流程-用户层
用户层攻击主要针对操作系统中的用户空间应用程序及用户权限,利用软件漏洞、配置错误或用户行为弱点进行攻击。以下是常见的用户层攻击类型及其流程,以及防御措施: 1. 缓冲区溢出攻击 攻击流程: 目标识别:确定存在漏…...

网络安全等级保护测评(等保测评):全面指南与准备要点
等保测评,全称为“网络安全等级保护测评”,是根据《网络安全法》及《网络安全等级保护条例》等法律法规,对信息系统进行安全等级划分,并依据不同等级的安全保护要求,采用科学方法和技术手段,全面评估信息系…...

具身导航赋能智能物流!OpenBench:智能物流最后一公里语义导航新基准
作者:Junhui Wang, Dongjie Huo, Zehui Xu, Yongliang Shi, Yimin Yan, Yuanxin Wang, Chao Gao, Yan Qiao, Guyue Zhou 单位:澳门科技大学系统工程与协作实验室、智能科学与系统联合实验室,清华大学人工智能产业研究院(AIR&…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(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(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -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)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...

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

【Linux】使用1Panel 面板让服务器定时自动执行任务
服务器就是一台24小时开机的主机,相比自己家中不定时开关机的主机更适合完成定时任务,例如下载资源、备份上传,或者登录某个网站执行一些操作,只需要编写 脚本,然后让服务器定时来执行这个脚本就可以。 有很多方法实现…...
LTR-381RGB-01RGB+环境光检测应用场景及客户类型主要有哪些?
RGB环境光检测 功能,在应用场景及客户类型: 1. 可应用的儿童玩具类型 (1) 智能互动玩具 功能:通过检测环境光或物体颜色触发互动(如颜色识别积木、光感音乐盒)。 客户参考: LEGO(乐高&#x…...
git删除本地分支和远程分支
删除本地分支 git branch -d 分支名删除远程分支 git push origin --delete 分支名...