VILA-U:一套视觉塔,连接理解与生成
交互教程
VILA-U 将离散视觉码接入多模态 next-token 系统,并在每视觉位置内部增加预测深度。
之前已经能做什么
Section titled “之前已经能做什么”多模态语言模型可读取连续视觉特征,独立图像生成器则使用另一种表示。VILA-U 构造可重建、与文字对齐的离散视觉塔,难点是在学习图像恢复时保持预训练对齐能力。
改变了什么,为什么
Section titled “改变了什么,为什么”视觉与文字组件从预训练 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))逐步理解机制
Section titled “逐步理解机制”标量演示可选择目标特征与残差级数。每一级从同一微型教学码本选择项,再从剩余误差中减去它。重建特征是所选码之和。不同于 UniTok,后级看到残差,而非另一通道切片。真实 VILA-U 使用学习到的高维向量。
改变参数,查看计算值,再把它与上方的真实模型说明对照。
解析教学模型 · 控件改变的是例子,不是训练后的研究模型。
每级用同一教学标量码本 {−1,−0.5,0,0.5,1} 编码剩余残差。
| 量 | 值 |
|---|---|
| 第 1 级码 | 1.000 |
| 第 2 级码 | 0.500 |
| 重建特征 | 1.500 |
| 剩余误差 | 0.200 |
训练与采样的区别
Section titled “训练与采样的区别”视觉塔训练后,将多模态 LLM 适配到图文序列。图像理解先读取视觉 codes 再回答文字;图像生成先预测视觉 codes 再解码像素。两者都用 next-token 学习,但主序列与残差码深度是两条不同依赖轴。
这些结果不能证明什么
Section titled “这些结果不能证明什么”论文报告其联合视觉塔从头训练的困难,但不能据此推翻量化器、数据、优化不同的 UniTok。本文依据论文方法,未审计官方代码。Tokenizer 成功本身不等于完整 VQA 或生成系统成功。
depth Transformer 预测什么?
它预测单个视觉位置内部的残差 codes;主 LLM 建模视觉位置和文字 token 间的依赖。
来源与后续阅读
Section titled “来源与后续阅读”本页图形与伪代码为教学重绘。论文报告、固定实现观察和解析示例分别标记;未运行研究模型。