一句话定位

M6(MultiModality-to-MultiModality Multitask Mega-transformer)是阿里达摩院 2021 年初推出的中文超大规模多模态预训练模型:在自建 1.9TB 图像 + 292GB 中文文本语料(M6-Corpus,当时最大中文多模态/文本语料)上用统一 encoder-decoder + 多任务掩码训练,参数从 327M 稠密一路扩到 10B 稠密(M6-10B)与 100B MoE(M6-100B,当时最大中文预训练模型);并首次把预训练模型接 VQGAN 离散码做文生图,在中文 VQA/图像描述/图文匹配上分别超基线 11.8%/18.4/10.3%。其后续工作把同一 MoE 路线推到 1 万亿(M6-T,480 张 V100)乃至 10 万亿参数(M6-10T,512 张 V100、10 天)

背景与定位

2021 年初英文侧已有 GPT-3、UNITER、Oscar、ViLBERT 等大模型与多模态预训练,OpenAI 的 dall-e-1(Ramesh et al., 2021)刚证明「VQVAE 离散码 + 自回归 transformer」可做开放域文生图。但中文侧既缺大规模语料又缺大模型:当时常用的中文 Wikipedia 仅 1.6GB、THUCTC 74 万新闻、CLUECorpus2020 100GB,且都没有图文对。M6 的两条核心贡献正是补这两块短板——

  1. 数据:构建 M6-Corpus,292.4GB 纯文本 + 1.9TB 图像(图像体量甚至大于 ImageNet 的约 1TB),多域、含图文对,号称首个大规模多模态多域中文预训练语料。
  2. 模型 + 工程:用统一 encoder-decoder 框架把单模态/多模态、理解/生成统一进同一套掩码训练;并用阿里自研 Whale 框架 + MoE(参考 gshardswitch-transformer)在 GPU 上把规模拉到 100B,绕开了 Switch/GShard 依赖 TPU + mesh-tensorflow 的限制。

技术脉络上,M6 与同期清华 cogview、微软 godiva、百度 ernie-vilg 同属「中文/统一多模态 + 自回归离散码生成」一波;架构上承袭 BERT/GPT 单流 transformer 与 dall-e-1 的两阶段文生图框架,图像表征改用 patch 特征(借鉴 FashionBERT、ViT)而非主流的目标检测特征。(作者署名为 Alibaba Group + Tsinghua University 联合,清华作者含 Ming Ding、Xu Zou、Jie Tang——即同期 cogview 的核心作者,两项工作存在人员交集。)

模型架构

Backbone:统一 encoder-decoder transformer(单流)。 building block 与 BERT/GPT 相同——self-attention + point-wise FFN;顶部接 word prediction 输出层并与 embedding 权重 tie。

视觉输入:patch 特征而非检测框。 主流多模态预训练用目标检测器(Faster R-CNN)抽 region 特征,但作者发现实际数据(尤其电商图)超 90% 图像物体数 < 5 且高度重叠,检测器质量与表达力会拖累下游。于是改用「切 patch → 用训练好的 ResNet-50 抽 2D patch 特征 → 按位置排成序列」(沿用 FashionBERT/ViT 思路)。文本侧用 WordPiece + masking + embedding(同 BERT)。图像 embedding $e_i$ 与文本 embedding $e_t$ 拼成跨模态序列 $e={e_i, e_t}$,并加 segment embedding 区分模态。

统一编码/解码的掩码设计。 输入切成三段:视觉输入、被掩码的语言输入、完整语言输入。对视觉与被掩码语言输入用双向掩码(编码),对完整语言输入用因果掩码(解码)——同一框架内同时支持编码与解码。

规模与 MoE。 三档(Table 4):

模型layersd_modelheadsexperts参数量
M6-base241024161327M
M6-10B504096128110B
M6-100B241024161024100B

M6-10B 靠加宽加深(稠密);M6-100B 把 FFN 换成 1024 个 expert 的 MoE 层(稀疏激活),用稀疏 gating 把 token 路由到少量 expert,从而在保持单 token 计算量可控的前提下把参数堆到 100B。

文生图(两阶段,承袭 DALL-E)。 第一阶段用 VQGAN(亦可选 VQVAE)把图像编成离散 code 序列;第二阶段在预训练 M6 上加 code embedding 与输出层,把「文本序列 + 图像 code 序列」拼接做自回归语言建模。推理时输入文本,模型用 top-k 采样自回归生成 code,再由 VQGAN 解码器还原图像。

数据

M6-Corpus(论文正文 Table 1 全量统计):292.4GB 文本 + 1.9TB 图像,共 60.5M 图像、111.8B token、419.6M passage。 来源与配比:

  • 纯文本:百科(34.0B token / 65.1GB)、社区问答(113.0B / 28.8GB)、论坛讨论(39.0B / 18.0GB)、Common Crawl(108.7B / 83.3GB)。
  • 图文对:百科(6.5M 图 / 7.9B token / 0.1TB 图 / 15.0GB 文)、爬取网页(46.0M 图 / 9.1B / 1.5TB / 70.0GB)、电商(8.0M 图 / 0.5B / 0.3TB / 12.2GB)。

域覆盖科学、娱乐、体育、政治、生活常识等,号称首个大规模、多模态、多域中文预训练语料;图像体量大于 ImageNet(约 1000GB)。(注:正文另有一张 Table 3 给出图文对子集的另一组口径——60.5M 图 / 17.5B token / 1.9TB 图 / 97.2GB 文,与 Table 1 的图文对小计基本对应。)

清洗与过滤(论文 §2.3):

  • 文本:去 HTML 标记与重复标点,只保留中英文字符与标点;删 < 5 字标题、< 15 字正文;自研垃圾/敏感检测剔除涉政、色情、脏词;用语言模型算困惑度,高困惑度句丢弃
  • 图像:只保留≥ 5000 像素的图;一串分类器 + 启发式规则过滤违法内容;用预训练图像打分器评质量。
  • 图文配对:爬取网页只取「图像 + 其周边文本」作为相关图文对,其余句子丢弃。

文生图微调数据:从手机淘宝收集 5000 万「商品标题–图像」对,用自研白底图检测器 + OCR 滤掉复杂背景图、用基于 Faster R-CNN 的检测器滤掉物体 > 3 的图,最终得 180 万高质量商品图文对微调;另在 300 万互联网通用域爬图上微调验证泛化。图像描述任务自建 E-Commerce IC(约 26 万对),图文匹配自建 E-Commerce ITM(23.5 万服饰商品)。

训练方法

多任务统一预训练(§3.3),靠掩码策略在同一 encoder-decoder 里跑四类任务:

  1. Text denoising(文本去噪):按 15% 比例(同 BERT)掩码,但用单个 mask 掩掉一整段连续文本,模型需解码出整段——既学恢复又学长度预测。
  2. Language modeling(语言建模):encoder 不收输入,decoder 纯按上文自回归生成,增强生成能力。
  3. Image-to-text transfer(≈image captioning):输入 patch 特征、masked 文本留空,编码图像、解码描述。
  4. Multimodality-to-text transfer:在 image-to-text 基础上再加 masked 语言输入,模型据「视觉 + 含噪文本」生成目标文本,适配带图带文的下游任务。

合起来即「text-to-text / image-to-text / multimodality-to-text」三类 transfer,使模型兼具单模态与跨模态的理解与生成。

文生图阶段为两阶段:先训 VQGAN 得离散码,再在预训练 M6 上做自回归 LM 微调(目标即对 code 序列的自回归建模)。

下游均为微调:VQA(FMIQA)、图像描述(E-Commerce IC)、图文匹配(E-Commerce ITM,二分类)、问答/古诗生成等。古诗生成用搜索框架 + 格式约束掩码(每句 5 或 7 字、偶数行等)。

MoE 训练细节(§3.4):用 top-1 gating(对比 top-2,二者 PPL 相近但 top-1 收敛略慢却计算更快);按 Switch Transformer 设 expert capacity $C=\frac{N\cdot c}{m}$ 做负载均衡,超容量 token 被 drop 并经残差连接传到下层;half-precision 通信;local gradient clipping(全局 clip 要跨所有 expert 算 norm、增加 all-to-all 通信成本,故改局部)。作者明确指出负载过载(overloading)可能很严重,是未来 expert 模型的重要问题

Infra(训练 / 推理工程)

  • 稠密扩展(M6-10B):混合精度训练 + activation checkpointing 省显存;单卡放不下,按 Megatron-LM 方式做 model parallelism,切分 FFN 与 attention heads 到多卡。
  • MoE 扩展(M6-100B):用阿里自研分布式框架 Whale(Wang et al., 2020)在 GPU 上实现 expert parallelism(不依赖 TPU/mesh-tensorflow);与 GShard/Switch「每 TPU 一个 expert」不同,M6 在每张 GPU 上放多个 expert 以充分利用显存;MoE 层需 all-to-all 通信分发/聚合 token,故做 half-precision 通信等优化。
  • 实测吞吐:M6-100B(约 100B 参数)在 128 张 NVIDIA A100 上预训练,达 1440 samples/s(序列长 272)。
  • 效率结论:MoE 版能在比 M6-10B 短 2–3 倍的时间内达到与之相当的质量;M6-100B 负对数困惑度 −2.297,M6-10B 为 −2.253(但耗时是前者两倍)。即 MoE 在「时间维度」上优于 FLOPs 多得多的稠密模型。(注:作者脚注说明 M6-10B 多模态训练前先在纯文本上训过,起始 cross-entropy 更低,故该对比待更全面评估。)
  • 后续工程(significance 中的万亿/十万亿)
    • M6-T(arXiv 2105.15082)把规模推到 > 1 万亿参数,仅用 480 张 V100-32GB(对比同期 SOTA 用 2048 TPU core),提出 expert prototyping(把 expert 分成 k 个 prototype、每组各做 top-1 路由,效果近 top-2 而计算近 top-1),1T 模型较同规模基线收敛提速约 5 倍;并实证「负载不均衡未必显著损害模型质量,而 k 与 expert capacity C 更关键」。
    • M6-10T(arXiv 2110.03888)用 Pseudo-to-Real(先跨层共享参数训「Pseudo Giant」省显存快收敛,再 delink 参数做第二阶段)+ Granular CPU offloading,在 512 张 V10010 天训出 10 万亿参数模型(较前 SOTA 大一个数量级),强调更低碳足迹的「greener AI」。

评测 benchmark(把效果讲清楚)

论文以下游任务 + 人评为主,未报告 FID/CLIPScore/GenEval 等标准文生图指标(文生图仅给定性样例)。

  • 视觉问答 FMIQA(人评准确率,Table 5):baseline 66.8 → M6-base 71.0(+6.2%)→ M6-10B 74.7(+5.2%,较 base)。分项(detection/relation/color/number)M6-10B 均最优,如 detection 74.0→83.0、relation 64.5→77.4。Abstract 口径称 VQA 超基线 11.8%
  • 图像描述 E-Commerce IC(人评 0–5,Table 6):grammar 上各模型都高(4.45/4.61/4.70);correctness 与 richness 上 M6-base 大幅超 baseline(+18.2% / +14.4%,即 2.58→3.05、3.12→3.57),M6-10B 再提(3.50 / 3.82)。Abstract 口径称图像描述 +18.4
  • 图文匹配 E-Commerce ITM(准确率,Table 7):InterBERT 81.8 → M6-base 90.2(+10.3%);同规模下 M6 因用 patch 特征(避开商品图检测框少的问题)显著胜过基于检测特征的 InterBERT。
  • 文生图(定性):在淘宝 180 万商品对微调后能生成高分辨率、细节丰富、贴近真实的商品图(西服、跑鞋等);还能「想象」现实不存在的物体(如「军旅风迷彩高跟鞋」),并在 300 万通用域图上泛化(如机器人矢量插图)。无定量指标
  • MoE 消融(§3.4):top-1 vs top-2 gating 的 PPL 相近;M6-100B 较 M6-10B 同质量耗时短 2–3 倍(见 Infra)。M6-T 进一步给出 FLOPs 表与 log-perplexity 曲线,证明在相同 expert capacity 下 k top-1(prototyping)与 top-k 计算量相近但质量更好。

创新点与影响

核心贡献:(1) 构建当时最大的中文多模态/文本语料 M6-Corpus(1.9TB 图 + 292GB 文);(2) 提出统一 encoder-decoder + 多任务掩码的 M6 框架,单套架构覆盖单模态/多模态的理解与生成;(3) 用 patch 特征替代检测特征,规避商品/通用图「物体少」对检测式多模态模型的损害;(4) 在 GPU + 自研 Whale 上实现 100B MoE,绕开 TPU 依赖;(5) 首次把大规模中文预训练模型接 VQGAN 做开放域文生图(电商落地)。

影响:M6 是中文超大规模多模态预训练的早期里程碑,与 cogview/godiva/ernie-vilg 共同推动了 2021 年「中文/统一多模态 + 离散码自回归生成」方向;其 MoE-on-GPU 工程经验直接孕育了后续 M6-T(1T)与 M6-10T(10T)——把稀疏专家模型在有限 GPU 资源下推到万亿/十万亿量级,并贡献了 expert prototyping、Pseudo-to-Real、Granular CPU offloading 等可复用的大模型训练技术。M6 系列也是阿里后续多模态/AIGC(如鹿班设计、通义系列雏形)的技术积累之一。

已知局限:(1) 文生图无定量指标(FID/CLIP 等),生成质量主要靠定性样例与电商窄域;(2) 直接用于 VQA 时,因在伪平行图文对上预训练,对颜色/数量等细节问题回答能力有限,更擅长背景知识类;(3) MoE 负载过载(overloading)问题严重,作者点名为待解难题;(4) 模型与权重未公开(闭源、内部框架 Whale),无官方 GitHub/HF 发布,复现门槛高;(5) 部分效果对比(如 MoE vs 稠密)因纯文本预热不对齐,作者自承需更公允评估。

原始链接

一手源存档(sources/)