當(dāng)前,各大商業(yè)視頻生成模型幾乎都是基于純擴(kuò)散模型。
擴(kuò)散模型( Diffusion model )與自回歸模型( Autoregressive model )作為視頻生成的兩大技術(shù)路徑,各自展現(xiàn)了不同的特性與優(yōu)勢。
為深入探討兩種模型的優(yōu)劣勢、融合趨勢,以及視頻生成未來的發(fā)展前景,我們特邀 Sand.ai 聯(lián)合創(chuàng)始人、首席科學(xué)家張拯進(jìn)行深度對(duì)話。
張拯是華中科技大學(xué)軟件工程專業(yè)本碩,《 Swin Transformer 》作者之一,ACM 亞洲金牌獲得者,微軟亞洲研究院 MSRA 研究員( 在 MSRA 期間和曹越合作五年 ),ICCV2021 最佳論文獎(jiǎng)獲得者( 馬爾獎(jiǎng) Marr Prize ),目前谷歌學(xué)術(shù)總引用近 5 萬次。
而由當(dāng)時(shí)在 MSRA 的張拯、曹越等學(xué)者聯(lián)合提出的《 Swin Transformer 》是 ViT 在視覺領(lǐng)域落地應(yīng)用的關(guān)鍵進(jìn)化形式,解決了 ViT 在效率等方面的局限,是 ViT 的工程化增強(qiáng)版本,為視覺基礎(chǔ)模型領(lǐng)域奠定了一塊新基石,該論文現(xiàn)被引次數(shù)已超過 3 萬。
知危與張拯的整場對(duì)話全文近 3 萬字,以防您閱讀時(shí)間不充裕,我們先列出對(duì)話全文的觀點(diǎn)總結(jié)。
以下是本次對(duì)話的核心觀點(diǎn)總結(jié)。
關(guān)于自回歸模型與擴(kuò)散模型:
Sora 發(fā)布之后,Transformer 架構(gòu)成為擴(kuò)散模型主流。之后大部分的模型都偏純擴(kuò)散模型,跟 Sora 的區(qū)別不大。
早期的視頻自回歸方法,和LLM比較像,是純自回歸的,目前這條路線上特別成功的、相對(duì)來說大一點(diǎn)的模型,應(yīng)該還沒有。
從視頻質(zhì)量上,擴(kuò)散模型至少在現(xiàn)階段是最領(lǐng)先的,但這只是現(xiàn)狀,而不是基于算法的第一性原理推導(dǎo)出的最優(yōu)解。
相比擴(kuò)散模型,但凡涉及非常長時(shí)間的視頻生成,自回歸模型都是更合適的。
自回歸模型天然包含時(shí)間序列關(guān)系,對(duì)于基于時(shí)間的因果關(guān)系的建模比完全不考慮因果結(jié)構(gòu)的方式更完整。
長遠(yuǎn)來看,幾乎所有的模態(tài)都會(huì)嘗試融合到一個(gè)統(tǒng)一的大模型里,如果一開始就用自回歸的方式來建模視頻,后續(xù)更容易融合到模態(tài)統(tǒng)一的大模型中。
擴(kuò)散模型目前最大的一個(gè)劣勢,即便在學(xué)界都還是非常前沿的課題,就是擴(kuò)散模型的 Scalability( 可擴(kuò)展性 )效能似乎存疑。
自回歸模型目前為止的最大挑戰(zhàn)是誤差累積。比如生成的單一鏡頭時(shí)間過長時(shí),畫質(zhì)可能會(huì)開始變得銳化、模糊不清,或者顏色會(huì)逐漸發(fā)生異常變化。
自回歸加雙向擴(kuò)散模型在建模效率和視頻生成質(zhì)量上與純擴(kuò)散模型的當(dāng)前差距,不代表中長期的劣勢,依然取決于模型能力的演進(jìn)、結(jié)構(gòu)設(shè)計(jì)和訓(xùn)練方式的進(jìn)一步發(fā)展。
自回歸模型在建模物理上有優(yōu)勢的一個(gè)跡象是,它有一個(gè)特點(diǎn):對(duì) " 走路 "、" 跑步 " 這樣的動(dòng)作刻畫得非常好。
純擴(kuò)散模型主要基于基于前一段視頻的最后一幀進(jìn)行視頻續(xù)寫,但它很難獲取之前整段視頻中較長時(shí)間范圍的信息,導(dǎo)致新片段在動(dòng)作連續(xù)性上經(jīng)常出現(xiàn)問題。
如果是非常短比如就幾秒的視頻片段,擴(kuò)散模型和自回歸模型之間的差距并不大。如果希望生成比較長的、具有復(fù)雜敘事結(jié)構(gòu)的視頻,或者希望做真正意義上的視頻續(xù)寫,自回歸模型都會(huì)有比較明顯的優(yōu)勢。
現(xiàn)在的視頻生成的自回歸模型更多是指像 MAGI-1( 張拯團(tuán)隊(duì)的創(chuàng)業(yè)項(xiàng)目 )這種本質(zhì)上由自回歸和擴(kuò)散耦合在一起的模型,因此天然就會(huì)繼承兩種模型的復(fù)雜性,在系統(tǒng)設(shè)計(jì)和訓(xùn)練過程中的復(fù)雜性,顯著高于純粹的擴(kuò)散模型或純粹的自回歸模型。
具體實(shí)現(xiàn)里,由于都是基于 Transformer 架構(gòu)來實(shí)現(xiàn)的,要很好地統(tǒng)一并高效地調(diào)度兩種模型不同的 Attention 模式,在架構(gòu)設(shè)計(jì)上的復(fù)雜度顯著增加。
除了 video 領(lǐng)域,在很多其他模態(tài)和任務(wù)里,擴(kuò)散 + 自回歸的混合范式已經(jīng)成為主流做法。比如 Audio、Robotics、圖像等。
一方面,自回歸加擴(kuò)散模型,結(jié)合了自回歸模型在建模因果結(jié)構(gòu)上的能力,另一方面,又結(jié)合了擴(kuò)散模型在建模細(xì)粒度、高保真度內(nèi)容上的能力。
語言模型也在探索兩種模型的結(jié)合,一類是純好奇向的學(xué)術(shù)探索,一類是更偏工程和系統(tǒng)性能導(dǎo)向的探索,源于自回歸語言模型存在并行性瓶頸。相比之下,視頻方向的擴(kuò)散+自回歸結(jié)合則更加自然, 因?yàn)橐曨l天然就涉及時(shí)間建模和空間細(xì)節(jié)建模這兩個(gè)維度。
在非常短的時(shí)間范圍內(nèi),是否建模因果關(guān)系其實(shí)影響不大,但當(dāng)處理的是更長的視頻序列時(shí),時(shí)間維度上的結(jié)構(gòu)性就變得更重要了。
基于文本實(shí)現(xiàn)逐塊文本控制,從表達(dá)能力角度來說,雙向擴(kuò)散模型不是做不到,但在實(shí)際應(yīng)用中極難做到。相比之下,自回歸結(jié)構(gòu)由于是分階段推進(jìn)、邊生成邊處理,其訓(xùn)練方式也可以更自然地暴露在復(fù)雜語義切換、節(jié)奏控制的真實(shí)任務(wù)分布下。
關(guān)于視頻生成行業(yè):
從視覺效果角度看,目前大部分視頻生成公司關(guān)注的是讓視頻看起來夠自然、有表現(xiàn)力,所以偏向柔性動(dòng)作、人物行為、自然運(yùn)動(dòng),而不是物理精準(zhǔn)。從物理仿真角度看,目前行業(yè)內(nèi)面臨的最大問題之一就是數(shù)據(jù)準(zhǔn)備還遠(yuǎn)遠(yuǎn)不夠。
閉源本身其實(shí)并不能真正讓一個(gè)團(tuán)隊(duì)在技術(shù)上保持長期的領(lǐng)先優(yōu)勢, 甚至不要說長期,在中期維度上保持技術(shù)壁壘都比較困難。閉源所帶來的,更多只是一個(gè)相對(duì)短期的時(shí)間窗口。但除非模型在能力上實(shí)現(xiàn)了真正的斷檔式領(lǐng)先, 否則,模型本身并不足以直接帶來快速的商業(yè)收益。
視頻生成和機(jī)器人在中長期的發(fā)展過程中,本質(zhì)上可能要解決的是同一類問題,但可能 " 視頻生成 " 會(huì)走在機(jī)器人前面。
整場對(duì)話中,張拯還結(jié)合了他的創(chuàng)業(yè)項(xiàng)目 MAGI-1 進(jìn)行了諸多實(shí)踐中技術(shù)細(xì)節(jié)的闡述和對(duì)技術(shù)路線的思考,由于與實(shí)操相關(guān),只看觀點(diǎn)提煉會(huì)有些許抽象難以理解,所以我們誠邀您直接觀看全文。
以下是對(duì)話原文,這是一場學(xué)術(shù)前沿相關(guān)的對(duì)話,所以知危編輯部并未作刪減,僅進(jìn)行了部分不改變張拯原意的編輯。正文長度較長,我們推薦您使用公眾號(hào)的文章" 浮窗 "或" 星標(biāo) "功能來提高閱讀體驗(yàn),以便閱讀被打斷后您可快速返回繼續(xù)閱讀。
行業(yè)篇
:請(qǐng)簡短介紹擴(kuò)散模型和自回歸模型在視頻生成方向的研究發(fā)展歷程,以及都有哪些代表性的成果?
:傳統(tǒng)的敘事里常會(huì)把自回歸模型和擴(kuò)散模型對(duì)立起來。但其實(shí)現(xiàn)在的整體發(fā)展趨勢,反而是兩邊在融合:各自吸收對(duì)方的優(yōu)點(diǎn),結(jié)合起來形成新的模式。
早期的研究方向里確實(shí)存在兩條路線:一邊是純粹的自回歸模型,另一邊是純粹的擴(kuò)散模型。在視頻生成這個(gè)領(lǐng)域,純擴(kuò)散模型的代表性成果里,OpenAI 發(fā)布的 Sora 是一個(gè)非常重要的節(jié)點(diǎn)。它可以說開啟了用擴(kuò)散模型進(jìn)行視頻生成的新時(shí)代,尤其是在商業(yè)機(jī)構(gòu)和 Production 級(jí)別的應(yīng)用中,Sora 成為了一個(gè)標(biāo)志性項(xiàng)目。
但其實(shí)在這之前,在學(xué)界里也有跟 Sora 非常像的模型,有一個(gè)特別有代表性的叫 SVD,Stable Video Diffusion,是 Stability AI 做的。當(dāng)然,由于一些歷史原因,SVD 當(dāng)時(shí)還是基于卷積( CNN ),而沒有基于 Transformer。到了 Sora 發(fā)布之后,大家開始更多用 Transformer 架構(gòu)去做。之后其實(shí)大部分的模型都偏向于純粹的擴(kuò)散模型,跟 Sora 的區(qū)別整體而言都不是特別大,都是在各自的數(shù)據(jù)集和細(xì)節(jié)上做改進(jìn),然后推出商業(yè)化的 Model。
而學(xué)界早期的自回歸( Autoregressive )模型,最有代表性的一篇 Paper 應(yīng)該是 VideoPoet,是 Google 的蔣路( 現(xiàn)已加入 TikTok )的團(tuán)隊(duì)研發(fā)的。
早期的視頻自回歸方法,基本上會(huì)利用跟現(xiàn)在的大語言模型比較像的思路,就是把整個(gè)視頻按照時(shí)間和空間分解,將每個(gè)像素或幾個(gè)像素表示成一個(gè)離散化的 video token,然后通過不斷地利用大模型去預(yù)測下一個(gè) video token 的方式來進(jìn)行。但是目前這條路線上特別成功的、相對(duì)來說大一點(diǎn)的模型,目前應(yīng)該還沒有。
如果是試圖去結(jié)合自回歸和 Diffusion 兩類模型優(yōu)點(diǎn)的工作,近乎都是偏商業(yè)化的模型,可能 MAGI-1 是第一個(gè)。
學(xué)界在過去一年多也有很多研究在做類似的探索。印象比較深刻的是由英國自動(dòng)駕駛創(chuàng)業(yè)公司 Wayve 提出的GAIA,其實(shí) GAIA 嚴(yán)格來說不是做視頻生成,而是做自動(dòng)駕駛的,但 GAIA 試圖用自動(dòng)駕駛采集到的車載第一人稱視角的數(shù)據(jù)來建模,這項(xiàng)工作很有啟發(fā)性。他們?cè)?23 年 9 月份就給出了一個(gè)自回歸+Diffusion 的技術(shù)方案,并且支持通過 Action 來控制視頻生成的內(nèi)容。國內(nèi)像智源的 NOVA 也比較有代表性。
:請(qǐng)綜合比較視頻生成方向上擴(kuò)散模型和自回歸模型的優(yōu)缺點(diǎn)?
:首先,從商業(yè)化這個(gè)層面來看,擴(kuò)散模型主要的優(yōu)點(diǎn)是,OpenAI 在比較早的時(shí)候證明了,通過不引入任何自回歸特性的純擴(kuò)散模型來做視頻建模,起碼對(duì)于一個(gè)相對(duì)比較短的視頻片段,是能夠達(dá)到比較好的效果的。這使得大家在技術(shù)路線上的探索風(fēng)險(xiǎn)低了很多。
其次,對(duì)于純粹的擴(kuò)散模型,學(xué)界研究的時(shí)間也有四五年了,在技術(shù)實(shí)現(xiàn)細(xì)節(jié)上的積累比較深,也使得技術(shù)實(shí)現(xiàn)的風(fēng)險(xiǎn)相對(duì)降低。
從實(shí)際視頻生成的質(zhì)量等維度上,擴(kuò)散模型至少在現(xiàn)階段的表現(xiàn)中是最領(lǐng)先的,但我認(rèn)為這只是現(xiàn)狀,而不是基于算法的第一性原理推導(dǎo)出的最優(yōu)解。關(guān)于自回歸模型的優(yōu)點(diǎn),從視頻生成應(yīng)用角度,視頻生成肯定不應(yīng)該只能生成幾秒鐘的短片段,我們還是希望模型不僅能生成短劇級(jí)別的內(nèi)容,還可以生成電影、電視劇甚至是游戲的非常長時(shí)間的內(nèi)容。而但凡涉及這種非常長時(shí)間的視頻生成,自回歸模型都是更合適的。
主要有兩個(gè)原因:第一個(gè)原因是,對(duì)于用戶,不希望隨著生成視頻時(shí)間越長,需要等待至可以觀看的時(shí)間也越長。這個(gè)等待時(shí)間至少應(yīng)該是一個(gè)常數(shù)。這就要求模型能夠以片段生成、甚至是逐幀生成的方式進(jìn)行。而逐幀生成,在學(xué)術(shù)上通常被稱為自回歸( Autoregressive )方式,或者是 Streaming( 流式 )生成方式。第二個(gè)原因是,純粹的 " 生成 " 并沒有滿足用戶的最終目標(biāo),用戶還是希望在生成過程中,模型能夠不斷地與人或外部世界交互,從而實(shí)時(shí)或非實(shí)時(shí)地去改變后續(xù)生成的內(nèi)容。這種方式從中長期來看,會(huì)產(chǎn)生一種全新的內(nèi)容形態(tài)。這也對(duì)應(yīng)了自回歸模型的基本特點(diǎn):它天然更適合逐步、交互式的生成過程。
從我的經(jīng)驗(yàn)來看,MAGI-1 能生成的最復(fù)雜的運(yùn)動(dòng),是包含連續(xù)多階段、情節(jié)演進(jìn)、跨物體轉(zhuǎn)換和擬人動(dòng)作的 " 敘事性運(yùn)動(dòng) "。比如我自己在用的時(shí)候,更常見的方式是:用一個(gè)簡單的 Prompt,生成兩三秒視頻;然后再換一個(gè)新的 Prompt,繼續(xù)生成兩三秒,甚至用這種方式做過完整一鏡到底、30 多秒、包含完整故事線的內(nèi)容生成。
我自己嘗試的一個(gè)比較復(fù)雜的例子是這樣的:一個(gè)人坐在椅子上;他快速站起來,拿出一把槍,對(duì)準(zhǔn)屏幕前的你;但扣動(dòng)扳機(jī)后不是子彈,而是飛出一朵鮮花;這朵鮮花開始在空中緩慢漂浮;漂浮過程中,鮮花逐漸變形為一只鳥;鳥落在這個(gè)人的身上;他朝你微笑,然后轉(zhuǎn)身離開。然后他在轉(zhuǎn)身的過程中,兩邊會(huì)有這種類似于劇院的簾子拉上,你以為結(jié)束了,但實(shí)際上這個(gè)人又把簾子拉開,然后又沖你笑了一下,最后整個(gè)畫面慢慢變黑,并且出現(xiàn)了一個(gè) Logo。
這其實(shí)是最能體現(xiàn) MAGI-1 在產(chǎn)品上的優(yōu)勢場景:每次只生成一小段視頻;并且在每一段生成之后,可以實(shí)時(shí)修改 Prompt 來調(diào)整接下來的內(nèi)容;這樣用戶就可以通過一種 " 邊生成、邊構(gòu)思、邊調(diào)整 " 的方式,去完成一個(gè)復(fù)雜內(nèi)容的創(chuàng)作。從我自己的使用體驗(yàn)出發(fā),我發(fā)現(xiàn)和其他生成工具很不一樣的一點(diǎn)是:用其他模型的時(shí)候,我通常是會(huì)提前構(gòu)思好整個(gè)故事結(jié)構(gòu), 然后讓工具一次性生成某一段素材,更多地把它當(dāng)成"素材庫工具"來用;但在我們自己的產(chǎn)品里,創(chuàng)作方式會(huì)變得更動(dòng)態(tài)。
總結(jié)來說,如果你希望生成一個(gè)非常短比如就幾秒的視頻片段,擴(kuò)散模型和自回歸模型之間的差距并不大。但如果你希望生成比較長的、具有復(fù)雜敘事結(jié)構(gòu)的視頻,或者你希望做真正意義上的視頻續(xù)寫,自回歸模型都會(huì)有比較明顯的優(yōu)勢。
如果從科學(xué)或理論的角度,盡管并不是所有視頻內(nèi)容都嚴(yán)格遵循物理規(guī)律,但大部分視頻中確實(shí)包含了一定的物理規(guī)律信息。而因?yàn)闀r(shí)間本身是線性演進(jìn)的,如果在建模之初就能夠把基于時(shí)間的因果特性納入,那么對(duì)于因果關(guān)系的建模就會(huì)比完全不考慮因果結(jié)構(gòu)的方式更完整一些,也更有可能學(xué)到真正穩(wěn)定的規(guī)律。這也是自回歸模型序列式生成方式天然能夠?qū)崿F(xiàn)的。
最后,從非常長期的角度來看,幾乎所有的模態(tài)都會(huì)嘗試融合到一個(gè)統(tǒng)一的大模型里,這些模態(tài)肯定會(huì)包括語言、語音、圖像等,視頻最終也會(huì)成為不可或缺的一部分。考慮到目前像語言這種被認(rèn)為 " 智力密度 " 較高的模態(tài),主流的建模方式幾乎都是自回歸形式,如果我們一開始就用自回歸的方式來建模視頻,那后續(xù)在模態(tài)統(tǒng)一的大模型中,視頻的建模路徑也會(huì)更順暢和自然。
關(guān)于兩者的相對(duì)劣勢,擴(kuò)散模型目前最大的一個(gè)劣勢,即便在學(xué)界都還是非常前沿的課題,就是擴(kuò)散模型的 Scalability( 可擴(kuò)展性 )效能似乎存疑。無論是我們這邊的一些初期實(shí)驗(yàn),還是跟其他同行相互交流,都有這樣的觀察:擴(kuò)散模型的 Scaling 效果雖然不是沒有,但性價(jià)比不高。或者說通過擴(kuò)展參數(shù)數(shù)量、增加訓(xùn)練計(jì)算量,確實(shí)也能看到效果有所提升,但這個(gè)提升與投入的成本不成正比。但這究竟是因?yàn)闆]有把事情做對(duì),還是擴(kuò)散模型本身就存在這方面的結(jié)構(gòu)性缺陷,目前還沒有完全搞清楚。因?yàn)檎麄€(gè)擴(kuò)散模型系統(tǒng)還是很復(fù)雜的,牽涉的變量非常多。各個(gè)組織的人,包括學(xué)界、Startup 和大公司,都還在這方面做探索。
對(duì)于自回歸模型,目前為止的最大挑戰(zhàn),還是誤差累積。比如 MAGI-1,盡管理論上可以支持無限時(shí)長的視頻生成,但當(dāng)生成的單一鏡頭時(shí)間過長時(shí),確實(shí)會(huì)出現(xiàn)誤差逐步積累的現(xiàn)象。主觀視覺上的體現(xiàn)就是:畫質(zhì)可能會(huì)開始變得銳化、模糊不清,或者顏色會(huì)逐漸發(fā)生異常變化。
我們也跟很多做語言模型的同行交流過,但他們很難像在視頻或者語音里那樣,直觀地感受到 " 誤差累積 " 的現(xiàn)象,只是有時(shí)候會(huì)對(duì)語言模型中的某些錯(cuò)誤 Case ,懷疑它是不是一種 " 誤差累積 "。比如語言模型中經(jīng)常出現(xiàn)的一種情況是:一旦語言模型開始重復(fù)輸出某些詞或句子,后面就會(huì)一直重復(fù),怎么也拽不回來。
:基于自回歸模型的視頻生成,對(duì)于已有內(nèi)容的可編輯性是否比擴(kuò)散模型更差?以及在生成質(zhì)量方面也更差?
:其實(shí)原理上不一定是這樣。比如我們現(xiàn)在做的視頻生成,即使是自回歸的形式,但在一些處理數(shù)據(jù)的方式上,和雙向擴(kuò)散模型還是挺相似的。
MAGI-1 采用的其實(shí)還是自回歸和雙向模型混合建模的方法。并且還存在很多其它不同的自回歸和擴(kuò)散模型相結(jié)合的建模策略。
如果只是討論 " 編輯 ",可以參考像 GPT-4o Image 這樣的生成模型。它大概率是一個(gè)自回歸和擴(kuò)散融合的模型,而且主架構(gòu)應(yīng)該是自回歸。但它的通過多輪對(duì)話交互的編輯能力,其實(shí)表現(xiàn)得還是比較好的。所以說,自回歸模型在編輯能力上的限制,更多是當(dāng)前模型能力和訓(xùn)練范式的問題,而不完全是自回歸這個(gè)建模方式本身的缺陷。 關(guān)于擴(kuò)散模型和自回歸模型目前在質(zhì)量方面的差距,首先,自回歸模型因?yàn)橐恍┨匦裕热缧枰?per-frame 或 per-token 的逐步建模,如果在算法上不做任何優(yōu)化,特別是在自回歸和擴(kuò)散結(jié)合的混合結(jié)構(gòu)中,訓(xùn)練效率相較于純雙向擴(kuò)散模型是明顯偏低的。
其次,整個(gè)自回歸加雙向擴(kuò)散模型目前在學(xué)界的研究坦率來說還沒有特別多,遠(yuǎn)不如雙向擴(kuò)散模型那樣成熟。因此,這里面可能會(huì)出現(xiàn)一些像前面提到的 " 誤差累積 " 的問題,從視覺效果上看,有時(shí)會(huì)比擴(kuò)散模型更明顯。但我覺得這一部分問題都是當(dāng)下的階段性現(xiàn)象,它不代表自回歸模型從中長期來看在建模效率和視頻生成質(zhì)量上一定會(huì)劣于雙向模型。這依然取決于模型能力的演進(jìn)、結(jié)構(gòu)設(shè)計(jì)和訓(xùn)練方式的進(jìn)一步發(fā)展。
:自回歸能天然地實(shí)現(xiàn)因果建模,還是只實(shí)現(xiàn)了一部分?或者需要更多的因果約束才能實(shí)現(xiàn)足夠逼真的物理效果?
:MAGI-1 目前也只是實(shí)現(xiàn)了部分的因果建模,還不是能夠徹底讓模型百分百進(jìn)行因果建模的形式。我們現(xiàn)在也在探索是否有更好的形式,能夠明確地保證模型進(jìn)行完全的因果建模,相信最終一定是可以找到解決辦法的。
關(guān)于 " 是否需要更多因果約束 "我覺得這取決于兩個(gè)方面:第一,算法層面:如果因果約束設(shè)計(jì)得更充分,它會(huì)迫使模型從數(shù)據(jù)中更主動(dòng)地去學(xué)習(xí)因果關(guān)系。第二,數(shù)據(jù)本身也極為關(guān)鍵:我們?nèi)粘K玫囊曨l數(shù)據(jù),特別是從互聯(lián)網(wǎng)上收集的,比如電影、電視劇、動(dòng)畫,其實(shí)很多內(nèi)容并不嚴(yán)格遵循現(xiàn)實(shí)物理規(guī)律。哪怕模型在結(jié)構(gòu)上具備了建模因果關(guān)系的能力,如果數(shù)據(jù)中充滿了 " 反物理 " 的例子,那模型最終學(xué)到的也可能是錯(cuò)亂或非現(xiàn)實(shí)的因果模式。當(dāng)數(shù)據(jù)本身蘊(yùn)含了較多真實(shí)的物理規(guī)律,配合上更合適、更強(qiáng)的建模方式,模型就更容易學(xué)到符合物理世界的因果結(jié)構(gòu)和動(dòng)態(tài)邏輯。
所以最終來看,建模方式和數(shù)據(jù)質(zhì)量是相輔相成的:缺一不可。
嚴(yán)格來說,像無人駕駛這種場景,或者是通過真實(shí)鏡頭拍攝出來的視頻,基本上都是符合物理規(guī)律的,但在美學(xué)表達(dá)或視覺精致度上相對(duì)弱一些。而一些偏特效制作類的視頻,雖然在視覺效果上更突出,但往往會(huì)有不少不符合物理規(guī)律的成分,比如不自然的光影、夸張的動(dòng)作、失真的重力等。這兩者之間的權(quán)衡其實(shí)是很難做到完美的。從數(shù)據(jù)量的角度,目前基于現(xiàn)實(shí)世界拍攝的數(shù)據(jù)遠(yuǎn)多于人工制作的數(shù)據(jù)。
如果我們?nèi)タ醋罱母鞣N模型的新版本發(fā)布的情況,可以大致看出,這種在物理和運(yùn)動(dòng)表現(xiàn)上的提升,主要還是由于 Scaling 帶來的。當(dāng)你擁有了更大的模型,再加上質(zhì)量更高、結(jié)構(gòu)更合理的數(shù)據(jù)集之后,對(duì)于一些更復(fù)雜的內(nèi)容——無論是人體運(yùn)動(dòng),還是一些偏物理效果的內(nèi)容( 比如重力、碰撞、慣性反應(yīng)、柔體運(yùn)動(dòng)等 )——模型的建模能力都會(huì)比之前顯著提升。
我們現(xiàn)在會(huì)同時(shí)關(guān)注兩個(gè)維度:一個(gè)是物理的真實(shí)性,另一個(gè)是美學(xué)上的體驗(yàn)。
因?yàn)槟壳罢麄€(gè)行業(yè)里,偏商業(yè)化落地的還是以 " 視頻生成 " 為核心場景為主,從這個(gè)角度出發(fā),我們肯定希望生成結(jié)果在美學(xué)層面是令人滿意的、有表現(xiàn)力的,能帶來視覺沖擊或者藝術(shù)感染力。
但與此同時(shí),我們也不會(huì)把長期目標(biāo)完全局限在視頻內(nèi)容生成這件事本身。從更長遠(yuǎn)的視角來看,我們其實(shí)更關(guān)注的是模型是否具備對(duì)物理世界、對(duì)客觀規(guī)律進(jìn)行結(jié)構(gòu)性建模和刻畫的能力。
:可否用一些代表性例子說明自回歸模型與擴(kuò)散模型在建模物理效果上的天然差距?
:有兩個(gè)代表性的例子可以說明。第一個(gè)是我們?cè)谟?xùn)練自己模型的非常早期,就發(fā)現(xiàn)自回歸模型有一個(gè)特點(diǎn):對(duì) " 走路 "、" 跑步 " 這樣的動(dòng)作刻畫得非常好。
如果我們回頭去看第一版 Sora 剛發(fā)布時(shí)放的一些 demo,以及后來其他一些友商的案例,即便是相對(duì)比較大的 model 生成的 demo,其實(shí)在 " 走路 " 或 " 跑步 " 這個(gè)動(dòng)作上經(jīng)常會(huì)出現(xiàn)一些問題。比如說:人物在走路時(shí)會(huì)順拐;原本應(yīng)該是左右腿交替前進(jìn),但在某個(gè)瞬間,突然就會(huì)變成連續(xù)兩次邁左腿,或者連續(xù)兩次邁右腿;這些動(dòng)作在視覺上看起來不協(xié)調(diào)、不自然,很容易 " 穿幫 "。
而像這類情況,在 MAGI-1 的架構(gòu)下,我們?cè)诜浅P〉哪P汀⒎浅T缙诘碾A段就發(fā)現(xiàn):對(duì)于 " 走路 " 這種在時(shí)序上有明確節(jié)奏和規(guī)律的運(yùn)動(dòng),模型的刻畫效果就非常好。幾乎不會(huì)出現(xiàn)像順拐、左右腿交替出錯(cuò)這類問題。這確實(shí)是一個(gè)很重要的證據(jù)點(diǎn),說明自回歸建模對(duì)時(shí)序規(guī)律、物理效果的捕捉有天然優(yōu)勢。
第二個(gè)例子是關(guān)于 video 續(xù)寫( video continuation )。如果單純指從一段已經(jīng)生成的視頻后面接著繼續(xù)生成的能力,很多其它模型也可以做。但其它模型大多數(shù)采用的策略是基于前一段視頻的最后一幀,以 " 圖像續(xù)寫 " 的方式來進(jìn)行生成。這種方式有一個(gè)明顯的弱點(diǎn)是:它很難獲取之前整段視頻中較長時(shí)間范圍的信息;因此生成的新片段在動(dòng)作連續(xù)性上經(jīng)常會(huì)出現(xiàn)問題。
比如說給一段 5 秒鐘的視頻,內(nèi)容是一個(gè)小球在屏幕上移動(dòng),它原本是按照某種明確的運(yùn)動(dòng)規(guī)律在運(yùn)動(dòng)的。如果只是拿前一段視頻的最后一幀作為起點(diǎn),用圖像續(xù)寫的方式繼續(xù)生成,新視頻往往就不再符合前 5 秒小球的運(yùn)動(dòng)規(guī)律,比如方向、速度可能就突然變了。但在我們目前的實(shí)現(xiàn)里,在運(yùn)動(dòng)連續(xù)性上表現(xiàn)顯著更好,不會(huì)出現(xiàn)那種前后斷開的感覺。
技術(shù)篇
:擴(kuò)散模型和自回歸模型在訓(xùn)練復(fù)雜度上有什么不同?根源是什么?如何解決?
:關(guān)于訓(xùn)練復(fù)雜度,可以從兩個(gè)方面來說:第一個(gè)方面是由于算法本身的內(nèi)在復(fù)雜度不同,第二個(gè)方面是我們目前對(duì)這兩種模型的理解程度不同,導(dǎo)致訓(xùn)練策略、優(yōu)化范式上的復(fù)雜度不同。
從這兩種模型內(nèi)在的復(fù)雜度來看。這里說的自回歸模型,其實(shí)更多是指像 MAGI-1 這種本質(zhì)上由自回歸和擴(kuò)散耦合在一起的模型。它實(shí)質(zhì)上試圖通過這種耦合結(jié)構(gòu),結(jié)合兩種不同建模范式的優(yōu)點(diǎn)。也正因?yàn)槿绱耍烊痪蜁?huì)繼承兩種模型的復(fù)雜性,這也意味著它在系統(tǒng)設(shè)計(jì)和訓(xùn)練過程中的復(fù)雜性,顯著高于純粹的擴(kuò)散模型或純粹的自回歸模型。這是它內(nèi)在復(fù)雜度的一個(gè)直接來源。
具體實(shí)現(xiàn)里,因?yàn)楝F(xiàn)在不管是擴(kuò)散模型還是自回歸模型,其實(shí)底層大多都是基于 Transformer 架構(gòu)來實(shí)現(xiàn)的。這也帶來了進(jìn)一步的工程挑戰(zhàn)。Transformer 架構(gòu)里面有一個(gè)最關(guān)鍵的基礎(chǔ)計(jì)算單元是 Attention。在擴(kuò)散模型里傳統(tǒng)上使用的是一種叫 Full Attention 的機(jī)制,也就是在一個(gè) Attention 模塊內(nèi)部,任意兩個(gè)元素都可以相互 " 看見 ",信息可以完全雙向流通。而在自回歸模型里通常采用的是 Causal attention,也就是所謂的因果掩碼機(jī)制:當(dāng)前這個(gè)元素只能看見它之前的歷史元素,不能看未來的內(nèi)容,而歷史元素也看不到當(dāng)前的內(nèi)容。
那在 MAGI-1 架構(gòu)下,必須同時(shí)處理這兩種不同的 Attention 機(jī)制。而目前在整個(gè)業(yè)界,其實(shí)還沒有一個(gè)特別成熟、標(biāo)準(zhǔn)化的實(shí)現(xiàn)方案,可以很好地統(tǒng)一并高效地調(diào)度這兩種不同的 Attention 模式。這就帶來了架構(gòu)設(shè)計(jì)上的顯著復(fù)雜度。
關(guān)于復(fù)雜度,第二點(diǎn)是,我們對(duì)這兩類方法的理解程度不同,也導(dǎo)致了訓(xùn)練和系統(tǒng)實(shí)現(xiàn)上的一些復(fù)雜度差異。像傳統(tǒng)的擴(kuò)散模型,從 2021 年底開始,無論是在圖像生成的學(xué)術(shù)研究還是工業(yè)應(yīng)用中,其實(shí)已經(jīng)有了非常廣泛的探索。所以在這條線上,業(yè)界已經(jīng)積累了很多 know-how 和成熟的工程實(shí)踐。但是對(duì)于純粹的自回歸模型,或者是擴(kuò)散 + 自回歸耦合模型,在處理 video 和 image 等多模態(tài)任務(wù)時(shí),大家整體的理解還相對(duì)較淺,包括我們自己在內(nèi)。所以在實(shí)際的研發(fā)過程中,會(huì)遇到很多不確定性和復(fù)雜度。
:目前在結(jié)合擴(kuò)散和自回歸的優(yōu)勢方面,有哪些比較值得關(guān)注的成果?
:其實(shí)在我們剛開始研發(fā) MAGI-1 的時(shí)候,業(yè)界在不同模態(tài)里其實(shí)各自都有一套成熟的最佳實(shí)踐。
并且,除了視頻這一領(lǐng)域目前還普遍使用純粹的擴(kuò)散模型之外,在很多其他模態(tài)和任務(wù)里,擴(kuò)散 + 自回歸的混合范式已經(jīng)成為主流做法。比如說:Audio( 語音 )模型,Robotics( 機(jī)器人/決策建模 )中的 Decision making( 決策建模 )模型,在圖像生成方面,尤其是 GPT-4o 發(fā)布之后,圖像領(lǐng)域也能看到明顯的類似轉(zhuǎn)向。
在 Audio 方面,我最近關(guān)注到的就是 Kimi 和階躍星辰,這兩家國內(nèi)在語音模型上表現(xiàn)很好的公司。他們近期也都在做 Audio 方向的探索,分別提出了 Kimi-Audio 和 Step-Audio,而且他們的 Audio 模型幾乎清一色采用的是 Diffusion 與自回歸相結(jié)合的方式。在整個(gè)決策建模領(lǐng)域( Decision making ),也有一批工作沿著這條融合路線在走,比如:TransFusion,Diffusion Forcing等。
它們能夠結(jié)合兩類模型各自的優(yōu)勢。一方面,它結(jié)合了自回歸模型在建模因果結(jié)構(gòu)上的能力,另一方面,又結(jié)合了擴(kuò)散模型在建模細(xì)粒度、高保真度內(nèi)容上的能力,特別適合那些不一定涉及高階智能,但對(duì)人類體驗(yàn)非常關(guān)鍵的信號(hào),比如圖像紋理、聲音質(zhì)感、微表情、微動(dòng)作等。
:目前,語言方向也在探索擴(kuò)散模型和自回歸模型的選擇或結(jié)合,您認(rèn)為視頻方向可以為此提供哪些經(jīng)驗(yàn)或啟發(fā)?兩個(gè)方向在這方面有哪些共同點(diǎn)和不同點(diǎn)?
:總體來說,語言方向的出發(fā)點(diǎn)和視頻方向,是有明顯不同的。至少我目前觀察到,語言方向的這類探索大致分為兩個(gè)主要?jiǎng)右颍旱谝活愂瞧珜W(xué)術(shù)導(dǎo)向的探索,就是出于一種 " 既然擴(kuò)散模型在圖像、音頻等其他模態(tài)中都取得了不錯(cuò)的效果,那么在語言這邊是否也可以嘗試看看 " 的想法。這類工作更多體現(xiàn)為一種開放性實(shí)驗(yàn),希望看看擴(kuò)散模型是否能在語言生成中帶來一些新的建模特性或生成風(fēng)格,屬于典型的探索性研究。
第二類則是更偏工程和系統(tǒng)性能導(dǎo)向的探索: 這類動(dòng)因源于自回歸語言模型在每個(gè) token 的生成過程中存在并行性瓶頸。因?yàn)樽曰貧w天然是順序依賴的,所以在實(shí)時(shí)生成、低延遲交互等場景下,無法像擴(kuò)散模型那樣實(shí)現(xiàn)大規(guī)模并行。 而擴(kuò)散模型在這一點(diǎn)上具有優(yōu)勢,因此在一些需要高吞吐、快速響應(yīng)的語言應(yīng)用中,大家開始嘗試將擴(kuò)散機(jī)制引入語言建模中。
相比之下,視頻方向的擴(kuò)散+自回歸結(jié)合則更加自然, 因?yàn)橐曨l天然就涉及時(shí)間建模( 需要因果結(jié)構(gòu) )和空間細(xì)節(jié)建模( 需要高分辨重建 )這兩個(gè)維度,擴(kuò)散和自回歸分別恰好適合這兩個(gè)方向。
所以我們?cè)谶@兩個(gè)不同方向的結(jié)合上,確實(shí)積累了一些關(guān)于特點(diǎn)和 knowhow 的觀察,這些經(jīng)驗(yàn)可以為語言模型提供一些有價(jià)值的參考。為了能夠更快速、高效地在訓(xùn)練階段同時(shí)支持?jǐn)U散與自回歸兩種建模特性,我們也開源了一個(gè)基礎(chǔ)算子,叫 MagiAttention,它本質(zhì)上是一個(gè)偏 infra 層的組件。我們認(rèn)為,視頻方向后續(xù)在這類 infra 工具上的迭代上會(huì)有越來越多的工作。
視頻生成在訓(xùn)練層面也和語言模型有很大不同,和超長的上下文有很大關(guān)系。比如MAGI-1的論文中有提到" 視頻 token 的上下文長度極長,訓(xùn)練期間可達(dá) 400 萬個(gè)token ",那么視頻 token 與秒數(shù)、分辨率之間的關(guān)系是什么呢?
在處理視頻數(shù)據(jù)時(shí),會(huì)引入類似于語言中的 token 的概念。也就是說,我們會(huì)把一段視頻離散化、分塊編碼成一組 token,這組 token 就是模型的輸入。對(duì)于 token 的壓縮方式,目前主流的做法是:把視頻看作是時(shí)間維度上一系列圖像的集合;然后在圖像層面進(jìn)行空間壓縮;舉個(gè)例子,比如原始圖像是 1080P( 即 1920×1080 ),我們將其壓縮到像 240P 左右( 即 320×240 )的分辨率;接下來,一幀圖像就會(huì)被表示成若干個(gè) patch( 小塊 )組成的 token 序列。例如,使用 16×16 的 patch 作為最小單元,那么一張 240P 的圖像( 即 320×240 )就會(huì)被劃分成大約 20×15 = 300 個(gè) patch,也就是 300 個(gè) token 。
在時(shí)間維度上,比如我們?nèi)粘S^看的視頻通常是 30 FPS 或更高幀率,但在模型處理時(shí),我們也會(huì)對(duì)幀率進(jìn)行壓縮——比如只保留 4 FPS 或 6 FPS,這樣每秒鐘就只取 4 到 6 幀來建模,如果保留 4 幀,那 1 秒鐘視頻就是 4 × 300 = 1200 個(gè) token。所以,從整體來看:視頻的總 token 數(shù) ≈ 視頻時(shí)長(秒) × 壓縮后幀率 × 每幀壓縮后 token 數(shù)。
計(jì)算視頻 token 數(shù)通常會(huì)得到一個(gè)非常大的數(shù)字,這直接導(dǎo)致:視頻任務(wù)在訓(xùn)練階段所要處理的 token 數(shù),是目前所有模態(tài)中最多的。遠(yuǎn)遠(yuǎn)超過語言模型( 即使語言模型上下文已經(jīng)在擴(kuò)展到幾十萬 token ),也遠(yuǎn)超 Audio 模型,甚至比圖文多模態(tài)模型( 比如圖文 )處理的 token 總量還要大得多。
所以,一方面是需要對(duì)視頻本身做壓縮,另一方面就是在 infra 層面也需要針對(duì)視頻這種特性做特定優(yōu)化。比如在語言模型里,早期像 Kimi 那種強(qiáng)調(diào) long context 的嘗試,其實(shí)跟視頻這邊追求的 long context 是很相似的 —— 都是希望模型能處理更長時(shí)間范圍、捕捉更大上下文的結(jié)構(gòu)關(guān)系。
但這兩者在實(shí)踐中其實(shí)還是有一些差異的:在語言模型這邊,不管是 long context 還是普通 context,整個(gè)訓(xùn)練流程通常會(huì)分成 pretraining 和 post-training 兩個(gè)階段;語言模型的 pretraining 階段幾乎不會(huì)使用 long context,哪怕模型最終是支持 long context 的;這是因?yàn)?pretraining 階段計(jì)算成本極高,語言模型的訓(xùn)練者通常會(huì)選擇性價(jià)比最高的 context 長度( 比如 2K~4K )進(jìn)行訓(xùn)練;而真正的 long context 能力,往往是在 post-training 階段,或者在 pretraining 最末尾花極小一部分算力的方式實(shí)現(xiàn)。
但這一點(diǎn)在 video 上非常不一樣。在 video 任務(wù)中,其實(shí)從非常早期、甚至整個(gè) pretraining 階段開始,就持續(xù)面對(duì)特別長的上下文。這就使得:整個(gè) video 領(lǐng)域?qū)?long context 的優(yōu)化需求,從一開始就是一個(gè)高優(yōu)先級(jí)、不可回避的問題,其優(yōu)先級(jí)比語言模型高很多。
:MAGI-1 基于擴(kuò)散模型 DiT 構(gòu)建,并且是擴(kuò)散模型和自回歸模型的結(jié)合體,具體是如何結(jié)合的?
:整體訓(xùn)練方式的主體仍然是使用擴(kuò)散式的 loss,也就是說優(yōu)化的是一個(gè)基于逐步去噪過程的目標(biāo)函數(shù);但在信息流通的建模方式上,采用的是完全自回歸的結(jié)構(gòu)。
也就是:未來幀可以訪問歷史幀的信息,但歷史幀完全無法看到未來幀。從實(shí)現(xiàn)層面講,這種結(jié)合的核心就在于我們對(duì) Transformer 的 Attention 機(jī)制進(jìn)行了定制化改造:在 Attention 中引入了時(shí)間方向的因果掩碼( causal mask ),從而實(shí)現(xiàn)這種 " 結(jié)構(gòu)上自回歸、優(yōu)化上擴(kuò)散 " 的混合建模框架。
:論文中提到 " MAGI-1 在每個(gè)塊內(nèi)采用 full attention 機(jī)制,并在塊間采用 causal attention 機(jī)制 ",如此設(shè)置的考慮是什么?
:這個(gè)設(shè)計(jì)背后主要有幾個(gè)方面的出發(fā)點(diǎn):第一點(diǎn):提高算力利用率。我們?cè)谧畛踉O(shè)計(jì)這套機(jī)制的時(shí)候,一個(gè)重要的目標(biāo)是提升整體的算力效率;正如前面提到的,語言模型在嘗試將自回歸和擴(kuò)散結(jié)合時(shí),也有一部分原因是因?yàn)榧兇獾淖曰貧w結(jié)構(gòu)在算力利用率上的表現(xiàn)不佳;MAGI-1 這邊也出于同樣的考量,希望找到一種性能與建模能力的平衡方式。
第二點(diǎn)考慮是:對(duì)于塊內(nèi),可以把它理解為一個(gè)非常短的視頻片段,比如可能是一秒鐘甚至更短的長度。在這樣的時(shí)間尺度內(nèi),采用雙向的 diffusion(full attention)機(jī)制來刻畫內(nèi)容,其實(shí)在現(xiàn)階段的技術(shù)條件下效率更高、建模效果更成熟。
然后也有考慮到自回歸模型的的特性。所以我們會(huì)選擇采用相對(duì)較短的塊,比如說一秒左右的長度。在這樣一個(gè)非常短的時(shí)間范圍內(nèi),其內(nèi)容本質(zhì)上就像一個(gè)小視頻片段。在這種尺度下,是否建模因果關(guān)系其實(shí)影響不大。但當(dāng)我們處理的是更長的視頻序列時(shí),時(shí)間維度上的結(jié)構(gòu)性就變得更重要了。
:這是不是也要求,在短時(shí)長(比如一秒)的視頻內(nèi)容里,它的動(dòng)態(tài)變化相對(duì)來說是比較小的?
:我們從數(shù)據(jù)設(shè)計(jì)的角度來說,并不會(huì)刻意去控制動(dòng)態(tài)變化的大小,不會(huì)明確地篩掉高動(dòng)態(tài)片段。但從實(shí)踐觀察上來看,確實(shí)是這樣。如果是劇烈碰撞、快速爆炸、瞬時(shí)運(yùn)動(dòng)切換這類內(nèi)容,在短時(shí)片段中出現(xiàn)高速大幅度變化,就會(huì)對(duì)模型造成壓力,容易出錯(cuò)。
:為什么 MAGI-1 中給視頻幀序列添加的噪聲,是隨時(shí)間( 或視頻幀序列 )單調(diào)遞增的?
:這個(gè)設(shè)計(jì)背后主要有兩個(gè)方面的考量:第一個(gè)是出于自回歸建模本身的邏輯:在自回歸的語義下,我們的目標(biāo)是根據(jù)過去較為清晰的內(nèi)容,去預(yù)測未來還未發(fā)生的內(nèi)容;所以模型在生成時(shí),必須滿足一個(gè)自然的方向性假設(shè):" 歷史是確定的、清晰的,未來是未知的、模糊的 ";因此在設(shè)計(jì)上,我們就需要讓時(shí)間靠前的幀相對(duì)更 " 干凈 ",而時(shí)間越往后噪聲越強(qiáng),從而模擬 " 預(yù)測的不確定性逐漸增加 " 這一過程。
但嚴(yán)格來說,標(biāo)準(zhǔn)的自回歸模型并不像 MAGI-1 這樣,中間不會(huì)存在一個(gè) " 模糊→清晰 " 的過渡狀態(tài)。而 MAGI-1 的設(shè)計(jì)之所以采用 " 噪聲隨時(shí)間單調(diào)遞增 " 的結(jié)構(gòu),其實(shí)是出于兩個(gè)非常實(shí)際的考慮:第一,訓(xùn)練效率更高;第二,推理時(shí)可以實(shí)現(xiàn)并行化和流式生成( Streaming generation )。
如果完全按標(biāo)準(zhǔn)自回歸方式,你只能等前一秒視頻完全生成完成( 干凈 )后,才能生成下一秒,這就形成了嚴(yán)格的順序依賴,不利于推理效率;而 MAGI-1 當(dāng)前的設(shè)計(jì)是允許你在上一秒視頻 " 剛剛變得稍微清晰 " 時(shí),就可以去預(yù)測下一秒的視頻;這使得我們可以在一定程度上實(shí)現(xiàn)推理過程的重疊與并行,極大地提升了流式生成( streaming )或長視頻續(xù)寫場景下的效率。
我們當(dāng)時(shí)希望解決的目標(biāo)是:生成無限時(shí)長的視頻;并且在中間不需要停頓或等待,讓用戶可以邊看邊生成,體驗(yàn)上是流暢連續(xù)的,所以我們就設(shè)計(jì)了這樣一個(gè)策略。
更重要的是,我們?cè)谠缙趯?shí)驗(yàn)中發(fā)現(xiàn),這種策略對(duì)生成質(zhì)量的影響非常小,不會(huì)引起明顯的畫面崩潰或邏輯斷裂,同時(shí)又很好地滿足了我們對(duì)系統(tǒng)低延遲、流式輸出、多階段生成能力等方面的特性訴求。所以它最終成為 AGI-1 系統(tǒng)中實(shí)現(xiàn)高效 streaming video generation 的關(guān)鍵設(shè)計(jì)之一。
此外,MAGI-1 采用多階段訓(xùn)練也是基于效率的考慮。因?yàn)橐曨l任務(wù)本身存在一個(gè)顯著的挑戰(zhàn) —— token 數(shù)量特別多。這就意味著如果我們一開始就在長時(shí)長、高分辨率的視頻上進(jìn)行訓(xùn)練,計(jì)算復(fù)雜度會(huì)非常高、資源消耗極大,訓(xùn)練效率也會(huì)非常低。所以,為了有效控制訓(xùn)練復(fù)雜度,我們采用了一種逐步上升式的多階段訓(xùn)練策略:第一階段:先在 靜態(tài)圖像上進(jìn)行訓(xùn)練。 第二階段:訓(xùn)練低分辨率、短時(shí)長的視頻。 第三階段及之后:逐步提升訓(xùn)練樣本的視頻分辨率和時(shí)長。
高質(zhì)量、視覺表現(xiàn)優(yōu)秀的視頻和圖片的數(shù)量,其實(shí)非常有限,不像低質(zhì)量或中等質(zhì)量數(shù)據(jù)那么豐富。所以我們采取的策略是:在訓(xùn)練的早期階段,主要使用概念豐富但畫質(zhì)相對(duì)一般的視頻和圖片,幫助模型盡早建立起對(duì)內(nèi)容多樣性的認(rèn)知;而那些視覺質(zhì)量極高、精度要求更強(qiáng)的數(shù)據(jù),則被保留到訓(xùn)練的中后期再加入,讓模型在已經(jīng)掌握結(jié)構(gòu)和內(nèi)容的基礎(chǔ)上進(jìn)一步學(xué)習(xí)細(xì)節(jié)與精度。
:質(zhì)量和效率之間的平衡點(diǎn)是什么?
:質(zhì)量和效率之間的平衡點(diǎn),核心就在于塊與塊之間 " 清晰程度 " 的 gap。
可以這樣理解:如果這個(gè) gap 太小,也就是說當(dāng)前生成塊和前一個(gè)參考?jí)K的噪聲程度幾乎一樣,那么模型在生成時(shí)就無法從歷史中提取有效的指導(dǎo)信息;因?yàn)榇藭r(shí)" 歷史幀 " 本身也還處在一個(gè)比較模糊的狀態(tài),等于模型是在 " 看著模糊的歷史去預(yù)測模糊的未來 ",最終就會(huì)導(dǎo)致生成質(zhì)量顯著下降。
另一個(gè)極端就是:如果我們選擇將一個(gè)片段完全去噪干凈后再開始生成下一段視頻,那么模型就必須等待上一段全部完成后才能啟動(dòng)下一段的生成。這種情況下:無法實(shí)現(xiàn)多 chunk 的并行推理,必須串行執(zhí)行;所以它的效率會(huì)明顯下降;但與此同時(shí),由于每一段的歷史信息都是干凈完整的,因此從原理上講,它所帶來的生成質(zhì)量是最好的。
:論文中提到" 觀察到 MAGI-1 能夠在 t = 0.3 時(shí)生成相當(dāng)清晰的視頻輸出 ",對(duì)于這個(gè)經(jīng)驗(yàn)背后的理解是什么?
:在 MAGI-1 的論文里,t=0 對(duì)應(yīng)純粹的噪聲,t=1 對(duì)應(yīng)完全清晰的視頻。隨著 t 的增加,噪聲也在逐漸減小,對(duì)應(yīng)視頻去噪生成的過程。 t = 0.3 在物理上代表的是包含清晰視頻 30% 的像素內(nèi)容( 其余為噪聲 )。
人的視覺系統(tǒng)對(duì)細(xì)節(jié)的感知是非線性的;在 t=0.3 時(shí),雖然局部紋理已經(jīng)受損,但宏觀信息仍然保留得比較好;比如:人物的位置、輪廓、動(dòng)作方向仍然清晰可辨,只是像面部皺紋、毛發(fā)邊緣、衣服褶皺這類細(xì)節(jié)會(huì)顯得模糊或消失。
也就是說,t<0.3 的時(shí)候模型主要在生成宏觀的結(jié)構(gòu)信息,t>0.3 的時(shí)候則在生成細(xì)節(jié)的紋理信息。
圖源:MAGI-1: Autoregressive Video Generation at Scale
這和人類視覺系統(tǒng)的特點(diǎn)一致:人眼對(duì)高頻細(xì)節(jié)( 如紋理、微小噪點(diǎn) )相對(duì)不敏感,但對(duì)低頻結(jié)構(gòu)( 如形狀、邊界、運(yùn)動(dòng)趨勢 )高度敏感。
基于此觀察,我們啟發(fā)式地將大約 70% 的訓(xùn)練計(jì)算預(yù)算分配給 t < 0.3 的區(qū)域。
:您提到希望模型能生成無限時(shí)長的視頻,并且論文中提到" 只要 MAGI-1 的視頻生成只關(guān)聯(lián)有限的 KV( Key-Value ),其生成長度就是無限的 ",如何理解這一點(diǎn)?
:我們目前的處理方式是:在推理過程中,模型只關(guān)注時(shí)序上最近的 10 秒或 20 秒內(nèi)的 KV 信息,這使得 MAGI-1 具有恒定的峰值推理成本。
" 恒定的峰值推理成本 " 是對(duì)于生成固定大小的下一個(gè)視頻塊而言,每次都需要付出相同的算力代價(jià),所以生成完整視頻的成本隨著視頻延長而線性增長,理論上是可以實(shí)現(xiàn)無限生成的。
但這里也稍作補(bǔ)充說明:在實(shí)踐中,由于仍然存在誤差累積的問題,當(dāng)你生成視頻長度特別長的時(shí)候,仍可能出現(xiàn)一些不連續(xù)或偏差的現(xiàn)象。比如我們?cè)谏梢粋€(gè) 30 秒鐘視頻時(shí),如果 " 抽卡 " 運(yùn)氣不好,可能在最后一幀中會(huì)看到相比第一幀圖像的畫質(zhì)下降、顏色漂移等現(xiàn)象。
:MAGI-1 支持為每一個(gè)視頻塊提供不同文本條件,來實(shí)現(xiàn)逐塊的文本控制,這是不是自回歸模型才能實(shí)現(xiàn)的優(yōu)勢?
:可以從兩個(gè)角度來理解:應(yīng)用視角和技術(shù)視角。
從應(yīng)用視角:為什么逐塊文本控制是剛需、但雙向擴(kuò)散模型難以用好?假設(shè)你腦子里已經(jīng)完全構(gòu)思好了一個(gè)復(fù)雜動(dòng)作的分鏡拆解,比如一個(gè) 200 字的長句子,精準(zhǔn)地把每一秒鐘的動(dòng)作用文字對(duì)上。理論上,你是可以把這些 caption 全部輸入到一個(gè) 雙向擴(kuò)散模型中,然后讓它一次性生成一個(gè) 20 分鐘的長視頻,第一分鐘對(duì)應(yīng)第一段 caption,第二分鐘對(duì)應(yīng)第二段 caption,依此類推。從表達(dá)能力角度來說,雙向擴(kuò)散模型不是做不到,但在實(shí)際應(yīng)用中極難做到。
原因是:無論是自回歸模型還是雙向擴(kuò)散模型,當(dāng)你給一個(gè)長 caption,它都無法保證你所描述的內(nèi)容一定會(huì)在預(yù)期的時(shí)間段內(nèi)、完整且正確地出現(xiàn);換句話說,如果你在第一段 caption 中描述了一個(gè) 5 秒鐘應(yīng)該完成的動(dòng)作,模型可能會(huì)拖延到第七秒才完成,甚至提前在第三秒做完。
從技術(shù)視角:我們現(xiàn)在的模型,無論自回歸還是雙向擴(kuò)散,從技術(shù)角度講其實(shí)還遠(yuǎn)遠(yuǎn)沒法做到"零抽卡"一遍過的生成體驗(yàn)。尤其是當(dāng)你提供的某一段 caption 特別復(fù)雜、長、結(jié)構(gòu)密集的時(shí)候,模型很有可能:第一次生成出來的內(nèi)容沒有覆蓋全信息;或者覆蓋了,但畫面實(shí)現(xiàn)得不夠符合你的預(yù)期;于是你就需要不斷抽卡 → 看效果 → 再抽卡 → 再修改 prompt,直到達(dá)成目標(biāo)。在這種情況下,如果你是一次性讓模型生成 20 秒、30 秒甚至更長的視頻,那每次失敗的成本就非常高。
所以這就引出了一個(gè)更具實(shí)用性的策略:把復(fù)雜的 caption 拆成更短的片段,逐塊生成;每一塊都可以調(diào)試、替換、修正;整體質(zhì)量可控性就會(huì)大大提升,且不容易出現(xiàn)局部崩壞帶動(dòng)全局崩壞的問題。而這種分塊生成 + 多輪調(diào)試的生成方式,在結(jié)構(gòu)上是只有自回歸模型才能支持得好的。
再深入到訓(xùn)練層面,目前這方面最大的一個(gè)限制在于:整個(gè)行業(yè)普遍采用的訓(xùn)練范式,還是以相對(duì)短、簡單的視頻片段為主;尤其是雙向擴(kuò)散模型,因?yàn)槭芟抻诟鞣N復(fù)雜度,大多數(shù)訓(xùn)練數(shù)據(jù)都是幾秒鐘內(nèi)的完整視頻或片段;這就帶來一個(gè)直接的問題:模型在訓(xùn)練過程中很少見到 " 文本條件發(fā)生大幅變化 " 的情形;所以一旦在測試或?qū)嶋H生成中遇到這類跨語義、跨動(dòng)作的多段式描述,模型很難處理得自然、準(zhǔn)確,因?yàn)樗谟?xùn)練中就沒見過這種復(fù)雜度和跨度的文本-視頻對(duì)齊方式。
因此,我們可以說目前雙向擴(kuò)散模型的訓(xùn)練框架天然就不利于支持 " 文本條件逐段變化 " 的任務(wù),而自回歸結(jié)構(gòu)由于是分階段推進(jìn)、邊生成邊處理,其訓(xùn)練方式也可以更自然地暴露在復(fù)雜語義切換、節(jié)奏控制的真實(shí)任務(wù)分布下。
:論文中提到了很多通過調(diào)整關(guān)聯(lián)強(qiáng)度來優(yōu)化視頻生成質(zhì)量或特性的方法或經(jīng)驗(yàn),比如調(diào)整視頻幀關(guān)聯(lián)或語義關(guān)聯(lián)的強(qiáng)度,以保持身份一致性或場景一致性,您對(duì)這些方法或經(jīng)驗(yàn)背后的理解是什么?
:這個(gè)部分是MAGI-1挺關(guān)鍵的創(chuàng)新點(diǎn)。
傳統(tǒng)的語言模型都使用自回歸的方式去做,但其實(shí)學(xué)界都還沒有形成一個(gè)統(tǒng)一的認(rèn)識(shí),即為什么在語言模型里不需要使用關(guān)聯(lián)強(qiáng)度的技巧,就能夠達(dá)到很好的生成效果。但在圖像或視頻里,哪怕是像 VideoPoet 這種純粹用自回歸生成的方法,也是需要有關(guān)聯(lián)強(qiáng)度這一項(xiàng)的。
盡管此前學(xué)界已有一些方法,例如直接借用類似 Sora 這種雙向 attension 結(jié)構(gòu)中的公式來進(jìn)行處理,但我們認(rèn)為自己的一個(gè)重要貢獻(xiàn)在于:我們是在自回歸加擴(kuò)散模型這條技術(shù)路徑上,從概率論的視角,理論上推導(dǎo)出了一套用于調(diào)整關(guān)聯(lián)強(qiáng)度的公式。這套公式完全基于概率推理,因此具有明確的理論保障。
有了這一全新的公式,我們?cè)诖嘶A(chǔ)上進(jìn)行了進(jìn)一步研究,其中比較有意思的研究點(diǎn)有兩個(gè)部分。第一部分,關(guān)于視頻生成本身。在自回歸與擴(kuò)散模型結(jié)合的方法中,大家普遍會(huì)遇到一個(gè)問題:幀與幀之間,或更廣義上的 chunk 與 chunk 之間,生成內(nèi)容會(huì)存在一定程度的不連續(xù)性。過去對(duì)此的處理方法,很多是非本質(zhì)的手段,我們?cè)缙谝矅L試過類似的做法。但依靠我們從理論上推導(dǎo)出的關(guān)聯(lián)強(qiáng)度調(diào)整公式,可以從數(shù)學(xué)上顯式地調(diào)整以下兩個(gè)方向之間的權(quán)重關(guān)系:一方面是新生成視頻與過去時(shí)序之間的連續(xù)性;另一方面是對(duì)新的文本指令的響應(yīng)程度。通過這個(gè)機(jī)制,我們可以明確調(diào)控生成內(nèi)容在 " 保持連續(xù)性 " 與 " 遵循新文本指令 " 之間的權(quán)衡。
有了這套公式,就會(huì)發(fā)現(xiàn):我們不再需要那些非常 tricky 的技巧,也能實(shí)現(xiàn)很好的視頻連續(xù)性效果。這個(gè) " 調(diào)整關(guān)聯(lián)強(qiáng)度 " 的操作,在學(xué)術(shù)術(shù)語中屬于 classifier-free guidance( CFG )。我們注意到:至少在視頻生成模型中,誤差累積現(xiàn)象與 CFG 存在非常強(qiáng)的相關(guān)性。在我們的論文中對(duì)此部分也做了專門闡述。我們的觀點(diǎn)是:如果未來希望進(jìn)一步解決視頻生成中的誤差累積問題,那么研究如何將這個(gè) CFG 機(jī)制納入模型訓(xùn)練過程,可能是一個(gè)關(guān)鍵的探索方向。
第二部分,關(guān)于與語言模型的比較。對(duì)于語言模型為何不需要關(guān)聯(lián)強(qiáng)度,坦率來說,目前沒有看到學(xué)界或其他人對(duì)這個(gè)問題有特別好的回答,我也沒有答案,但有一些猜想。我傾向的一個(gè)解釋是:這本質(zhì)上可能是因?yàn)橐曨l或圖像數(shù)據(jù)中存在較強(qiáng)的 " 空間冗余性 "。所謂空間冗余性,是指:以圖像為例,圖像中空間上相鄰的像素,或者說視覺內(nèi)容,通常具有一定程度的相似性;在視頻中則表現(xiàn)為,相鄰時(shí)間點(diǎn)的兩幀畫面之間,通常內(nèi)容變化不會(huì)太大,特別是時(shí)間上非常鄰近的幀。而這種數(shù)據(jù)在局部上的相似性,在建模過程中,容易導(dǎo)致模型 " 偷懶 "。這里所謂的 " 偷懶 " 是指:模型在學(xué)習(xí)時(shí),傾向于對(duì)鄰近區(qū)域或前一幀內(nèi)容進(jìn)行簡單的復(fù)制( copy )操作;這樣就可以生成一個(gè)看上去還不錯(cuò)的結(jié)果,而無需真正理解或建模更復(fù)雜的變化關(guān)系。
從訓(xùn)練的角度來看,這種簡單的 copy 操作雖然在訓(xùn)練階段看起來有效,但它帶來了訓(xùn)練與測試階段之間的不一致問題。具體來說,到了測試階段,模型從 0 開始生成,并沒有真實(shí)的前一幀可供復(fù)制;此時(shí)如果模型在訓(xùn)練中依賴了 " copy 策略 ",測試時(shí)就會(huì)無法維持結(jié)構(gòu)邏輯與連續(xù)性,導(dǎo)致生成結(jié)果亂七八糟。因此,在視頻或圖像生成中,我們需要引入像 CFG 這樣的技巧,其本質(zhì)目的是為了:克服訓(xùn)練與測試之間的不一致問題;盡可能抑制模型對(duì)簡單復(fù)制策略的依賴,引導(dǎo)它學(xué)習(xí)更具泛化能力的生成方式。像這種 copy 操作,在生成過程中很可能會(huì)導(dǎo)致語義或物理層面上的偏差。
相比之下,在語言建模任務(wù)中,情況有所不同。相鄰的兩個(gè) token 通常是兩個(gè)詞,或者至少是兩個(gè)字符;這使得語言序列中很難出現(xiàn)直接重復(fù)的情況;同時(shí),不同語言中的每個(gè) token 通常都表達(dá)了非常明確的語義概念。因此,在語言建模的訓(xùn)練過程中,模型不太容易出現(xiàn)圖像或視頻任務(wù)中那種 " 偷懶 " 行為。但需要說明的是,這仍然是一個(gè)猜想。我們還沒有特別明確的實(shí)驗(yàn)信號(hào)或理論依據(jù)來證實(shí)這個(gè)觀點(diǎn)。
:請(qǐng)概括MAGI-1訓(xùn)練和推理基礎(chǔ)設(shè)施的核心創(chuàng)新,以及其關(guān)鍵作用?
:先解釋一下,訓(xùn)練和推理的基礎(chǔ)架構(gòu)在宏觀層面上到底起到了什么作用。基礎(chǔ)架構(gòu)的核心其實(shí)就是:怎么更充分地利用 GPU 的算力。所有的優(yōu)化目標(biāo),其實(shí)最終也都是為了這個(gè)目的服務(wù)的。如果說追求極致,那就是:GPU 提供多少算力,我們就能盡可能100% 利用起來,不產(chǎn)生任何浪費(fèi)。在這個(gè)前提下,我們會(huì)針對(duì)訓(xùn)練和推理這兩個(gè)不同的使用場景,做出各自的、差異化的優(yōu)化。
訓(xùn)練最主要的創(chuàng)新集中在兩個(gè)方面:第一是 MagiAttention 的 attention 結(jié)構(gòu)的設(shè)計(jì),這是在模型層面的一個(gè)重要?jiǎng)?chuàng)新點(diǎn)。第二是在訓(xùn)練過程中采用了分布式訓(xùn)練。所謂分布式訓(xùn)練,就是我們會(huì)使用大量的 GPU 并行地去處理這個(gè)模型。而一旦進(jìn)入分布式訓(xùn)練的場景,所面對(duì)的系統(tǒng)復(fù)雜度就會(huì)遠(yuǎn)高于非分布式的訓(xùn)練方式。因此,訓(xùn)練的基礎(chǔ)架構(gòu)必須專門針對(duì)這種分布式訓(xùn)練的場景,做出單獨(dú)的優(yōu)化設(shè)計(jì)。
在推理這邊,最大的復(fù)雜性可以分成兩個(gè)場景來看:第一個(gè)場景是,我們的模型有一個(gè)很關(guān)鍵的功能,就是要支持實(shí)時(shí)的 streaming 推理。 這個(gè)部分必須要做非常高強(qiáng)度的優(yōu)化,才能在盡可能少的算力消耗下實(shí)現(xiàn)流式生成。第二個(gè)場景是,我們目前開源的 MagiAttention 有兩個(gè)版本,一個(gè)是 4.5B 的版本,另一個(gè)是 24B 的版本。 其中 24B 版本的模型體積比較大,而我們又希望它能運(yùn)行在一些相對(duì)便宜的硬件上,比如 RTX4090 。所以我們就需要針對(duì)這些中低成本硬件環(huán)境,做出很多非常具體、定制化的優(yōu)化。
原理篇
:為什么需要特別設(shè)計(jì) MagiAttention 的 Attention 結(jié)構(gòu)?
:MAGI-1 結(jié)合了 diffusion model 和 autoregressive( AR )模型,這本身就導(dǎo)致注意力的結(jié)構(gòu)具有高度異構(gòu)性:在塊內(nèi)( intra-block ):使用的是類似 Sora 中的雙向注意力結(jié)構(gòu),允許在當(dāng)前局部范圍內(nèi)雙向建模;在塊間( inter-block ):采用類似語言模型中的因果注意力( causal attention ),只關(guān)注歷史信息。這種混合結(jié)構(gòu)要求注意力機(jī)制能夠靈活地適應(yīng)不同方向、粒度和上下文范圍的變化。
輸入視頻本身具有高度非統(tǒng)一性。在訓(xùn)練過程中,輸入視頻存在顯著的分布異質(zhì)性,這進(jìn)一步加劇了注意力結(jié)構(gòu)的復(fù)雜性。空間維度變化:不同視頻可能有不同的分辨率( 如 16:9、4:3 );時(shí)間維度變化:視頻的長度差異很大,有的僅 2–3 秒,有的長達(dá)十幾秒。為了提升訓(xùn)練效率,我們希望在訓(xùn)練中將多個(gè)視頻拼接在一起處理,但這也意味著:注意力編碼機(jī)制必須能夠在同一批次中處理空間維度、時(shí)間維度都不同的視頻片段,形成復(fù)雜形狀張量下的靈活attention結(jié)構(gòu)。
工程實(shí)現(xiàn)上的挑戰(zhàn)與需求。由于上述兩方面的復(fù)雜性,目前在開源社區(qū)中:尚不存在一個(gè)開源 attention 實(shí)現(xiàn),能夠同時(shí)支持這種復(fù)雜的形狀適配、高效運(yùn)行和靈活配置;如果繼續(xù)沿用標(biāo)準(zhǔn)注意力算子,將導(dǎo)致顯著的訓(xùn)練效率下降。這就是為什么我們需要一套MagiAttention的實(shí)現(xiàn),首先它要足夠靈活,因?yàn)槲覀円幚淼那闆r特別多和復(fù)雜,其次要高效。使用高效版本的 MagiAttention,訓(xùn)練一個(gè)模型可能只需要 10 天;而如果依賴通用實(shí)現(xiàn),可能需要一個(gè)月甚至兩個(gè)月才能完成同樣的訓(xùn)練。
:MagiAttention 和分布式訓(xùn)練、視頻模型的適配性體現(xiàn)在哪里?
:視頻模型的分布式訓(xùn)練,或者說所有的分布式訓(xùn)練,最大的挑戰(zhàn)通常來自兩個(gè)方面:第一方面是通信問題。因?yàn)榉植际接?xùn)練意味著會(huì)有很多臺(tái)不同的機(jī)器一起參與運(yùn)算,它們之間不僅要各自計(jì)算,還需要頻繁通信與協(xié)調(diào)。
打個(gè)比方來說:如果只有一個(gè)人在干活,那就是非分布式訓(xùn)練;而分布式訓(xùn)練就像是有 1,000 個(gè)人一起完成一件工作,每個(gè)人負(fù)責(zé)其中的一小部分;這個(gè)時(shí)候就需要大家互相溝通、協(xié)作,技術(shù)上對(duì)應(yīng)的就是不同 GPU 或機(jī)器之間需要通信。
第二方面是速度一致性問題。當(dāng)這 1,000 臺(tái)機(jī)器共同處理一個(gè)任務(wù)時(shí),最終的處理時(shí)間取決于最慢的那一臺(tái)機(jī)器。 如果說在任務(wù)分配中,有一個(gè)人被分配了過多的任務(wù),那么在實(shí)際執(zhí)行過程中就會(huì)出現(xiàn)這樣的情況:其他所有人都在等待,只有那一個(gè)人還在干活。這個(gè)在技術(shù)層面上就會(huì)造成計(jì)算資源的浪費(fèi),因?yàn)榇蟛糠謾C(jī)器都在空轉(zhuǎn),整體效率就被拖慢了。所以最理想的情況是:所有機(jī)器被分配到的任務(wù)復(fù)雜度差不多;大家能夠在接近同一時(shí)刻完成自己的部分;這樣就不會(huì)出現(xiàn)有機(jī)器空閑、整體效率被拉低的情況。
所以,這兩個(gè)問題——分布式訓(xùn)練中的通信和協(xié)作復(fù)雜性;任務(wù)負(fù)載不均導(dǎo)致的性能瓶頸;可以說是我們?cè)谧龇植际接?xùn)練時(shí)遇到的兩個(gè)最大困難。而 MagiAttention 的設(shè)計(jì),就是為了應(yīng)對(duì)這兩個(gè)困難的。
視頻模型,尤其像 MAGI-1 這樣的視頻模型,它的 Attention 結(jié)構(gòu)非常復(fù)雜。正是因?yàn)檫@種復(fù)雜性,當(dāng)我們?cè)谶M(jìn)行分布式訓(xùn)練、給不同機(jī)器分配任務(wù)時(shí),如果不進(jìn)行特殊處理,就很容易出現(xiàn)任務(wù)分配不均的情況 —— 有的機(jī)器任務(wù)重,有的機(jī)器任務(wù)輕。
為了解決這個(gè)問題,MagiAttention 做了一些專門的優(yōu)化和創(chuàng)新:第一,任務(wù)負(fù)載均衡。我們會(huì)在任務(wù)分配前,提前計(jì)算或估計(jì)每臺(tái)機(jī)器應(yīng)該承擔(dān)多少任務(wù)量, 然后盡可能確保所有機(jī)器被分配到的工作量大致一致,這樣就不會(huì)出現(xiàn)個(gè)別機(jī)器拖慢整體進(jìn)度的情況。第二,通信優(yōu)化。在通信這塊,MagiAttention 的目標(biāo)是:讓通信量盡可能減少。 因?yàn)槿绻ㄐ盘l繁,機(jī)器間花在通信上的時(shí)間可能比花在實(shí)際計(jì)算上的時(shí)間還多,這就非常低效了。所以我們本質(zhì)上是希望:通信時(shí)間更少,計(jì)算效率更高。
關(guān)于 " MagiAttention 和視頻模型本身的適配性 ",其實(shí)就是指希望能把不同時(shí)間、不同分辨率、不同比例的視頻片段放在一起訓(xùn)練。
首先,MagiAttention 是一個(gè)比較基礎(chǔ)的架構(gòu)。從技術(shù)角度上講,它并不是和視頻模型強(qiáng)綁定的,它也可以應(yīng)用在其他領(lǐng)域,比如語言模型等。但區(qū)別在于: 在語言模型中,attention 的復(fù)雜度通常沒那么高,大家只需要應(yīng)對(duì)一些結(jié)構(gòu)上相對(duì)簡單的特例,解決一兩個(gè)典型結(jié)構(gòu)就夠用了。 而在像 MAGI-1 這樣的視頻模型中,attention 的結(jié)構(gòu)和計(jì)算模式都非常復(fù)雜,不能靠處理幾個(gè)特例就能應(yīng)對(duì)。因此可以說,是視頻生成任務(wù),特別是 MAGI-1 這樣的復(fù)雜視頻模型,倒逼我們必須去開發(fā)出一個(gè)既高效又靈活的在線 attention 機(jī)制。也正因?yàn)檫@個(gè)需求,才催生了 MagiAttention 這樣的系統(tǒng)。
:MagiAttention 的主要組成包括 FFA( Flex-Flash-Attention )、調(diào)度求解器、Group-Cast 和 Group-Reduce 原語、自適應(yīng)多階段重疊策略等。其中,F(xiàn)FA是一種高效的注意力機(jī)制,調(diào)度求解器確保計(jì)算負(fù)載均衡,Group-Cast 和 Group-Reduce 原語消除了冗余通信,自適應(yīng)多階段重疊策略有效隱藏了通信延遲,請(qǐng)分別解釋每個(gè)組成的原理?
:關(guān)于 FFA( Flex Flash Attention ),它的核心思路是:通過將整個(gè) attention 的掩碼( mask )切分成多個(gè)計(jì)算單元的組合來進(jìn)行處理。這些掩碼可以看作是 full mask 和 causal mask 的組合。MagiAttention 其實(shí)還在持續(xù)探索如何去支持一些更新穎的基礎(chǔ)計(jì)算單元。 但在第一個(gè)版本中,優(yōu)先支持的是 full mask 和 causal mask。主要是因?yàn)槟壳拔覀円阎膸讉€(gè)主流領(lǐng)域,包括視頻領(lǐng)域在內(nèi),大部分復(fù)雜的 attention mask 形式本質(zhì)上都是圍繞 " 雙向( full )" 和 " 因果( causal )" 之間做 trade-off;因此這些復(fù)雜的 attention mask 幾乎都可以被表達(dá)為 full mask 和 causal mask 的組合。所以這兩個(gè)類型就成了構(gòu)建更復(fù)雜結(jié)構(gòu)的 " 積木 ",我們先支持它們,就可以覆蓋絕大多數(shù)實(shí)際需求。
如果我們把視角放得更長遠(yuǎn)一些,會(huì)發(fā)現(xiàn)還有一些其他領(lǐng)域在使用更特殊的 mask 形式。比如一個(gè)比較典型的例子是:所謂的 sliding window attention( SWA )機(jī)制。這一類結(jié)構(gòu)現(xiàn)在也逐漸被使用到一些任務(wù)中,我們也已經(jīng)在著手支持這類機(jī)制的計(jì)算與擴(kuò)展,目前正在開發(fā)當(dāng)中。
為什么 FFA( Flex Flash Attention )的設(shè)計(jì)特別適合分布式注意力計(jì)算?以及注意力掩碼( attention mask )在其中是怎么發(fā)揮作用的?
attention mask 的作用。所謂的 " 注意力機(jī)制 ",本質(zhì)上是:給定一組元素,比如 100 個(gè),我們希望能夠衡量這些元素之間的兩兩關(guān)系。也就是說,我們希望每一個(gè)元素都能 " 看到 " 其他元素,然后計(jì)算它們之間的相關(guān)性。這就是注意力要做的核心事情。而在這個(gè)兩兩關(guān)系的計(jì)算過程中,我們可以人為地加入一些 " 約束 "( constraint ),來控制哪些元素之間是可以交互、哪些是不可以的。比如:causal attention( 因果注意力 )就是一種帶有約束的機(jī)制,它規(guī)定:序列中較后位置的元素不能看到前面位置的內(nèi)容。在實(shí)際實(shí)現(xiàn)中,我們只需要把這類 " 不允許看到的關(guān)系 " 在注意力矩陣中通過掩碼( mask )屏蔽掉,就能實(shí)現(xiàn)我們想要的行為。所以說,attention mask 的作用,就是:在標(biāo)準(zhǔn)的注意力機(jī)制中,注入我們預(yù)定義的 " 注意力模式 " 或 " 結(jié)構(gòu)特性 ",比如因果性、滑動(dòng)窗口、分組關(guān)系等。
那在 FFA( Flex Flash Attention )中,我們是怎么實(shí)現(xiàn) attention mask 的靈活表達(dá)與分布式適配的呢?
我們發(fā)現(xiàn),過去很多關(guān)于 attention 的設(shè)計(jì)其實(shí)都太復(fù)雜了。 而在 FFA 中,我們引入了兩個(gè)非常關(guān)鍵但又簡單的接口,叫做:q_range( Query Range )、k_range( Key Range )。你只需要指定不同的 q_range 和 k_range,就可以構(gòu)建出非常靈活的 attention 掩碼結(jié)構(gòu)。
這種設(shè)計(jì)的好處有兩個(gè):第一,靈活性好。由于所有的 attention 模式都可以通過 q_range 和 k_range 來靈活組合定義, 這就使得 FFA 能夠覆蓋多種注意力結(jié)構(gòu)的需求,使用上也非常簡單。第二,適合分布式計(jì)算。因?yàn)橛辛?q_range 的這個(gè)定義方式,我們就可以在進(jìn)行分布式部署時(shí):預(yù)先分析 q_range 的分布;根據(jù)它的分布情況,把注意力的計(jì)算任務(wù)更合理地切分到不同機(jī)器上;從而做到任務(wù)分布更均勻,減少資源空轉(zhuǎn),顯著降低分布式實(shí)現(xiàn)的復(fù)雜度。所以,為什么說 FFA 特別適合分布式注意力計(jì)算?本質(zhì)上是因?yàn)樗ㄟ^這套簡單清晰的接口:提升了表達(dá)能力和使用靈活性;降低了并行計(jì)算中負(fù)載不均和調(diào)度復(fù)雜度的問題。
如果我們只看一段視頻,通常只需要處理 full mask 或 causal mask 就夠了。但問題在于,在實(shí)際訓(xùn)練中,我們經(jīng)常希望用很多機(jī)器來訓(xùn)練整個(gè)視頻模型。 為了盡可能發(fā)揮這些機(jī)器的效率,我們就不能每次只訓(xùn)練一小段視頻,而是會(huì)把一大批視頻片段組合起來一起訓(xùn)練。舉個(gè)例子,比如我們有一個(gè)視頻集合,里面包含了 1,000 段視頻。 這些視頻長度不一、分辨率不一。我們?cè)谟?xùn)練的時(shí)候,會(huì)把這些視頻拼接成一個(gè) " 巨大的長視頻 " 來進(jìn)行處理。
但與此同時(shí),有個(gè)關(guān)鍵點(diǎn):這些視頻片段之間其實(shí)是沒有任何語義關(guān)聯(lián)的,我們不希望它們之間產(chǎn)生 attention。也就是說,模型在做 attention 的時(shí)候,不應(yīng)該讓一個(gè)視頻片段"看到"另一個(gè)無關(guān)片段的內(nèi)容。 這個(gè)"相互不可見"的約束,就是通過構(gòu)造復(fù)雜的 attention mask 來實(shí)現(xiàn)的。所以,正是由于這種訓(xùn)練策略——多個(gè)視頻拼接成一個(gè)長序列訓(xùn)練,但又需要彼此隔離,才導(dǎo)致我們需要使用更加復(fù)雜的、結(jié)構(gòu)化的 attention 掩碼。相比之下,在語言模型的訓(xùn)練里,大家過去更常見的做法是:直接把不同的句子拼接起來,不管有沒有關(guān)聯(lián),統(tǒng)一當(dāng)成一篇長文來訓(xùn)練。因此語言模型那邊的 attention 掩碼就相對(duì)簡單很多。
將不同的視頻拼接在一起后,再通過上下文并行( CP,context-parallelism )分配給多張卡進(jìn)行并行計(jì)算。
直接的均勻分配會(huì)對(duì)應(yīng)不同的注意力掩碼結(jié)構(gòu),而由于注意力掩碼的不一致,就會(huì)導(dǎo)致計(jì)算負(fù)載出現(xiàn)不平衡。這就需要通過調(diào)度求解器達(dá)到計(jì)算負(fù)載均衡,解決方法簡單理解是將上下文靈活切分,以為每張卡盡可能均勻分配注意力掩碼的面積。
在分布式訓(xùn)練中,一個(gè)非常重要的目標(biāo)是:讓所有機(jī)器處理的任務(wù)量盡可能一致。這樣才不會(huì)出現(xiàn)某一臺(tái)機(jī)器提前完成,而其他機(jī)器還在忙,導(dǎo)致資源空閑、效率浪費(fèi)的情況。
從技術(shù)角度來說,不同機(jī)器的任務(wù)量,主要取決于它所處理的注意力掩碼的形狀, 我們?cè)谡撐睦镆舶堰@個(gè)稱為注意力區(qū)域的 " 面積 "。
換句話說:如果一個(gè) attention mask 的非零區(qū)域( 未被遮擋的區(qū)域 )越大,那它所對(duì)應(yīng)的計(jì)算負(fù)載就越重;所以我們可以通過估計(jì) attention mask 中 " 未被遮蓋區(qū)域的面積 ",來判斷每臺(tái)機(jī)器的任務(wù)量大小。在 CP 設(shè)置中,我們會(huì)把一個(gè)很長的序列拆分給多臺(tái)機(jī)器,每臺(tái)機(jī)器負(fù)責(zé)其中的一段。我們通過事先分析這些段所對(duì)應(yīng)的 attention mask,然后采用一些策略,盡量讓不同機(jī)器處理的掩碼面積相等, 從而使任務(wù)負(fù)載趨于平衡,進(jìn)一步提升訓(xùn)練效率。
Group-Cast 和 Group-Reduce 原語是為了實(shí)現(xiàn) " 零冗余通信原語 "。從注意力掩碼的形狀就可以看出來,查詢( Query )和 KV( Key-Value )之間不是一個(gè)密集的一一對(duì)應(yīng)關(guān)系,實(shí)際上是稀疏的。
因此可以基于 attention mask 的情況來計(jì)算:哪些 Query 和 KV 之間確實(shí)需要通信,哪些則不需要。
傳統(tǒng)的通信原語,由于控制粒度較粗,在處理像 MagiAttention 這樣復(fù)雜 attention mask 的模型時(shí), 會(huì)出現(xiàn)不少不必要的通信開銷,也就是存在資源浪費(fèi)的情況。所以我們?cè)谶@里專門提出了一種更細(xì)粒度的通信原語機(jī)制, 就是為了根據(jù)實(shí)際需要來決定哪些通信該發(fā)生,哪些可以省略, 從而達(dá)到 " 零冗余 " 的目的,避免掉通信層面的浪費(fèi)。
關(guān)于自適應(yīng)多階段重疊,它的目的是讓前項(xiàng)和后項(xiàng)的計(jì)算與通信能夠進(jìn)行重疊。 在微觀層面上,計(jì)算和通信的重疊是怎么實(shí)現(xiàn)的呢?可以舉個(gè)例子來說明。 在我們現(xiàn)在使用的計(jì)算框架中,不管是 GPU 還是 CPU,都可以理解為它們的內(nèi)部實(shí)際上存在兩個(gè)并行的時(shí)間線,或者說兩條工作流(workflow)。這兩條工作流分別是:計(jì)算工作流(computation workflow)和通信工作流(communication workflow)。
我們可以分別給這兩個(gè)工作流分配任務(wù),而這兩條 " 流水線 " 可以并行執(zhí)行,互不阻塞。一個(gè)低效的調(diào)度方式是這樣的:先執(zhí)行一段計(jì)算;等計(jì)算完成后,再進(jìn)行通信;通信完成后,再進(jìn)行下一段計(jì)算;以此類推。這個(gè)流程的問題在于:當(dāng)計(jì)算完成后,計(jì)算的流水線就空閑下來;當(dāng)通信開始后,通信完成前計(jì)算無法進(jìn)行;最終會(huì)出現(xiàn)大量時(shí)間被浪費(fèi)在兩條流水線互相等待、彼此空置上。
所謂的計(jì)算和通信的交疊,在微觀層面上,就是我們通過各種技巧——比如調(diào)整計(jì)算和通信的順序—— 來讓計(jì)算流水線和通信流水線盡可能都不停下來。我們會(huì)在做計(jì)算的同時(shí),想辦法提前啟動(dòng)一些通信操作, 通過這樣的方式,實(shí)現(xiàn)計(jì)算與通信的真正并行推進(jìn)。這樣做帶來的好處就是:計(jì)算效率和通信效率不會(huì)相互阻塞;不需要"通信等計(jì)算"或者"計(jì)算等通信"的情況發(fā)生;整個(gè)系統(tǒng)從全局來看,執(zhí)行效率明顯提升。
假設(shè)有兩個(gè)任務(wù),任務(wù) A 和任務(wù) B。每個(gè)任務(wù)都包含:先計(jì)算、再通信的流程;正常來說,A 的通信只能等 A 的計(jì)算做完才能開始,所以無法內(nèi)部并行;但如果我們把 A 的計(jì)算階段與 B 的通信階段重疊起來,再把 B 的計(jì)算階段和 A 的通信階段重疊起來,這樣兩個(gè)任務(wù)之間就形成了 " 交叉重疊 ",A 的計(jì)算 → B 的通信,B 的計(jì)算 → A 的通信,從而實(shí)現(xiàn)并行利用資源的效果。此外,計(jì)算和通信依賴于不同的硬件單元,雖然計(jì)算和通信都發(fā)生在 GPU 內(nèi)部,但 GPU 內(nèi)部本身是一個(gè)高度異構(gòu)的系統(tǒng);它有一部分硬件專門負(fù)責(zé)數(shù)值計(jì)算;另一部分硬件則負(fù)責(zé)數(shù)據(jù)傳輸和通信;因此,在硬件層面也支持兩類工作流的并行推進(jìn)。
綜合運(yùn)用以上所有技術(shù),MagiAttention 在不同場景下均能實(shí)現(xiàn)線性可擴(kuò)展性,線性可擴(kuò)展性即相對(duì)于并行化程度的增加( 或機(jī)器數(shù)量增加 ),計(jì)算效率可以線性的隨之增加。
:在推理優(yōu)化部分,論文中提到 " 在目前架構(gòu)設(shè)計(jì)中,通過擴(kuò)展 DTensor 和并行計(jì)劃,將建模與并行化解耦 ",實(shí)現(xiàn)這種解耦的關(guān)鍵是什么?
:先說一下這個(gè) " 解耦的關(guān)鍵 " 到底是什么。
現(xiàn)在,整個(gè)深度學(xué)習(xí)社區(qū)幾乎都在使用 PyTorch 這個(gè)框架,包括絕大多數(shù)公司、初創(chuàng)團(tuán)隊(duì)和學(xué)術(shù)界。但是,PyTorch 在最初的設(shè)計(jì)階段,其實(shí)并沒有考慮現(xiàn)在這種 " 大模型時(shí)代 " 的需求。比如上千上萬臺(tái)機(jī)器同時(shí)訓(xùn)練一個(gè)大模型,或者參數(shù)量超百億的模型如何分布式高效訓(xùn)練等等。
所以,在最近幾年新需求不斷冒出來的情況下,大家只能在 PyTorch 的基礎(chǔ)上進(jìn)行不斷擴(kuò)展和改造。
一個(gè)早期、也比較典型的擴(kuò)展方式就是 Megatron-LM,這是英偉達(dá)開發(fā)的, 它在 PyTorch 的基礎(chǔ)上提供了一個(gè)分布式訓(xùn)練的套件。但這個(gè)套件的問題在于,它是深度侵入 PyTorch 實(shí)現(xiàn)的, 也就是說:算法工程師在使用時(shí),不得不跟底層的分布式實(shí)現(xiàn)強(qiáng)綁定、耦合在一起。
如果你想要搭建一個(gè)比較大的模型,并且希望能在上千張GPU卡的集群上把它訓(xùn)練起來,那作為算法人員,你就需要手動(dòng)寫很多和通信、并行化相關(guān)的代碼。這些代碼通常是直接嵌入模型邏輯里的,也就是說,把并行策略"寫死"在模型中。這種寫法帶來一個(gè)問題:算法人員不得不去了解很多底層的分布式并行實(shí)現(xiàn)細(xì)節(jié);但事實(shí)上,算法同學(xué)的背景或經(jīng)驗(yàn)通常并不擅長這類系統(tǒng)級(jí)、并行化的事情;所以這就導(dǎo)致了算法開發(fā)的效率很低,維護(hù)難度也高。
我們團(tuán)隊(duì)在早期內(nèi)部開發(fā)時(shí),也是基于像 Megatron-LM 這樣的框架,來寫訓(xùn)練代碼和算法邏輯的。但在這個(gè)過程中,我們發(fā)現(xiàn)了一個(gè)很明顯的問題:所有東西都被高度耦合在一起了,算法和系統(tǒng)完全綁死, 這就導(dǎo)致大家在團(tuán)隊(duì)協(xié)作中非常難以分工合作,比如算法人員和工程人員很難各自專注自己的部分,彼此牽制。
所以,這也就導(dǎo)致了我們后來意識(shí)到 —— 其實(shí)這也是整個(gè)社區(qū)的一個(gè)趨勢:就是希望能把分布式并行和算法實(shí)現(xiàn)這兩件事情解耦開。
這樣一來:算法同學(xué)就可以專注在算法設(shè)計(jì)和模型搭建上;而分布式、性能優(yōu)化這些底層實(shí)現(xiàn)部分,則交由更擅長這類系統(tǒng)工程的同學(xué)來處理。這個(gè)就是我們整體做這件事的一個(gè) motivation,也是我們?yōu)槭裁匆苿?dòng) " 解耦 " 這件事的原因。
不過,要真正實(shí)現(xiàn)這個(gè)目標(biāo),其實(shí)在實(shí)踐中也遇到過不少困難。最主要的問題是:原生的 PyTorch 并不太支持這樣靈活的解耦機(jī)制。這就需要在 PyTorch 上做一些更底層的擴(kuò)展或者改造。我們團(tuán)隊(duì)的工程同學(xué)在調(diào)研過程中發(fā)現(xiàn):最近 PyTorch 內(nèi)部正在研發(fā)一個(gè)叫 DTensor 的全新數(shù)據(jù)結(jié)構(gòu)。我們進(jìn)一步研究之后發(fā)現(xiàn),基于這個(gè) DTensor 的數(shù)據(jù)結(jié)構(gòu), 其實(shí)是有可能通過擴(kuò)展和定制的方式,比較優(yōu)雅地實(shí)現(xiàn) " 建模與并行優(yōu)化 " 的徹底解耦。
:在推理優(yōu)化部分,提到了擴(kuò)散蒸餾技術(shù),請(qǐng)問擴(kuò)散蒸餾在MAGI-1中發(fā)揮的作用是什么?擴(kuò)散蒸餾的原理是什么?
:所謂的擴(kuò)散蒸餾( Diffusion Distillation ),其實(shí)就是為了解決如下問題:當(dāng)你已經(jīng)擁有一個(gè)預(yù)訓(xùn)練好的擴(kuò)散模型之后,如何通過 " 蒸餾 " 這個(gè)技巧,大幅提升模型在推理階段的生成速度?
擴(kuò)散蒸餾的作用主要體現(xiàn)在推理側(cè)的優(yōu)化,具體包括兩個(gè)方面:節(jié)省成本,以及提高生成的效率。原因在于,雖然 MAGI-1 在生成過程中依然采用擴(kuò)散 loss 進(jìn)行訓(xùn)練,也就是仍需經(jīng)歷多步采樣生成過程(denoising steps),但:如果模型不進(jìn)行蒸餾處理,那么在實(shí)際推理階段所需的步數(shù)就會(huì)非常多;舉例來說,標(biāo)準(zhǔn)模型在沒有蒸餾的情況下可能需要 64 步;而通過蒸餾優(yōu)化后,可以將步數(shù)大幅減少。
引入了擴(kuò)散蒸餾后,一方面減少了生成步驟,節(jié)省計(jì)算成本蒸餾之后,至少可以將生成步驟壓縮到 8 步;這意味著計(jì)算成本減少了至少 8 倍,同時(shí)生成等待時(shí)間也縮短了 8 倍,顯著提升了推理效率。另一方面,擴(kuò)散蒸餾優(yōu)化了 CFG 推理結(jié)構(gòu)。當(dāng)前的 CFG 實(shí)現(xiàn)中包含三個(gè)項(xiàng);嚴(yán)格來說,每一項(xiàng)都需要模型各自推理一次,因此推理成本較高;但通過蒸餾的方式可以將 CFG 三項(xiàng)合并,使得模型只需推理一次即可;這進(jìn)一步帶來了3 倍的計(jì)算成本節(jié)省與推理效率提升。總體效果使得在實(shí)際部署中可以實(shí)現(xiàn)約 24 倍的綜合成本節(jié)省與速度加速。
關(guān)于擴(kuò)散蒸餾的原理,在推理過程中,擴(kuò)散模型的基本過程是:從純?cè)肼曢_始,不斷地去噪;每一步都試圖讓圖像變得更清晰、更接近真實(shí)內(nèi)容。如果用一個(gè)形象的類比來解釋這一過程,可以想象它像是一場 " 賽跑 " 或 " 登山過程 ":在每一步,模型都會(huì)預(yù)測一個(gè) " 前進(jìn)的方向 ",并將當(dāng)前的圖像狀態(tài)沿這個(gè)方向略微推進(jìn);然而,這個(gè)方向在不同的步驟中是不斷變化的——這使得整個(gè)過程有點(diǎn)類似于 " 隨機(jī)游走 ";正因?yàn)槊恳徊降姆较蚨疾煌耆恢拢阅P捅仨毭看沃蛔咭恍〔剑麄€(gè)生成過程就會(huì)顯得非常耗時(shí)( 比如可能需要 100 步 )。
擴(kuò)散蒸餾的關(guān)鍵目標(biāo)就是:讓每一步的去噪方向盡量保持一致,從而減少需要采樣的步數(shù)。更具體地說:在標(biāo)準(zhǔn)擴(kuò)散模型中,從噪聲生成清晰圖像可能需要 100 步;這是因?yàn)槟P驮诿恳徊蕉贾匦鹿烙?jì)方向,每一步的方向都不一樣,必須 " 慢慢試探地前進(jìn) ";蒸餾的目標(biāo)是:讓這 100 步中的方向趨于一致,即:如果可以保證每一步的方向基本一致;那么實(shí)際上,只需要 " 走一步 " 就能到達(dá)原本需要走 100 步才能到達(dá)的地方,極大地提升了推理效率。
:論文中提到 MAGI-1 的 " 在視覺質(zhì)量方面,與頂級(jí)模型相比仍有改進(jìn)空間 ",是什么原因,未來如何提升?
:以我們自己的模型 MAGI-1 為例,我目前的判斷是:目前和頂級(jí)模型之間的差距,更多是源自我們?cè)跀?shù)據(jù)層面的積累還不夠;關(guān)于數(shù)據(jù)準(zhǔn)備和數(shù)據(jù)質(zhì)量我們也在快速迭代中。當(dāng)然,也有一部分可能跟我們使用的自回歸結(jié)構(gòu)本身有關(guān)。
目前我們還沒有完全研究清楚的一點(diǎn)是:在某些固定的生成 pattern 上,主要是銳化和某些局部的畫面抖動(dòng)等,自回歸模型確實(shí)會(huì)出現(xiàn)一些表現(xiàn)上的問題;這些問題在和一些雙向模型( 比如擴(kuò)散模型 )對(duì)比時(shí),會(huì)更明顯一些。不過,我們?cè)谔剿鬟^程中也發(fā)現(xiàn)了一些可能的解決方法。 所以我會(huì)認(rèn)為,從中期來看,不需要等太久,自回歸模型在生成效果上, 應(yīng)該不會(huì)存在原則性劣勢,相對(duì)于擴(kuò)散模型而言是可以追平,甚至在某些方向上可能更有優(yōu)勢的。
:目前是否能驗(yàn)證或者觀察到 MAGI-1 模型在參數(shù)規(guī)模或者數(shù)據(jù)規(guī)模上的一些 Scaling 規(guī)律或者跡象?
:我們目前對(duì)外能公開的信息,主要還是基于我們內(nèi)部的一個(gè) 4.5B 參數(shù)量級(jí)的模型。至少在我們自己內(nèi)部的評(píng)測和實(shí)驗(yàn)中,已經(jīng)能夠觀察到一些趨勢:比較小的模型在處理一些運(yùn)動(dòng)幅度特別大的視頻時(shí),表現(xiàn)確實(shí)不如大模型穩(wěn)定。至于更具體的 Scaling law 相關(guān)實(shí)驗(yàn),我們現(xiàn)在也在做一些初期探索, 但目前這些結(jié)果還沒有通過公開渠道正式發(fā)布。不過我們最近確實(shí)也在開展更嚴(yán)謹(jǐn)?shù)膶?shí)驗(yàn),后續(xù)這些內(nèi)容應(yīng)該會(huì)更新到我們的開源報(bào)告里。
:MAGI-1 目前還難以處理復(fù)雜的次要效應(yīng),包括精確碰撞響應(yīng)、材料特定的反應(yīng)以及變形后行為,這是自回歸模型的限制?還是未結(jié)合物理上的約束導(dǎo)致?還是數(shù)據(jù)方面的限制?
:我個(gè)人更傾向于認(rèn)為,這個(gè)問題主要還是受限于當(dāng)前模型本身的能力上限。
雖然 MAGI-1 的模型參數(shù)量不算小,比如我們現(xiàn)在有一個(gè) 24B 的版本,但對(duì)于視頻這種復(fù)雜數(shù)據(jù)類型來說,這個(gè)規(guī)模的模型可能還遠(yuǎn)遠(yuǎn)不夠, 它在建模精細(xì)物理過程時(shí),能力上確實(shí)存在一定限制。其次,我們?cè)跀?shù)據(jù)層面也確實(shí)還有很大的提升空間。特別是關(guān)于碰撞和物理效應(yīng)相關(guān)的數(shù)據(jù),比如:材料在碰撞前后的細(xì)節(jié)變化;精確的接觸行為建模;這些類型的數(shù)據(jù),在我們目前的數(shù)據(jù)儲(chǔ)備中也相對(duì)比較少。
我們現(xiàn)在觀察各種視頻生成應(yīng)用,確實(shí)很少有模型特別強(qiáng)調(diào)這方面的優(yōu)化, 比如很少涉及對(duì)精確碰撞、硬物交互、剛性變形這些現(xiàn)象的細(xì)致建模。更多情況下,大家關(guān)注的是:比如踩在沙子上,或者是人物與環(huán)境進(jìn)行一些柔性的互動(dòng)。
我們討論這個(gè)問題時(shí),其實(shí)要區(qū)分兩個(gè)視角:一是從視覺效果角度看,這是目前大部分 video generation 公司關(guān)注的方向。在這個(gè)方向上,主要目標(biāo)是:生成的視頻看起來夠自然、有表現(xiàn)力;所以偏向柔性動(dòng)作、人物行為、自然運(yùn)動(dòng),而不是物理精準(zhǔn)。
二是從物理仿真角度看,如果從嚴(yán)格的物理仿真或物理一致性的角度出發(fā), 目前行業(yè)內(nèi)面臨的最大問題之一就是:在 " 物理碰撞 " 類任務(wù)上,大家投入的數(shù)據(jù)準(zhǔn)備還遠(yuǎn)遠(yuǎn)不夠。嚴(yán)格來說,目前也沒有多少團(tuán)隊(duì)真正去收集、構(gòu)建這類數(shù)據(jù)集;所以模型也就很難具備對(duì)應(yīng)的能力。當(dāng)然,偏物理仿真的方向也有潛在的數(shù)據(jù)來源,比如:一些現(xiàn)成的物理引擎比如 Physx、Havok 等生成的數(shù)據(jù);這些數(shù)據(jù)來自物理模型本身,可靠性較高。
顧險(xiǎn)峰教授曾發(fā)文《 Sora 物理悖謬的幾何解釋 》評(píng)論道,Sora 這類模型在本質(zhì)上就很難適應(yīng)剛性碰撞等這一類對(duì)象的生成。就我現(xiàn)在對(duì)雙向擴(kuò)散模型( Bidirectional diffusion model )理論建模能力的理解來看,確實(shí)在面對(duì)某一類數(shù)據(jù)時(shí)是有困難的。我們一開始其實(shí)也舉過例子,比如像 Sora 這樣的模型,就算模型規(guī)模很大,它在生成像 " 走路 " 這種看似簡單的動(dòng)作時(shí),有時(shí)候仍然會(huì)出現(xiàn)不符合物理規(guī)律的情況。我認(rèn)為這就是像 Sora 這種純粹的雙向、底層去噪( Denoising )式模型在建模方面的一個(gè)內(nèi)在限制。如果學(xué)術(shù)一點(diǎn)來說,現(xiàn)在我們會(huì)把這類難以建模的問題描述為 —— 符合因果關(guān)系的多峰分布。
顧險(xiǎn)峰教授在那篇文章里提到的,可能更多還是從模型層面提出一些解決思路。但其實(shí)從現(xiàn)在的理解來看,無論是模型層面還是數(shù)據(jù)層面,都可以為這類問題的改善提供幫助。
:論文結(jié)尾中提到" 一種從結(jié)構(gòu)上將高級(jí)語義推理與低級(jí)視覺合成分離的解耦設(shè)計(jì)值得探索 ",目前學(xué)術(shù)界有哪些值得注意的成果嗎?
:這個(gè)方向在整個(gè)學(xué)界其實(shí)現(xiàn)在也呈現(xiàn)出百花齊放的探索狀態(tài)。 比如,何愷明他們?cè)谌ツ晖硇r(shí)候還是今年年初,有一篇比較有代表性的論文,叫做 MAR,就是在做類似的事情。 此外,在 Audio 領(lǐng)域的一些工作,也在嘗試把建模與生成過程結(jié)構(gòu)性拆分,和我們這個(gè)方向有一些共通之處,比如前面提到的 Kimi-Audio、Step-Audio 等。
:您在 MAGI-1 中對(duì)訓(xùn)練的優(yōu)化做到了很極致的程度,是否和算力限制有關(guān)?
:我們?cè)谟?xùn)練、尤其是并行訓(xùn)練這一塊,在資源效率上的優(yōu)化做得非常極致, 這背后有一個(gè)很關(guān)鍵的動(dòng)機(jī)就是算力限制。
但另一方面,就算在資源相對(duì)充足的環(huán)境下,從一個(gè)工程技術(shù)人員的角度出發(fā),對(duì) " 極致效率 " 的追求本身也仍然是非常有動(dòng)力和吸引力的。
我們 Sand.ai 現(xiàn)在的這支團(tuán)隊(duì),在最開始組建的時(shí)候,就是以算法同學(xué)為主的團(tuán)隊(duì)。我們雖然一開始就意識(shí)到 Infra( 基礎(chǔ)設(shè)施 )非常關(guān)鍵, 但對(duì)它的重視程度,其實(shí)是在項(xiàng)目不斷深入的過程中逐漸加深的,可以說是不斷刷新了我們的認(rèn)知。舉個(gè)例子:在今年一二月份的時(shí)候,我們當(dāng)時(shí)已經(jīng)覺得自己在 Infra 上已經(jīng) " 優(yōu)化得很極致 " 了;但到了現(xiàn)在這個(gè)時(shí)間點(diǎn)回頭看,我們發(fā)現(xiàn):其實(shí)還有很多資源被白白浪費(fèi)了,尤其是不該浪費(fèi)的 GPU、算力、乃至金錢。所以說,這個(gè)過程本身對(duì)我們來說就是一個(gè)非常有價(jià)值、非常深刻的收獲。
開源與創(chuàng)業(yè)
:本次將 MAGI-1 開源背后的考慮是什么?閉源不是更能保持技術(shù)優(yōu)勢和快速獲取商業(yè)收益嗎?
:閉源確實(shí)是有好處和優(yōu)勢的。如果我們觀察現(xiàn)在整個(gè)視頻生成模型領(lǐng)域,甚至可以說更廣義地放到所有由模型驅(qū)動(dòng)的新興產(chǎn)業(yè)中去看, 包括語言模型、音頻生成模型、多模態(tài)模型等等。行業(yè)內(nèi)的一個(gè)普遍現(xiàn)象是:單純從模型層面來看,大家之間的領(lǐng)先優(yōu)勢并不會(huì)特別大。
目前限制行業(yè)整體進(jìn)步的最大因素其實(shí)在于,許多組織出于成本、風(fēng)險(xiǎn)、資源等多方面的考量,不太愿意在技術(shù)上承擔(dān)太大的試錯(cuò)風(fēng)險(xiǎn), 更傾向于采取一種保守、穩(wěn)健的推進(jìn)策略。
我們開源 MAGI-1 背后的思考是:只要在市場上發(fā)布這款模型,并且明確傳達(dá)是通過 " 自回歸方法 " 實(shí)現(xiàn)的, 我們就已經(jīng)傳達(dá)了最關(guān)鍵的一點(diǎn)信息 —— " 自回歸這條路線在視頻生成上是能走通的,并且可以做得很好。"
至于我們論文中提到的各種細(xì)節(jié)優(yōu)化,確實(shí)也花了很多時(shí)間和經(jīng)驗(yàn)積累。 但對(duì)于一些實(shí)力較強(qiáng)的團(tuán)隊(duì)來說,即便從頭開始做,半年左右的時(shí)間,甚至更短,也有可能逐漸把關(guān)鍵的路徑和坑摸清楚。所以從這個(gè)角度來看,閉源本身其實(shí)并不能真正讓一個(gè)團(tuán)隊(duì)在技術(shù)上保持長期的領(lǐng)先優(yōu)勢, 甚至不要說長期,在中期維度上保持技術(shù)壁壘都比較困難。我們也觀察到目前市場上各家模型的進(jìn)展其實(shí)都非常快。
閉源所帶來的,更多只是一個(gè)相對(duì)短期的時(shí)間窗口。但除非模型在能力上實(shí)現(xiàn)了真正的斷檔式領(lǐng)先, 否則,模型本身并不足以直接帶來快速的商業(yè)收益。
此外,視頻生成模型是一個(gè)非常長線的競爭賽道。我們當(dāng)前這個(gè)階段——甚至連 " 技術(shù)路線 " 都還沒有完全穩(wěn)定下來,整個(gè)領(lǐng)域還處在快速演進(jìn)和探索期。
所以我們不會(huì)在這個(gè)階段就把商業(yè)化擺得特別靠前。當(dāng)然會(huì)做一些商業(yè)上的探索:比如做一些產(chǎn)品化的嘗試;積累面向用戶的認(rèn)知;獲取早期用戶的反饋,用來打磨產(chǎn)品或能力。但整體上,我們是對(duì)這個(gè)賽道有耐心的。因此從認(rèn)知角度也好,商業(yè)角度也好,我們都認(rèn)為:開源模型所帶來的損失并沒有那么大。
:未來打算如何建設(shè)開源社區(qū)生態(tài),對(duì)此有什么期待?
:開源其實(shí)也為我們帶來了不少優(yōu)勢。
技術(shù)路線的不一樣,會(huì)帶來兩個(gè)方面的影響:一方面,是正向的產(chǎn)品差異化優(yōu)勢,因?yàn)榈讓幽P蜋C(jī)制不同,我們會(huì)自然探索出一些獨(dú)特的生成玩法或用戶體驗(yàn);這些不一樣的體驗(yàn),在產(chǎn)品層面上可能會(huì)反饋為與現(xiàn)有市場產(chǎn)品形態(tài)明顯不同的方向;所以這條路線能夠帶來在功能層和交互層面上的差異化創(chuàng)新。
另一方面,也存在一些現(xiàn)實(shí)挑戰(zhàn):因?yàn)槲覀兒褪袌鲋髁骷夹g(shù)路線不一樣,很多功能( 比如多參考圖控制、條件生成接口等 )已經(jīng)在社區(qū)廣泛支持的模塊或工具鏈中,在我們目前的自回歸路線下其實(shí)無法直接使用;所以我們必須從頭開發(fā)這些通用功能在新架構(gòu)下的支持版本;而且在開發(fā)過程中,可能還會(huì)遇到一些偏研究性質(zhì)的問題,需要投入比較大的工程和研究成本。比如一個(gè)比較典型的例子是 " 參考圖生成 ":目前社區(qū)已經(jīng)有不少擴(kuò)散模型或產(chǎn)品模型支持這個(gè)功能;但如果我們要在像 MAGI-1 這樣的自回歸架構(gòu)下去實(shí)現(xiàn),就需要重新設(shè)計(jì)實(shí)現(xiàn)路徑并從頭嘗試。
但如果我們能把開源這件事情真正做好,讓更多的人來嘗試使用我們的模型, 那么我們就可以更有效地借助開源社區(qū)的力量。從這個(gè)角度來看,我們也非常希望能堅(jiān)持開源的策略。
:您本次決定創(chuàng)業(yè)的根源是什么?
:其實(shí)是有一個(gè)比較清晰的背景的:在加入 Sand.ai、和曹越一起創(chuàng)業(yè)之前,我一直是在偏研究方向的機(jī)構(gòu)工作。 這段時(shí)間也不短了,大概有六七年,主要是在微軟亞洲研究院( MSRA )視覺計(jì)算組( VC 組 )。
在這段相對(duì)比較長的職業(yè)經(jīng)歷中,我逐漸對(duì)自己有了一個(gè)清晰的認(rèn)知—— 也就是:我到底是從什么樣的事情中獲得成就感的?我發(fā)現(xiàn)自己其實(shí)很難從 " 頭銜、職位、職級(jí) " 這些形式上的東西中獲得成就感, 比如說升到某個(gè)職級(jí)、拿到什么獎(jiǎng)項(xiàng),這些對(duì)我來說并不是決定性的。有時(shí)候甚至還會(huì)出現(xiàn)類似 " 冒名頂替綜合癥(imposter syndrome)" 的感覺, 就是別人給我一些外部認(rèn)可的時(shí)候,我會(huì)反而覺得有些不踏實(shí)。
相比之下,我最強(qiáng)烈的成就感,往往來自于這樣一種情況:我真正做成了一件事情,這件事情本身被大家認(rèn)可,進(jìn)而也帶動(dòng)大家對(duì)我這個(gè)人的認(rèn)可。這種"通過實(shí)事獲得價(jià)值認(rèn)同"的反饋,是我自我價(jià)值感的主要來源。
其實(shí)在過去幾年里,我一直在斷斷續(xù)續(xù)地思考:什么樣的事情,能真正讓我獲得內(nèi)心的成就感?首先,做科研肯定是一個(gè)答案。因?yàn)榭蒲械漠a(chǎn)出是論文,而論文背后代表的是你提出的想法和解決的問題。當(dāng)這些工作被社區(qū)認(rèn)可、被同行引用,那種正向反饋是非常直接的。
而另一方面,我后來也意識(shí)到,創(chuàng)業(yè)在某種程度上其實(shí)也是一個(gè)類似的過程。創(chuàng)業(yè)這個(gè)路徑的核心其實(shí)也在于:大家因?yàn)檎J(rèn)可你這個(gè)公司所做出來的產(chǎn)品或成果,進(jìn)而認(rèn)可你這個(gè)公司本身。 如果我們把公司也看成一種 " 組織性的產(chǎn)品 ",那最終人們對(duì)公司的認(rèn)知,也會(huì)反饋到對(duì)創(chuàng)始人本人上。
所以從這個(gè)角度來說,對(duì)我最有吸引力的職業(yè)路徑,其實(shí)就是研究和創(chuàng)業(yè)這兩個(gè)方向。
我之前因?yàn)楦鞣N原因,其實(shí)在研究領(lǐng)域做得還挺開心,也相對(duì)比較順利。 但差不多是在去年左右,我開始覺得:從長期的角度來看,如果是為了實(shí)現(xiàn)更完整的個(gè)人價(jià)值,組建一個(gè)全新形態(tài)的 startup 可能會(huì)是更好的路徑。
如果稍微展開講,其實(shí)我一直很關(guān)注像 OpenAI、更早的 DeepMind 這些機(jī)構(gòu)。這些組織之所以能做出明顯超越傳統(tǒng)科研機(jī)構(gòu)的成果,我認(rèn)為和他們所采用的新型組織形式有很大關(guān)系。所以我也越來越希望自己能夠:跳出傳統(tǒng)科研機(jī)構(gòu)的框架;在一種新的組織結(jié)構(gòu)下,和一群人去探索和推動(dòng)有價(jià)值的事;我相信這種方式可能能創(chuàng)造出更大的影響力和價(jià)值。
:為何選擇基于自回歸模型生成視頻這個(gè)賽道創(chuàng)業(yè)呢?
:當(dāng)時(shí)在選擇方向的時(shí)候,我覺得在整個(gè) AI 領(lǐng)域里,最吸引人的其實(shí)有三個(gè)賽道:一個(gè)是語言模型( LLM );第二個(gè)是視頻生成;第三個(gè)是機(jī)器人( Robotics )。我個(gè)人甚至在一定程度上覺得,視頻生成和機(jī)器人在中長期的發(fā)展過程中,本質(zhì)上可能要解決的是同一類問題,但可能"視頻生成"會(huì)走在機(jī)器人前面。
所以在 video 和 robotics 這兩個(gè)方向之間,我自己的判斷是:這兩個(gè)領(lǐng)域之間是存在一個(gè)先后順序關(guān)系的。至少目前對(duì)我而言,video 這個(gè)方向的 timing 更合適一些, 它可能是一個(gè)更早進(jìn)入、更有切入空間的點(diǎn)。
如果再來看 video 和大語言模型之間的選擇, 更多和我的研究背景有關(guān)。我之前長期在做和 vision( 視覺 )相關(guān)的一些研究, 所以對(duì)視覺信號(hào)這個(gè)維度一直有一個(gè)很強(qiáng)的興趣 ——它有沒有可能成為另一條與 LLM 平行的路徑,通過壓縮得到智能? 在過去,我們其實(shí)在 image 靜態(tài)圖像上已經(jīng)做過很多嘗試, 但后來我們的判斷是:單靠圖像本身還是太難,但在 video 上是有希望的。
如果單獨(dú)看一張靜態(tài)圖像( image stand-alone ), 它所蘊(yùn)含的與"智能"相關(guān)的信號(hào)是比較有限的。相比之下,視頻( video )中所包含的信息就豐富得多:一方面,視頻天然帶有時(shí)間維度和物理信息;另一方面,視頻中還包含了物體與物體之間的復(fù)雜交互;所以從直覺上我們會(huì)覺得,視頻里所包含的 " 可被智能模型挖掘的信號(hào) " 要豐富得多、意義也更大。
( 訪談全文完 )
撰文:流大古
編輯:大餅
如果您覺得本文還不錯(cuò)
歡迎關(guān)注差評(píng)孵化的商業(yè)財(cái)經(jīng)類賬號(hào):知危( ID:BusinessAlert )