对话Sand.ai首席科学家张拯:用自回归开启视频生成下半场
当前,各大商业视频生成模型几乎都是基于纯扩散模型。
扩散模型( Diffusion model )与自回归模型( Autoregressive model )作为视频生成的两大技术路径,各自展现了不同的特性与优势。
为深入探讨两种模型的优劣势、融合趋势,以及视频生成未来的发展前景,我们特邀 Sand.ai 联合创始人、首席科学家张拯进行深度对话。
2025 年 4 月,由张拯和曹越等联合创立的公司 Sand.ai 正式开源了全球首个自回归视频生成大模型 —— MAGI-1。该模型融合了扩散模型和自回归生成方式,具备无限长度扩展和精确到秒的时间控制能力。MAGI-1 在物理建模、因果建模、指令跟随、运动质量、动态变化等方面也具有显著优势,其开源版本包括 24B 和 4.5B 参数规模,前者需使用 8 张 H100 GPU运行。而就在 5 月 26 日,Sand.ai 开源了 4.5B 的 MAGI-1 蒸馏量化模型。现在通过这个量化模型,用户可以在单个 GTX4090 GPU 上运行,可以在 8 分钟内获得 720P 分辨率的 4s 视频。
在线试玩地址:
https://sand.ai/magi
技术报告地址:
https://arxiv.org/pdf/2505.13211
张拯是华中科技大学软件工程专业本硕,Swin Transformer 作者,ACM 亚洲金牌获得者,微软亚洲研究院 MSRA 研究员( 在 MSRA 期间和曹越合作五年 ),ICCV2021 最佳论文奖获得者( 马尔奖 Marr Prize ) ,目前谷歌学术总引用近 5 万次。
整场对话全文近 3 万字,以防您阅读时间不充裕,我们先列出对话全文的观点总结。
以下是本次对话的核心观点总结。
关于自回归模型与扩散模型:
Sora 发布之后,Transformer 架构成为扩散模型主流。之后大部分的模型都偏纯扩散模型,跟 Sora 的区别不大。
早期的视频自回归方法,和LLM比较像,是纯自回归的,目前这条路线上特别成功的、相对来说大一点的模型,应该还没有。
从视频质量上,Diffusion model 至少在现阶段是最领先的,但这只是现状,而不是基于算法的第一性原理推导出的最优解。
相比扩散模型,但凡涉及非常长时间的视频生成,自回归模型都是更合适的。
自回归模型天然包含时间序列关系,对于基于时间的因果关系的建模比完全不考虑因果结构的方式更完整。
长远来看,几乎所有的模态都会尝试融合到一个统一的大模型里,如果一开始就用自回归的方式来建模视频,后续更容易融合到模态统一的大模型中。
扩散模型目前最大的一个劣势,即便在学界都还是非常前沿的课题,就是扩散模型的 Scalability( 可扩展性 )效能似乎存疑。
自回归模型目前为止的最大挑战是误差累积。比如生成的单一镜头时间过长时,画质可能会开始变得锐化、模糊不清,或者颜色会逐渐发生异常变化。
自回归加双向扩散模型在建模效率和视频生成质量上与纯扩散模型的当前差距,不代表中长期的劣势,依然取决于模型能力的演进、结构设计和训练方式的进一步发展。
近期视频生成模型在物理和运动表现上的提升,主要还是由于 Scaling 带来的。
当数据本身蕴含了较多真实的物理规律,配合上更合适、更强的建模方式,模型就更容易学到符合物理世界的因果结构和动态逻辑。所以最终来看,建模方式和数据质量是相辅相成的:缺一不可。
自回归模型在建模物理上有优势的一个迹象是,它有一个特点:对 “ 走路 ”、“ 跑步 ” 这样的动作刻画得非常好。
纯扩散模型主要基于基于前一段视频的最后一帧进行视频续写,但它很难获取之前整段视频中较长时间范围的信息,导致新片段在动作连续性上经常出现问题。但 MAGI-1 在运动连续性上表现显著更好,不会出现前后断开的感觉。
MAGI-1 能生成的最复杂的运动,未必是纯粹物理上高难度的动作,而是包含连续多阶段、情节演进、跨物体转换和拟人动作的 “ 叙事性运动 ”。
如果是非常短比如就几秒的视频片段,扩散模型和自回归模型之间的差距并不大。如果希望生成比较长的、具有复杂叙事结构的视频,或者希望做真正意义上的视频续写,自回归模型都会有比较明显的优势。
现在的视频生成的自回归模型更多是指像 MAGI-1 这种本质上由自回归和扩散耦合在一起的模型,因此天然就会继承两种模型的复杂性,在系统设计和训练过程中的复杂性,显著高于纯粹的扩散模型或纯粹的自回归模型。
具体实现里,由于都是基于 Transformer 架构来实现的,要很好地统一并高效地调度两种模型不同的 Attention 模式,在架构设计上的复杂度显著增加。
除了 video 领域,在很多其他模态和任务里,扩散 + 自回归的混合范式已经成为主流做法。比如 Audio、Robotics、图像等。
一方面,自回归加扩散模型,结合了自回归模型在建模因果结构上的能力,另一方面,又结合了扩散模型在建模细粒度、高保真度内容上的能力。
语言模型也在探索两种模型的结合,一类是纯好奇向的学术探索,一类是更偏工程和系统性能导向的探索,源于自回归语言模型存在并行性瓶颈。 相比之下,视频方向的扩散+自回归结合则更加自然, 因为视频天然就涉及时间建模和空间细节建模这两个维度。
在非常短的时间范围内,是否建模因果关系其实影响不大,但当处理的是更长的视频序列时,时间维度上的结构性就变得更重要了。
基于文本实现逐块文本控制,从表达能力角度来说,双向扩散模型不是做不到,但在实际应用中极难做到。相比之下,自回归结构由于是分阶段推进、边生成边处理,其训练方式也可以更自然地暴露在复杂语义切换、节奏控制的真实任务分布下。
关于视频生成行业:
从视觉效果角度看,目前大部分视频生成公司关注的是让视频看起来够自然、有表现力,所以偏向柔性动作、人物行为、自然运动,而不是物理精准。从物理仿真角度看,目前行业内面临的最大问题之一就是数据准备还远远不够。
闭源本身其实并不能真正让一个团队在技术上保持长期的领先优势, 甚至不要说长期,在中期维度上保持技术壁垒都比较困难。闭源所带来的,更多只是一个相对短期的时间窗口。但除非模型在能力上实现了真正的断档式领先, 否则,模型本身并不足以直接带来快速的商业收益。
视频生成和机器人在中长期的发展过程中,本质上可能要解决的是同一类问题,但可能 “ 视频生成 ” 会走在机器人前面。
整场对话中,张拯还结合了他的创业项目 MAGI-1 进行了诸多实践中技术细节的阐述和对技术路线的思考,由于与实操相关,只看观点提炼会有些许抽象难以理解,所以我们诚邀您直接观看全文。
以下是对话原文,这是一场学术前沿相关的对话,所以知危编辑部并未作删减,仅进行了部分不改变张拯原意的编辑。
知危:
请简短介绍扩散模型和自回归模型在视频生成方向的研究发展历程,以及都有哪些代表性的成果?
张拯:
传统的叙事里常会把自回归模型和扩散模型对立起来。但其实现在的整体发展趋势,反而是两边在融合:各自吸收对方的优点,结合起来形成新的模式。
早期的研究方向里确实存在两条路线:一边是纯粹的自回归模型,另一边是纯粹的扩散模型。在视频生成这个领域,纯扩散模型的代表性成果里,OpenAI 发布的 Sora 是一个非常重要的节点。它可以说开启了用扩散模型进行视频生成的新时代,尤其是在商业机构和 Production 级别的应用中,Sora 成为了一个标志性项目。
但其实在这之前,在学界里也有跟 Sora 非常像的模型,有一个特别有代表性的叫 SVD,Stable Video Diffusion,是 Stability AI 做的。当然,由于一些历史原因,SVD 当时还是基于卷积( CNN ),而没有基于 Transformer。到了 Sora 发布之后,大家开始更多用 Transformer 架构去做。之后其实大部分的模型都偏向于纯粹的扩散模型,跟 Sora 的区别整体而言都不是特别大,都是在各自的数据集和细节上做改进,然后推出商业化的 Model。
而学界早期的自回归( Autoregressive )模型,最有代表性的一篇 Paper 应该是 VideoPoet,是 Google 的蒋路( 现已加入 TikTok )的团队研发的。
早期的视频自回归方法,基本上会利用跟现在的大语言模型比较像的思路,就是把整个视频按照时间和空间分解,将每个像素或几个像素表示成一个离散化的 video token,然后通过不断地利用大模型去预测下一个 video token 的方式来进行。但是目前这条路线上特别成功的、相对来说大一点的模型,目前应该还没有。
如果是试图去结合自回归和 Diffusion 两类模型优点的工作,近乎都是偏商业化的模型,可能 MAGI-1 是第一个。
学界在过去一年多也有很多研究在做类似的探索。印象比较深刻的是由英国自动驾驶创业公司 Wayve 提出的 GAIA,其实 GAIA 严格来说不是做视频生成,而是做自动驾驶的,但 GAIA 试图用自动驾驶采集到的车载第一人称视角的数据来建模,这项工作很有启发性。他们在 23 年 9 月份就给出了一个自回归+Diffusion 的技术方案,并且支持通过 Action 来控制视频生成的内容。国内像智源的 NOVA 也比较有代表性。
知危:
请综合比较视频生成方向上扩散模型和自回归模型的优缺点?
张拯:
首先,从商业化这个层面来看,扩散模型主要的优点是,OpenAI 在比较早的时候证明了,通过不引入任何自回归特性的纯扩散模型来做视频建模,起码对于一个相对比较短的视频片段,是能够达到比较好的效果的。这使得大家在技术路线上的探索风险低了很多。
其次,对于纯粹的扩散模型,学界研究的时间也有四五年了,在技术实现细节上的积累比较深,也使得技术实现的风险相对降低。
从实际视频生成的质量等维度上,扩散模型至少在现阶段的表现中是最领先的,但我认为这只是现状,而不是基于算法的第一性原理推导出的最优解。关于自回归模型的优点,从视频生成应用角度,视频生成肯定不应该只能生成几秒钟的短片段,我们还是希望模型不仅能生成短剧级别的内容,还可以生成电影、电视剧甚至是游戏的非常长时间的内容。而但凡涉及这种非常长时间的视频生成,自回归模型都是更合适的。
主要有两个原因:第一个原因是,对于用户,不希望随着生成视频时间越长,需要等待至可以观看的时间也越长。这个等待时间至少应该是一个常数。这就要求模型能够以片段生成、甚至是逐帧生成的方式进行。而逐帧生成,在学术上通常被称为自回归( Autoregressive )方式,或者是 Streaming( 流式 )生成方式。第二个原因是,纯粹的 “ 生成 ” 并没有满足用户的最终目标,用户还是希望在生成过程中,模型能够不断地与人或外部世界交互,从而实时或非实时地去改变后续生成的内容。 这种方式从中长期来看,会产生一种全新的内容形态。这也对应了自回归模型的基本特点:它天然更适合逐步、交互式的生成过程。
从我的经验来看,MAGI-1 能生成的最复杂的运动,是包含连续多阶段、情节演进、跨物体转换和拟人动作的 “ 叙事性运动 ”。比如我自己在用的时候,更常见的方式是:用一个简单的 Prompt,生成两三秒视频;然后再换一个新的 Prompt,继续生成两三秒,甚至用这种方式做过完整一镜到底、30 多秒、包含完整故事线的内容生成。
我自己尝试的一个比较复杂的例子是这样的:一个人坐在椅子上;他快速站起来,拿出一把枪,对准屏幕前的你;但扣动扳机后不是子弹,而是飞出一朵鲜花;这朵鲜花开始在空中缓慢漂浮;漂浮过程中,鲜花逐渐变形为一只鸟;鸟落在这个人的身上;他朝你微笑,然后转身离开。然后他在转身的过程中,两边会有这种类似于剧院的帘子拉上,你以为结束了,但实际上这个人又把帘子拉开,然后又冲你笑了一下,最后整个画面慢慢变黑,并且出现了一个 Logo。
这其实是最能体现 MAGI-1 在产品上的优势场景:每次只生成一小段视频;并且在每一段生成之后,可以实时修改 Prompt 来调整接下来的内容;这样用户就可以通过一种 “ 边生成、边构思、边调整 ” 的方式,去完成一个复杂内容的创作。从我自己的使用体验出发,我发现和其他生成工具很不一样的一点是:用其他模型的时候,我通常是会提前构思好整个故事结构, 然后让工具一次性生成某一段素材,更多地把它当成“素材库工具”来用;但在我们自己的产品里,创作方式会变得更动态。
总结来说,如果你希望生成一个非常短比如就几秒的视频片段,扩散模型和自回归模型之间的差距并不大。但如果你希望生成比较长的、具有复杂叙事结构的视频,或者你希望做真正意义上的视频续写,自回归模型都会有比较明显的优势。
如果从科学或理论的角度,尽管并不是所有视频内容都严格遵循物理规律,但大部分视频中确实包含了一定的物理规律信息。而因为时间本身是线性演进的,如果在建模之初就能够把基于时间的因果特性纳入,那么对于因果关系的建模就会比完全不考虑因果结构的方式更完整一些,也更有可能学到真正稳定的规律。这也是自回归模型序列式生成方式天然能够实现的。
最后,从非常长期的角度来看,几乎所有的模态都会尝试融合到一个统一的大模型里,这些模态肯定会包括语言、语音、图像等,视频最终也会成为不可或缺的一部分。考虑到目前像语言这种被认为 “ 智力密度 ” 较高的模态,主流的建模方式几乎都是自回归形式,如果我们一开始就用自回归的方式来建模视频,那后续在模态统一的大模型中,视频的建模路径也会更顺畅和自然。
关于两者的相对劣势,扩散模型目前最大的一个劣势,即便在学界都还是非常前沿的课题,就是扩散模型的 Scalability( 可扩展性 )效能似乎存疑。无论是我们这边的一些初期实验,还是跟其他同行相互交流,都有这样的观察:扩散模型的 Scaling 效果虽然不是没有,但性价比不高。或者说通过扩展参数数量、增加训练计算量,确实也能看到效果有所提升,但这个提升与投入的成本不成正比。但这究竟是因为没有把事情做对,还是扩散模型本身就存在这方面的结构性缺陷,目前还没有完全搞清楚。因为整个扩散模型系统还是很复杂的,牵涉的变量非常多。各个组织的人,包括学界、Startup 和大公司,都还在这方面做探索。
对于自回归模型,目前为止的最大挑战,还是误差累积。比如 MAGI-1,尽管理论上可以支持无限时长的视频生成,但当生成的单一镜头时间过长时,确实会出现误差逐步积累的现象。主观视觉上的体现就是:画质可能会开始变得锐化、模糊不清,或者颜色会逐渐发生异常变化。
我们也跟很多做语言模型的同行交流过,但他们很难像在视频或者语音里那样,直观地感受到 “ 误差累积 ” 的现象,只是有时候会对语言模型中的某些错误 Case ,怀疑它是不是一种 “ 误差累积 ”。比如语言模型中经常出现的一种情况是:一旦语言模型开始重复输出某些词或句子,后面就会一直重复,怎么也拽不回来。
知危:
基于自回归模型的视频生成,对于已有内容的可编辑性是否比扩散模型更差?以及在生成质量方面也更差?
张拯:
其实原理上不一定是这样。比如我们现在做的视频生成,即使是自回归的形式,但在一些处理数据的方式上,和双向扩散模型还是挺相似的。
MAGI-1 采用的其实还是自回归和双向模型混合建模的方法。并且还存在很多其它不同的自回归和扩散模型相结合的建模策略。
如果只是讨论 “ 编辑 ”,可以参考像 GPT-4o Image 这样的生成模型。它大概率是一个自回归和扩散融合的模型,而且主架构应该是自回归。但它的通过多轮对话交互的编辑能力,其实表现得还是比较好的。所以说,自回归模型在编辑能力上的限制,更多是当前模型能力和训练范式的问题,而不完全是自回归这个建模方式本身的缺陷。 关于扩散模型和自回归模型目前在质量方面的差距,首先,自回归模型因为一些特性,比如需要 per-frame 或 per-token 的逐步建模,如果在算法上不做任何优化,特别是在自回归和扩散结合的混合结构中,训练效率相较于纯双向扩散模型是明显偏低的。
其次,整个自回归加双向扩散模型目前在学界的研究坦率来说还没有特别多,远不如双向扩散模型那样成熟。因此,这里面可能会出现一些像前面提到的 “ 误差累积 ” 的问题,从视觉效果上看,有时会比扩散模型更明显。但我觉得这一部分问题都是当下的阶段性现象,它不代表自回归模型从中长期来看在建模效率和视频生成质量上一定会劣于双向模型。这依然取决于模型能力的演进、结构设计和训练方式的进一步发展。
知危:
自回归能天然地实现因果建模,还是只实现了一部分?或者需要更多的因果约束才能实现足够逼真的物理效果?
张拯:
MAGI-1 目前也只是实现了部分的因果建模,还不是能够彻底让模型百分百进行因果建模的形式。我们现在也在探索是否有更好的形式,能够明确地保证模型进行完全的因果建模,相信最终一定是可以找到解决办法的。
关于 “ 是否需要更多因果约束 ”,我觉得这取决于两个方面:第一,算法层面:如果因果约束设计得更充分,它会迫使模型从数据中更主动地去学习因果关系。第二,数据本身也极为关键:我们日常所用的视频数据,特别是从互联网上收集的,比如电影、电视剧、动画,其实很多内容并不严格遵循现实物理规律。哪怕模型在结构上具备了建模因果关系的能力,如果数据中充满了 “ 反物理 ” 的例子,那模型最终学到的也可能是错乱或非现实的因果模式。当数据本身蕴含了较多真实的物理规律,配合上更合适、更强的建模方式,模型就更容易学到符合物理世界的因果结构和动态逻辑。
所以最终来看,建模方式和数据质量是相辅相成的:缺一不可。
严格来说,像无人驾驶这种场景,或者是通过真实镜头拍摄出来的视频,基本上都是符合物理规律的,但在美学表达或视觉精致度上相对弱一些。而一些偏特效制作类的视频,虽然在视觉效果上更突出,但往往会有不少不符合物理规律的成分,比如不自然的光影、夸张的动作、失真的重力等。这两者之间的权衡其实是很难做到完美的。从数据量的角度,目前基于现实世界拍摄的数据远多于人工制作的数据。
如果我们去看最近的各种模型的新版本发布的情况,可以大致看出,这种在物理和运动表现上的提升,主要还是由于 Scaling 带来的。当你拥有了更大的模型,再加上质量更高、结构更合理的数据集之后,对于一些更复杂的内容——无论是人体运动,还是一些偏物理效果的内容( 比如重力、碰撞、惯性反应、柔体运动等 )——模型的建模能力都会比之前显著提升。
我们现在会同时关注两个维度:一个是物理的真实性,另一个是美学上的体验。
因为目前整个行业里,偏商业化落地的还是以 “ 视频生成 ” 为核心场景为主,从这个角度出发,我们肯定希望生成结果在美学层面是令人满意的、有表现力的,能带来视觉冲击或者艺术感染力。
但与此同时,我们也不会把长期目标完全局限在视频内容生成这件事本身。从更长远的视角来看,我们其实更关注的是模型是否具备对物理世界、对客观规律进行结构性建模和刻画的能力。
知危:
可否用一些代表性例子说明自回归模型与扩散模型在建模物理效果上的天然差距?
张拯:
有两个代表性的例子可以说明。第一个是我们在训练自己模型的非常早期,就发现自回归模型有一个特点:对 “ 走路 ”、“ 跑步 ” 这样的动作刻画得非常好。
如果我们回头去看第一版 Sora 刚发布时放的一些 demo,以及后来其他一些友商的案例,即便是相对比较大的 model 生成的 demo,其实在 “ 走路 ” 或 “ 跑步 ” 这个动作上经常会出现一些问题。比如说:人物在走路时会顺拐;原本应该是左右腿交替前进,但在某个瞬间,突然就会变成连续两次迈左腿,或者连续两次迈右腿;这些动作在视觉上看起来不协调、不自然,很容易 “ 穿帮 ”。
知危在 MAGI-1 上测试的 “ 走路 ” 案例
而像这类情况,在 MAGI-1 的架构下,我们在非常小的模型、非常早期的阶段就发现:对于 “ 走路 ” 这种在时序上有明确节奏和规律的运动,模型的刻画效果就非常好。几乎不会出现像顺拐、左右腿交替出错这类问题。这确实是一个很重要的证据点,说明自回归建模对时序规律、物理效果的捕捉有天然优势。
知危在 MAGI-1 上测试的 “ 跑步 ” 案例
第二个例子是关于 video 续写( video continuation ) 。如果单纯指从一段已经生成的视频后面接着继续生成的能力,很多其它模型也可以做。但其它模型大多数采用的策略是基于前一段视频的最后一帧,以 “ 图像续写 ” 的方式来进行生成。这种方式有一个明显的弱点是:它很难获取之前整段视频中较长时间范围的信息;因此生成的新片段在动作连续性上经常会出现问题。
比如说给一段 5 秒钟的视频,内容是一个小球在屏幕上移动,它原本是按照某种明确的运动规律在运动的。如果只是拿前一段视频的最后一帧作为起点,用图像续写的方式继续生成,新视频往往就不再符合前 5 秒小球的运动规律,比如方向、速度可能就突然变了。但在我们目前的实现里,在运动连续性上表现显著更好,不会出现那种前后断开的感觉。
知危:
扩散模型和自回归模型在训练复杂度上有什么不同?根源是什么?如何解决?
张拯:
关于训练复杂度,可以从两个方面来说:第一个方面是由于算法本身的内在复杂度不同,第二个方面是我们目前对这两种模型的理解程度不同,导致训练策略、优化范式上的复杂度不同。
从这两种模型内在的复杂度来看。这里说的自回归模型,其实更多是指像 MAGI-1 这种本质上由自回归和扩散耦合在一起的模型。它实质上试图通过这种耦合结构,结合两种不同建模范式的优点。也正因为如此,它天然就会继承两种模型的复杂性,这也意味着它在系统设计和训练过程中的复杂性,显著高于纯粹的扩散模型或纯粹的自回归模型。这是它内在复杂度的一个直接来源。
具体实现里,因为现在不管是扩散模型还是自回归模型,其实底层大多都是基于 Transformer 架构来实现的。这也带来了进一步的工程挑战。Transformer 架构里面有一个最关键的基础计算单元是 Attention。在扩散模型里传统上使用的是一种叫 Full Attention 的机制,也就是在一个 Attention 模块内部,任意两个元素都可以相互 “ 看见 ”,信息可以完全双向流通。而在自回归模型里通常采用的是 Causal attention,也就是所谓的因果掩码机制:当前这个元素只能看见它之前的历史元素,不能看未来的内容,而历史元素也看不到当前的内容。
那在 MAGI-1 架构下,必须同时处理这两种不同的 Attention 机制。而目前在整个业界,其实还没有一个特别成熟、标准化的实现方案,可以很好地统一并高效地调度这两种不同的 Attention 模式。这就带来了架构设计上的显著复杂度。
关于复杂度,第二点是,我们对这两类方法的理解程度不同,也导致了训练和系统实现上的一些复杂度差异。像传统的扩散模型,从 2021 年底开始,无论是在图像生成的学术研究还是工业应用中,其实已经有了非常广泛的探索。所以在这条线上,业界已经积累了很多 know-how 和成熟的工程实践。但是对于纯粹的自回归模型,或者是扩散 + 自回归耦合模型,在处理 video 和 image 等多模态任务时,大家整体的理解还相对较浅,包括我们自己在内。所以在实际的研发过程中,会遇到很多不确定性和复杂度。
知危:
目前在结合扩散和自回归的优势方面,有哪些比较值得关注的成果?
张拯:
其实在我们刚开始研发 MAGI-1 的时候,业界在不同模态里其实各自都有一套成熟的最佳实践。
并且,除了视频这一领域目前还普遍使用纯粹的扩散模型之外,在很多其他模态和任务里,扩散 + 自回归的混合范式已经成为主流做法。比如说:Audio( 语音 ) 模型,Robotics( 机器人/决策建模 ) 中的 Decision making ( 决策建模 )模型,在图像生成方面,尤其是 GPT-4o 发布之后,图像领域也能看到明显的类似转向。
在 Audio 方面,我最近关注到的就是 Kimi 和阶跃星辰,这两家国内在语音模型上表现很好的公司。他们近期也都在做 Audio 方向的探索,分别提出了 Kimi-Audio 和 Step-Audio,而且他们的 Audio 模型几乎清一色采用的是 Diffusion 与自回归相结合的方式。在整个决策建模领域( Decision making ),也有一批工作沿着这条融合路线在走,比如:TransFusion,Diffusion Forcing等。
它们能够结合两类模型各自的优势。一方面,它结合了自回归模型在建模因果结构上的能力,另一方面,又结合了扩散模型在建模细粒度、高保真度内容上的能力,特别适合那些不一定涉及高阶智能,但对人类体验非常关键的信号,比如图像纹理、声音质感、微表情、微动作等。
知危:
目前,语言方向也在探索扩散模型和自回归模型的选择或结合,您认为视频方向可以为此提供哪些经验或启发?两个方向在这方面有哪些共同点和不同点?
张拯:
总体来说,语言方向的出发点和视频方向,是有明显不同的。至少我目前观察到,语言方向的这类探索大致分为两个主要动因:第一类是偏学术导向的探索,就是出于一种 “ 既然扩散模型在图像、音频等其他模态中都取得了不错的效果,那么在语言这边是否也可以尝试看看 ” 的想法。 这类工作更多体现为一种开放性实验,希望看看扩散模型是否能在语言生成中带来一些新的建模特性或生成风格,属于典型的探索性研究。
第二类则是更偏工程和系统性能导向的探索: 这类动因源于自回归语言模型在每个 token 的生成过程中存在并行性瓶颈。 因为自回归天然是顺序依赖的,所以在实时生成、低延迟交互等场景下,无法像扩散模型那样实现大规模并行。 而扩散模型在这一点上具有优势,因此在一些需要高吞吐、快速响应的语言应用中,大家开始尝试将扩散机制引入语言建模中。
相比之下,视频方向的扩散+自回归结合则更加自然, 因为视频天然就涉及时间建模( 需要因果结构 )和空间细节建模( 需要高分辨重建 )这两个维度,扩散和自回归分别恰好适合这两个方向。
所以我们在这两个不同方向的结合上,确实积累了一些关于特点和 knowhow 的观察,这些经验可以为语言模型提供一些有价值的参考。为了能够更快速、高效地在训练阶段同时支持扩散与自回归两种建模特性,我们也开源了一个基础算子,叫 MagiAttention,它本质上是一个偏 infra 层的组件。我们认为,视频方向后续在这类 infra 工具上的迭代上会有越来越多的工作。
视频生成在训练层面也和语言模型有很大不同,和超长的上下文有很大关系。比如MAGI-1的论文中有提到 “ 视频 token 的上下文长度极长,训练期间可达 400 万个token ”,那么视频 token 与秒数、分辨率之间的关系是什么呢?
在处理视频数据时,会引入类似于语言中的 token 的概念。也就是说,我们会把一段视频离散化、分块编码成一组 token,这组 token 就是模型的输入。对于 token 的压缩方式,目前主流的做法是:把视频看作是时间维度上一系列图像的集合;然后在图像层面进行空间压缩;举个例子,比如原始图像是 1080P( 即 1920×1080 ),我们将其压缩到像 240P 左右( 即 320×240 )的分辨率;接下来,一帧图像就会被表示成若干个 patch( 小块 )组成的 token 序列。例如,使用 16×16 的 patch 作为最小单元,那么一张 240P 的图像( 即 320×240 )就会被划分成大约 20×15 = 300 个 patch,也就是 300 个 token 。
在时间维度上,比如我们日常观看的视频通常是 30 FPS 或更高帧率,但在模型处理时,我们也会对帧率进行压缩——比如只保留 4 FPS 或 6 FPS,这样每秒钟就只取 4 到 6 帧来建模,如果保留 4 帧,那 1 秒钟视频就是 4 × 300 = 1200 个 token。所以,从整体来看:视频的总 token 数 ≈ 视频时长(秒) × 压缩后帧率 × 每帧压缩后 token 数。
计算视频 token 数通常会得到一个非常大的数字,这直接导致:视频任务在训练阶段所要处理的 token 数,是目前所有模态中最多的。远远超过语言模型( 即使语言模型上下文已经在扩展到几十万 token ),也远超 Audio 模型,甚至比图文多模态模型( 比如图文 )处理的 token 总量还要大得多。
所以,一方面是需要对视频本身做压缩,另一方面就是在 infra 层面也需要针对视频这种特性做特定优化。比如在语言模型里,早期像 Kimi 那种强调 long context 的尝试,其实跟视频这边追求的 long context 是很相似的 —— 都是希望模型能处理更长时间范围、捕捉更大上下文的结构关系。
但这两者在实践中其实还是有一些差异的:在语言模型这边,不管是 long context 还是普通 context,整个训练流程通常会分成 pretraining 和 post-training 两个阶段;语言模型的 pretraining 阶段几乎不会使用 long context,哪怕模型最终是支持 long context 的;这是因为 pretraining 阶段计算成本极高,语言模型的训练者通常会选择性价比最高的 context 长度( 比如 2K~4K )进行训练;而真正的 long context 能力,往往是在 post-training 阶段,或者在 pretraining 最末尾花极小一部分算力的方式实现。
但这一点在 video 上非常不一样。在 video 任务中,其实从非常早期、甚至整个 pretraining 阶段开始,就持续面对特别长的上下文。这就使得:整个 video 领域对 long context 的优化需求,从一开始就是一个高优先级、不可回避的问题,其优先级比语言模型高很多。
知危:
MAGI-1 基于扩散模型 DiT 构建,并且是扩散模型和自回归模型的结合体,具体是如何结合的?
张拯:
整体训练方式的主体仍然是使用扩散式的 loss,也就是说优化的是一个基于逐步去噪过程的目标函数;但在信息流通的建模方式上,采用的是完全自回归的结构。
也就是:未来帧可以访问历史帧的信息,但历史帧完全无法看到未来帧。从实现层面讲,这种结合的核心就在于我们对 Transformer 的 Attention 机制进行了定制化改造:在 Attention 中引入了时间方向的因果掩码( causal mask ),从而实现这种 “ 结构上自回归、优化上扩散 ” 的混合建模框架。
知危:
论文中提到 “ MAGI-1 在每个块内采用 full attention 机制,并在块间采用 causal attention 机制 ”,如此设置的考虑是什么?
张拯:
这个设计背后主要有几个方面的出发点:第一点:提高算力利用率。我们在最初设计这套机制的时候,一个重要的目标是提升整体的算力效率;正如前面提到的,语言模型在尝试将自回归和扩散结合时,也有一部分原因是因为纯粹的自回归结构在算力利用率上的表现不佳;MAGI-1 这边也出于同样的考量,希望找到一种性能与建模能力的平衡方式。
第二点考虑是:对于块内,可以把它理解为一个非常短的视频片段,比如可能是一秒钟甚至更短的长度。在这样的时间尺度内,采用双向的 diffusion(full attention)机制来刻画内容,其实在现阶段的技术条件下效率更高、建模效果更成熟。
然后也有考虑到自回归模型的的特性。所以我们会选择采用相对较短的块,比如说一秒左右的长度。在这样一个非常短的时间范围内,其内容本质上就像一个小视频片段。在这种尺度下,是否建模因果关系其实影响不大。但当我们处理的是更长的视频序列时,时间维度上的结构性就变得更重要了。
知危:
这是不是也要求,在短时长(比如一秒)的视频内容里,它的动态变化相对来说是比较小的?
张拯:
我们从数据设计的角度来说,并不会刻意去控制动态变化的大小,不会明确地筛掉高动态片段。但从实践观察上来看,确实是这样。如果是剧烈碰撞、快速爆炸、瞬时运动切换这类内容,在短时片段中出现高速大幅度变化,就会对模型造成压力,容易出错。
知危:
为什么 MAGI-1 中给视频帧序列添加的噪声,是随时间( 或视频帧序列 )单调递增的?
张拯:
这个设计背后主要有两个方面的考量:第一个是出于自回归建模本身的逻辑:在自回归的语义下,我们的目标是根据过去较为清晰的内容,去预测未来还未发生的内容;所以模型在生成时,必须满足一个自然的方向性假设:“ 历史是确定的、清晰的,未来是未知的、模糊的 ”;因此在设计上,我们就需要让时间靠前的帧相对更 “ 干净 ”,而时间越往后噪声越强,从而模拟 “ 预测的不确定性逐渐增加 ” 这一过程。
但严格来说,标准的自回归模型并不像 MAGI-1 这样,中间不会存在一个 “ 模糊→清晰 ” 的过渡状态。而 MAGI-1 的设计之所以采用 “ 噪声随时间单调递增 ” 的结构,其实是出于两个非常实际的考虑:第一,训练效率更高;第二,推理时可以实现并行化和流式生成( Streaming generation )。
如果完全按标准自回归方式,你只能等前一秒视频完全生成完成( 干净 )后,才能生成下一秒,这就形成了严格的顺序依赖,不利于推理效率;而 MAGI-1 当前的设计是允许你在上一秒视频 “ 刚刚变得稍微清晰 ” 时,就可以去预测下一秒的视频;这使得我们可以在一定程度上实现推理过程的重叠与并行,极大地提升了流式生成( streaming )或长视频续写场景下的效率。
我们当时希望解决的目标是:生成无限时长的视频;并且在中间不需要停顿或等待,让用户可以边看边生成,体验上是流畅连续的,所以我们就设计了这样一个策略。
更重要的是,我们在早期实验中发现,这种策略对生成质量的影响非常小,不会引起明显的画面崩溃或逻辑断裂,同时又很好地满足了我们对系统低延迟、流式输出、多阶段生成能力等方面的特性诉求。所以它最终成为 MAGI-1 系统中实现高效 streaming video generation 的关键设计之一。
此外,MAGI-1 采用多阶段训练也是基于效率的考虑。因为视频任务本身存在一个显著的挑战 —— token 数量特别多。 这就意味着如果我们一开始就在长时长、高分辨率的视频上进行训练,计算复杂度会非常高、资源消耗极大,训练效率也会非常低。所以,为了有效控制训练复杂度,我们采用了一种逐步上升式的多阶段训练策略:第一阶段:先在 静态图像上进行训练。 第二阶段:训练低分辨率、短时长的视频。 第三阶段及之后:逐步提升训练样本的视频分辨率和时长。
高质量、视觉表现优秀的视频和图片的数量,其实非常有限,不像低质量或中等质量数据那么丰富。所以我们采取的策略是:在训练的早期阶段,主要使用概念丰富但画质相对一般的视频和图片,帮助模型尽早建立起对内容多样性的认知;而那些视觉质量极高、精度要求更强的数据,则被保留到训练的中后期再加入,让模型在已经掌握结构和内容的基础上进一步学习细节与精度。
知危:
质量和效率之间的平衡点是什么?
张拯:
质量和效率之间的平衡点,核心就在于块与块之间 “ 清晰程度 ” 的 gap。
可以这样理解:如果这个 gap 太小,也就是说当前生成块和前一个参考块的噪声程度几乎一样,那么模型在生成时就无法从历史中提取有效的指导信息;因为此时 “ 历史帧 ” 本身也还处在一个比较模糊的状态,等于模型是在 “ 看着模糊的历史去预测模糊的未来 ”,最终就会导致生成质量显著下降。
另一个极端就是:如果我们选择将一个片段完全去噪干净后再开始生成下一段视频,那么模型就必须等待上一段全部完成后才能启动下一段的生成。这种情况下:无法实现多 chunk 的并行推理,必须串行执行;所以它的效率会明显下降;但与此同时,由于每一段的历史信息都是干净完整的,因此从原理上讲,它所带来的生成质量是最好的。
知危:
论文中提到 “ 观察到 MAGI-1 能够在 t = 0.3 时生成相当清晰的视频输出 ”,对于这个经验背后的理解是什么?
张拯:
在 MAGI-1 的论文里,t=0 对应纯粹的噪声,t=1 对应完全清晰的视频。随着 t 的增加,噪声也在逐渐减小,对应视频去噪生成的过程。 t = 0.3 在物理上代表的是包含清晰视频 30% 的像素内容( 其余为噪声 )。
人的视觉系统对细节的感知是非线性的;在 t=0.3 时,虽然局部纹理已经受损,但宏观信息仍然保留得比较好;比如:人物的位置、轮廓、动作方向仍然清晰可辨,只是像面部皱纹、毛发边缘、衣服褶皱这类细节会显得模糊或消失。
也就是说,t<0.3 的时候模型主要在生成宏观的结构信息,t>0.3 的时候则在生成细节的纹理信息。
模型能够在 t = 0.3 时生成相当清晰的视频输出。
图源:MAGI-1: Autoregressive Video Generation at Scale
这和人类视觉系统的特点一致:人眼对高频细节( 如纹理、微小噪点 )相对不敏感,但对低频结构( 如形状、边界、运动趋势 )高度敏感。
基于此观察,我们启发式地将大约 70% 的训练计算预算分配给 t < 0.3 的区域。
知危:
您提到希望模型能生成无限时长的视频,并且论文中提到 “ 只要 MAGI-1 的视频生成只关联有限的 KV( Key-Value ),其生成长度就是无限的 ”,如何理解这一点?
张拯:
我们目前的处理方式是:在推理过程中,模型只关注时序上最近的 10 秒或 20 秒内的 KV 信息,这使得 MAGI-1 具有恒定的峰值推理成本。
“ 恒定的峰值推理成本 ” 是对于生成固定大小的下一个视频块而言,每次都需要付出相同的算力代价,所以生成完整视频的成本随着视频延长而线性增长,理论上是可以实现无限生成的。
但这里也稍作补充说明:在实践中,由于仍然存在误差累积的问题,当你生成视频长度特别长的时候,仍可能出现一些不连续或偏差的现象。比如我们在生成一个 30 秒钟视频时,如果 “ 抽卡 ” 运气不好,可能在最后一帧中会看到相比第一帧图像的画质下降、颜色漂移等现象。
知危:
MAGI-1 支持为每一个视频块提供不同文本条件,来实现逐块的文本控制,这是不是自回归模型才能实现的优势?
张拯:
可以从两个角度来理解:应用视角和技术视角。
从应用视角:为什么逐块文本控制是刚需、但双向扩散模型难以用好?假设你脑子里已经完全构思好了一个复杂动作的分镜拆解,比如一个 200 字的长句子,精准地把每一秒钟的动作用文字对上。理论上,你是可以把这些 caption 全部输入到一个 双向扩散模型中,然后让它一次性生成一个 20 分钟的长视频,第一分钟对应第一段 caption,第二分钟对应第二段 caption,依此类推。从表达能力角度来说,双向扩散模型不是做不到,但在实际应用中极难做到。
原因是:无论是自回归模型还是双向扩散模型,当你给一个长 caption,它都无法保证你所描述的内容一定会在预期的时间段内、完整且正确地出现;换句话说,如果你在第一段 caption 中描述了一个 5 秒钟应该完成的动作,模型可能会拖延到第七秒才完成,甚至提前在第三秒做完。
从技术视角:我们现在的模型,无论自回归还是双向扩散,从技术角度讲其实还远远没法做到“零抽卡”一遍过的生成体验。尤其是当你提供的某一段 caption 特别复杂、长、结构密集的时候,模型很有可能:第一次生成出来的内容没有覆盖全信息;或者覆盖了,但画面实现得不够符合你的预期;于是你就需要不断抽卡 → 看效果 → 再抽卡 → 再修改 prompt,直到达成目标。在这种情况下,如果你是一次性让模型生成 20 秒、30 秒甚至更长的视频,那每次失败的成本就非常高。
所以这就引出了一个更具实用性的策略:把复杂的 caption 拆成更短的片段,逐块生成;每一块都可以调试、替换、修正;整体质量可控性就会大大提升,且不容易出现局部崩坏带动全局崩坏的问题。而这种分块生成 + 多轮调试的生成方式,在结构上是只有自回归模型才能支持得好的。
再深入到训练层面,目前这方面最大的一个限制在于:整个行业普遍采用的训练范式,还是以相对短、简单的视频片段为主;尤其是双向扩散模型,因为受限于各种复杂度,大多数训练数据都是几秒钟内的完整视频或片段;这就带来一个直接的问题:模型在训练过程中很少见到 “ 文本条件发生大幅变化 ” 的情形;所以一旦在测试或实际生成中遇到这类跨语义、跨动作的多段式描述,模型很难处理得自然、准确,因为它在训练中就没见过这种复杂度和跨度的文本-视频对齐方式。
因此,我们可以说目前双向扩散模型的训练框架天然就不利于支持 “ 文本条件逐段变化 ” 的任务,而自回归结构由于是分阶段推进、边生成边处理,其训练方式也可以更自然地暴露在复杂语义切换、节奏控制的真实任务分布下。
知危:
论文中提到了很多通过调整关联强度来优化视频生成质量或特性的方法或经验,比如调整视频帧关联或语义关联的强度,以保持身份一致性或场景一致性,您对这些方法或经验背后的理解是什么?
张拯:
这个部分是MAGI-1挺关键的创新点。
传统的语言模型都使用自回归的方式去做,但其实学界都还没有形成一个统一的认识,即为什么在语言模型里不需要使用关联强度的技巧,就能够达到很好的生成效果。但在图像或视频里,哪怕是像 VideoPoet 这种纯粹用自回归生成的方法,也是需要有关联强度这一项的。
尽管此前学界已有一些方法,例如直接借用类似 Sora 这种双向 attension 结构中的公式来进行处理,但我们认为自己的一个重要贡献在于:我们是在自回归加扩散模型这条技术路径上,从概率论的视角,理论上推导出了一套用于调整关联强度的公式。这套公式完全基于概率推理,因此具有明确的理论保障。
有了这一全新的公式,我们在此基础上进行了进一步研究,其中比较有意思的研究点有两个部分。第一部分,关于视频生成本身。在自回归与扩散模型结合的方法中,大家普遍会遇到一个问题:帧与帧之间,或更广义上的 chunk 与 chunk 之间,生成内容会存在一定程度的不连续性。过去对此的处理方法,很多是非本质的手段,我们早期也尝试过类似的做法。但依靠我们从理论上推导出的关联强度调整公式,可以从数学上显式地调整以下两个方向之间的权重关系:一方面是新生成视频与过去时序之间的连续性;另一方面是对新的文本指令的响应程度。通过这个机制,我们可以明确调控生成内容在 “ 保持连续性 ” 与 “ 遵循新文本指令 ” 之间的权衡。
有了这套公式,就会发现:我们不再需要那些非常 tricky 的技巧,也能实现很好的视频连续性效果。这个 “ 调整关联强度 ” 的操作,在学术术语中属于 classifier-free guidance( CFG )。我们注意到:至少在视频生成模型中,误差累积现象与 CFG 存在非常强的相关性。在我们的论文中对此部分也做了专门阐述。我们的观点是:如果未来希望进一步解决视频生成中的误差累积问题,那么研究如何将这个 CFG 机制纳入模型训练过程,可能是一个关键的探索方向。
第二部分,关于与语言模型的比较。对于语言模型为何不需要关联强度,坦率来说,目前没有看到学界或其他人对这个问题有特别好的回答,我也没有答案,但有一些猜想。我倾向的一个解释是:这本质上可能是因为视频或图像数据中存在较强的 “ 空间冗余性 ”。所谓空间冗余性,是指:以图像为例,图像中空间上相邻的像素,或者说视觉内容,通常具有一定程度的相似性;在视频中则表现为,相邻时间点的两帧画面之间,通常内容变化不会太大,特别是时间上非常邻近的帧。而这种数据在局部上的相似性,在建模过程中,容易导致模型 “ 偷懒 ”。这里所谓的 “ 偷懒 ” 是指:模型在学习时,倾向于对邻近区域或前一帧内容进行简单的复制( copy )操作;这样就可以生成一个看上去还不错的结果,而无需真正理解或建模更复杂的变化关系。
从训练的角度来看,这种简单的 copy 操作虽然在训练阶段看起来有效,但它带来了训练与测试阶段之间的不一致问题。具体来说,到了测试阶段,模型从 0 开始生成,并没有真实的前一帧可供复制;此时如果模型在训练中依赖了 “ copy 策略 ”,测试时就会无法维持结构逻辑与连续性,导致生成结果乱七八糟。因此,在视频或图像生成中,我们需要引入像 CFG 这样的技巧,其本质目的是为了:克服训练与测试之间的不一致问题;尽可能抑制模型对简单复制策略的依赖,引导它学习更具泛化能力的生成方式。像这种 copy 操作,在生成过程中很可能会导致语义或物理层面上的偏差。
相比之下,在语言建模任务中,情况有所不同。相邻的两个 token 通常是两个词,或者至少是两个字符;这使得语言序列中很难出现直接重复的情况;同时,不同语言中的每个 token 通常都表达了非常明确的语义概念。因此,在语言建模的训练过程中,模型不太容易出现图像或视频任务中那种 “ 偷懒 ” 行为。但需要说明的是,这仍然是一个猜想。我们还没有特别明确的实验信号或理论依据来证实这个观点。
知危:
请概括MAGI-1训练和推理基础设施的核心创新,以及其关键作用?
张拯:
先解释一下,训练和推理的基础架构在宏观层面上到底起到了什么作用。基础架构的核心其实就是:怎么更充分地利用 GPU 的算力。所有的优化目标,其实最终也都是为了这个目的服务的。如果说追求极致,那就是:GPU 提供多少算力,我们就能尽可能100% 利用起来,不产生任何浪费。在这个前提下,我们会针对训练和推理这两个不同的使用场景,做出各自的、差异化的优化。
训练最主要的创新集中在两个方面:第一是 MagiAttention 的 attention 结构的设计,这是在模型层面的一个重要创新点。第二是在训练过程中采用了分布式训练。所谓分布式训练,就是我们会使用大量的 GPU 并行地去处理这个模型。而一旦进入分布式训练的场景,所面对的系统复杂度就会远高于非分布式的训练方式。因此,训练的基础架构必须专门针对这种分布式训练的场景,做出单独的优化设计。
在推理这边,最大的复杂性可以分成两个场景来看:第一个场景是,我们的模型有一个很关键的功能,就是要支持实时的 streaming 推理。 这个部分必须要做非常高强度的优化,才能在尽可能少的算力消耗下实现流式生成。第二个场景是,我们目前开源的 MagiAttention 有两个版本,一个是 4.5B 的版本,另一个是 24B 的版本。 其中 24B 版本的模型体积比较大,而我们又希望它能运行在一些相对便宜的硬件上,比如 RTX4090 。所以我们就需要针对这些中低成本硬件环境,做出很多非常具体、定制化的优化。
知危:
为什么需要特别设计 MagiAttention 的 Attention 结构?
张拯:
MAGI-1 结合了 diffusion model 和 autoregressive ( AR ) 模型,这本身就导致注意力的结构具有高度异构性:在块内( intra-block ):使用的是类似 Sora 中的双向注意力结构,允许在当前局部范围内双向建模;在块间( inter-block ):采用类似语言模型中的因果注意力( causal attention ),只关注历史信息。这种混合结构要求注意力机制能够灵活地适应不同方向、粒度和上下文范围的变化。
输入视频本身具有高度非统一性。在训练过程中,输入视频存在显著的分布异质性,这进一步加剧了注意力结构的复杂性。空间维度变化:不同视频可能有不同的分辨率( 如 16:9、4:3 );时间维度变化:视频的长度差异很大,有的仅 2–3 秒,有的长达十几秒。为了提升训练效率,我们希望在训练中将多个视频拼接在一起处理,但这也意味着:注意力编码机制必须能够在同一批次中处理空间维度、时间维度都不同的视频片段,形成复杂形状张量下的灵活 attention 结构。
工程实现上的挑战与需求。由于上述两方面的复杂性,目前在开源社区中:尚不存在一个开源 attention 实现,能够同时支持这种复杂的形状适配、高效运行和灵活配置;如果继续沿用标准注意力算子,将导致显著的训练效率下降。这就是为什么我们需要一套MagiAttention的实现,首先它要足够灵活,因为我们要处理的情况特别多和复杂,其次要高效。使用高效版本的 MagiAttention,训练一个模型可能只需要 10 天;而如果依赖通用实现,可能需要一个月甚至两个月才能完成同样的训练。
知危:
MagiAttention 和分布式训练、视频模型的适配性体现在哪里?
张拯:
视频模型的分布式训练,或者说所有的分布式训练,最大的挑战通常来自两个方面:第一方面是通信问题。 因为分布式训练意味着会有很多台不同的机器一起参与运算,它们之间不仅要各自计算,还需要频繁通信与协调。
打个比方来说:如果只有一个人在干活,那就是非分布式训练;而分布式训练就像是有 1,000 个人一起完成一件工作,每个人负责其中的一小部分;这个时候就需要大家互相沟通、协作,技术上对应的就是不同 GPU 或机器之间需要通信。
第二方面是速度一致性问题。 当这 1,000 台机器共同处理一个任务时,最终的处理时间取决于最慢的那一台机器。 如果说在任务分配中,有一个人被分配了过多的任务,那么在实际执行过程中就会出现这样的情况:其他所有人都在等待,只有那一个人还在干活。这个在技术层面上就会造成计算资源的浪费,因为大部分机器都在空转,整体效率就被拖慢了。所以最理想的情况是:所有机器被分配到的任务复杂度差不多;大家能够在接近同一时刻完成自己的部分;这样就不会出现有机器空闲、整体效率被拉低的情况。
所以,这两个问题——分布式训练中的通信和协作复杂性;任务负载不均导致的性能瓶颈;可以说是我们在做分布式训练时遇到的两个最大困难。而 MagiAttention 的设计,就是为了应对这两个困难的。
视频模型,尤其像 MAGI-1 这样的视频模型,它的 Attention 结构非常复杂。正是因为这种复杂性,当我们在进行分布式训练、给不同机器分配任务时,如果不进行特殊处理,就很容易出现任务分配不均的情况 —— 有的机器任务重,有的机器任务轻。
为了解决这个问题,MagiAttention 做了一些专门的优化和创新:第一,任务负载均衡。我们会在任务分配前,提前计算或估计每台机器应该承担多少任务量, 然后尽可能确保所有机器被分配到的工作量大致一致,这样就不会出现个别机器拖慢整体进度的情况。第二,通信优化。在通信这块,MagiAttention 的目标是:让通信量尽可能减少。 因为如果通信太频繁,机器间花在通信上的时间可能比花在实际计算上的时间还多,这就非常低效了。所以我们本质上是希望:通信时间更少,计算效率更高。
关于 “ MagiAttention 和视频模型本身的适配性 ”,其实就是指希望能把不同时间、不同分辨率、不同比例的视频片段放在一起训练。
首先,MagiAttention 是一个比较基础的架构。 从技术角度上讲,它并不是和视频模型强绑定的,它也可以应用在其他领域,比如语言模型等。但区别在于: 在语言模型中,attention 的复杂度通常没那么高,大家只需要应对一些结构上相对简单的特例,解决一两个典型结构就够用了。 而在像 MAGI-1 这样的视频模型中,attention 的结构和计算模式都非常复杂,不能靠处理几个特例就能应对。因此可以说,是视频生成任务,特别是 MAGI-1 这样的复杂视频模型,倒逼我们必须去开发出一个既高效又灵活的在线 attention 机制。也正因为这个需求,才催生了 MagiAttention 这样的系统。
知危:
MagiAttention 的主要组成包括 FFA( Flex-Flash-Attention )、调度求解器、Group-Cast 和 Group-Reduce 原语、自适应多阶段重叠策略等。其中,FFA是一种高效的注意力机制,调度求解器确保计算负载均衡,Group-Cast 和 Group-Reduce 原语消除了冗余通信,自适应多阶段重叠策略有效隐藏了通信延迟,请分别解释每个组成的原理?
张拯:
关于 FFA( Flex Flash Attention ),它的核心思路是:通过将整个 attention 的掩码( mask )切分成多个计算单元的组合来进行处理。这些掩码可以看作是 full mask 和 causal mask 的组合。
Full mask 和 casual mask 图示。
图源:MAGI-1: Autoregressive Video Generation at Scale
MagiAttention 其实还在持续探索如何去支持一些更新颖的基础计算单元。 但在第一个版本中,优先支持的是 full mask 和 causal mask。主要是因为目前我们已知的几个主流领域,包括视频领域在内,大部分复杂的 attention mask 形式本质上都是围绕 “ 双向( full )” 和 “ 因果( causal )” 之间做 trade-off;因此这些复杂的 attention mask 几乎都可以被表达为 full mask 和 causal mask 的组合。所以这两个类型就成了构建更复杂结构的 “ 积木 ”,我们先支持它们,就可以覆盖绝大多数实际需求。
如果我们把视角放得更长远一些,会发现还有一些其他领域在使用更特殊的 mask 形式。比如一个比较典型的例子是:所谓的 sliding window attention( SWA ) 机制。这一类结构现在也逐渐被使用到一些任务中,我们也已经在着手支持这类机制的计算与扩展,目前正在开发当中。
为什么 FFA( Flex Flash Attention )的设计特别适合分布式注意力计算?以及注意力掩码( attention mask )在其中是怎么发挥作用的?
那在 FFA( Flex Flash Attention ) 中,我们是怎么实现 attention mask 的灵活表达与分布式适配的呢?
我们发现,过去很多关于 attention 的设计其实都太复杂了。 而在 FFA 中,我们引入了两个非常关键但又简单的接口,叫做:q_range( Query Range )、k_range( Key Range )。你只需要指定不同的 q_range 和 k_range,就可以构建出非常灵活的 attention 掩码结构。
这种设计的好处有两个:第一,灵活性好。由于所有的 attention 模式都可以通过 q_range 和 k_range 来灵活组合定义, 这就使得 FFA 能够覆盖多种注意力结构的需求,使用上也非常简单。第二,适合分布式计算。因为有了 q_range 的这个定义方式,我们就可以在进行分布式部署时:预先分析 q_range 的分布;根据它的分布情况,把注意力的计算任务更合理地切分到不同机器上;从而做到任务分布更均匀,减少资源空转,显著降低分布式实现的复杂度。所以,为什么说 FFA 特别适合分布式注意力计算? 本质上是因为它通过这套简单清晰的接口:提升了表达能力和使用灵活性;降低了并行计算中负载不均和调度复杂度的问题。
如果我们只看一段视频,通常只需要处理 full mask 或 causal mask 就够了。但问题在于,在实际训练中,我们经常希望用很多机器来训练整个视频模型。 为了尽可能发挥这些机器的效率,我们就不能每次只训练一小段视频,而是会把一大批视频片段组合起来一起训练。举个例子,比如我们有一个视频集合,里面包含了 1,000 段视频。 这些视频长度不一、分辨率不一。我们在训练的时候,会把这些视频拼接成一个 “ 巨大的长视频 ” 来进行处理。
但与此同时,有个关键点:这些视频片段之间其实是没有任何语义关联的,我们不希望它们之间产生 attention。也就是说,模型在做 attention 的时候,不应该让一个视频片段“看到”另一个无关片段的内容。 这个“相互不可见”的约束,就是通过构造复杂的 attention mask 来实现的。所以,正是由于这种训练策略——多个视频拼接成一个长序列训练,但又需要彼此隔离,才导致我们需要使用更加复杂的、结构化的 attention 掩码。相比之下,在语言模型的训练里,大家过去更常见的做法是:直接把不同的句子拼接起来,不管有没有关联,统一当成一篇长文来训练。因此语言模型那边的 attention 掩码就相对简单很多。
复杂、不规则的mask图示。
图源:MAGI-1: Autoregressive Video Generation at Scale
将不同的视频拼接在一起后,再通过上下文并行( CP,context-parallelism )分配给多张卡进行并行计算。
直接的均匀分配会对应不同的注意力掩码结构,而由于注意力掩码的不一致,就会导致计算负载出现不平衡。这就需要通过调度求解器达到计算负载均衡,解决方法简单理解是将上下文灵活切分,以为每张卡尽可能均匀分配注意力掩码的面积。
在分布式训练中,一个非常重要的目标是:让所有机器处理的任务量尽可能一致。这样才不会出现某一台机器提前完成,而其他机器还在忙,导致资源空闲、效率浪费的情况。
从技术角度来说,不同机器的任务量,主要取决于它所处理的注意力掩码的形状, 我们在论文里也把这个称为注意力区域的 “ 面积 ”。
换句话说:如果一个 attention mask 的非零区域( 未被遮挡的区域 )越大,那它所对应的计算负载就越重;所以我们可以通过估计 attention mask 中 “ 未被遮盖区域的面积 ”,来判断每台机器的任务量大小。在 CP 设置中,我们会把一个很长的序列拆分给多台机器,每台机器负责其中的一段。我们通过事先分析这些段所对应的 attention mask,然后采用一些策略,尽量让不同机器处理的掩码面积相等, 从而使任务负载趋于平衡,进一步提升训练效率。
计算负载均衡原理图示
图源:MAGI-1: Autoregressive Video Generation at Scale
Group-Cast 和 Group-Reduce 原语是为了实现 “ 零冗余通信原语 ”。从注意力掩码的形状就可以看出来,查询( Query )和 KV( Key-Value )之间不是一个密集的一一对应关系,实际上是稀疏的。
因此可以基于 attention mask 的情况来计算:哪些 Query 和 KV 之间确实需要通信,哪些则不需要。
传统的通信原语,由于控制粒度较粗,在处理像 MagiAttention 这样复杂 attention mask 的模型时, 会出现不少不必要的通信开销,也就是存在资源浪费的情况。所以我们在这里专门提出了一种更细粒度的通信原语机制, 就是为了根据实际需要来决定哪些通信该发生,哪些可以省略, 从而达到 “ 零冗余 ” 的目的,避免掉通信层面的浪费。
关于自适应多阶段重叠,它的目的是让前项和后项的计算与通信能够进行重叠。 在微观层面上,计算和通信的重叠是怎么实现的呢?可以举个例子来说明。 在我们现在使用的计算框架中,不管是 GPU 还是 CPU,都可以理解为它们的内部实际上存在两个并行的时间线,或者说两条工作流(workflow)。这两条工作流分别是:计算工作流(computation workflow)和通信工作流(communication workflow)。
我们可以分别给这两个工作流分配任务,而这两条 “ 流水线 ” 可以并行执行,互不阻塞。一个低效的调度方式是这样的:先执行一段计算;等计算完成后,再进行通信;通信完成后,再进行下一段计算;以此类推。这个流程的问题在于:当计算完成后,计算的流水线就空闲下来;当通信开始后,通信完成前计算无法进行;最终会出现大量时间被浪费在两条流水线互相等待、彼此空置上。
所谓的计算和通信的交叠,在微观层面上,就是我们通过各种技巧——比如调整计算和通信的顺序—— 来让计算流水线和通信流水线尽可能都不停下来。我们会在做计算的同时,想办法提前启动一些通信操作, 通过这样的方式,实现计算与通信的真正并行推进。这样做带来的好处就是:计算效率和通信效率不会相互阻塞;不需要“通信等计算”或者“计算等通信”的情况发生;整个系统从全局来看,执行效率明显提升。
假设有两个任务,任务 A 和任务 B。每个任务都包含:先计算、再通信的流程;正常来说,A 的通信只能等 A 的计算做完才能开始,所以无法内部并行;但如果我们把 A 的计算阶段与 B 的通信阶段重叠起来,再把 B 的计算阶段和 A 的通信阶段重叠起来,这样两个任务之间就形成了 “ 交叉重叠 ”,A 的计算 → B 的通信,B 的计算 → A 的通信,从而实现并行利用资源的效果。此外,计算和通信依赖于不同的硬件单元,虽然计算和通信都发生在 GPU 内部,但 GPU 内部本身是一个高度异构的系统;它有一部分硬件专门负责数值计算;另一部分硬件则负责数据传输和通信;因此,在硬件层面也支持两类工作流的并行推进。
综合运用以上所有技术,MagiAttention 在不同场景下均能实现线性可扩展性,线性可扩展性即相对于并行化程度的增加( 或机器数量增加 ),计算效率可以线性的随之增加。
知危:
在推理优化部分,论文中提到 “ 在目前架构设计中,通过扩展 DTensor 和并行计划,将建模与并行化解耦 ”,实现这种解耦的关键是什么?
张拯:
先说一下这个 “ 解耦的关键 ” 到底是什么。
现在,整个深度学习社区几乎都在使用 PyTorch 这个框架,包括绝大多数公司、初创团队和学术界。但是,PyTorch 在最初的设计阶段,其实并没有考虑现在这种 “ 大模型时代 ” 的需求。比如上千上万台机器同时训练一个大模型,或者参数量超百亿的模型如何分布式高效训练等等。
所以,在最近几年新需求不断冒出来的情况下,大家只能在 PyTorch 的基础上进行不断扩展和改造。
一个早期、也比较典型的扩展方式就是 Megatron-LM,这是英伟达开发的, 它在 PyTorch 的基础上提供了一个分布式训练的套件。但这个套件的问题在于,它是深度侵入 PyTorch 实现的, 也就是说:算法工程师在使用时,不得不跟底层的分布式实现强绑定、耦合在一起。
如果你想要搭建一个比较大的模型,并且希望能在上千张 GPU 卡的集群上把它训练起来,那作为算法人员,你就需要手动写很多和通信、并行化相关的代码。这些代码通常是直接嵌入模型逻辑里的,也就是说,把并行策略“写死”在模型中。这种写法带来一个问题:算法人员不得不去了解很多底层的分布式并行实现细节;但事实上,算法同学的背景或经验通常并不擅长这类系统级、并行化的事情;所以这就导致了算法开发的效率很低,维护难度也高。
我们团队在早期内部开发时,也是基于像 Megatron-LM 这样的框架,来写训练代码和算法逻辑的。但在这个过程中,我们发现了一个很明显的问题:所有东西都被高度耦合在一起了,算法和系统完全绑死, 这就导致大家在团队协作中非常难以分工合作,比如算法人员和工程人员很难各自专注自己的部分,彼此牵制。
所以,这也就导致了我们后来意识到 —— 其实这也是整个社区的一个趋势:就是希望能把分布式并行和算法实现这两件事情解耦开。
这样一来:算法同学就可以专注在算法设计和模型搭建上;而分布式、性能优化这些底层实现部分,则交由更擅长这类系统工程的同学来处理。这个就是我们整体做这件事的一个 motivation,也是我们为什么要推动 “ 解耦 ” 这件事的原因。
不过,要真正实现这个目标,其实在实践中也遇到过不少困难。最主要的问题是:原生的 PyTorch 并不太支持这样灵活的解耦机制。 这就需要在 PyTorch 上做一些更底层的扩展或者改造。我们团队的工程同学在调研过程中发现: 最近 PyTorch 内部正在研发一个叫 DTensor 的全新数据结构。我们进一步研究之后发现,基于这个 DTensor 的数据结构, 其实是有可能通过扩展和定制的方式,比较优雅地实现 “ 建模与并行优化 ” 的彻底解耦。
知危:
在推理优化部分,提到了扩散蒸馏技术,请问扩散蒸馏在MAGI-1中发挥的作用是什么?扩散蒸馏的原理是什么?
张拯:
所谓的扩散蒸馏( Diffusion Distillation ),其实就是为了解决如下问题:当你已经拥有一个预训练好的扩散模型之后,如何通过 “ 蒸馏 ” 这个技巧,大幅提升模型在推理阶段的生成速度?
扩散蒸馏的作用主要体现在推理侧的优化,具体包括两个方面:节省成本,以及提高生成的效率。原因在于,虽然 MAGI-1 在生成过程中依然采用扩散 loss 进行训练,也就是仍需经历多步采样生成过程(denoising steps),但:如果模型不进行蒸馏处理,那么在实际推理阶段所需的步数就会非常多;举例来说,标准模型在没有蒸馏的情况下可能需要 64 步;而通过蒸馏优化后,可以将步数大幅减少。
引入了扩散蒸馏后,一方面减少了生成步骤,节省计算成本蒸馏之后,至少可以将生成步骤压缩到 8 步;这意味着计算成本减少了至少 8 倍,同时生成等待时间也缩短了 8 倍,显著提升了推理效率。另一方面,扩散蒸馏优化了 CFG 推理结构。当前的 CFG 实现中包含三个项;严格来说,每一项都需要模型各自推理一次,因此推理成本较高;但通过蒸馏的方式可以将 CFG 三项合并,使得模型只需推理一次即可;这进一步带来了3 倍的计算成本节省与推理效率提升。总体效果使得在实际部署中可以实现约 24 倍的综合成本节省与速度加速。
关于扩散蒸馏的原理,在推理过程中,扩散模型的基本过程是:从纯噪声开始,不断地去噪;每一步都试图让图像变得更清晰、更接近真实内容。如果用一个形象的类比来解释这一过程,可以想象它像是一场 “ 赛跑 ” 或 “ 登山过程 ”:在每一步,模型都会预测一个 “ 前进的方向 ”,并将当前的图像状态沿这个方向略微推进;然而,这个方向在不同的步骤中是不断变化的——这使得整个过程有点类似于 “ 随机游走 ”;正因为每一步的方向都不完全一致,所以模型必须每次只走一小步,整个生成过程就会显得非常耗时( 比如可能需要 100 步 )。
扩散蒸馏的关键目标就是:让每一步的去噪方向尽量保持一致,从而减少需要采样的步数。更具体地说:在标准扩散模型中,从噪声生成清晰图像可能需要 100 步;这是因为模型在每一步都重新估计方向,每一步的方向都不一样,必须 “ 慢慢试探地前进 ”;蒸馏的目标是:让这 100 步中的方向趋于一致,即:如果可以保证每一步的方向基本一致;那么实际上,只需要 “ 走一步 ” 就能到达原本需要走 100 步才能到达的地方,极大地提升了推理效率。
知危:
论文中提到 MAGI-1 的 “ 在视觉质量方面,与顶级模型相比仍有改进空间 ”,是什么原因,未来如何提升?
张拯:
以我们自己的模型 MAGI-1 为例,我目前的判断是:目前和顶级模型之间的差距,更多是源自我们在数据层面的积累还不够;关于数据准备和数据质量我们也在快速迭代中。当然,也有一部分可能跟我们使用的自回归结构本身有关。
目前我们还没有完全研究清楚的一点是:在某些固定的生成 pattern 上,主要是锐化和某些局部的画面抖动等,自回归模型确实会出现一些表现上的问题;这些问题在和一些双向模型( 比如扩散模型 )对比时,会更明显一些。不过,我们在探索过程中也发现了一些可能的解决方法。 所以我会认为,从中期来看,不需要等太久,自回归模型在生成效果上, 应该不会存在原则性劣势,相对于扩散模型而言是可以追平,甚至在某些方向上可能更有优势的。
知危:
目前是否能验证或者观察到 MAGI-1 模型在参数规模或者数据规模上的一些 Scaling 规律或者迹象?
张拯:
我们目前对外能公开的信息,主要还是基于我们内部的一个 4.5B 参数量级的模型。至少在我们自己内部的评测和实验中,已经能够观察到一些趋势:比较小的模型在处理一些运动幅度特别大的视频时,表现确实不如大模型稳定。至于更具体的 Scaling law 相关实验,我们现在也在做一些初期探索, 但目前这些结果还没有通过公开渠道正式发布。不过我们最近确实也在开展更严谨的实验,后续这些内容应该会更新到我们的开源报告里。
知危:
MAGI-1 目前还难以处理复杂的次要效应,包括精确的碰撞响应、材料特定的反应以及变形后行为,这是自回归模型的限制?还是未结合物理上的约束导致?还是数据方面的限制?
张拯:
我个人更倾向于认为,这个问题主要还是受限于当前模型本身的能力上限。
虽然 MAGI-1 的模型参数量不算小,比如我们现在有一个 24B 的版本, 但对于视频这种复杂数据类型来说,这个规模的模型可能还远远不够, 它在建模精细物理过程时,能力上确实存在一定限制。其次,我们在数据层面也确实还有很大的提升空间。特别是关于碰撞和物理效应相关的数据,比如:材料在碰撞前后的细节变化;精确的接触行为建模;这些类型的数据,在我们目前的数据储备中也相对比较少。
我们现在观察各种视频生成应用,确实很少有模型特别强调这方面的优化, 比如很少涉及对精确碰撞、硬物交互、刚性变形这些现象的细致建模。更多情况下,大家关注的是:比如踩在沙子上,或者是人物与环境进行一些柔性的互动。
我们讨论这个问题时,其实要区分两个视角:一是从视觉效果角度看,这是目前大部分 video generation 公司关注的方向。在这个方向上,主要目标是:生成的视频看起来够自然、有表现力;所以偏向柔性动作、人物行为、自然运动,而不是物理精准。
二是从物理仿真角度看,如果从严格的物理仿真或物理一致性的角度出发, 目前行业内面临的最大问题之一就是:在 “ 物理碰撞 ” 类任务上,大家投入的数据准备还远远不够。严格来说,目前也没有多少团队真正去收集、构建这类数据集;所以模型也就很难具备对应的能力。当然,偏物理仿真的方向也有潜在的数据来源,比如:一些现成的物理引擎比如 Physx、Havok 等生成的数据;这些数据来自物理模型本身,可靠性较高。
顾险峰教授曾发文《 Sora 物理悖谬的几何解释 》评论道,Sora 这类模型在本质上就很难适应刚性碰撞等这一类对象的生成。就我现在对双向扩散模型( Bidirectional diffusion model )理论建模能力的理解来看,确实在面对某一类数据时是有困难的。我们一开始其实也举过例子,比如像 Sora 这样的模型,就算模型规模很大,它在生成像 “ 走路 ” 这种看似简单的动作时,有时候仍然会出现不符合物理规律的情况。我认为这就是像 Sora 这种纯粹的双向、底层去噪( Denoising )式模型在建模方面的一个内在限制。如果学术一点来说,现在我们会把这类难以建模的问题描述为 —— 符合因果关系的多峰分布。
顾险峰教授在那篇文章里提到的,可能更多还是从模型层面提出一些解决思路。但其实从现在的理解来看,无论是模型层面还是数据层面,都可以为这类问题的改善提供帮助。
知危:
论文结尾中提到 “ 一种从结构上将高级语义推理与低级视觉合成分离的解耦设计值得探索 ”,目前学术界有哪些值得注意的成果吗?
张拯:
这个方向在整个学界其实现在也呈现出百花齐放的探索状态。 比如,何恺明他们在去年晚些时候还是今年年初,有一篇比较有代表性的论文,叫做 MAR,就是在做类似的事情。 此外,在 Audio 领域的一些工作,也在尝试把建模与生成过程结构性拆分,和我们这个方向有一些共通之处,比如前面提到的 Kimi-Audio、Step-Audio 等。
知危:
您在 MAGI-1 中对训练的优化做到了很极致的程度,是否和算力限制有关?
张拯:
我们在训练、尤其是并行训练这一块,在资源效率上的优化做得非常极致, 这背后有一个很关键的动机就是算力限制。
但另一方面,就算在资源相对充足的环境下, 从一个工程技术人员的角度出发,对 “ 极致效率 ” 的追求本身也仍然是非常有动力和吸引力的。
我们 Sand.ai 现在的这支团队,在最开始组建的时候,就是以算法同学为主的团队。我们虽然一开始就意识到 Infra( 基础设施 )非常关键, 但对它的重视程度,其实是在项目不断深入的过程中逐渐加深的,可以说是不断刷新了我们的认知。举个例子:在今年一二月份的时候,我们当时已经觉得自己在 Infra 上已经 “ 优化得很极致 ” 了;但到了现在这个时间点回头看,我们发现:其实还有很多资源被白白浪费了,尤其是不该浪费的 GPU、算力、乃至金钱。所以说,这个过程本身对我们来说就是一个非常有价值、非常深刻的收获。
知危:
本次将 MAGI-1 开源背后的考虑是什么?闭源不是更能保持技术优势和快速获取商业收益吗?
张拯:
闭源确实是有好处和优势的。如果我们观察现在整个视频生成模型领域,甚至可以说更广义地放到所有由模型驱动的新兴产业中去看, 包括语言模型、音频生成模型、多模态模型等等。行业内的一个普遍现象是:单纯从模型层面来看,大家之间的领先优势并不会特别大。
目前限制行业整体进步的最大因素其实在于,许多组织出于成本、风险、资源等多方面的考量,不太愿意在技术上承担太大的试错风险, 更倾向于采取一种保守、稳健的推进策略。
我们开源 MAGI-1 背后的思考是:只要在市场上发布这款模型,并且明确传达是通过 “ 自回归方法 ” 实现的, 我们就已经传达了最关键的一点信息 —— “ 自回归这条路线在视频生成上是能走通的,并且可以做得很好。”
至于我们论文中提到的各种细节优化,确实也花了很多时间和经验积累。 但对于一些实力较强的团队来说,即便从头开始做,半年左右的时间,甚至更短,也有可能逐渐把关键的路径和坑摸清楚。所以从这个角度来看,闭源本身其实并不能真正让一个团队在技术上保持长期的领先优势, 甚至不要说长期,在中期维度上保持技术壁垒都比较困难。我们也观察到目前市场上各家模型的进展其实都非常快。
闭源所带来的,更多只是一个相对短期的时间窗口。但除非模型在能力上实现了真正的断档式领先, 否则,模型本身并不足以直接带来快速的商业收益。
此外,视频生成模型是一个非常长线的竞争赛道。我们当前这个阶段——甚至连 “ 技术路线 ” 都还没有完全稳定下来,整个领域还处在快速演进和探索期。
所以我们不会在这个阶段就把商业化摆得特别靠前。当然会做一些商业上的探索:比如做一些产品化的尝试;积累面向用户的认知;获取早期用户的反馈,用来打磨产品或能力。但整体上,我们是对这个赛道有耐心的。因此从认知角度也好,商业角度也好,我们都认为:开源模型所带来的损失并没有那么大。
知危:
未来打算如何建设开源社区生态,对此有什么期待?
张拯:
开源其实也为我们带来了不少优势。
技术路线的不一样,会带来两个方面的影响:一方面,是正向的产品差异化优势,因为底层模型机制不同,我们会自然探索出一些独特的生成玩法或用户体验;这些不一样的体验,在产品层面上可能会反馈为与现有市场产品形态明显不同的方向;所以这条路线能够带来在功能层和交互层面上的差异化创新。
另一方面,也存在一些现实挑战:因为我们和市场主流技术路线不一样,很多功能( 比如多参考图控制、条件生成接口等 )已经在社区广泛支持的模块或工具链中,在我们目前的自回归路线下其实无法直接使用;所以我们必须从头开发这些通用功能在新架构下的支持版本;而且在开发过程中,可能还会遇到一些偏研究性质的问题,需要投入比较大的工程和研究成本。比如一个比较典型的例子是 “ 参考图生成 ”:目前社区已经有不少扩散模型或产品模型支持这个功能;但如果我们要在像 MAGI-1 这样的自回归架构下去实现,就需要重新设计实现路径并从头尝试。
但如果我们能把开源这件事情真正做好,让更多的人来尝试使用我们的模型, 那么我们就可以更有效地借助开源社区的力量。从这个角度来看,我们也非常希望能坚持开源的策略。
知危:
您本次决定创业的根源是什么?
张拯:
其实是有一个比较清晰的背景的:在加入 Sand.ai、和曹越一起创业之前,我一直是在偏研究方向的机构工作。 这段时间也不短了,大概有六七年,主要是在微软亚洲研究院( MSRA )视觉计算组( VC 组 )。
在这段相对比较长的职业经历中,我逐渐对自己有了一个清晰的认知—— 也就是:我到底是从什么样的事情中获得成就感的?我发现自己其实很难从 “ 头衔、职位、职级 ” 这些形式上的东西中获得成就感, 比如说升到某个职级、拿到什么奖项,这些对我来说并不是决定性的。有时候甚至还会出现类似 “ 冒名顶替综合症(imposter syndrome)” 的感觉, 就是别人给我一些外部认可的时候,我会反而觉得有些不踏实。
相比之下,我最强烈的成就感,往往来自于这样一种情况:我真正做成了一件事情,这件事情本身被大家认可,进而也带动大家对我这个人的认可。这种“通过实事获得价值认同”的反馈,是我自我价值感的主要来源。
其实在过去几年里,我一直在断断续续地思考:什么样的事情,能真正让我获得内心的成就感?首先,做科研肯定是一个答案。因为科研的产出是论文,而论文背后代表的是你提出的想法和解决的问题。当这些工作被社区认可、被同行引用,那种正向反馈是非常直接的。
而另一方面,我后来也意识到,创业在某种程度上其实也是一个类似的过程。创业这个路径的核心其实也在于:大家因为认可你这个公司所做出来的产品或成果,进而认可你这个公司本身。 如果我们把公司也看成一种 “ 组织性的产品 ”,那最终人们对公司的认知,也会反馈到对创始人本人上。
所以从这个角度来说,对我最有吸引力的职业路径,其实就是研究和创业这两个方向。
我之前因为各种原因,其实在研究领域做得还挺开心,也相对比较顺利。 但差不多是在去年左右,我开始觉得:从长期的角度来看,如果是为了实现更完整的个人价值,组建一个全新形态的 startup 可能会是更好的路径。
如果稍微展开讲,其实我一直很关注像 OpenAI、更早的 DeepMind 这些机构。这些组织之所以能做出明显超越传统科研机构的成果,我认为和他们所采用的新型组织形式有很大关系。所以我也越来越希望自己能够:跳出传统科研机构的框架;在一种新的组织结构下,和一群人去探索和推动有价值的事;我相信这种方式可能能创造出更大的影响力和价值。
知危:
为何选择基于自回归模型生成视频这个赛道创业呢?
张拯:
当时在选择方向的时候,我觉得在整个 AI 领域里,最吸引人的其实有三个赛道:一个是语言模型( LLM );第二个是视频生成;第三个是机器人( Robotics )。我个人甚至在一定程度上觉得,视频生成和机器人在中长期的发展过程中,本质上可能要解决的是同一类问题,但可能“视频生成”会走在机器人前面。
所以在 video 和 robotics 这两个方向之间,我自己的判断是:这两个领域之间是存在一个先后顺序关系的。至少目前对我而言,video 这个方向的 timing 更合适一些, 它可能是一个更早进入、更有切入空间的点。
如果再来看 video 和大语言模型之间的选择, 更多和我的研究背景有关。我之前长期在做和 vision( 视觉 )相关的一些研究, 所以对视觉信号这个维度一直有一个很强的兴趣 —— 它有没有可能成为另一条与 LLM 平行的路径,通过压缩得到智能? 在过去,我们其实在 image 静态图像上已经做过很多尝试, 但后来我们的判断是:单靠图像本身还是太难,但在 video 上是有希望的。
如果单独看一张静态图像( image stand-alone ), 它所蕴含的与“智能”相关的信号是比较有限的。相比之下,视频( video )中所包含的信息就丰富得多:一方面,视频天然带有时间维度和物理信息;另一方面,视频中还包含了物体与物体之间的复杂交互;所以从直觉上我们会觉得,视频里所包含的 “ 可被智能模型挖掘的信号 ” 要丰富得多、意义也更大。
( 访谈全文完 )
