SenseNova-U1: Unifying Multimodal Understanding and Generation with NEO-unify Architecture
Paper: arXiv:2605.12500 Code: OpenSenseNova/SenseNova-U1 Code reference:
main@238d6cf(2026-05-18)
1. Motivation(研究动机)
这篇技术报告要解决的是多模态模型里长期存在的“理解”和“生成”分裂问题。主流 VLM 通常把图像理解交给 pretrained Visual Encoder,例如 CLIP/SigLIP/EVA 风格的 encoder,再把视觉特征接入 LLM;图像生成则依赖 VAE/VQ-VAE 或 latent diffusion,把像素压缩成低维 latent 后再去建模。这样的系统能在各自方向上做得很强,但它们的表示空间、训练目标和工程管线是分裂的:理解侧追求语义抽象,生成侧追求高保真重建;理解侧通常优化 language modeling 或 contrastive / instruction following,生成侧优化重建、denoising 或 flow matching。这导致所谓 unified multimodal model 很多时候只是“同一套上层语言模型 + 多套 modality adapter/head”,并没有真正让 pixel 和 word 在同一个原生建模过程里共同演化。
作者认为这个分裂不是简单的工程历史包袱,而是结构性限制。VE 会把视觉输入压缩进一个经过预训练目标塑形的语义空间,VAE 又会把生成目标压缩进另一个以重建为核心的 latent space。两者都会引入固定表示瓶颈:一方面,理解模型可能丢失细粒度像素结构;另一方面,生成模型可能难以直接继承语言推理、空间推理和世界知识。早期 unified models 如 Janus、Show-o、OmniGen、BAGEL 等已经把理解与生成放进共享框架,但仍常常保留不同 tokenizer、diffusion head、discrete visual tokens 或 decoupled pathways。SenseNova-U1 的研究问题更激进:能否完全抛弃 pretrained VE 和 VAE,让模型直接处理 pixels and words,并在一个原生架构内同时完成 perception、reasoning、generation、editing、interleaved generation,甚至 VLA 和 world modeling?
这个问题值得做,是因为它会改变多模态能力的组合方式。如果理解和生成只是两个系统通过 adapter 连接,模型在“看懂图像后再生成图像”时必须做跨表示翻译,容易在语义、布局、文字渲染、跨步一致性上损失信息。若二者共享原生 token/interface 和 shared self-attention,则生成可以直接利用理解过程中形成的语义结构,理解也可以借助生成过程补充视觉推理。论文的目标不是只做一个更强的 text-to-image 模型,而是证明一个 encoder-free、VAE-free、pixel-space 的统一模型可以在多种任务上同时接近或超过强基线:理解侧覆盖 MMMU、MathVista、OCRBench、EASI spatial intelligence 等;生成侧覆盖 GenEval、DPG、OneIG、TIIF、CVTG、LongText、IGenBench、BizGenEval、WISE;编辑侧覆盖 ImgEdit、GEdit、RISE;统一推理侧覆盖 OpenING、VBVR-Image、UniMMMU、RealUnify。

Figure 1 解读:这张性能总览图把 SenseNova-U1 放在“理解、生成、文本密集生成、推理生成、交错生成”等多个坐标系里比较。它的作用不是给出单个 benchmark 的证明,而是说明作者的核心主张:统一架构没有明显牺牲任何一侧能力。对这篇论文而言,真正重要的是“能力面”而非某个单项榜单;若统一模型只在 T2I 强、VQA 弱,或反过来只会理解不会生成,都不能支撑 native unified paradigm 的论证。
2. Idea(核心思想)
核心洞察是:理解和生成不应被视为两个模块化任务,而应被视为同一 pixel-word 建模过程的两个视角。SenseNova-U1 直接把图像拆成近无损的 pixel patches,把文本保留为原 LLM tokenizer 的 word tokens,再让它们进入一个 native Mixture-of-Transformers backbone;理解分支用 autoregressive text loss 学语言和视觉问答,生成分支用 pixel-space flow matching 直接预测像素 patch,而不是先进入 VAE latent。
关键创新可以概括为三件事。第一,Near-Lossless Visual Interface 用两层轻量卷积把 patch 映射到 visual tokens,并用 MLP / flow-matching head 直接回归像素 patch,避免 pretrained VE/VAE 的固定表示瓶颈。第二,Native MoT 在同一序列和 shared self-attention 下处理 clean image/text tokens 与 noisy generation tokens,但为 understanding stream 和 generation stream 保留独立 projection、normalization、FFN/MoE blocks,以降低异质目标冲突。第三,训练上把 autoregressive CE 和 pixel-space flow matching 组合起来,通过四阶段 pretraining/SFT、Stage 5 RL、Stage 6 DMD2 step distillation,让模型同时获得理解、生成、编辑、交错输出和快速推理能力。
与 BAGEL、Janus、Show-o 等已有统一模型相比,SenseNova-U1 的根本差异在于它不把统一建立在离散 visual tokenizer、VAE latent 或额外 diffusion head 上,而是尽量把视觉输入/输出都留在 pixel-level patch space。与传统 VLM 相比,它也不依赖 CLIP/SigLIP 这类视觉 encoder 作为理解入口,因此不是“图像先转语义 embedding,再接 LLM”的结构;它更接近从 pixels and words 的原生数据形态出发,让多模态表示在训练中自组织出来。

Figure 3 解读:这张 overview 展示了 SenseNova-U1 的能力闭环:输入既可以是文字、图像或交错上下文,输出也可以是文本、图像或交错结果。图中最关键的不是任务列表,而是“极轻接口 + 统一 backbone”的设计取向:图像理解不再需要外置 VE,图像生成不再需要 VAE decoder,pixel-word correspondence 通过同一端到端网络形成。
3. Method(方法)
3.1 Overall Framework
SenseNova-U1 建立在 NEO-unify 上,整体由三层构成:视觉接口、Native MoT backbone、训练/推理策略。视觉接口负责把 native pixels 映射为 token sequence,并把 generation stream 的 hidden states 还原成像素 patch;MoT backbone 负责在同一个 self-attention 序列中让文本 token、clean image token、noise-conditioned image token 交互;训练策略则把理解侧 CE loss 与生成侧 pixel-space flow matching loss 合并,再通过 progressive stages 逐步扩展能力。

Figure 4 解读:这张图是论文的主架构图。左侧强调输入不走 pretrained VE,而是经 patch encoding layer 进入模型;右侧强调输出不走 VAE,而是由 patch decoding / flow-matching head 直接预测像素 patch。中间的 MoT backbone 是理解与生成真正共享的地方:shared self-attention 让两类 token 可以在层内交互,而 stream-wise decoupled projections/FFN 避免 CE 与 flow matching 目标直接抢同一组参数。图中的 compression 指每个视觉 token 对应 patch,和 latent diffusion 的 VAE 压缩不同,它不是依赖外部 autoencoder 预训练出的 latent。
直觉上,SenseNova-U1 的设计是在“完全共享”和“完全分离”之间取一个中间点。如果所有参数都共享,理解和生成的目标差异可能导致 interference:文本下一词预测偏离像素速度场回归,clean token 的语义抽象也可能被 noisy token 的 denoising 目标扰动。如果完全分离,系统又退回两个模型用 adapter 连接。MoT 的做法是共享 attention context,让两种能力在信息流上互通;但在 projection、normalization、MLP/MoE 上按 token type 分流,让每个 stream 有自己的非线性变换容量。这也是论文把模型叫 Mixture-of-Transformers,而不只是 mixture-of-experts 的原因。
3.2 Near-Lossless Visual Interface
Patch Encoding Layer 继承 NEO 的做法。给定图像或噪声,模型先用两层 convolution + GELU + 2D sinusoidal / rotary position encoding 生成 visual tokens。论文写明 convolution strides 为 16 和 2,因此最终每个 token 覆盖 patch;图像内容由 <img> 和 </img> 特殊 token 定界。文本不改原 LLM tokenizer,直接进入共享 embedding space。
Patch Decoding Layer 分两类输出:理解流用 linear projection head 输出词表 logits;生成流用 MLP-like head 或 released code 中可选的 FlowMatchingHead / ConvDecoder 直接输出像素 patch。这样做的重点是取消深 VAE decoder 或独立 diffusion U-Net,把生成压力放回统一 backbone。
released code 对应实现很清楚:NEOVisionEmbeddings 先用 patch_embedding = nn.Conv2d(..., kernel_size=patch_size, stride=patch_size) 处理 native patches,再用 dense_embedding = nn.Conv2d(..., kernel_size=downsample_factor, stride=downsample_factor) 合并成更粗的 token;NEOChatModel.patchify() / unpatchify() 负责 image tensor 与 patch sequence 的互转;NEOChatModel.__init__() 按 fm_head_layers 选择 FlowMatchingHead 或 shallow MLP,并在 use_pixel_head 时换成 ConvDecoder。
动态噪声尺度是这篇方法里很重要但容易被略过的细节。因为生成直接发生在 pixel patch space,分辨率越高,generation token 数越多。如果所有分辨率都从单位高斯噪声开始,不同分辨率在同一个 flow timestep 上的 SNR 会不一致。论文定义:
其中 、,Table 2 给出在 时 。released code 在 interleave_gen_image_only() 中根据 grid_h * grid_w / merge_size^2 和 noise_scale_base_image_seq_len 计算同类 resolution-adaptive noise scale,并用 noise_scale_embedder 把归一化尺度加入 timestep embedding。
3.3 Native Multimodal Unified Modeling
SenseNova-U1 的 backbone 使用 improved native primitive。Native RoPE 把 token 的位置拆成 temporal axis 和 spatial axes :文本 token 沿 演化且 ;图像 token 同时带有高度和宽度索引。论文强调它重分配 pretrained LLM head dimensions 到 轴,并为 temporal 与 spatial 使用不同 frequency bases,不增加额外参数。
注意力模式也不是简单 causal attention。文本 rows 仍然 causal,只能看前文;同一个 image block 内的 image tokens 可以双向互看,同时受前文条件约束;noise tokens 可以双向互看并访问 clean inputs;clean tokens 不能访问未来或 noise tokens。这个设计让生成侧能从理解侧读上下文,但不让 noisy generation 反向污染 clean understanding context。released code 中 modeling_qwen3.py 的 image_gen_indicators mask 是关键:非 generation token 走 q_proj/k_proj/v_proj/o_proj、input_layernorm、mlp;generation token 走 q_proj_mot_gen/k_proj_mot_gen/v_proj_mot_gen/o_proj_mot_gen、input_layernorm_mot_gen、mlp_mot_gen。MoE 版本在 modeling_qwen3_moe.py 中为 understanding branch 与 generation branch 分别构造 sparse MoE block。
两种模型配置如下:
| Configuration | SenseNova-U1-8B-MoT | SenseNova-U1-A3B-MoT |
|---|---|---|
| Patch Size | ||
| Pre-Buffer | yes | no |
| Layers | 42 | 48 |
| Heads Q / KV | 32 / 8 | 32 / 4 |
| Head Size T / H / W | 64 / 32 / 32 | 64 / 32 / 32 |
| Hidden Size | 4096 | 2048 |
| Und / Gen Experts | 1 / 1 | 128 / 32, A8 |
| Und / Gen Parameters | 8.2B / 8.2B | 30.0B / 8.2B, A3B |
8B-MoT 是 dense 版本,理解和生成流都是 8B dense networks,包含 shallow Pre-Buffer 来把 raw pixel/text inputs 映射到统一表示。A3B-MoT 是 MoE 版本,没有 Pre-Buffer;understanding stream 128 experts、30B total,generation stream 32 experts、8B total,每个 token top-,因此 inference 激活约 3B 参数。
3.4 Joint Objective and Generation Formulation
总损失为: 理解任务使用标准 next-token prediction: 其中 是第 个文本 token, 是 multimodal context tokens。
视觉生成使用 pixel-space flow matching。对干净图像 和噪声 ,rectified-flow interpolant 是:
模型先预测 clean signal ,再转成 velocity:
生成损失是:
CFG 也被扩展为文本条件和图像条件两项。训练时以 10% 概率 drop text condition,并额外以 10% 概率同时 drop text/image condition。推理时:
论文经验值是 、,并使用 timestep shift 3.0 和 global CFG renormalization。released code 的 examples/t2i/inference.py 默认 cfg_scale=4.0、timestep_shift=3.0;interleaved generation 默认 cfg_scale=4.0、img_cfg_scale=1.0。这与论文公式一致。
论文公式与 released code 实现差异:论文报告 Stage 6 DMD2 将 NFE 从 100 降到 8,但 released examples 的普通 T2I 脚本默认 num_steps=50;README 另说明 8-step preview/LoRA 使用 --cfg_scale 1.0 --num_steps 8。因此代码默认值不是论文最终蒸馏设置,而是通用推理脚本默认配置。另一个边界是 released repo 明确把 “Training code of SenseNova-U1” 标为 ToDo,所以训练 launch scripts/configs 未开源;下面训练超参来自论文 Table 2,而非可执行训练配置文件。
3.5 Progressive Training Procedure
训练不是一次性把所有目标混在一起,而是从理解、生成、联合、SFT、RL、distillation 逐层加能力。
| Stage | 目标 | 关键配置 |
|---|---|---|
| Stage 1 Understanding Warmup | 从 pretrained NEO 初始化,做 attention-fusion 与 full-model continuation | 120K steps,LR ,0.75T tokens,CE:MSE = 1:0,seq length 32768 |
| Stage 2 Phase I | 冻结理解分支,T2I generation pretraining | 120K steps,LR ,0.25T tokens,resolution ,seq length 8192 |
| Stage 2 Phase II | 更高分辨率 T2I continuation | 60K steps,LR ,0.25T tokens,resolution ,seq length 16384 |
| Stage 2 Phase III | 加入 editing、reasoning、interleaved data | 120K steps,cosine ,0.88T tokens,sampling ratio generation/editing/interleave = 0.56/0.37/0.07 |
| Stage 3 Unified Mid-Training | 理解和生成分支端到端联合训练 | 84K steps,LR ,1.19T tokens,understanding/generation/editing/interleave = 0.33/0.37/0.24/0.06, |
| Stage 4 Unified SFT | instruction-following data 上统一 SFT | 9K steps,cosine ,0.13T tokens,同 Stage 3 数据比例 |
| Stage 5 T2I RL | Flow-GRPO 提升 T2I 质量 | text rendering RL 600 epochs;每 epoch prompts,每 prompt images;10-step flow matching;CFG 4.0;noise level 0.7;warmup 200 epochs |
| Stage 6 CFG & Step Distillation | DMD2 加速生成 | NFE 100 8;generator 每 5 次 fake-flow update 更新 1 次; LR , LR ,AdamW betas ,weight decay 0.01 |
Stage 5 的 reward 包括三类:OCR text rendering reward、style following reward、aesthetic reward。OCR reward 用 PaddleOCR 抽取生成文字 与 ground truth ,基于 Counter 多重集合的 IoU: style reward 由 VLM judge 给 并线性映射到 ;aesthetic reward 使用 HPSv3:。统一 general RL 时,Group 1 使用 且 ,Group 2 使用 。作者还冻结 understanding branch、最后三层 transformer 和 generation branch 的 MLP head 来缓解 grid artifacts,并指出未来可用 PixelShuffle + two conv layers 替换 MLP head。
3.6 Data Construction and Inference Infrastructure

Figure 7 解读:这张图对应 understanding corpus 的 midtraining pipeline。它不是简单采样内部数据,而是先用 distribution-balanced sampling 提升长尾覆盖,再用 prompt augmentation 增加语义表达、格式约束、角色场景和任务复杂度,最后用多指标过滤检查正确性、幻觉和 instruction following。这里的设计逻辑是:统一模型若要同时支持 OCR、spatial intelligence、agentic function 和 generation conditioning,理解数据不能只覆盖普通 VQA。

Figure 8 解读:四个 sunburst chart 分别展示 understanding、text-to-image、editing、interleaved 数据分布。论文给出的关键比例包括:pretraining corpus 中 image-text pairs 32%、captions 17%、infographic understanding 14%、pure text 37%;midtraining corpus 中 General 39.2%、Agent and Spatial 22.3%、Knowledge Reasoning 19.3%、Pure Text 19.2%。Interleaved data 中 lifestyle 约 44%、infographics 约 29%、video 约 19%、reasoning 约 8%。这些比例说明 SenseNova-U1 的“统一”很大程度依赖数据混合,而不仅是架构。

Figure 9 解读:generation corpus 使用 low-level filtering、deduplication、VLM captioning、quality filtering 四阶段。T2I 数据覆盖 Nature 约 40.5%、People 约 26.7%、Design 约 20.7%,还加入复杂 infographic 和双语文字渲染;editing 数据按内容覆盖 natural scenes 约 52.3%、human subjects 约 14.7%,并按操作覆盖添加、移除、背景、颜色、身份迁移、motion manipulation、portrait editing、compositing 和 reasoning-driven transformations。

Figure 5 解读:虽然模型对外是 unified API,但实际服务拆成 LightLLM 和 LightX2V 两个 engine。理解路径更像 LLM serving,需要 prefill、streaming、batching、control flow;生成路径是 iterative pixel-space denoising,需要不同并行和内存策略。两者通过 pinned shared memory 交换 generation state。论文报告在 、SenseNova-U1-8B-MoT、TP2+CFG2 下,separate mode 在 5090 和 L40S 上 per-step latency 分别为 0.415s 和 0.443s;README 还报告 H100/H200 单节点 TP2+CFG2 约 0.15s/step、2048×2048 约 9s end-to-end。

Figure 6 解读:hybrid attention kernel 保留 pure-text causal fast path,只在 M-block 包含 image tokens 时把 key range 扩展到 image-span end。这样 text rows 仍符合 autoregressive decoding,而 image rows 能访问完整 text prefix 和 image span。released code 中 create_block_causal_mask(indexes[0]) 与 image indexes 的构造反映了这种基于 index 的 mask 机制;论文还说明实现包含 Triton kernel 和 modified FlashAttention3 backend。
3.7 Pseudocode Based on Released Code
import torch # 引入 PyTorch 张量接口,用于表达 released code 中的 patch 化、噪声采样和速度更新
import torch.nn.functional as F # 引入函数式接口,用于表达激活和归一化等伪代码操作
def near_lossless_visual_interface(pixel_values, conv_patch, conv_merge, rope2d, grid_hw): # 模拟 NEOVisionEmbeddings.forward 的视觉编码入口
patches = pixel_values.view(-1, 3, 16, 16) # 把原图按 16x16 native patches 展开,匹配 released code 的 patch_embedding 输入形状
patch_embeds = F.gelu(conv_patch(patches)).view(-1, conv_patch.out_channels) # 用第一层卷积提取局部像素特征,并用 GELU 引入非线性
patch_embeds = rope2d(patch_embeds, grid_hw) # 给每个 patch 注入二维空间位置,避免视觉 token 丢失行列结构
merged_tokens = conv_merge(repack_by_image_grid(patch_embeds, grid_hw)) # 用第二层卷积把相邻 patch 合并成 32x32 对应的视觉 token
visual_tokens = flatten_image_grid(merged_tokens, grid_hw) # 把每张图的二维 token grid 拉平成序列,供统一 backbone 处理
return visual_tokens # 返回 near-lossless visual tokens,后续与文本 token 投影到共享 embedding 空间
def mot_decoder_layer(hidden_states, image_gen_indicators, attn_und, attn_gen, mlp_und, mlp_gen): # 模拟 Qwen3DecoderLayer 中按 token type 分流的 MoT 层
und_mask = ~image_gen_indicators # 标记 understanding/text/clean image tokens,让它们走理解分支参数
gen_mask = image_gen_indicators # 标记 noisy generation tokens,让它们走生成分支参数
mixed_states = torch.empty_like(hidden_states) # 预分配输出张量,用于把两条 stream 的结果合并回原序列
mixed_states[und_mask] = attn_und(hidden_states[und_mask]) # 理解 token 使用理解分支的 QKV/O projection 和 normalizations
mixed_states[gen_mask] = attn_gen(hidden_states[gen_mask]) # 生成 token 使用 generation-specific QKV/O projection 和 normalizations
hidden_states = hidden_states + mixed_states # 将注意力输出残差加回 token 表示,使两个 stream 共享上下文但不共享所有变换
mixed_ffn = torch.empty_like(hidden_states) # 预分配 FFN 输出,用于执行 stream-wise MLP 或 MoE 路由
mixed_ffn[und_mask] = mlp_und(hidden_states[und_mask]) # 理解 token 进入 understanding MLP/MoE,保持语言和视觉理解能力
mixed_ffn[gen_mask] = mlp_gen(hidden_states[gen_mask]) # 生成 token 进入 generation MLP/MoE,专门拟合 pixel-space flow 目标
return hidden_states + mixed_ffn # 返回合并后的 token sequence,供下一层继续跨模态交互
def pixel_flow_generation_step(model, image_prediction, text_cache, token_h, token_w, cfg_scale, img_cfg_scale, t, t_next): # 模拟 interleave_gen_image_only 中一次 Euler denoising step
z = model.patchify(image_prediction, model.patch_size * model.merge_size) # 把当前图像估计切成 32x32 patch 序列,作为 flow state
image_input = model.patchify(image_prediction, model.patch_size, channel_first=True) # 以 16x16 patch 形式重新编码图像,供视觉接口提取 token
image_embeds = model.extract_feature(image_input, gen_model=True) # 调用 generation vision model 得到 noisy image tokens
timestep_embeds = model.timestep_embedder(torch.full((token_h * token_w,), t, device=z.device)) # 为每个生成 token 构造 timestep embedding
image_embeds = image_embeds + timestep_embeds # 把时间条件加到生成 token 上,让模型知道当前 flow 位置
out_cond = model.predict_v(image_embeds, text_cache.cond, t, z) # 在完整文本和图像条件下预测 velocity
out_img_cond = model.predict_v(image_embeds, text_cache.image_only, t, z) # 去掉文本条件后预测 velocity,用于分离文本 guidance
out_uncond = model.predict_v(image_embeds, text_cache.uncond, t, z) # 去掉文本和图像条件后预测 velocity,用于无条件基线
v_pred = out_uncond + cfg_scale * (out_cond - out_img_cond) + img_cfg_scale * (out_img_cond - out_uncond) # 合成双条件 CFG velocity
z_next = z + (t_next - t) * v_pred # 使用 Euler step 沿 rectified-flow ODE 更新 patch state
image_next = model.unpatchify(z_next, model.patch_size * model.merge_size, image_prediction.shape[-2], image_prediction.shape[-1]) # 把更新后的 patch 序列还原成图像张量
return image_next # 返回下一 timestep 的图像估计
def unified_interleaved_generation(model, tokenizer, prompt, input_images, max_images, image_size): # 模拟 interleave generation 的文本和图像交错流程
query = build_dialogue_with_image_tokens(prompt, input_images) # 将用户 prompt 和已有图片转换为带 <image> 占位符的对话模板
prefix_cache = model.prefill_text_and_clean_images(tokenizer, query, input_images) # 先对文本和 clean image 做 multimodal prefill,形成上下文 KV cache
generated_text = model.generate_think_or_answer(prefix_cache) # 按 think / no-think 协议生成文本片段或 reasoning trace
generated_images = [] # 初始化输出图片列表,用于保存每次遇到 image slot 时的生成结果
for image_slot in range(max_images): # 逐个处理输出中的图像占位,保持多步 interleaved trajectory 的顺序
if not should_generate_image(generated_text, image_slot): # 如果当前文本没有请求新图像,就跳过该 slot
continue # 保持已有文本上下文不变,进入下一个潜在图像位置
image = sample_pixel_flow_image(model, prefix_cache, image_size) # 在当前上下文 cache 下运行 pixel-space flow matching 生成图像
generated_images.append(image) # 保存新生成图像,供最终 interleaved answer 使用
prefix_cache = model.append_image_to_cache(prefix_cache, image) # 把生成图像重新编码并追加到 cache,使后续文本/图像能引用它
generated_text = generated_text + model.continue_text(prefix_cache) # 继续生成后续文本,让语言轨迹和图像轨迹相互条件化
return generated_text, generated_images # 返回交错文本和图像序列,体现 understanding 与 generation 的双向协同Code reference:
main@238d6cf(2026-05-18) — pseudocode and mapping based on this commit
| Paper Concept | Source File | Key Class/Function |
|---|---|---|
| Near-lossless patch encoding | src/sensenova_u1/models/neo_unify/modeling_neo_vit.py | NEOVisionEmbeddings, NEOVisionModel |
| Patchify / unpatchify pixel interface | src/sensenova_u1/models/neo_unify/modeling_neo_chat.py | NEOChatModel.patchify, NEOChatModel.unpatchify |
| Generation flow head | src/sensenova_u1/models/neo_unify/modeling_neo_chat.py, modeling_fm_modules.py | FlowMatchingHead, ConvDecoder, NEOChatModel._t2i_predict_v |
| Dynamic noise scale and noise-scale embedding | src/sensenova_u1/models/neo_unify/modeling_neo_chat.py | noise_scale_mode, noise_scale_embedder, interleave_gen_image_only |
| Native MoT stream routing | src/sensenova_u1/models/neo_unify/modeling_qwen3.py | image_gen_indicators, Qwen3DecoderLayer, q_proj_mot_gen, mlp_mot_gen |
| A3B MoE branch split | src/sensenova_u1/models/neo_unify/modeling_qwen3_moe.py | Qwen3MoeDecoderLayer, Qwen3MoeSparseMoeBlock, gen_num_experts |
| T2I inference defaults | examples/t2i/inference.py | SenseNovaU1T2I.generate, cfg_scale=4.0, timestep_shift=3.0, num_steps=50 |
| Interleaved generation defaults | examples/interleave/inference.py | SenseNovaU1Interleave.generate, cfg_scale=4.0, img_cfg_scale=1.0 |
| VQA / understanding inference | examples/vqa/inference.py | SenseNovaU1VQA.answer, load_image_native, model.chat |
| Released training config status | README.md | ToDo: Training code of SenseNova-U1; training numbers not verifiable from launch scripts |
4. Experimental Setup(实验设置)
4.1 Datasets and Training Data
论文没有给出所有训练集的样本条数,而是主要报告训练 tokens、数据比例和能力类别;因此这里按论文可验证信息记录,不补造 sample count。
训练数据分为 understanding、generation、editing、interleaved 四大类。Understanding pretraining corpus 包括 image-text pairs 32%、captions 17%、infographic understanding 14%、pure text 37%。Midtraining 主要来自内部 SenseNova V6.5 数据,General 39.2%、Agent and Spatial 22.3%、Knowledge Reasoning 19.3%、Pure Text 19.2%;General 内部又包括 general VQA 26.6%、multi-turn dialogue 26.4%、captioning 20.3%、OCR 18.6%、multi-image understanding 8.2%;Knowledge Reasoning 包括 knowledge-oriented 12.0%、reasoning-oriented 7.2%。SFT corpus 按能力原子维度组织:spatial intelligence 约 15%、general multimodal understanding 约 13%、reasoning 约 12%、general NLP 约 11%、OCR/document analysis 约 11%、agentic function calling 约 10%、long-context conversation 约 8%、code 约 6%、multi-turn dialogue 约 4%、complex compositional understanding 约 4%。
Generation corpus 覆盖 T2I、image editing、interleaved image-text。T2I 中 Nature 约 40.5%、People 约 26.7%、Design 约 20.7%,并包含 complex infographics、bilingual text rendering、posters、charts、cityscapes 等长尾。Editing corpus 以 web-scale 数据为主,content 侧 natural scenes 约 52.3%、human subjects 约 14.7%,operation 侧覆盖 add/remove/background/color/identity/motion/portrait/composition/reasoning edits。Interleaved corpus 覆盖 Video、Lifestyle、Infographics、Reasoning;Lifestyle 约 44%,Infographics 约 29%,Video 约 19%,Reasoning 约 8%。
训练 tokens 方面,Stage 1 为 0.75T,Stage 2 三个 phase 分别为 0.25T、0.25T、0.88T,Stage 3 为 1.19T,Stage 4 为 0.13T。Seq length 为 Stage 1/3/4 的 32768,Stage 2 Phase I 的 8192,Stage 2 Phase II/III 的 16384。
4.2 Baselines and Benchmarks
理解侧 benchmarks 包括 MMMU、MMMU-Pro、MathVista mini、MathVision、MMBench-EN、MMStar、InfoVQA、OCRBench-v2、AI2D、OCRBench、HallusionBench、BabyVision、TiR、VSI-Bench、ViewSpatial、MindCube-Tiny、3DSR-Bench。文本/agentic benchmarks 包括 MMLU-Pro、MMLU-Redux、C-Eval、SuperGPQA、IFEval、IFBench、Tau2、Claw eval。主要 baselines 包括 Qwen3VL-8B/30BA3B、Qwen3.5-9B/35BA3B、Gemma4-26BA4B、LongCat-Next 等。
生成侧 benchmarks 包括 GenEval、DPG-Bench、OneIG-EN/ZH、TIIF short/long、CVTG-2K、LongText-Bench、IGenBench、BizGenEval、WISE。对比方法覆盖 GPT-Image-1/1.5、Seedream 3/4/4.5、Nano-Banana/Pro、Qwen-Image、Z-Image、Tuna、Tuna-2、NEO-unify、OneCAT、Mogao、Lumina-DiMOO、InternVL-U、BAGEL、Janus-Pro、OmniGen2、UniWorld-V1、Show-o2、SD3-Medium、FLUX.1-dev 等。
编辑与交错生成 benchmarks 包括 ImgEdit、GEdit-Bench、RISEBench、OpenING、VBVR-Image Preview、UniMMMU GaU、RealUnify。指标包括 overall score、dimension-level score、Q-ACC/I-ACC、text accuracy、UEG/GEU average 等。
4.3 Evaluation and Inference Settings
多模态和纯文本理解使用 EvalScope,采用 LLM-as-a-judge 的 llm_recall strategy,judge model 是 gpt-4o-mini-2024-07-18。标准 inference setup 为 temperature=0.6、top_p=0.95、top_k=20、repetition penalty=1.00,max sequence length 40960,request timeout 600s,并启用 internal reasoning (enable_thinking: true)。Spatial intelligence 使用 EASI;VSI-Bench 对所有模型默认 32 input frames,但 Qwen variants 使用 128-frame input 才达到最佳结果,表中以星号标记。
图像生成实验中,因模型使用 downsampling ratio,作者生成 2K images,再 downsample 到 1K 进行可比评估。T2I released examples 默认支持 2048×2048、2720×1536、1536×2720 等多个 buckets;interleaved examples 默认分辨率为 16:9 的 2048×1152,并根据输入图 smart resize 到 32 对齐。训练硬件规模论文未详细说明;推理 infrastructure 报告了 5090、L40S、H100/H200 的 serving latency,但不是完整训练硬件配置。
5. Experimental Results(实验结果)
5.1 Understanding and Text Results
SenseNova-U1 的理解侧核心结论是:即使没有为 understanding 做专门 RL,它仍能接近或超过同规模 encoder-based VLM。8B-Think 在 MMMU 74.78、MMMU-Pro 67.69、MathVista mini 84.20、MathVision 75.82,而 Qwen3VL-8B-Think 分别为 74.10、60.40、81.40、62.70。A3B-Think 在 MMMU 80.55、MMMU-Pro 72.83、MathVista mini 85.30、MathVision 79.63,也明显超过 Qwen3VL-30BA3B-Think 的 76.00、63.00、81.90、65.70。
OCR 和空间智能也支持 encoder-free design 没有丢掉细粒度视觉结构。A3B-Think 在 OCRBench-v2 达到 68.64,OCRBench 达到 91.90,AI2D 达到 92.23;8B-Think 在 VSI-Bench 达到 62.66,高于 Qwen3VL-8B 的 56.61* 和 Qwen3.5-9B 的 55.67*,在 ViewSpatial 为 56.19、MindCube-Tiny 为 62.01、3DSR-Bench 为 64.88。A3B-Think 在 MindCube-Tiny 达到 70.86,表明 Native RoPE 和 pixel-level interface 并没有明显削弱几何/空间结构。
纯文本方面,A3B-Think 在 MMLU-Pro 84.04、MMLU-Redux 89.44、C-Eval 85.89、SuperGPQA 59.71;8B-Think 分别为 81.44、87.61、84.40、49.67。Instruction following 是亮点:8B-Think IFEval 91.13、IFBench 67.01;A3B-Think IFEval 92.39、IFBench 79.79,其中 IFBench 明显高于 Qwen3VL 系列的 29.93/34.69。Agentic function 上,A3B-Think Tau2 为 75.39、Claw eval 为 58.50;8B-Think Tau2 为 71.70、Claw eval 为 58.90。这说明 unified multimodal training 没有毁掉 LLM 的文本和工具推理能力。
5.2 Image Generation, Text Rendering, and Infographics
GenEval 上,SenseNova-U1-A3B-MoT 与 SenseNova-U1-8B-MoT overall 都是 0.91。8B 在 Single Object 1.00、Two Object 0.96、Counting 0.92、Colors 0.92、Position 0.91、Attribute Binding 0.76;A3B 为 1.00、0.96、0.89、0.91、0.92、0.77。它们超过 Qwen-Image 0.87、Lumina-DiMOO 0.88、BAGEL 0.82,也高于 GPT-Image-1/Seedream 4.0/Seedream 3.0 的 0.84 overall。
DPG-Bench 上,A3B-MoT overall 88.14,其中 Global 94.19、Entity 92.05、Attribute 91.05、Relation 93.22、Other 93.44;8B-MoT overall 87.78,其中 Attribute 92.43、Relation 92.43、Other 92.50。A3B 的 Global 94.19 是一个重要信号:模型的 semantic planning 和整体场景组织能力强,而不是只在局部纹理或文字渲染上好。
OneIG-Bench 上,8B 在英文 track overall 0.549,Alignment 0.882、Text 0.969、Reasoning 0.330、Style 0.396、Diversity 0.166;A3B overall 0.543,Alignment 0.887、Text 0.861、Reasoning 0.317、Style 0.458、Diversity 0.194。中文 track 中,A3B overall 0.540,8B overall 0.535;8B 的中文 Text 为 0.977,A3B 的中文 Text 为 0.906。TIIF short 上,8B overall 89.74、A3B 89.25;TIIF long 上,8B overall 89.17、A3B 87.36。CVTG-2K 上,8B 的 NED 0.972、CLIPScore 0.825、word accuracy average 0.940;A3B 的 average 为 0.881。LongText-Bench 上,8B 达到 EN 0.979、ZH 0.962,A3B 达到 EN 0.950、ZH 0.955。
Infographic 任务更能体现统一模型的实用价值。IGenBench 上,8B Q-ACC 0.51、I-ACC 0.04,A3B Q-ACC 0.42、I-ACC 0.02,均高于 Qwen-Image 的 0.36/0.01 与 Z-Image-Turbo 的 0.35/0.00。BizGenEval 上,8B 的 hard/easy average 为 39.7/61.7,Layout 61.6/81.6、Attribute 47.5/72.8、Text 46.3/74.6、Knowledge 3.5/17.9;A3B average 为 28.2/51.9。这里 hard split 仍然很低,尤其 Knowledge 维度只有个位数到十几分,说明商业图文生成里“知识正确 + 结构布局 + 文本渲染”仍是当前模型的短板。
WISE 上,A3B-SFT 无 CoT overall 0.74,w/ CoT 提升到 0.81;8B-SFT 无 CoT 0.69,w/ CoT 0.78。A3B w/ CoT 在 Cultural 0.81、Time 0.77、Space 0.84、Biology 0.81、Physics 0.84、Chemistry 0.82。这支持作者关于“显式 reasoning trace 能增强生成”的说法,因为 CoT 不只是让语言答案更好,也改变了图像生成中的知识检索和多步约束分解。
5.3 Editing, Interleaved Generation, and Unified Reasoning
ImgEdit 上,A3B overall 3.91,8B overall 3.90。A3B 在 Add 4.03、Adjust 4.10、Replace 4.27、Remove 3.91、Background 4.06、Style 4.92、Hybrid 2.87、Action 4.29;8B 在 Add 3.83、Adjust 4.15、Extract 3.12、Replace 4.32、Background 4.18、Style 4.85、Hybrid 3.03、Action 4.41。GEdit-Bench 上,8B 的 EN total 8.27、PS 7.49、PQ 7.47;A3B 为 8.07、7.36、7.32。论文承认相对最强专用 editing models 仍有差距,尤其复杂 hybrid edit 和大幅变换下的内容保持,这主要受当前 editing data 规模和 preference alignment 限制。
RISEBench 上,A3B-SFT 无 CoT overall 25.3,w/ CoT 到 30.0;8B-SFT 无 CoT 23.9,w/ CoT 到 26.9。A3B 的 Logical 从 7.1 提升到 20.0,Causal 从 41.1 到 46.7;8B 的 Causal 从 33.3 保持,Temporal 从 22.4 到 31.8。这个结果说明 reasoning-driven editing 不只是“执行编辑命令”,而是先推断隐含因果、时间、空间或逻辑关系,再把推断结果转成图像修改。
OpenING 上,A3B-SFT w/ CoT overall 9.16,Complete 9.27、Quality 9.11、Richness 8.45、Correct 9.16、Human Align 9.40、IT Coherency 9.55、Multi-step 9.21;8B-SFT w/ CoT overall 9.07。这比 GPT-4o+DALL-E3、Wan-Weaver、Nano Banana 等强系统更高,说明单一模型的 interleaved trajectory 能保持较好的长期一致性。VBVR-Image Preview 上,A3B-SFT overall 68.9,8B-SFT 68.8,超过 Nano-Banana-2 的 62.3 和 GPT-Image-2 的 60.1,也高于 ThinkMorph/VBVR-BAGEL 系列。
UniMMMU GaU 上,8B-SFT Avg 35.0,Jigsaw-T 87.3、Maze-T 28.6、Sliding-T 0.0、Geometry-T 24.2;A3B-SFT Avg 32.6,Jigsaw-T 88.0、Maze-T 34.0、Sliding-T 1.2、Geometry-T 7.1。RealUnify 上,8B-SFT Avg 52.4,其中 Avg-UEG 55.7、Avg-GEU 47.5;A3B-SFT Avg 50.5,其中 Avg-UEG 52.8、Avg-GEU 47.0。这些结果是论文对“understanding enhances generation”和“generation enhances understanding”的直接证据,但 UniMMMU 中 Sliding-T 接近 0 也提醒我们,生成辅助理解在复杂多步结构任务上仍不稳定。
5.4 Ablation and Limitations

Figure 10 解读:重建实验用于验证 near-lossless interface 是否真的能保留像素信息。NEO-unify 2B 在 frozen understanding branch 下,MS-COCO 2017、512 resolution、downsampling ratio 32 时达到 31.56 PSNR、0.85 SSIM;对比 FLUX.1-dev VAE 在 512 resolution、downsampling ratio 8 时为 31.56 PSNR、0.93 SSIM。PSNR 持平但 SSIM 低一些,说明 pixel-level fidelity 足够强,但结构相似性仍不如成熟 VAE。

Figure 11 解读:这张图展示 frozen understanding branch 下的 editing 能力。它的意义在于验证理解分支提供的条件上下文足以驱动生成分支合成目标图像,即便理解分支不随 editing 目标更新。论文报告 NEO-unify 2B 只用公开 T2I 和 editing 数据,在 60K-step mixed training 后 ImgEdit score 达到 3.32。

Figure 12 解读:这张图观察 joint mid-training 中 understanding 与 generation 是否冲突。作者的结论是,即使 understanding data ratio 较低、CE loss weight 只有 0.1,理解能力仍基本稳定,而生成能力快速收敛。这支持 stream-wise parameter decoupling 的必要性:shared attention 提供跨模态交互,分支参数吸收目标差异。
Figure 13a-13d 解读:四个子图分别是 DPG-Bench、WISE、GEdit-Bench、RISEBench 的 data-scaling curves。它们共同说明 8B-MoT 在 generation quality、reasoning generation、general editing、reasoning editing 上都随数据规模增加而改善,而不是只有某一类任务受益。作者设置 DPG-Bench resolution 为 512,其他任务为 1024,这一点影响不同曲线的绝对可比性。

Figure 14 解读:VLA 可视化不是严格量化 benchmark,而是展示模型对 robotic manipulation video 的动作状态理解。每个例子从视频里均匀取四帧,要求模型理解时序进展、物体状态和操作轨迹。这为论文最后提出的 embodied roadmap 提供初步证据,但还不能等同于闭环机器人控制能力。

Figure 15 解读:world modeling 可视化要求模型根据当前图像和 action-oriented instruction 预测后续视觉状态。图中例子显示它能保持场景一致性并做出合理状态变化,但论文仍称其为 preliminary evidence。严格来说,这还不是完整的 dynamics model 评测,缺少 rollout stability、action-conditioned consistency、多步误差累积等指标。
总体限制有四类。第一,training code 未发布,released repo 主要是 inference、evaluation 和 model definitions;训练超参只能从论文 LaTeX 表格核验,不能从 launch config 复现。第二,editing 仍弱于专用编辑系统,作者归因于 editing data 和 preference alignment 不足。第三,text-rich/infographic generation 虽然在开源模型中领先,但 BizGenEval Knowledge hard 只有 3.5/2.0,IGenBench I-ACC 也只有 0.04/0.02,说明真正结构化商业内容还远未解决。第四,VLA 和 world modeling 是可视化性质的初步结果,不应过度解读为已具备稳健 embodied planning。
结论上,SenseNova-U1 的贡献不在单点 SOTA,而在把 encoder-free understanding、VAE-free generation、MoT stream decoupling、pixel-space flow matching、interleaved generation 组合成一个相对完整的 native unified paradigm。它证明统一架构至少可以在大范围任务上不明显牺牲理解或生成能力,并且在文本密集生成、推理生成、交错生成上出现了统一模型特有的收益。