当前位置: 首页 > news >正文

Emu3.5 视觉 tokenizer 及其 decoder 的训练过程

下面我把Emu3.5 视觉 tokenizer 及其 decoder 的训练完整过程,按照“论文明确写到的部分”“公开代码能对上的部分”“需要用开源近似路线复现的部分”三层重新整理。先给结论:

结论:Emu3.5 的视觉部分其实不是“一次性训练完一个模块”,而是至少分成两条链路:
第一条是vanilla vision tokenizer的训练:卷积式 encoder/decoder + IBQ 量化器 + 大码本 + 重建/感知/GAN/熵/语义蒸馏联合优化;
第二条是optional diffusion image decoder的训练:以已经量化好的视觉 token 作为条件,再训练一个基于 flow matching 的高保真图像解码器,并额外做 LoRA distillation 来把采样步数从 50 压到 4。论文还单独扩展了视频 decoder,但那已经超出“图像 tokenizer 本体”的最核心训练链。(arXiv)


1. Emu3.5 的 tokenizer 到底训练了什么

从论文第 2.3 节、HF 配置、以及公开的IBQ/quantize代码看,Emu3.5 的视觉 tokenizer 本体由这几部分组成:

  • 卷积式Encoder
  • quant_conv:把 encoder latent 映射到量化空间
  • IBQ / IndexPropagationQuantize
  • post_quant_conv:把量化特征映回 decoder 空间
  • 卷积式Decoder

在公开实现里,IBQ类明确包含encoderdecoderquantizequant_convpost_quant_conv,其前向过程就是encode -> quantize -> decode。HF 配置则给出了关键结构参数:codebook_size=131072embed_dim=256z_channels=256ch=256ch_mult=[1,1,2,2,4]num_res_blocks=4attn_resolutions=[16]。(GitHub)

可以把它概括成下面这张图:

Input image x

Encoder

quant_conv 1x1

IBQ Quantizer
large codebook = 131072

post_quant_conv 1x1

Vanilla Decoder

Reconstructed image x_hat

Discrete token indices

Used later by Emu3.5 LLM

Optional diffusion image decoder

Higher-fidelity reconstructed image

论文明确说其视觉词表大小为131,072,总词表为151,854 文本 token + 131,072 视觉 token = 282,926;同时 tokenizer 相比 Emu3 把同一张图所需 token 数减少到四分之一,但作者也明确承认:512×512 图像仍需要 1024 个 token。(arXiv)


2. tokenizer 训练的完整流程

2.1 数据准备阶段

论文第 5.1 节把 tokenizer 训练数据分成三组:

  1. General:ImageNet、OpenImage、CC3M、CC12M,以及电影、游戏录像、vlog 等自有多域数据。
  2. Aesthetic:来自开源网站的高质量图像。
  3. Specific:专门针对文本与人脸的富集数据。文本侧使用 TextAtlas5M、PosterCraft、LAION 子集;人脸侧通过 RetinaNet 从 Midjourney、COYO-700M、DataComp、JourneyDB 等来源做筛取。(arXiv)

同时,论文明确写了图像预处理与过滤:

  • 去掉分辨率低于512×512的图像;
  • 用图像质量打分器按 sharpness / noise / clarity 做筛选;
  • 用 LAION-AI aesthetic predictor 做审美过滤;
  • 用 watermark detector 去掉带水印样本。(arXiv)

可以把数据流画成:

http://www.jsqmd.com/news/558225/

相关文章:

  • VTK编译踩坑实录:从源码到VS2022可运行环境的完整避坑指南
  • ESP32-S3开发避坑:搞懂Kconfig、Kconfig.projbuild和组件依赖,让你的menuconfig不再混乱
  • Bongo Cat Mver:终极键盘可视化工具完整指南 - 让直播与教学更生动
  • 别再死磕手册了!Nexys A7开发板快速上手指南:从点亮第一个LED到驱动数码管
  • MCP协议实战踩坑:当Claude Desktop遇上n8n 1.93.0的混合通信
  • OpenClaw学术研究:Qwen3.5-4B-Claude自动整理文献综述
  • 如何快速实现Axure RP界面本地化:3步搞定专业级中文汉化完整教程
  • React Native Material Design 项目迁移指南:从旧版本升级到现代方案的完整教程
  • ImageNet2012验证集分类避坑指南:从标签文件获取到Python脚本调试全流程
  • BMAD 开发者的日常如果你正在用
  • 重构Git操作体验:Tig文本界面如何颠覆命令行工作流
  • Vue2 + 百度地图API避坑指南:从AK申请到精准定位,我踩过的坑你别再踩了
  • 信用卡欺诈检测实战:用sklearn实现代价敏感随机森林(含完整代码)
  • mPLUG VQA可解释性分析:注意力热力图可视化+关键区域定位效果展示
  • 2024轻量级跨平台Rust工具集极速部署指南:Windows/macOS/Linux全适配
  • OpenClaw权限管理:GLM-4.7-Flash操作安全控制方案
  • RS-485串口通信实战:从差分信号原理到多节点组网调试
  • Mac开发者必备:OpenClaw与Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF联调指南
  • 百川2-13B模型知识蒸馏:轻量化版本适配OpenClaw移动端
  • 消费级GPU福音:百川2-13B-4bits量化版在OpenClaw中的能效比测试
  • OpenClaw浏览器控制:GLM-4.7-Flash实现自动化数据采集
  • 手把手教你搞定DaVinci DBC配置:从诊断报文到网络管理的避坑指南
  • 华为云之基于DeepSeek构建个性化问答助理【玩转华为云】
  • Agrona Snowflake ID生成器:分布式环境下唯一ID的并发实现
  • 电子元器件失效分析与故障诊断技术指南
  • 融合语音特征与语义特征的 AI 生成文本检测研究
  • PCB设计效率翻倍!我的PCBEditor快捷键与Strokes命令自定义方案(附ENV文件)
  • 【C++】从零实现冒泡排序:原理详解与实战演练
  • CC Switch故障诊断指南:从入门到精通的问题解决手册
  • STM32G474实战:用CubeMX+SPI驱动NRF24L01无线模块,实现点对点数据传输(附完整代码)