Penguin-VL: Exploring the Efficiency Limits of VLM with LLM-based Vision Encoders
Authors: Boqiang Zhang, Lei Ke, Ruihan Yang, Qi Gao, Tianyuan Qu, Rossell Chen, Dong Yu, Leoweiliang Affiliations: Tencent AI Lab arXiv: 2603.06569 Project Page: penguin-vl.github.io GitHub: tencent-ailab/Penguin-VL
1. Motivation (研究动机)
Penguin-VL 讨论的是一个很直接但经常被忽略的问题:VLM 的性能上限到底主要受什么限制? 过去几年,大多数 Vision Language Model 都沿着“更大模型 + 更大数据 + 更强 contrastive-pretrained vision encoder”这条路线前进,但这会带来两个现实问题:
- 部署成本高:大模型和大型视觉编码器很难落地到手机、机器人、边缘设备等算力受限场景;
- 视觉表示并不总最优:CLIP / SigLIP 一类 contrastive pretraining 更强调类别级判别与全局不变性,这可能压制 OCR、document understanding、dense captioning、复杂 reasoning 所依赖的细粒度视觉线索。
论文的核心问题是:如果不再默认“视觉编码器必须来自大规模 contrastive pretraining”,而是直接从 text-only LLM 初始化视觉编码器,是否可以在更小参数规模下获得更强、更多模态统一的能力?
这个问题值得研究,因为它挑战了当前 VLM 社区一个默认假设:性能提升主要来自模型规模和 contrastive 视觉预训练,而不是视觉编码器初始化范式本身。
2. Idea (核心思想)
Penguin-VL 的核心思想是:用 text-only LLM 初始化 vision encoder,而不是沿用 CLIP / SigLIP 这类 contrastive-pretrained encoder。
作者认为,LLM 预训练学到的大量世界知识与语义组织能力,本质上可以迁移到视觉编码中;只要把 causal self-attention 改造成适合视觉建模的 bidirectional full attention,并补上 2D-RoPE,就可以把一个 text LLM 改造成新的视觉编码器——即 Penguin-Encoder。
围绕这个 vision encoder,作者进一步设计了:
- 联合的视觉编码器训练范式:语言建模监督 + reconstruction / distillation 监督共同训练;
- Priority / Temporal Redundancy-Aware (TRA) 视频 token 压缩:让关键帧保留更多 token,中间帧更激进压缩,以提升视频效率;
- 统一的数据与训练配方:从 encoder training、pretraining 到 SFT,构建统一的 image/video data mixture。
与主流路线相比,Penguin-VL 最根本的不同在于:它把“视觉编码器如何初始化与训练”视为 VLM 能力上限的关键,而不是默认把视觉编码器当作固定外设。
3. Method (方法)
3.1 对现有视觉编码器训练范式的重新审视
Figure 1 解读: Figure 1 对比了三种 vision encoder 训练范式。(a) Contrastive Training:用 image encoder 和 text encoder 做对比学习,适合分类与检索,但容易学到粗粒度、不够细致的视觉不变性;(b) Direct LLM Supervision:先从 CLIP/SigLIP 初始化视觉编码器,再通过语言建模损失去适配 LLM;(c) Synergistic Vision Encoder Training(Penguin-VL):直接从 text-only LLM 初始化 vision encoder,再配合语言建模损失和特征重建损失训练。作者要证明的核心不是“再多一个训练 trick”,而是 (c) 这种从 LLM 到 vision 的初始化方式,在细粒度视觉理解上更有潜力。
作者的论点非常明确:contrastive pretraining 为了判别任务会刻意学习 category-level invariance,但 VLM 真正需要的是:
- OCR / doc parsing 所需的局部文本细节;
- dense captioning 所需的空间和关系细节;
- 复杂视觉推理所需的细粒度对象属性与布局。
因此,Penguin-VL 不是在和“更大的 VLM”硬碰硬,而是在尝试用更合适的视觉表示范式,在小模型上逼近甚至超过更大的系统。
3.2 Overall framework
Figure 2 解读: Figure 2 给出了 Penguin-VL 的整体框架。底部是多帧视频输入,经过 Temporal Redundancy-Aware token compression 后,关键帧保留更高 token 分辨率,中间帧做更激进压缩;中部是 vision encoder 和 vision projector;右上角的 text side 则把文本 token、timestamp token 和 separators 一起送入 LLM。图中最关键的结构有两个:一是 vision encoder 来自 text-only LLM 初始化并加上 2D-RoPE;二是对视频输入做优先级感知压缩,使模型在有限 token 预算下仍保留关键时序信息。
Penguin-VL 由三部分组成:
- Penguin-Encoder:从 Qwen3-0.6B 初始化的 vision encoder;
- MLP-based projector:把视觉特征对齐到语言模型空间;
- LLM:Qwen3 backbone(2B / 8B 版本)。
3.3 Penguin-Encoder:从 text-only LLM 到 vision encoder
作者把 text-only LLM 改造成 vision encoder 的步骤包括:
- 把 causal self-attention 改成 bidirectional full attention;
- 引入 2D-RoPE 以支持 variable-resolution image / video token;
- 通过语言建模监督与额外的 reconstruction/distillation loss,让 encoder 对齐视觉空间。
这种设计的几个好处是:
- Architectural expressivity:直接继承 LLM 中更先进的架构设计(例如 QK norm 等);
- Native alignment:视觉编码器从一开始就更接近下游 LLM 的表示空间;
- Semantic priors:编码器天然带有语言世界知识,而不是纯视觉判别表示;
- Scalability:未来可按 LLM 体系继续平滑扩展。
3.4 Reconstruction / Distillation objectives
为了让 LLM-initialized encoder 更快适应视觉空间,作者引入三种重建型监督:
(1) Amplitude Loss
其中 是学生视觉特征, 是教师特征。
(2) Direction Loss
本质上是对齐方向(cosine-style)而不是只看幅值。
(3) Relation Loss
它显式监督 patch 之间的关系结构,这一点对视觉模型尤其重要,因为 attention 机制本来就依赖 token 间关系而非 token 独立属性。
3.5 TRA:Temporal Redundancy-Aware 视频 token 压缩
Penguin-VL 在视频处理上并不是平均压缩所有帧,而是提出 TRA:根据时间冗余,把帧分成 key frames 和 intermediate frames,前者保留更多 token,后者做更强压缩。
全局 token budget 约束写成:
其中:
- :关键帧集合
- :中间帧集合
- :分别是 key / intermediate frame 的 token 数
论文把压缩分成三个阶段:
- Stage 1: Resolution Preservation
如果原始分辨率 token 没超预算,就不压缩; - Stage 2: Synchronous Downscaling
key / intermediate frame 一起缩放,但保持相对比例(近似 ); - Stage 3: Saturation-Aware Scaling
intermediate frame 达到最小 token 下限后,继续只压 key frame。
这个设计的重点是:压缩不是平均分配,而是围绕“哪些帧更值得保留细节”做资源再分配。
3.6 Data curation and unified training pipeline
Figure 3 解读: Figure 3 展示了 Penguin-VL 的 multi-granularity video annotation。作者并不是只给视频一个单行 caption,而是把视频描述拆成 dense time-level、paragraph-level、video-level 三个层次,并对 Subject、Action、Object & Details、Spatial Context、Mood & Tone、Knowledge & Text 等维度做显式组织。这意味着它的视频训练数据不是简单的 caption corpus,而是更接近“细粒度时序解析 + 高层叙事总结”的统一标注体系。
Penguin-VL 的训练被分成三个 stage:
- Stage 1: Penguin-Encoder Training
重点训练 vision encoder 与 projector; - Stage 2: Pre-training
全参数训练 VLM,数据总量约 121M samples; - Stage 3: SFT
图片数据约 39M samples,视频数据约 21M samples。
同时作者构建了:
- Penguin-Recap-I:57.2M image-text pairs;
- Penguin-Recap-V:3.7M video-text pairs;
- Penguin-QA:从 dense video descriptions 中构造 temporal QA。
这说明 Penguin-VL 不是只改 architecture,也非常依赖大规模而高质量的数据工程。
3.7 Pseudocode(基于官方实现)
组件 A:Build Penguin-Encoder
# Algorithm: Initialize Penguin-Encoder from text-only LLM
# Input: text-only LLM backbone
# Output: bidirectional vision encoder
def build_penguin_encoder(text_llm):
encoder = convert_causal_to_bidirectional(text_llm)
encoder = add_2d_rope(encoder)
return encoder组件 B:Feature reconstruction / distillation
# Algorithm: Stage-1 encoder training
# Input: student features F_s, teacher features F_t
# Output: reconstruction loss
def reconstruction_loss(F_s, F_t):
L_A = mean(abs(F_s - F_t))
L_D = mean(trace((F_s @ F_t.T) / (norm(F_s) * norm(F_t))))
L_R = mean(abs((F_s @ F_s.T) / norm(F_s)**2 - (F_t @ F_t.T) / norm(F_t)**2))
return L_A + L_D + L_R组件 C:TRA token allocation
# Algorithm: Temporal Redundancy-Aware token compression
# Input: key frames K, intermediate frames I, total token budget T_max
# Output: token allocation per frame
def allocate_tokens(key_frames, inter_frames, T_max, T_min):
if full_resolution_tokens(key_frames, inter_frames) <= T_max:
return keep_native_resolution()
alpha = 1.0
while tokens(key_frames, inter_frames, alpha) > T_max and min_tokens(inter_frames, alpha) > T_min:
alpha = shrink(alpha)
if min_tokens(inter_frames, alpha) <= T_min:
clamp_intermediate_frames(T_min)
keep_shrinking_key_frames()
return assigned_token_budget()组件 D:Multimodal forward in code
# Algorithm: Penguin-VL multimodal forward
# Input: image/video pixel values + text tokens
# Output: aligned multimodal logits
def penguin_vl_forward(pixel_values, text_tokens):
mm_features, teacher_features = vision_encoder(pixel_values)
mm_features = vision_projector(mm_features)
fused_inputs = fuse_visual_text(mm_features, text_tokens)
logits = llm(fused_inputs)
return logits3.8 Code-to-paper mapping table
| Paper Concept | Source File | Key Class/Function |
|---|---|---|
| VLM model definition | penguinvl/model/penguinvl_qwen3.py | PenguinVLQwen3ForCausalLM, PenguinVLQwen3Processor |
| Vision encoder construction | penguinvl/model/encoder.py | PenguinVLVisionEncoder, build_vision_encoder |
| Vision-language fusion | penguinvl/model/vlm_arch.py | VLMMetaModel, prepare_inputs_labels_for_multimodal |
| Projector | penguinvl/model/projector.py | build_vision_projector |
| Inference entry | inference/example_penguinvl.py | inference examples |
| Lightweight API | penguinvl/infer.py | model_init, mm_infer |
4. Experimental Setup (实验设置)
4.1 Model scales
Penguin-VL 提供两个主模型规模:
- Penguin-VL-2B
- Penguin-VL-8B
同时 vision encoder 基于 Qwen3-0.6B 初始化,语言 backbone 分别使用 Qwen3-1.7B / 8B。
4.2 Training details
论文给出的关键训练配置包括:
- 最大序列长度:16,384 tokens
- 其中最多 10,240 tokens 分配给视觉输入
- Encoder training 初期学习率:vision encoder 1e-3,projector 1e-3
- 第二阶段 encoder training:vision encoder 5e-4,projector 维持 1e-3
- Pre-training:vision encoder 学习率降到 1e-4
- SFT:全模块统一学习率 1e-5
- 视频 preprocessing:先用 FFmpeg 按 1 fps 取帧,最多 180 frames,之后再做 TRA 压缩
4.3 Benchmarks
Image benchmarks 覆盖:
- InfoVQA
- ChartQA
- DocVQA
- CharXiv
- OCRBench
- AI2D
- RealWorldQA
- V-star
- MMMU-Pro
- BLINK
- MathVista / MathVerse / LogicVista
Video benchmarks 覆盖:
- MVBench
- LongVideoBench
- VideoMME
- Egochema / MMVU
- CharadesSTA
- NextQA
- ActivityNetQA
- Perception Test
5. Experimental Results (实验结果)
5.1 2B 模型:图像与视频综合结果
Figure 4 解读: Figure 4 用 radar-style 图比较了多个 2B 级别模型在视频理解上的表现。Penguin-2B(紫色)在大多数视频 benchmark 上都比 SmolVLM2-2.2B、InternVL-3.5-2B、Qwen3VL-2B 更强,尤其在 LongVideoBench、Egochema、NextQA、Perception Test 等任务上优势明显。图像传达的核心结论是:Penguin-VL 的优势不是某一个任务点的偶然增益,而是“在小参数规模下更均衡的视频理解能力”。
论文 2B 主表中的视频结果如下:
| Benchmark | Penguin-VL-2B | Qwen3-VL-2B | InternVL3.5-2B | SmolVLM2-2.2B |
|---|---|---|---|---|
| MVBench | 65.5 | 61.7 | 65.9 | 46.3 |
| LongVideoBench | 59.5 | 52.1 | 57.4 | 49.7 |
| VideoMME | 57.4 | 61.9 | 58.4 | 52.1 |
| Egochema | 57.6 | 55.7 | 50.5 | 34.0 |
| MMVU | 42.7 | 41.7 | 42.7 | 33.5 |
| CharadesSTA | 56.2 | 54.5 | 21.9 | 9.5 |
| NextQA | 79.9 | 76.9 | 76.1 | 62.4 |
| ActivityNetQA | 61.5 | 59.7 | 58.3 | 52.6 |
| Perception Test | 70.4 | 64.5 | 64.7 | 51.6 |
在图像理解侧,Penguin-VL-2B 也在多项 OCR / chart / document 任务上领先:
- InfoVQA:77.8
- ChartQA:86.6
- DocVQA:94.1
- AI2D:80.7
- RealWorldQA:70.2
- MathVista:67.3
这直接支持论文的核心论点:更好的视觉表示,而不是更大的模型规模,才是小型 VLM 提升的关键。
5.2 8B 模型结果
8B 主表中,Penguin-VL-8B 在多个任务上继续很强:
- InfoVQA:86.8
- ChartQA:90.5
- DocVQA:96.2
- AI2D:86.1
- LongVideoBench:67.0
- CharadesSTA:61.4
- NextQA:85.4
- ActivityNetQA:65.2
- Perception Test:78.0
对比 Qwen3-VL-8B 与 InternVL-3.5-8B,可以看到 Penguin-VL-8B 尤其在 document / OCR / long-video / temporal grounding 任务上更强,而在某些数学/逻辑 benchmark 上则不是全面第一,这说明它的收益主要来自 fine-grained visual fidelity 与 video-centric understanding。
5.3 Ablation:Penguin-Encoder 是否真的有效
论文专门做了 encoder ablation,说明 Penguin-Encoder 的优势并不只是数据量造成。虽然完整表格较大,但作者的结论非常明确:
- 仅仅继续使用 SigLIP / CLIP 这类 contrastive encoder 做 VLM 对齐,难以达到 Penguin-Encoder 的性能;
- LLM-init + reconstruction objectives 能更稳定地把视觉特征对齐到语言空间;
- 这种优势在 OCR、document understanding、dense visual perception 和多视角视频理解上最明显。
5.4 Video efficiency 与 TRA 的意义
TRA 的设计让 Penguin-VL 在视频场景中既能保留关键帧细节,又不必为每一帧维持同样高的 token budget。它的意义在于:
- 对快速变化片段给更多 token;
- 对冗余中间帧给更低分辨率表示;
- 在有限 token budget 下尽可能保住 temporal reasoning 能力。
这正是为什么在 LongVideoBench / NextQA / ActivityNetQA 等视频任务上,Penguin-VL-2B 还能显著领先同级紧凑模型。
5.5 Limitations / 总结
论文没有单独列 formal limitations section,但从结果与方法可以看出几点边界:
- 这条路线依然依赖大规模高质量 image/video 数据工程;
- 在某些纯数学或逻辑推理 benchmark 上,LLM-init vision encoder 并不总是绝对最优;
- 官方目前主要开源了 模型权重 + inference code,训练数据和训练代码还未完全发布。
整体来看,Penguin-VL 最重要的启发是:对于紧凑 VLM,vision encoder 的训练范式可能比继续堆参数更关键。 这篇工作真正挑战的是一个社区默认假设:最强 VLM 一定要依赖 massive contrastive vision pretraining;而 Penguin-VL 给出的答案是——未必。