- 人工智能
- 大模型
- 多模态
- 计算机视觉
- 模型量化
【免费下载链接】NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4
NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4 是一款 1200 亿参数(激活 120 亿)的视觉语言大模型,它的"眼睛"就是 C-RADIO 视觉编码器。这篇文章带你从零拆解这条视觉链路:一张图片如何被切块、编码、压缩,最终变成语言模型能读懂的 token;视频又是如何逐帧处理并瘦身进上下文的。
一、C-RADIO 视觉编码器是什么?
C-RADIO 是一个基于 Transformer 的视觉塔(Vision Tower),结构类似 ViT,但做了若干增强。它的核心参数在 configuration_radio.py 中定义:
| 参数 | 值 | 含义 |
|---|---|---|
hidden_size | 1280 | 视觉特征维度 |
num_hidden_layers | 32 | 编码器层数 |
num_attention_heads | 16 | 注意力头数 |
patch_size | 16 | 每张图切成 16×16 像素的小块 |
max_img_size | 2048 | 位置编码支持的最大分辨率 |
num_cls_tokens/num_registers | 3 / 7 | 前置的"摘要"与"寄存器"token |
summary_idxs | [0, 1] | 从 cls token 中取哪两个做全局摘要 |
实现代码在 modeling_radio.py,整个编码过程可以概括为四步:归一化 → 切块投影 → 32 层编码 → 输出摘要+特征。
二、第一步:图像预处理与动态分辨率
图片进入模型前,先由图像处理器处理,逻辑在 image_processing_nemotron_h_omni.py 中,默认参数见 preprocessor_config.json:
- 动态分辨率:不把所有图片硬缩成同一尺寸,而是在
min_num_patches=1024到max_num_patches=13312的 patch 网格内,按原图宽高比选择最合适的切块数——细节多的文档图会保留更多 patch,简单图则省 token; - 高质量缩放:使用抗锯齿的 bicubic 插值,避免锯齿噪声在编码过程中被放大;
- 像素归一化:用 CLIP 的均值/标准差(
norm_mean/norm_std)把 0~255 的像素值缩放到标准分布。
🎯 这个设计的巧妙之处:图像 token 数量与图片信息量成正比,而不是"一刀切",既保细节又省算力。
三、C-RADIO 编码器内部:从像素块到特征向量
进入 RadioModel 后,流水线依次是:
- 输入归一化器(InputConditioner):在 float32 下完成像素归一化后转回原精度,保证数值稳定;
- CPE 分块投影(PatchEmbeddings):把图像切成 16×16 的块并线性投影到 1280 维;位置编码不是一张固定大小的表,而是从 2048×2048 的"大表"里按当前分辨率双线性插值裁剪(Cropped Position Embedding),所以同一套权重能适配任意尺寸的图片;
- 前置特殊 token:在序列头部拼接 3 个可学习的 cls token 和 7 个 register token,用来汇总全局信息和吸收注意力噪声;
- 32 层编码器堆叠:每层是 LayerNorm → 多头自注意力 → MLP 的经典结构,支持 SDPA / FlashAttention 加速,并带 DropPath 与 LayerScale 正则。
最终编码器输出两样东西(见RadioModelOutput):
summary:从指定 cls token 里取出的全局摘要向量,回答"这张图整体是什么";features:每个 patch 的稠密空间特征,保留"图的每个位置是什么细节"。
后续真正喂给语言模型的,主要是features这条稠密分支。
四、连接器(Connector):把视觉特征"翻译"成语言
视觉塔输出的 1280 维特征不能直接进语言模型,中间的"翻译官"是视觉投影器,定义在 modeling_nemotron_h_omni.py 的NemotronH_Omni_Reasoning_V3VisionProjector中:
- Pixel Shuffle 空间压缩:按
downsample_ratio=0.5把相邻 2×2 个 patch 的特征合并成一个,token 数量直接减为 1/4——这是控制视觉 token 开销的关键一招; - MLP 投影:
RMSNorm → Linear → ReLU² → Linear,把压缩后的特征从视觉空间映射到语言模型的隐空间(projector_hidden_size=4096); - 占位符替换:处理文本时,prompt 里的
<image>标记会被展开成与实际视觉 token 数量等长的占位序列(<img>…</img>),再由masked_scatter把这些位置精确替换为图像嵌入,见 processing_nemotron_h_omni.py。
这样,语言模型拿到的就是一条"图像嵌入 + 文本 token"完全混排、长度已对齐的输入序列。
五、视频是怎么喂进去的?两帧打包 + EVS 剪枝
视频比图片多出"时间"维度,这条链路有专门的优化:
- 时间维打包:
video_temporal_patch_size=2,每 2 帧沿时间维叠成一个"时空 patch",用独立的video_patch_projection投影,帧数直接减半(见 modeling_nemotron_h_omni.py 的forward_video); - 每帧固定预算:视频帧使用独立的
video_target_num_patches=1024目标 patch 数并保持宽高比,避免个别帧过大会挤爆上下文; - EVS 视频 token 剪枝:
compute_retention_mask会计算相邻帧特征的余弦相似度,把"变化不大"的冗余 token 按video_pruning_rate剪掉——官方部署建议值为0.5,即剪掉一半冗余视觉 token,首帧 token 始终保留。
处理器还贴心地为视频生成带时间戳的文字说明("Frame 1 sampled at 0.50 seconds" 等),让模型天然具备"第几秒发生了什么"的时间感知。
六、快速部署:一条命令跑起来
部署参考 README.md,核心 vLLM 启动命令(视频理解场景):
vllm serve nvidia/NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4 \ --trust-remote-code \ --gpu-memory-utilization 0.75 \ --video-pruning-rate 0.5 \ --media-io-kwargs '{"video": {"fps": 2, "num_frames": 256}}'关键参数含义:--video-pruning-rate 0.5开启上文提到的 EVS 剪枝;fps: 2, num_frames: 256表示每秒抽 2 帧、最多 256 帧。硬件上 1× DGX Spark、1× H200、2× H100 或 1× GB200 即可承载。模型配置全貌可对照 config.json 与 processor_config.json。
总结:一条完整的视觉数据通路
图片 → 动态分辨率缩放 + CLIP 归一化 → 16×16 切块 + CPE 位置编码 → C-RADIO 32 层编码(features / summary) → 2×2 Pixel Shuffle 压缩 → MLP 投影到语言空间 → 替换 <image> 占位符 → 进入 120B MoE 语言模型 视频 → 每 2 帧打包时空 patch → 同上编码 → EVS 剪掉 ~50% 冗余 token → 替换占位符 → 进入语言模型✨ 一句话记忆:C-RADIO 负责"看懂",Pixel Shuffle 负责"省 token",MLP 投影负责"说语言",EVS 剪枝负责"管预算"——四段流水线协同,才让 1200 亿参数的语言模型能同时消化文本、图片与视频。
想进一步阅读源码细节,可以从 modeling_radio.py(视觉塔)和 modeling_nemotron_h_omni.py(多模态融合)两个文件入手。
- 人工智能
- 大模型
- 多模态
- 计算机视觉
- 模型量化
【免费下载链接】NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4
相关推荐
NVIDIA-Nemotron-3.5-Super-VL-120B-A12B如何看懂图片:C-RADIO视觉编码器与PixelShuffle投影器完整解析
NVIDIA Nemotron 3.5 Super VL 120B A12B如何看懂图片:C RADIO视觉编码器与PixelShuffle投影器完整解析 NV
NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4-LiLiCorr完整指南:1.13B轻量草稿模型如何为120B视觉语言大模型加速推理
NVIDIA Nemotron 3.5 Super VL 120B A12B NVFP4 LiLiCorr完整指南:1.13B轻量草稿模型如何为120B视觉语言
人工智能大模型推理模型多模态模型量化NVIDIA-Nemotron-3.5-Super-VL-120B-A12B-NVFP4是什么?一文读懂120B多模态视觉语言模型的12B激活魔法
NVIDIA Nemotron 3.5 Super VL 120B A12B NVFP4是什么?一文读懂120B多模态视觉语言模型的12B激活魔法 NVIDIA
人工智能大模型多模态计算机视觉模型量化
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考