Ming-UniVision
首个基于连续统一视觉Tokenizer的多模态大模型,一套架构同时搞定图像理解和生成
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
首个基于连续统一视觉Tokenizer的多模态大模型,一套架构同时搞定图像理解和生成
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一个场景:摄影师将一张清晨街景照片上传到系统中,向 AI 提问「这张照片中的咖啡馆招牌写了什么?」——AI 不仅准确回答了文字内容,还根据上下文生成了一段氛围相同的黄昏版本照片,招牌上自动替换成了新的内容。整个过程在同一个神经网络中完成,没有离散量化,没有像素解码器来回转换。这听起来像是科幻小说,但 Ming-UniVision 正在将这一想象变成现实。
过去几年,视觉-语言模型(VLM)领域取得了惊人的进展。然而,大多数系统在设计上存在一个根本性的「分裂」:理解任务(看图说话、视觉问答)和生成任务(文生图、图生图)往往依赖两套完全不同的技术栈。理解模型通常用 CLIP 视觉编码器提取特征,生成模型则用 VAE 或 diffusion 自编码器将像素压缩为离散 token,再由扩散模型解码回像素。两套系统在特征空间中「说不同的语言」,导致跨任务迁移困难、训练效率低下。
这一困境催生了大量「统一架构」的探索:从 UniTok 的离散统一 tokenizer,到 TokenFlow 的连续空间建模,再到本文主角——MingTok / Ming-UniVision。这支来自 inclusionAI 的团队选择了一条少有人走的技术路线:连续统一视觉 tokenizer + 自回归生成范式,不依赖离散量化,不借助扩散解码,用标准的 next-token prediction(NTP)框架完成图像理解和生成两大任务。

图1:MingTok 整体架构。MingTok-Vision 作为连续统一视觉 tokenizer,同时服务于理解和生成两条链路。
MingTok 的核心创新在于其「三合一」的 tokenizer 设计,包含三个精心设计的组件:
(1)低层级编码器(Low-Level Encoder)
这是整个 tokenization 流水线的入口。编码器将原始图像 patch 化后,通过 ViT(Vision Transformer)架构提取低层视觉特征。代码位于 mingtok/vision_transformer/vision_transformer.py,采用了分层注意力机制(layers/attention.py 中的 FlashAttention2 优化实现)。与标准 ViT 不同的是,这里的 encoder 输出并非直接用于分类,而是为后续解码器提供细节保真度极高的中间表征。
(2)语义解码器(Semantic Decoder)
语义解码器负责将低层特征「提炼」为语义丰富的表征。这一步对于视觉-语言对齐至关重要——只有语义特征足够强,模型才能理解「咖啡馆招牌上的文字是 La Maison」这类细粒度信息。解码器引入了 Swin-FFN 前馈网络结构(layers/swiglu_ffn.py),在保持计算效率的同时提升了特征表达能力。
(3)像素解码器(Pixel Decoder)
这是生成任务的关键。像素解码器将连续 latent 表征重建为逼真的像素图像。值得注意的是,这里的设计避免了对扩散模型的依赖——所有解码过程均为单步前向计算,推理速度远快于需要多步迭代的 diffusion 方法。
三者的协同工作使得 MingTok 能够在 256 个连续 token 内压缩 512×512 的图像(rFID = 0.38,PSNR = 31.09),同时保留足够的语义信息和感知质量。这在同类连续 tokenizer 中属于领先水平。
Ming-UniVision 并非简单地将 MingTok 嫁接到 LLM 上。其核心设计理念是:视觉 token 和文本 token 共享同一个连续 latent 空间,无需任何离散化处理,直接进行 next-token prediction。
从 mingunivision/mingunivisioninfer.py 的推理代码可以看到,模型加载流程大量依赖 HuggingFace Transformers 生态:
model = MingUniVisionForConditionalGeneration.from_pretrained(
model_name_or_path,
torch_dtype=torch.bfloat16,
attn_implementation="flash_attention_2",
device_map="cuda"
)
这种集成方式意味着 Ming-UniVision 可以直接复用 HuggingFace 生态的工具链——AutoProcessor 自动处理图像预处理和文本 tokenization,AutoTokenizer 处理文本输入。对于已经熟悉 HuggingFace 的开发者来说,上手成本极低。
模型支持三种推理精度:
推理过程中还使用了 FlashAttention2 优化注意力计算,配合 vLLM 高效服务化框架(requirements.txt 中包含 vllm),在生产环境中可以实现高吞吐量的批量推理。

图2:Ming-UniVision 在统一连续 latent 空间内实现图像理解、生成和编辑的多任务协同。
对于非技术用户,项目提供了开箱即用的 Gradio Web UI。app.py 实现了完整的前端交互界面:
is_image_generation_request() 函数,自动识别用户意图是「理解」还是「生成」启动方式非常简洁:直接运行 python app.py,默认监听 127.0.0.1:7891,加上 --share 参数即可生成 Gradio 公共链接供外部访问。加上 --mcp_server 参数可启用 MCP 服务,与 AI Agent 系统集成。
代码还内置了上传图像的 UUID 命名和临时文件管理(save_uploaded_image() 函数),确保并发使用时的文件隔离。
从 requirements.txt 可以完整还原项目的技术栈:
| 组件 | 技术选型 | 作用 |
|---|---|---|
| 深度学习框架 | PyTorch 2.7.0 | 底层计算引擎 |
| 预训练模型生态 | Transformers 4.52.4 | LLM 和视觉编码器集成 |
| 注意力优化 | FlashAttention2 | 加速 Transformer 前向传播 |
| 量化支持 | bitsandbytes + optimum-quanto | INT8/INT4 模型压缩 |
| 高效推理 | vLLM | 生产环境批量推理 |
| Web UI | Gradio | 可视化交互界面 |
| 多模态处理 | diffusers 0.33.0 | 扩散模型兼容(生成增强) |
| PEFT | peft 0.13.2 | 参数高效微调 |
| 语音支持 | funasr + Whisper | 语音输入处理 |
| 音频处理 | librosa + soundfile + av | 音频信号处理 |
项目代码组织清晰,采用模块化设计:
mingtok/:连续视觉 tokenizer 的核心实现mingunivision/:MingUniVision 多模态推理封装ming_sdk/:面向开发者的 SDK 封装(Ming 类)talker/:对话管理模块sentence_manager/:句子/文本管理vllm/:vLLM 推理后端配置优势方面,MingTok 的连续统一空间设计带来了显著的训练收益:由于理解和生成共享表征,任务间的冲突被大幅降低,论文中报告了 3.5 倍的训练收敛加速。此外,纯自回归架构意味着整个推理过程是一次前向传播,无需 diffusion 的多步迭代,理论上效率更高。
局限方面,当前的连续 tokenizer 在某些极端细节重建任务上(如高频率纹理、微小文字边缘)仍可能弱于专门优化的离散 tokenizer(如 SD-VAE 的 decoder)。此外,作为 2025 年 10 月才发布的项目,生态工具链(如 LangChain / LlamaIndex 集成)仍在建设中。模型权重通过 HuggingFace 和 ModelScope 分发,部署流程需要手动拉取大文件(16B 参数模型)。
MingTok / Ming-UniVision 的出现,标志着多模态大模型在「架构统一」方向上迈出了实质性一步。它证明了连续视觉表征不仅可行,而且在某些维度上优于离散量化方案——PSNR 30.77 + rFID 0.38 的重建质量已经接近甚至超越了不少离散 tokenizer。
更重要的是,它将图像理解和生成统一在同一套自回归范式下,这意味着未来的多模态 Agent 可以在单一框架内完成「看图→理解→推理→生成→再理解」的闭环,而无需在多个异构系统之间切换。这种统一性对构建真正通用的视觉智能体具有深远意义。
从增长曲线来看,该项目发布于 2025 年 10 月,短短几个月内已获得 143 颗 GitHub Stars,且技术报告已在 arXiv 发布。随着后续版本迭代和社区生态的丰富,其影响力有望持续扩大。