跳转到内容
English

VILA-U:一套视觉塔,连接理解与生成

交互教程

VILA-U 将离散视觉码接入多模态 next-token 系统,并在每视觉位置内部增加预测深度。

前置阅读:UniTok · 语义表征 · 注意力与自回归

多模态语言模型可读取连续视觉特征,独立图像生成器则使用另一种表示。VILA-U 构造可重建、与文字对齐的离散视觉塔,难点是在学习图像恢复时保持预训练对齐能力。

视觉与文字组件从预训练 CLIP 类模型初始化。冻结文本塔,以重建及对比目标训练视觉侧。残差量化将高维特征近似为按顺序选择的多个码向量之和。主 LLM 处理空间位置与文字,depth Transformer 处理单个视觉位置内的 codes。

阅读顺序从左到右。点击模块,将它与计算和代码对应。代码为教学伪代码;来源链接提供论文方法或已核查的实现。

对齐视觉塔

适配视觉塔时固定文本塔。

visual = image_encoder(image)
text = frozen_text_encoder(caption)

残差量化

各级编码前级尚未解释的部分。

residual = visual
for level in levels:
    code = nearest(residual,codebook[level])
    residual -= code

主序列与深度预测

离散采样后,图像输出仍需要解码器。

context = main_llm(sequence)
visual_codes = depth_transformer.sample(context)
image = decoder(lookup_and_sum(visual_codes))

查看固定版本来源

r0=z,qm=Qm(rm−1),rm=rm−1−qm,z^=∑mqmr_0=z,\quad q_m=Q_m(r_{m-1}),\quad r_m=r_{m-1}-q_m,\quad \hat z=\sum_m q_m

标量演示可选择目标特征与残差级数。每一级从同一微型教学码本选择项,再从剩余误差中减去它。重建特征是所选码之和。不同于 UniTok,后级看到残差,而非另一通道切片。真实 VILA-U 使用学习到的高维向量。

改变参数,查看计算值,再把它与上方的真实模型说明对照。

解析教学模型 · 控件改变的是例子,不是训练后的研究模型。

q1=1.000q2=0.500

每级用同一教学标量码本 {−1,−0.5,0,0.5,1} 编码剩余残差。

当前例子的计算值
量值
第 1 级码1.000
第 2 级码0.500
重建特征1.500
剩余误差0.200

视觉塔训练后,将多模态 LLM 适配到图文序列。图像理解先读取视觉 codes 再回答文字;图像生成先预测视觉 codes 再解码像素。两者都用 next-token 学习,但主序列与残差码深度是两条不同依赖轴。

论文报告其联合视觉塔从头训练的困难,但不能据此推翻量化器、数据、优化不同的 UniTok。本文依据论文方法,未审计官方代码。Tokenizer 成功本身不等于完整 VQA 或生成系统成功。

depth Transformer 预测什么?

它预测单个视觉位置内部的残差 codes;主 LLM 建模视觉位置和文字 token 间的依赖。

返回学习地图

本页图形与伪代码为教学重绘。论文报告、固定实现观察和解析示例分别标记;未运行研究模型。