想象一家二十四小时营业的传奇后厨,门口只贴着一行告示:“本店只认码料盒。”客人点新菜(文字描述)、递来一张照片要做成动态招牌(图片)、端来一盘旧菜想换个口味(视频风格化),帮厨们的动作都一样:洗、切、码盒、贴编号。主厨不看原料原貌,只按编号顺序把盒子一个个下锅。他的全部功力,就是看着已经下锅的盒子,推演下一个盒子该是什么。这就是谷歌 VideoPoet 的哲学——把文生视频、图生视频、视频风格化、视频续写这些五花八门的任务,统统翻译成同一种“码料盒语言”,交给同一个语言模型来逐一预测。本文带你走进这间后厨,看懂它如何用一套统一方案,把多任务视频生成变成“切丁、推演、上菜”三件事。
对 AI 从业者而言,理解统一建模思路与 token 化流程,是判断 AIGC 产品选型、评估多任务视频生成能力边界的关键基本功。
可视化演示
展示VideoPoet多任务统一架构、Tokenizer-LLM-Detokenizer管线、以及自回归帧序列生成过程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
'+_captions.multi+'
模型全景
这间后厨的厉害之处,不在于某道菜做得多惊艳,而在于“一套流程通吃所有订单”。主厨不认识“宫保鸡丁”“水墨动画”这些菜名,他只认识码料盒上的编号。客人点什么、递什么,最终都会变成一排编号清晰的盒子。他可以同时处理文字菜单、照片改动态、旧片换风格,因为他从来只在“盒子语言”里思考。
VideoPoet 就是谷歌 2023 年底推出的这样一间“后厨”:一个统一的多任务视频生成模型。它的核心动作只有一个——把各种输入变成离散的 token(码料盒),再用一个自回归的大语言模型,逐个预测后续的视频 token(决定下一个盒子)。文生视频、图生视频、视频风格化、视频续写,在模型眼里只是“盒子怎么排列”的区别。
技术上说,VideoPoet 把视频生成彻底收敛为“条件生成”。给定条件 token 序列 \(c\),模型按顺序预测整段视频的 token 序列 \(v_1, v_2, \ldots, v_T\)。这个统一公式让多任务不再需要多个网络,也不再有多个损失函数,一切回归语言模型最擅长的“下一个词”预测。
所以,理解 VideoPoet 不需要记一堆任务专属网络,只需要记住一句话:一间后厨、一套流程、一位只认码料盒的主厨。后面的所有细节,都是在回答“盒子怎么切、主厨怎么想、菜怎么上”。
- 视频标记序列 \(v_1, \ldots, v_T\)一段视频被编码为 T 个离散标记,相当于主厨面前的一排码料盒。
- 条件 \(c\)文本或图像转化来的 token 序列,相当于顾客的订单备注,告诉主厨“这桌要什么风格”。
- 链式连乘分解整个序列的概率被拆成每一步的条件概率相乘,每一步只预测下一个标记,这是自回归模型的“标准动作”。
统一标记化
帮厨的刀工决定主厨能做什么菜。如果切出来的丁大小不一、编号混乱,主厨再厉害也白搭。VideoPoet 的第一道工序,就是让所有原料都变成规格统一的码料盒:文字是一盒,图片是一盒,视频是一盒又一盒。这一步在技术里叫“统一标记化”。
负责视频的刀工是 MAGVIT V2 视频分词器。它像一位效率极高的帮厨,把连续的视频在空间和时间两个方向同时“切块”,每一小块内容量化映射到码本(codebook)中最近的条目,得到一个离散编号。这样一整段视频就变成了一个 token 网格。负责文字的刀工是 T5 文本编码器,它把自然语言句子也变成一串 token。两边的产物进入同一个词表空间,此后模型不再区分来源——这正是统一的根基。
MAGVIT V2 的本质是一个 3D 因果编码器配合向量量化(VQ)。它能同时去除空间和时间上的冗余,压缩率非常高,并且学到的 token 还带有语义信息。图像、视频、文本被压成同一种“语言”后,模型才能像读文章一样读视频。
好的刀工让所有菜统一规格,主厨才能只凭编号做菜。同样,统一标记化让语言模型能直接“处理视频”,这是整个统一方案的地基。
- 原始视频 \(x\)未经处理的连续像素帧序列,相当于刚从市场买回来的带泥蔬菜。
- 编码器 \(\mathcal{E}\)把视频在时空上压缩成连续特征,相当于帮厨洗菜、去根、切块。
- 量化操作 \(q\)把连续特征映射到最近的码本条目,得到离散的 token,相当于给每个丁贴上编号。
- 解码器 \(\mathcal{D}\)把 token 还原回像素视频,相当于把码料盒里的丁重新拼回一道菜。
核心架构
主厨下锅前会先扫一眼已经下锅的盒子顺序:哪些料配过、哪些料味道冲突,然后才推演下一个盒子。自回归 Transformer 干的正是这件事——每预测一个 token,都把前面所有 token 当作“已下锅的盒子”,作为决策上下文。这就是“主厨的记忆与推演”。
条件 token 不是单独从旁路输入,而是直接拼在序列最前面,像菜单一样摆在主厨面前。模型的任务只有一个:最大化下一个 token 的概率。这种设计的妙处在于,多任务不需要多个损失函数,只有一个“下一个 token”损失;训练和推理流程彻底统一;而且随着模型规模扩大,还涌现出零样本能力。
举例来说,模型训练时只分别见过“视频续写”和“风格化”样本,却可能组合出“把这段视频续写并改成水墨风格”这种没见过的复合任务。这种能力来自语言模型的扩展规律:数据、参数、计算量一起增长时,模型对任务组合的理解会自发增强,而不是靠人工为每个任务造数据。
主厨的推演能力来自记忆(上下文)和手艺(参数)。自回归架构把“生成视频”和“理解语言”统一成了同一件事,这正是语言模型范式最迷人的地方。
- 历史标记 \(v_{<t}\)第 t 步之前已经生成的所有标记,相当于主厨眼里已下锅的盒子。
- 模型参数 \(\theta\)语言模型里所有可学习的权重,相当于主厨多年练出的手艺。
- 负对数似然求和对每一步预测概率取负对数再求和,概率越大损失越小,训练就是不断压低这个值。
解码生成
码料盒排序只是完成了一半。主厨只管顺序,最终装盘交给摆盘师。VideoPoet 的视频 token 还要经过一个扩散解码器,才能还原成人眼可见的像素视频。就像摆盘师从一团奶油泡沫里慢慢雕出花朵,扩散模型从纯噪声出发,在模型引导下一步步去噪,最终“雕刻”出清晰的画面。
这个扩散解码器工作在 token 空间之外,负责把离散码还原为连续像素。它并不是简单地把小方块放大,而是学习从噪声到真实画面的映射,因此能恢复出自然的光影、纹理和运动细节。论文展示的生成结果达到 14 帧每秒、时长约十秒,人物动作和镜头运动都相当连贯。
“先出 token、后出像素”的分工还有工程上的好处:token 阶段保证语义和结构正确,像素阶段保证画质和细节,两个阶段可以独立优化。语言模型不用关心像素长什么样,解码器也不用关心剧情是什么,各司其职。
主厨定好顺序,摆盘师完成造型,一道菜才算真正端上桌。VideoPoet 用“语言模型生成 token + 扩散解码器还原像素”的分工,让生成质量和工程实现都获得了清晰的边界。
- 噪声 \(\epsilon\)训练时人为添加到数据上的随机扰动,相当于摆盘师工作台上的“奶油泡沫”。
- 时间步 \(t\)控制噪声大小的强度刻度,决定了当前画面有多“糊”。
- 去噪网络 \(\epsilon_\theta\)一个神经网络,输入加噪结果和时间步,输出对噪声的估计,相当于摆盘师的手。
- 均方误差期望让预测噪声与真实噪声尽量接近,网络就学会了“如何把泡沫雕成花”。
多任务能力
同一位主厨怎么应付四种订单?秘密全在码料盒的组装方式。文生视频等于“只有菜单,从零起灶”:把文本 token 作为唯一前缀,模型从头预测整段视频。图生视频等于“照片打样”:把图片 token 作为首帧,模型接着预测后续帧,照片就“动”了起来。
视频风格化最有意思,它像“保留骨架、重做外观”:把原视频编码成 token 序列,再加上一段风格描述文本,模型基于原有的运动轨迹重新预测 token,于是动作没变、画面却换成了水墨或卡通风。视频续写则是“故事接龙”:已有帧的 token 作为前缀,模型继续往下预测,把 3 秒的片段拉长成 10 秒甚至更长。此外,视频修复、视频抠像、甚至视频转音频,也都是同一框架的变体——输入输出换成相应模态即可。
这就是“统一”的威力:任务的多样性完全来自 token 序列的组织方式,底层只有一种生成动作。用首帧做条件时,条件概率写成下面的形式:
客人点什么都行,主厨接单的方式始终不变——看已给的盒子,推接下来的盒子。多任务能力不是靠堆模型堆出来的,而是靠统一标记化释放出来的。
- 锚定帧 \(v_1\)作为生成起点的首帧 token,来源于用户提供的图片或已有视频开头。
- 辅助条件 \(c\)文本风格指令等额外信息,决定“往哪个方向续写”。
- 后续帧 \(v_2, \ldots, v_T\)需要模型预测的部分,也就是“动起来”的片段。
训练方法
没有人生来就是全能主厨。VideoPoet 的“学徒期”要过三关。第一关,看海量无标注视频,任务是“视频续写”:给前几帧,预测后面几帧。别小看这个任务,它在强迫模型理解世界的运动规律——人怎么走路、水怎么流动、镜头怎么摇。第二关,用文本-视频成对数据,学会把语义描述和视觉内容挂钩,让“一只戴帽子的猫”这样的句子真的能指挥画面。
第三关是补课:高质量的文本-视频配对数据太稀缺,而图像-文本配对数据量大又便宜。于是模型额外学习“图像-文本”任务,用海量图片来理解世界、积累语义知识,再把这些知识迁移到视频上。这就像学徒先对着菜谱插图(图片)认遍食材,再去看做菜视频(视频)学手法,效率高得多。
训练时,各种任务样本在同一个批次里混合出现:这个 batch 里有续写样本,那个 batch 里有文生视频样本,下一个又有风格化样本。模型每次看到的“订单”都不同,梯度方向是综合的,参数却只有一套。这种多任务混合训练让模型学会任务间的共性,而不是把每个任务割裂开。
学徒期结束,主厨已经见过足够多的“食材搭配”,面对新订单时才能从容推演。训练数据的天平决定了能力的偏向:视频续写给运动,文本配对给语义,图像补课给常识。
- 续写损失 \(\mathcal{L}_{\text{cont}}\)无标注视频上的运动规律学习,相当于学徒“看别人做菜”。
- 文生视频损失 \(\mathcal{L}_{\text{t2v}}\)文本-视频配对数据的语义控制学习,相当于“跟着菜谱做菜”。
- 图文损失 \(\mathcal{L}_{\text{t2i}}\)图像-文本数据的知识补课,相当于“对着插图认食材”。
- 权重系数 \(\lambda_1, \lambda_2\)调节不同任务的重要程度,相当于学徒期每门功课的课时分配。
优劣势分析
全能主厨的代价是什么?他每道菜都不差,但单论某一道,可能打不过只做这一道菜的专精小店。统一方案的红利在于“一次训练、处处复用”:一份参数服务多个任务,任务间知识互相迁移,还能零样本泛化到训练时没明说过的组合任务。这是视频生成走向通用模型的关键一步。
但代价也很实在。视频的 token 数量随帧数、分辨率和时长暴涨。一段 10 秒视频的 token 比一篇长文章的 token 还多,计算开销远超单任务模型。自回归逐 token 生成在超长时序上还会累积误差:前面一个小偏差,后面可能被放大成明显的不自然。复杂的物理细节(手部动作、液体飞溅)偶有失真,长程一致性仍是挑战。
用公式直观感受一下 token 数量的膨胀:
所以选型要看场景:需要多任务灵活切换、快速迭代创意,统一方案是利器;如果只做单一任务且要求极致画质,任务专属模型仍然值得考虑。全能主厨的存在,不代表小馆子该关门——只是客人越来越多,后厨也越来越聪明了。
- 帧数 \(T\)视频的时长维度,10 秒 14 帧就是 140 帧。
- 空间尺寸 \(H \times W\)每帧的高度乘宽度,决定单帧信息量。
- 压缩步长 \(s_t, s_h, s_w\)分词器在时间、高、宽三个方向上的下采样倍数,相当于帮厨“切得多细”。
AI 应用场景
营销短视频快速试拍
阶段:内容生成与创意验证
解决的问题:传统短视频从脚本到成片周期以周计,改一次创意方向就要重新拍摄,成本极高。VideoPoet 这类统一模型可以用文生视频一次生成多版风格预览,让团队在投入实拍前先“看见”效果。
具体案例:某电商品牌要推新品,团队把产品卖点写成文案,用文生视频接口一次生成 5 版不同色调和运镜的预览短片,选中最有感染力的一版再交给专业团队细化,创意决策从两周缩短到两小时。
影视后期风格化转制
阶段:后期特效与风格迁移
解决的问题:实拍素材要换成水墨、赛博朋克等美术风格,传统做法需要重拍或逐帧特效合成,费用惊人。视频风格化任务能在保留原始运动轨迹的前提下替换外观,直接产出风格样片。
具体案例:一家动画工作室把一段实拍舞蹈素材连同“水墨风格”文本输入模型,得到保留原动作、衣袂翻飞的水墨版本,用于正片前的风格预审,省去了大量试验性重拍。
互动教育与长剧集续写
阶段:内容扩展与个性化生成
解决的问题:长视频内容的续写和衍生制作依赖人工剪辑,难以规模化。视频续写能力可以基于已有片段自动生成后续情节,为课程、剧集、游戏过场提供“无限素材”。
具体案例:在线教育平台把一段 3 分钟的物理实验视频交给模型续写,自动生成多个“下一步实验”的推演版本,学生可以像追剧一样沿着不同分支学习,课程完播率明显提升。
Python 演示
import numpy as np K = 8 # 量化等级数, 模拟视频词表大小PATCH = 4 # 每个 token 覆盖的空间块大小ROWS, COLS = 16, 16 def encode_frames(video): # 将 (T, H, W) 灰度视频切成 token 网格, 模拟 MAGVIT 编码器 T, H, W = video.shape th, tw = H // PATCH, W // PATCH toks = np.zeros((T, th, tw), dtype=np.int64) for t in range(T): for i in range(th): for j in range(tw): patch = video[t, i*PATCH:(i+1)*PATCH, j*PATCH:(j+1)*PATCH] toks[t, i, j] = int(round(patch.mean() * (K - 1))) return toks def build_video(frames=60): # 合成一个移动小方块的视频作为训练素材 vid = [] for t in range(frames): frame = np.zeros((ROWS, COLS)) x = int((3 + t * 0.8) % 13) y = int((9 + t * 0.5) % 13) frame[y:y+3, x:x+3] = 1.0 vid.append(frame) return np.stack(vid) def train_transition(toks): # 统计相邻帧 token 之间的转移规则, 相当于视频语法 table = {} for t in range(toks.shape[0] - 1): key = toks[t].tobytes() table.setdefault(key, []).append(toks[t + 1]) return table def predict_next(tok_grid, table): # 自回归: 根据当前帧 token 预测下一帧 token key = tok_grid.tobytes() if key in table: cand = table[key] return cand[int(len(cand) / 2)] return tok_grid # 未见过的状态: 保守复制 def decode_tokens(tok_grid): # 将 token 网格还原成像素帧, 模拟 MAGVIT 解码器 th, tw = tok_grid.shape img = np.zeros((ROWS, COLS)) for i in range(th): for j in range(tw): img[i*PATCH:(i+1)*PATCH, j*PATCH:(j+1)*PATCH] = tok_grid[i, j] / (K - 1) return img def main(): video = build_video(60) toks = encode_frames(video) table = train_transition(toks) for t in range(10, 16): # 用已学规则续写第 11 到 16 帧 nxt = predict_next(toks[t - 1], table) frame = decode_tokens(nxt) r, c = np.unravel_index(np.argmax(frame), frame.shape) print("frame %d ball at (%d,%d)" % (t + 1, r, c)) if __name__ == "__main__": main()
toks[t, i, j] = int(round(patch.mean() * (K - 1)))把每个小区域的平均亮度量化成一个“词”,这就是视频分词器做的事。frame[y:y+3, x:x+3] = 1.0用一个移动的小方块作为训练视频,代表现实世界中的“运动”。key = toks[t].tobytes()把 token 网格序列化成可哈希的字节串,作为视频语法的“句子”。table.setdefault(key, []).append(toks[t + 1])统计相邻帧转移规则,相当于在学“这个画面后面通常接什么”。return cand[int(len(cand) / 2)]从见过的候选中选中间那个,简化为“自回归模型解码时的确定性选择”。img[i*PATCH:(i+1)*PATCH, j*PATCH:(j+1)*PATCH] = tok_grid[i, j] / (K - 1)把 token 还原成像素块,对应扩散解码器的工作。nxt = predict_next(toks[t - 1], table)用当前帧预测下一帧,对应视频续写与图生视频的核心动作。
常见误区
误区VideoPoet 应该和很多视频模型一样,用扩散模型从噪声里直接生成一帧帧像素视频吧?
正解生成主体是自回归语言模型,它只预测离散 token,根本不碰像素。扩散模型只出现在最后一步——把 token 还原成像素的解码阶段。打个比方:主厨(LLM)决定每一道菜的顺序和内容,摆盘师(扩散解码器)才负责把菜做成最终造型。把“最后一步用扩散”当成“全程用扩散”,就完全理解反了。
为何常见:扩散模型在图像和视频生成领域太主流,初学者看到“扩散解码器”几个字就默认整个模型都是扩散生成。
误区文生视频、图生视频、风格化、续写差别这么大,肯定每种任务都要训练一个专属模型吧?
正解统一方案里任务只是输入 token 的组装方式不同——文本前缀就是文生视频,首帧加文本就是图生视频,原视频加风格文本就是风格化。所有任务共享同一套参数和同一套自回归生成逻辑,不需要分开训练。
为何常见:早期 SOTA 确实是任务专属模型各成体系,这种历史惯性让人默认“多任务 = 多模型”。
误区把视频的每一帧单独压成小图块,再编号,不就是视频分词了吗?
正解MAGVIT V2 是 3D 时空联合压缩,不仅在空间上切块,还在时间维度上压缩,去除帧间冗余,学出的是带语义的离散码本。它懂“运动”而不只是懂“单张画面”,就像帮厨会按食材特性切丁,而不是拿个模具乱按。
为何常见:人对“压缩”的直觉首先来自图像压缩,容易忽略视频特有的时间维度。
误区VideoPoet 能同时做好几个任务,那它在每个任务上应该都吊打专门模型吧?
正解统一模型强在参数共享、知识迁移和零样本泛化,但单一项任务往往未必打得过为该任务专门设计和调优的专属模型。全能主厨每道菜都不差,但最顶级的宫保鸡丁还是出自专做川菜的小馆。
为何常见:看到多任务演示效果惊艳,就容易高估单项能力,忽略“通用与专精”之间的经典取舍。
面试题
Q1. VideoPoet 用来统一所有视频生成任务的核心方案是?
- A.扩散模型直接生成像素帧
- B.语言模型逐标记预测视频← 正确答案
- C.生成对抗网络逐帧对抗
- D.光流插值补齐中间帧
答案:B。VideoPoet 的核心是自回归语言模型逐 token 预测视频标记,扩散模型只出现在解码阶段。A 错在把解码器当成了生成主体;C 错在 VideoPoet 并不用 GAN;D 的光流插值只是传统视频处理手段。
Q2. MAGVIT V2 在 VideoPoet 中的职责是?
- A.把文本编码成提示向量
- B.在视频和标记间做转换← 正确答案
- C.对视频做分类和检索
- D.估计相邻帧之间的光流
答案:B。MAGVIT V2 是视频分词器,负责把视频编码成离散 token,也能把 token 解码回视频,是统一标记化的核心组件。A 是文本编码器 T5 的职责;C 和 D 与生成任务无关。
Q3. VideoPoet 把自然语言文本编码成 token 使用的是?
- A.BERT 双向编码器
- B.CLIP 图文对比编码
- C.T5 文本编码器← 正确答案
- D.Whisper 语音编码器
答案:C。论文中使用 T5 作为文本编码器,把文本变成与视觉 token 共存的序列。BERT 是双向编码不适合生成前缀;CLIP 用于图文对齐而非 token 化;Whisper 是语音识别模型。
Q4. VideoPoet 生成视频主体部分采用的生成方式是?
- A.一步直接映射出全部帧
- B.自回归逐个预测视频标记← 正确答案
- C.扩散过程逐帧独立去噪
- D.VAE 重参数化采样生成
答案:B。VideoPoet 的主体是自回归语言模型,像写文章一样逐个预测视频 token。C 的扩散只作用于最后的解码还原阶段;A 和 D 都不是自回归语言模型的生成方式。
Q5. 关于 VideoPoet 的解码环节,正确说法是?
- A.线性层直接映射回像素
- B.扩散解码器把标记还原成视频← 正确答案
- C.GAN 判别器逐帧细化
- D.无需解码,标记就是像素
答案:B。预测出的视频 token 需要经过扩散解码器逐步去噪才能变成像素视频。A 过于简单,线性层无法还原高质量画面;C 的 GAN 不是 VideoPoet 的解码方案;D 混淆了离散标记与像素的本质区别。
Q6. 统一标记化方案带来的最大结构优势是?
- A.完全消除了解码器模块
- B.多任务共用同一套自回归模型← 正确答案
- C.不再需要文本编码器
- D.训练数据量直接减半
答案:B。所有模态统一成 token 后,不同任务只需要改变 token 的组织方式,共用同一套自回归模型和参数。A 错误,解码器仍然需要;C 错误,文本仍要编码;D 没有这种必然性。
Q7. VideoPoet 能生成约十秒长视频,关键依赖是?
- A.超高分辨率扩散采样器
- B.时空分词压缩与自回归续写← 正确答案
- C.GAN 级联逐帧超分辨
- D.逐帧光流运动插值
答案:B。长视频的关键在于视频分词器在时间和空间上的高压缩率,把长视频压缩成可控长度的 token 序列,再由自回归模型逐段续写。A 只影响画质不影响时长能力;C 和 D 不是 VideoPoet 的方案。
Q8. VideoPoet 相比任务专属模型最突出的能力是?
- A.自动产出训练数据集
- B.零样本泛化到新任务组合← 正确答案
- C.训练时间缩短一个量级
- D.完全不需要配对数据
答案:B。统一模型能组合已学任务,零样本泛化到“续写 + 风格化”这类没见过的新组合,这是任务专属模型不具备的。A、C、D 都不是统一模型带来的必然优势。
Q9. VideoPoet 的训练策略包含以下哪些做法?
- A.海量无标注视频做续写预训练← 正确答案
- B.文本视频成对数据学习语义控制← 正确答案
- C.图像文本数据弥补视频语料稀缺← 正确答案
- D.只用单帧图像完成全部训练
答案:ABC。训练三阶段分别是无标注视频续写预训练、文本-视频对学习语义、图像-文本对补课。D 错误,只用单帧图像无法学到视频运动规律,续写预训练是不可或缺的基石。
Q10. 视频风格化任务的技术要点是?
- A.保留原有运动轨迹信息← 正确答案
- B.文本指令引导外观改变← 正确答案
- C.在原视频标记基础上重预测← 正确答案
- D.随机初始化全部帧标记
答案:ABC。风格化的本质是基于原视频 token 保留运动结构,同时让风格文本改变外观语义,再重预测新 token。D 错误,随机初始化会丢失原视频的全部动作信息,生成结果将不再是“风格化”而是“新视频”。