大香大香伊人在钱线久久,亚洲日韩欧美国产高清αv,日本强伦姧人妻久久影片,亚洲国产成人欧美在线观看

網(wǎng)易首頁(yè) > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

對(duì)話被引數(shù) 3 萬(wàn)+論文作者:AI視頻的未來(lái)屬于自回歸

0
分享至


* 本文原創(chuàng)發(fā)布于差評(píng)孵化的商業(yè)財(cái)經(jīng)類帳號(hào) “ 知危 ”

當(dāng)前,各大商業(yè)視頻生成模型幾乎都是基于純擴(kuò)散模型。

擴(kuò)散模型( Diffusion model )與自回歸模型( Autoregressive model )作為視頻生成的兩大技術(shù)路徑,各自展現(xiàn)了不同的特性與優(yōu)勢(shì)。

為深入探討兩種模型的優(yōu)劣勢(shì)、融合趨勢(shì),以及視頻生成未來(lái)的發(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 萬(wàn)次。


張拯及其團(tuán)隊(duì)對(duì)視覺(jué)模型技術(shù)界的貢獻(xiàn)是突破性的。此前,Vision Transformer( ViT )是第一篇將純 Transformer 架構(gòu)成功應(yīng)用于圖像分類任務(wù)的論文,在 ViT 之前,圖像識(shí)別任務(wù)幾乎被卷積神經(jīng)網(wǎng)絡(luò)( CNN )完全主導(dǎo)。但 ViT 計(jì)算復(fù)雜度還是太高,難以實(shí)現(xiàn)工程化落地。

而由當(dāng)時(shí)在 MSRA 的張拯、曹越等學(xué)者聯(lián)合提出的《 Swin Transformer 》是 ViT 在視覺(jué)領(lǐng)域落地應(yīng)用的關(guān)鍵進(jìn)化形式,解決了 ViT 在效率等方面的局限,是 ViT 的工程化增強(qiáng)版本,為視覺(jué)基礎(chǔ)模型領(lǐng)域奠定了一塊新基石,該論文現(xiàn)被引次數(shù)已超過(guò) 3 萬(wàn)。

知危與張拯的整場(chǎng)對(duì)話全文近 3 萬(wàn)字,以防您閱讀時(shí)間不充裕,我們先列出對(duì)話全文的觀點(diǎn)總結(jié)。

以下是本次對(duì)話的核心觀點(diǎn)總結(jié)。

關(guān)于自回歸模型與擴(kuò)散模型:

  1. Sora 發(fā)布之后,Transformer 架構(gòu)成為擴(kuò)散模型主流。之后大部分的模型都偏純擴(kuò)散模型,跟 Sora 的區(qū)別不大。

  2. 早期的視頻自回歸方法,和LLM比較像,是純自回歸的,目前這條路線上特別成功的、相對(duì)來(lái)說(shuō)大一點(diǎn)的模型,應(yīng)該還沒(méi)有。

  3. 從視頻質(zhì)量上,擴(kuò)散模型至少在現(xiàn)階段是最領(lǐng)先的,但這只是現(xiàn)狀,而不是基于算法的第一性原理推導(dǎo)出的最優(yōu)解。

  4. 相比擴(kuò)散模型,但凡涉及非常長(zhǎng)時(shí)間的視頻生成,自回歸模型都是更合適的。

  5. 自回歸模型天然包含時(shí)間序列關(guān)系,對(duì)于基于時(shí)間的因果關(guān)系的建模比完全不考慮因果結(jié)構(gòu)的方式更完整。

  6. 長(zhǎng)遠(yuǎn)來(lái)看,幾乎所有的模態(tài)都會(huì)嘗試融合到一個(gè)統(tǒng)一的大模型里,如果一開(kāi)始就用自回歸的方式來(lái)建模視頻,后續(xù)更容易融合到模態(tài)統(tǒng)一的大模型中。

  7. 擴(kuò)散模型目前最大的一個(gè)劣勢(shì),即便在學(xué)界都還是非常前沿的課題,就是擴(kuò)散模型的 Scalability( 可擴(kuò)展性 )效能似乎存疑。

  8. 自回歸模型目前為止的最大挑戰(zhàn)是誤差累積。比如生成的單一鏡頭時(shí)間過(guò)長(zhǎng)時(shí),畫(huà)質(zhì)可能會(huì)開(kāi)始變得銳化、模糊不清,或者顏色會(huì)逐漸發(fā)生異常變化。

  9. 自回歸加雙向擴(kuò)散模型在建模效率和視頻生成質(zhì)量上與純擴(kuò)散模型的當(dāng)前差距,不代表中長(zhǎng)期的劣勢(shì),依然取決于模型能力的演進(jìn)、結(jié)構(gòu)設(shè)計(jì)和訓(xùn)練方式的進(jìn)一步發(fā)展。

  10. 自回歸模型在建模物理上有優(yōu)勢(shì)的一個(gè)跡象是,它有一個(gè)特點(diǎn):對(duì) “ 走路 ”、“ 跑步 ” 這樣的動(dòng)作刻畫(huà)得非常好。

  11. 純擴(kuò)散模型主要基于基于前一段視頻的最后一幀進(jìn)行視頻續(xù)寫(xiě),但它很難獲取之前整段視頻中較長(zhǎng)時(shí)間范圍的信息,導(dǎo)致新片段在動(dòng)作連續(xù)性上經(jīng)常出現(xiàn)問(wèn)題。

  12. 如果是非常短比如就幾秒的視頻片段,擴(kuò)散模型和自回歸模型之間的差距并不大。如果希望生成比較長(zhǎng)的、具有復(fù)雜敘事結(jié)構(gòu)的視頻,或者希望做真正意義上的視頻續(xù)寫(xiě),自回歸模型都會(huì)有比較明顯的優(yōu)勢(shì)。

  13. 現(xiàn)在的視頻生成的自回歸模型更多是指像 MAGI-1 ( 張拯團(tuán)隊(duì)的創(chuàng)業(yè)項(xiàng)目 )這種本質(zhì)上由自回歸和擴(kuò)散耦合在一起的模型,因此天然就會(huì)繼承兩種模型的復(fù)雜性,在系統(tǒng)設(shè)計(jì)和訓(xùn)練過(guò)程中的復(fù)雜性,顯著高于純粹的擴(kuò)散模型或純粹的自回歸模型。

  14. 具體實(shí)現(xiàn)里,由于都是基于 Transformer 架構(gòu)來(lái)實(shí)現(xiàn)的,要很好地統(tǒng)一并高效地調(diào)度兩種模型不同的 Attention 模式,在架構(gòu)設(shè)計(jì)上的復(fù)雜度顯著增加。

  15. 除了 video 領(lǐng)域,在很多其他模態(tài)和任務(wù)里,擴(kuò)散 + 自回歸的混合范式已經(jīng)成為主流做法。比如 Audio、Robotics、圖像等。

  16. 一方面,自回歸加擴(kuò)散模型,結(jié)合了自回歸模型在建模因果結(jié)構(gòu)上的能力,另一方面,又結(jié)合了擴(kuò)散模型在建模細(xì)粒度、高保真度內(nèi)容上的能力。

  17. 語(yǔ)言模型也在探索兩種模型的結(jié)合,一類是純好奇向的學(xué)術(shù)探索,一類是更偏工程和系統(tǒng)性能導(dǎo)向的探索,源于自回歸語(yǔ)言模型存在并行性瓶頸。相比之下,視頻方向的擴(kuò)散+自回歸結(jié)合則更加自然, 因?yàn)橐曨l天然就涉及時(shí)間建模和空間細(xì)節(jié)建模這兩個(gè)維度。

  18. 在非常短的時(shí)間范圍內(nèi),是否建模因果關(guān)系其實(shí)影響不大,但當(dāng)處理的是更長(zhǎng)的視頻序列時(shí),時(shí)間維度上的結(jié)構(gòu)性就變得更重要了。

  19. 基于文本實(shí)現(xiàn)逐塊文本控制,從表達(dá)能力角度來(lái)說(shuō),雙向擴(kuò)散模型不是做不到,但在實(shí)際應(yīng)用中極難做到。相比之下,自回歸結(jié)構(gòu)由于是分階段推進(jìn)、邊生成邊處理,其訓(xùn)練方式也可以更自然地暴露在復(fù)雜語(yǔ)義切換、節(jié)奏控制的真實(shí)任務(wù)分布下。

關(guān)于視頻生成行業(yè):

  1. 從視覺(jué)效果角度看,目前大部分視頻生成公司關(guān)注的是讓視頻看起來(lái)夠自然、有表現(xiàn)力,所以偏向柔性動(dòng)作、人物行為、自然運(yùn)動(dòng),而不是物理精準(zhǔn)。從物理仿真角度看,目前行業(yè)內(nèi)面臨的最大問(wèn)題之一就是數(shù)據(jù)準(zhǔn)備還遠(yuǎn)遠(yuǎn)不夠。

  2. 閉源本身其實(shí)并不能真正讓一個(gè)團(tuán)隊(duì)在技術(shù)上保持長(zhǎng)期的領(lǐng)先優(yōu)勢(shì), 甚至不要說(shuō)長(zhǎng)期,在中期維度上保持技術(shù)壁壘都比較困難。閉源所帶來(lái)的,更多只是一個(gè)相對(duì)短期的時(shí)間窗口。但除非模型在能力上實(shí)現(xiàn)了真正的斷檔式領(lǐng)先, 否則,模型本身并不足以直接帶來(lái)快速的商業(yè)收益。

  3. 視頻生成和機(jī)器人在中長(zhǎng)期的發(fā)展過(guò)程中,本質(zhì)上可能要解決的是同一類問(wèn)題,但可能 “ 視頻生成 ” 會(huì)走在機(jī)器人前面。

整場(chǎng)對(duì)話中,張拯還結(jié)合了他的創(chuàng)業(yè)項(xiàng)目 MAGI-1 進(jìn)行了諸多實(shí)踐中技術(shù)細(xì)節(jié)的闡述和對(duì)技術(shù)路線的思考,由于與實(shí)操相關(guān),只看觀點(diǎn)提煉會(huì)有些許抽象難以理解,所以我們誠(chéng)邀您直接觀看全文。

以下是對(duì)話原文,這是一場(chǎng)學(xué)術(shù)前沿相關(guān)的對(duì)話,所以知危編輯部并未作刪減,僅進(jìn)行了部分不改變張拯原意的編輯。正文長(zhǎng)度較長(zhǎng),我們推薦您使用公眾號(hào)的文章“ 浮窗 ”“ 星標(biāo) ”功能來(lái)提高閱讀體驗(yàn),以便閱讀被打斷后您可快速返回繼續(xù)閱讀。

行業(yè)篇


:請(qǐng)簡(jiǎn)短介紹擴(kuò)散模型和自回歸模型在視頻生成方向的研究發(fā)展歷程,以及都有哪些代表性的成果?


傳統(tǒng)的敘事里常會(huì)把自回歸模型和擴(kuò)散模型對(duì)立起來(lái)。但其實(shí)現(xiàn)在的整體發(fā)展趨勢(shì),反而是兩邊在融合:各自吸收對(duì)方的優(yōu)點(diǎn),結(jié)合起來(lái)形成新的模式。

早期的研究方向里確實(shí)存在兩條路線:一邊是純粹的自回歸模型,另一邊是純粹的擴(kuò)散模型。在視頻生成這個(gè)領(lǐng)域,純擴(kuò)散模型的代表性成果里,OpenAI 發(fā)布的 Sora 是一個(gè)非常重要的節(jié)點(diǎn)。它可以說(shuō)開(kāi)啟了用擴(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 ),而沒(méi)有基于 Transformer。到了 Sora 發(fā)布之后,大家開(kāi)始更多用 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)在的大語(yǔ)言模型比較像的思路,就是把整個(gè)視頻按照時(shí)間和空間分解,將每個(gè)像素或幾個(gè)像素表示成一個(gè)離散化的 video token,然后通過(guò)不斷地利用大模型去預(yù)測(cè)下一個(gè) video token 的方式來(lái)進(jìn)行。但是目前這條路線上特別成功的、相對(duì)來(lái)說(shuō)大一點(diǎn)的模型,目前應(yīng)該還沒(méi)有。

如果是試圖去結(jié)合自回歸和 Diffusion 兩類模型優(yōu)點(diǎn)的工作,近乎都是偏商業(yè)化的模型,可能 MAGI-1 是第一個(gè)。

學(xué)界在過(guò)去一年多也有很多研究在做類似的探索。印象比較深刻的是由英國(guó)自動(dòng)駕駛創(chuàng)業(yè)公司 Wayve 提出的GAIA,其實(shí) GAIA 嚴(yán)格來(lái)說(shuō)不是做視頻生成,而是做自動(dòng)駕駛的,但 GAIA 試圖用自動(dòng)駕駛采集到的車(chē)載第一人稱視角的數(shù)據(jù)來(lái)建模,這項(xiàng)工作很有啟發(fā)性。他們?cè)?23 年 9 月份就給出了一個(gè)自回歸+Diffusion 的技術(shù)方案,并且支持通過(guò) Action 來(lái)控制視頻生成的內(nèi)容。國(guó)內(nèi)像智源的 NOVA 也比較有代表性。


請(qǐng)綜合比較視頻生成方向上擴(kuò)散模型和自回歸模型的優(yōu)缺點(diǎn)?


:首先,從商業(yè)化這個(gè)層面來(lái)看,擴(kuò)散模型主要的優(yōu)點(diǎn)是,OpenAI 在比較早的時(shí)候證明了,通過(guò)不引入任何自回歸特性的純擴(kuò)散模型來(lái)做視頻建模,起碼對(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)容,還可以生成電影、電視劇甚至是游戲的非常長(zhǎng)時(shí)間的內(nèi)容。而但凡涉及這種非常長(zhǎng)時(shí)間的視頻生成,自回歸模型都是更合適的。

主要有兩個(gè)原因:第一個(gè)原因是,對(duì)于用戶,不希望隨著生成視頻時(shí)間越長(zhǎng),需要等待至可以觀看的時(shí)間也越長(zhǎng)。這個(gè)等待時(shí)間至少應(yīng)該是一個(gè)常數(shù)。這就要求模型能夠以片段生成、甚至是逐幀生成的方式進(jìn)行。而逐幀生成,在學(xué)術(shù)上通常被稱為自回歸( Autoregressive )方式,或者是 Streaming( 流式 )生成方式。第二個(gè)原因是,純粹的 “ 生成 ” 并沒(méi)有滿足用戶的最終目標(biāo),用戶還是希望在生成過(guò)程中,模型能夠不斷地與人或外部世界交互,從而實(shí)時(shí)或非實(shí)時(shí)地去改變后續(xù)生成的內(nèi)容。這種方式從中長(zhǎng)期來(lái)看,會(huì)產(chǎn)生一種全新的內(nèi)容形態(tài)。這也對(duì)應(yīng)了自回歸模型的基本特點(diǎn):它天然更適合逐步、交互式的生成過(guò)程。

從我的經(jīng)驗(yàn)來(lái)看,MAGI-1 能生成的最復(fù)雜的運(yùn)動(dòng),是包含連續(xù)多階段、情節(jié)演進(jìn)、跨物體轉(zhuǎn)換和擬人動(dòng)作的 “ 敘事性運(yùn)動(dòng) ”。比如我自己在用的時(shí)候,更常見(jiàn)的方式是:用一個(gè)簡(jiǎn)單的 Prompt,生成兩三秒視頻;然后再換一個(gè)新的 Prompt,繼續(xù)生成兩三秒,甚至用這種方式做過(guò)完整一鏡到底、30 多秒、包含完整故事線的內(nèi)容生成。

我自己嘗試的一個(gè)比較復(fù)雜的例子是這樣的:一個(gè)人坐在椅子上;他快速站起來(lái),拿出一把槍,對(duì)準(zhǔn)屏幕前的你;但扣動(dòng)扳機(jī)后不是子彈,而是飛出一朵鮮花;這朵鮮花開(kāi)始在空中緩慢漂?。黄∵^(guò)程中,鮮花逐漸變形為一只鳥(niǎo);鳥(niǎo)落在這個(gè)人的身上;他朝你微笑,然后轉(zhuǎn)身離開(kāi)。然后他在轉(zhuǎn)身的過(guò)程中,兩邊會(huì)有這種類似于劇院的簾子拉上,你以為結(jié)束了,但實(shí)際上這個(gè)人又把簾子拉開(kāi),然后又沖你笑了一下,最后整個(gè)畫(huà)面慢慢變黑,并且出現(xiàn)了一個(gè) Logo。

這其實(shí)是最能體現(xiàn) MAGI-1 在產(chǎn)品上的優(yōu)勢(shì)場(chǎng)景:每次只生成一小段視頻;并且在每一段生成之后,可以實(shí)時(shí)修改 Prompt 來(lái)調(diào)整接下來(lái)的內(nèi)容;這樣用戶就可以通過(guò)一種 “ 邊生成、邊構(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)成“素材庫(kù)工具”來(lái)用;但在我們自己的產(chǎn)品里,創(chuàng)作方式會(huì)變得更動(dòng)態(tài)。

總結(jié)來(lái)說(shuō),如果你希望生成一個(gè)非常短比如就幾秒的視頻片段,擴(kuò)散模型和自回歸模型之間的差距并不大。但如果你希望生成比較長(zhǎng)的、具有復(fù)雜敘事結(jié)構(gòu)的視頻,或者你希望做真正意義上的視頻續(xù)寫(xiě),自回歸模型都會(huì)有比較明顯的優(yōu)勢(shì)。

如果從科學(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)的。

最后,從非常長(zhǎng)期的角度來(lái)看,幾乎所有的模態(tài)都會(huì)嘗試融合到一個(gè)統(tǒng)一的大模型里,這些模態(tài)肯定會(huì)包括語(yǔ)言、語(yǔ)音、圖像等,視頻最終也會(huì)成為不可或缺的一部分。考慮到目前像語(yǔ)言這種被認(rèn)為 “ 智力密度 ” 較高的模態(tài),主流的建模方式幾乎都是自回歸形式,如果我們一開(kāi)始就用自回歸的方式來(lái)建模視頻,那后續(xù)在模態(tài)統(tǒng)一的大模型中,視頻的建模路徑也會(huì)更順暢和自然。

關(guān)于兩者的相對(duì)劣勢(shì),擴(kuò)散模型目前最大的一個(gè)劣勢(shì),即便在學(xué)界都還是非常前沿的課題,就是擴(kuò)散模型的 Scalability( 可擴(kuò)展性 )效能似乎存疑。無(wú)論是我們這邊的一些初期實(shí)驗(yàn),還是跟其他同行相互交流,都有這樣的觀察:擴(kuò)散模型的 Scaling 效果雖然不是沒(méi)有,但性價(jià)比不高。或者說(shuō)通過(guò)擴(kuò)展參數(shù)數(shù)量、增加訓(xùn)練計(jì)算量,確實(shí)也能看到效果有所提升,但這個(gè)提升與投入的成本不成正比。但這究竟是因?yàn)闆](méi)有把事情做對(duì),還是擴(kuò)散模型本身就存在這方面的結(jié)構(gòu)性缺陷,目前還沒(méi)有完全搞清楚。因?yàn)檎麄€(gè)擴(kuò)散模型系統(tǒng)還是很復(fù)雜的,牽涉的變量非常多。各個(gè)組織的人,包括學(xué)界、Startup 和大公司,都還在這方面做探索。

對(duì)于自回歸模型,目前為止的最大挑戰(zhàn),還是誤差累積。比如 MAGI-1,盡管理論上可以支持無(wú)限時(shí)長(zhǎng)的視頻生成,但當(dāng)生成的單一鏡頭時(shí)間過(guò)長(zhǎng)時(shí),確實(shí)會(huì)出現(xiàn)誤差逐步積累的現(xiàn)象。主觀視覺(jué)上的體現(xiàn)就是:畫(huà)質(zhì)可能會(huì)開(kāi)始變得銳化、模糊不清,或者顏色會(huì)逐漸發(fā)生異常變化。

我們也跟很多做語(yǔ)言模型的同行交流過(guò),但他們很難像在視頻或者語(yǔ)音里那樣,直觀地感受到 “ 誤差累積 ” 的現(xiàn)象,只是有時(shí)候會(huì)對(duì)語(yǔ)言模型中的某些錯(cuò)誤 Case ,懷疑它是不是一種 “ 誤差累積 ”。比如語(yǔ)言模型中經(jīng)常出現(xiàn)的一種情況是:一旦語(yǔ)言模型開(kāi)始重復(fù)輸出某些詞或句子,后面就會(huì)一直重復(fù),怎么也拽不回來(lái)。


基于自回歸模型的視頻生成,對(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)該是自回歸。但它的通過(guò)多輪對(duì)話交互的編輯能力,其實(shí)表現(xiàn)得還是比較好的。所以說(shuō),自回歸模型在編輯能力上的限制,更多是當(dāng)前模型能力和訓(xùn)練范式的問(wè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é)界的研究坦率來(lái)說(shuō)還沒(méi)有特別多,遠(yuǎn)不如雙向擴(kuò)散模型那樣成熟。因此,這里面可能會(huì)出現(xiàn)一些像前面提到的 “ 誤差累積 ” 的問(wèn)題,從視覺(jué)效果上看,有時(shí)會(huì)比擴(kuò)散模型更明顯。但我覺(jué)得這一部分問(wèn)題都是當(dāng)下的階段性現(xiàn)象,它不代表自回歸模型從中長(zhǎng)期來(lái)看在建模效率和視頻生成質(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)于 “ 是否需要更多因果約束 ”,我覺(jué)得這取決于兩個(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)畫(huà),其實(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)邏輯。

所以最終來(lái)看,建模方式和數(shù)據(jù)質(zhì)量是相輔相成的:缺一不可。

嚴(yán)格來(lái)說(shuō),像無(wú)人駕駛這種場(chǎng)景,或者是通過(guò)真實(shí)鏡頭拍攝出來(lái)的視頻,基本上都是符合物理規(guī)律的,但在美學(xué)表達(dá)或視覺(jué)精致度上相對(duì)弱一些。而一些偏特效制作類的視頻,雖然在視覺(jué)效果上更突出,但往往會(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 帶來(lái)的。當(dāng)你擁有了更大的模型,再加上質(zhì)量更高、結(jié)構(gòu)更合理的數(shù)據(jù)集之后,對(duì)于一些更復(fù)雜的內(nèi)容——無(wú)論是人體運(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è)化落地的還是以 “ 視頻生成 ” 為核心場(chǎng)景為主,從這個(gè)角度出發(fā),我們肯定希望生成結(jié)果在美學(xué)層面是令人滿意的、有表現(xiàn)力的,能帶來(lái)視覺(jué)沖擊或者藝術(shù)感染力。

但與此同時(shí),我們也不會(huì)把長(zhǎng)期目標(biāo)完全局限在視頻內(nèi)容生成這件事本身。從更長(zhǎng)遠(yuǎn)的視角來(lái)看,我們其實(shí)更關(guān)注的是模型是否具備對(duì)物理世界、對(duì)客觀規(guī)律進(jìn)行結(jié)構(gòu)性建模和刻畫(huà)的能力。


可否用一些代表性例子說(shuō)明自回歸模型與擴(kuò)散模型在建模物理效果上的天然差距?


:有兩個(gè)代表性的例子可以說(shuō)明。第一個(gè)是我們?cè)谟?xùn)練自己模型的非常早期,就發(fā)現(xiàn)自回歸模型有一個(gè)特點(diǎn):對(duì) “ 走路 ”、“ 跑步 ” 這樣的動(dòng)作刻畫(huà)得非常好。

如果我們回頭去看第一版 Sora 剛發(fā)布時(shí)放的一些 demo,以及后來(lái)其他一些友商的案例,即便是相對(duì)比較大的 model 生成的 demo,其實(shí)在 “ 走路 ” 或 “ 跑步 ” 這個(gè)動(dòng)作上經(jīng)常會(huì)出現(xiàn)一些問(wèn)題。比如說(shuō):人物在走路時(shí)會(huì)順拐;原本應(yīng)該是左右腿交替前進(jìn),但在某個(gè)瞬間,突然就會(huì)變成連續(xù)兩次邁左腿,或者連續(xù)兩次邁右腿;這些動(dòng)作在視覺(jué)上看起來(lái)不協(xié)調(diào)、不自然,很容易 “ 穿幫 ”。


知危在 MAGI-1 上測(cè)試的 “ 走路 ” 案例

而像這類情況,在 MAGI-1 的架構(gòu)下,我們?cè)诜浅P〉哪P?、非常早期的階段就發(fā)現(xiàn):對(duì)于 “ 走路 ” 這種在時(shí)序上有明確節(jié)奏和規(guī)律的運(yùn)動(dòng),模型的刻畫(huà)效果就非常好。幾乎不會(huì)出現(xiàn)像順拐、左右腿交替出錯(cuò)這類問(wèn)題。這確實(shí)是一個(gè)很重要的證據(jù)點(diǎn),說(shuō)明自回歸建模對(duì)時(shí)序規(guī)律、物理效果的捕捉有天然優(yōu)勢(shì)。


知危在 MAGI-1 上測(cè)試的 “ 跑步 ” 案例

第二個(gè)例子是關(guān)于 video 續(xù)寫(xiě)( video continuation ) 。如果單純指從一段已經(jīng)生成的視頻后面接著繼續(xù)生成的能力,很多其它模型也可以做。但其它模型大多數(shù)采用的策略是基于前一段視頻的最后一幀,以 “ 圖像續(xù)寫(xiě) ” 的方式來(lái)進(jìn)行生成。這種方式有一個(gè)明顯的弱點(diǎn)是:它很難獲取之前整段視頻中較長(zhǎng)時(shí)間范圍的信息;因此生成的新片段在動(dòng)作連續(xù)性上經(jīng)常會(huì)出現(xiàn)問(wèn)題。

比如說(shuō)給一段 5 秒鐘的視頻,內(nèi)容是一個(gè)小球在屏幕上移動(dòng),它原本是按照某種明確的運(yùn)動(dòng)規(guī)律在運(yùn)動(dòng)的。如果只是拿前一段視頻的最后一幀作為起點(diǎn),用圖像續(xù)寫(xiě)的方式繼續(xù)生成,新視頻往往就不再符合前 5 秒小球的運(yùn)動(dòng)規(guī)律,比如方向、速度可能就突然變了。但在我們目前的實(shí)現(xiàn)里,在運(yùn)動(dòng)連續(xù)性上表現(xiàn)顯著更好,不會(huì)出現(xiàn)那種前后斷開(kāi)的感覺(jué)。

技術(shù)篇


擴(kuò)散模型和自回歸模型在訓(xùn)練復(fù)雜度上有什么不同?根源是什么?如何解決?


:關(guān)于訓(xùn)練復(fù)雜度,可以從兩個(gè)方面來(lái)說(shuō):第一個(gè)方面是由于算法本身的內(nèi)在復(fù)雜度不同,第二個(gè)方面是我們目前對(duì)這兩種模型的理解程度不同,導(dǎo)致訓(xùn)練策略、優(yōu)化范式上的復(fù)雜度不同。

從這兩種模型內(nèi)在的復(fù)雜度來(lái)看。這里說(shuō)的自回歸模型,其實(shí)更多是指像 MAGI-1 這種本質(zhì)上由自回歸和擴(kuò)散耦合在一起的模型。它實(shí)質(zhì)上試圖通過(guò)這種耦合結(jié)構(gòu),結(jié)合兩種不同建模范式的優(yōu)點(diǎn)。也正因?yàn)槿绱?,它天然就?huì)繼承兩種模型的復(fù)雜性,這也意味著它在系統(tǒng)設(shè)計(jì)和訓(xùn)練過(guò)程中的復(fù)雜性,顯著高于純粹的擴(kuò)散模型或純粹的自回歸模型。這是它內(nèi)在復(fù)雜度的一個(gè)直接來(lái)源。

具體實(shí)現(xiàn)里,因?yàn)楝F(xiàn)在不管是擴(kuò)散模型還是自回歸模型,其實(shí)底層大多都是基于 Transformer 架構(gòu)來(lái)實(shí)現(xiàn)的。這也帶來(lái)了進(jìn)一步的工程挑戰(zhàn)。Transformer 架構(gòu)里面有一個(gè)最關(guān)鍵的基礎(chǔ)計(jì)算單元是 Attention。在擴(kuò)散模型里傳統(tǒng)上使用的是一種叫 Full Attention 的機(jī)制,也就是在一個(gè) Attention 模塊內(nèi)部,任意兩個(gè)元素都可以相互 “ 看見(jiàn) ”,信息可以完全雙向流通。而在自回歸模型里通常采用的是 Causal attention,也就是所謂的因果掩碼機(jī)制當(dāng)前這個(gè)元素只能看見(jiàn)它之前的歷史元素,不能看未來(lái)的內(nèi)容,而歷史元素也看不到當(dāng)前的內(nèi)容。

那在 MAGI-1 架構(gòu)下,必須同時(shí)處理這兩種不同的 Attention 機(jī)制。而目前在整個(gè)業(yè)界,其實(shí)還沒(méi)有一個(gè)特別成熟、標(biāo)準(zhǔn)化的實(shí)現(xiàn)方案,可以很好地統(tǒng)一并高效地調(diào)度這兩種不同的 Attention 模式。這就帶來(lái)了架構(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 年底開(kāi)始,無(wú)論是在圖像生成的學(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ā)過(guò)程中,會(huì)遇到很多不確定性和復(fù)雜度。


目前在結(jié)合擴(kuò)散和自回歸的優(yōu)勢(shì)方面,有哪些比較值得關(guān)注的成果?


:其實(shí)在我們剛開(kāi)始研發(fā) MAGI-1 的時(shí)候,業(yè)界在不同模態(tài)里其實(shí)各自都有一套成熟的最佳實(shí)踐。

并且,除了視頻這一領(lǐng)域目前還普遍使用純粹的擴(kuò)散模型之外,在很多其他模態(tài)和任務(wù)里,擴(kuò)散 + 自回歸的混合范式已經(jīng)成為主流做法。比如說(shuō):Audio( 語(yǔ)音 ) 模型,Robotics( 機(jī)器人/決策建模 ) 中的 Decision making ( 決策建模 )模型,在圖像生成方面,尤其是 GPT-4o 發(fā)布之后,圖像領(lǐng)域也能看到明顯的類似轉(zhuǎn)向。

在 Audio 方面,我最近關(guān)注到的就是 Kimi 和階躍星辰,這兩家國(guó)內(nèi)在語(yǔ)音模型上表現(xiàn)很好的公司。他們近期也都在做 Audio 方向的探索,分別提出了 Kimi-Audio 和 Step-Audio,而且他們的 Audio 模型幾乎清一色采用的是 Diffusion 與自回歸相結(jié)合的方式。在整個(gè)決策建模領(lǐng)域( Decision making ),也有一批工作沿著這條融合路線在走,比如:TransFusion,Diffusion Forcing等。

它們能夠結(jié)合兩類模型各自的優(yōu)勢(shì)。一方面,它結(jié)合了自回歸模型在建模因果結(jié)構(gòu)上的能力,另一方面,又結(jié)合了擴(kuò)散模型在建模細(xì)粒度、高保真度內(nèi)容上的能力,特別適合那些不一定涉及高階智能,但對(duì)人類體驗(yàn)非常關(guān)鍵的信號(hào),比如圖像紋理、聲音質(zhì)感、微表情、微動(dòng)作等。


目前,語(yǔ)言方向也在探索擴(kuò)散模型和自回歸模型的選擇或結(jié)合,您認(rèn)為視頻方向可以為此提供哪些經(jīng)驗(yàn)或啟發(fā)??jī)蓚€(gè)方向在這方面有哪些共同點(diǎn)和不同點(diǎn)?


總體來(lái)說(shuō),語(yǔ)言方向的出發(fā)點(diǎn)和視頻方向,是有明顯不同的。至少我目前觀察到,語(yǔ)言方向的這類探索大致分為兩個(gè)主要?jiǎng)右颍?strong>第一類是偏學(xué)術(shù)導(dǎo)向的探索,就是出于一種 “ 既然擴(kuò)散模型在圖像、音頻等其他模態(tài)中都取得了不錯(cuò)的效果,那么在語(yǔ)言這邊是否也可以嘗試看看 ” 的想法。這類工作更多體現(xiàn)為一種開(kāi)放性實(shí)驗(yàn),希望看看擴(kuò)散模型是否能在語(yǔ)言生成中帶來(lái)一些新的建模特性或生成風(fēng)格,屬于典型的探索性研究。

第二類則是更偏工程和系統(tǒng)性能導(dǎo)向的探索: 這類動(dòng)因源于自回歸語(yǔ)言模型在每個(gè) token 的生成過(guò)程中存在并行性瓶頸。因?yàn)樽曰貧w天然是順序依賴的,所以在實(shí)時(shí)生成、低延遲交互等場(chǎng)景下,無(wú)法像擴(kuò)散模型那樣實(shí)現(xiàn)大規(guī)模并行。 而擴(kuò)散模型在這一點(diǎn)上具有優(yōu)勢(shì),因此在一些需要高吞吐、快速響應(yīng)的語(yǔ)言應(yīng)用中,大家開(kāi)始嘗試將擴(kuò)散機(jī)制引入語(yǔ)言建模中。

相比之下,視頻方向的擴(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)可以為語(yǔ)言模型提供一些有價(jià)值的參考。為了能夠更快速、高效地在訓(xùn)練階段同時(shí)支持?jǐn)U散與自回歸兩種建模特性,我們也開(kāi)源了一個(gè)基礎(chǔ)算子,叫 MagiAttention,它本質(zhì)上是一個(gè)偏 infra 層的組件。我們認(rèn)為,視頻方向后續(xù)在這類 infra 工具上的迭代上會(huì)有越來(lái)越多的工作。

視頻生成在訓(xùn)練層面也和語(yǔ)言模型有很大不同,和超長(zhǎng)的上下文有很大關(guān)系。比如MAGI-1的論文中有提到“ 視頻 token 的上下文長(zhǎng)度極長(zhǎng),訓(xùn)練期間可達(dá) 400 萬(wàn)個(gè)token ”,那么視頻 token 與秒數(shù)、分辨率之間的關(guān)系是什么呢?

在處理視頻數(shù)據(jù)時(shí),會(huì)引入類似于語(yǔ)言中的 token 的概念。也就是說(shuō),我們會(huì)把一段視頻離散化、分塊編碼成一組 token,這組 token 就是模型的輸入。對(duì)于 token 的壓縮方式,目前主流的做法是:把視頻看作是時(shí)間維度上一系列圖像的集合;然后在圖像層面進(jìn)行空間壓縮;舉個(gè)例子,比如原始圖像是 1080P( 即 1920×1080 ),我們將其壓縮到像 240P 左右( 即 320×240 )的分辨率;接下來(lái),一幀圖像就會(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 幀來(lái)建模,如果保留 4 幀,那 1 秒鐘視頻就是 4 × 300 = 1200 個(gè) token。所以,從整體來(lái)看:視頻的總 token 數(shù) ≈ 視頻時(shí)長(zhǎng)(秒) × 壓縮后幀率 × 每幀壓縮后 token 數(shù)。

計(jì)算視頻 token 數(shù)通常會(huì)得到一個(gè)非常大的數(shù)字,這直接導(dǎo)致:視頻任務(wù)在訓(xùn)練階段所要處理的 token 數(shù),是目前所有模態(tài)中最多的。遠(yuǎn)遠(yuǎn)超過(guò)語(yǔ)言模型( 即使語(yǔ)言模型上下文已經(jīng)在擴(kuò)展到幾十萬(wàn) token ),也遠(yuǎn)超 Audio 模型,甚至比圖文多模態(tài)模型( 比如圖文 )處理的 token 總量還要大得多。

所以,一方面是需要對(duì)視頻本身做壓縮,另一方面就是在 infra 層面也需要針對(duì)視頻這種特性做特定優(yōu)化。比如在語(yǔ)言模型里,早期像 Kimi 那種強(qiáng)調(diào) long context 的嘗試,其實(shí)跟視頻這邊追求的 long context 是很相似的 —— 都是希望模型能處理更長(zhǎng)時(shí)間范圍、捕捉更大上下文的結(jié)構(gòu)關(guān)系。

但這兩者在實(shí)踐中其實(shí)還是有一些差異的:在語(yǔ)言模型這邊,不管是 long context 還是普通 context,整個(gè)訓(xùn)練流程通常會(huì)分成 pretraining 和 post-training 兩個(gè)階段;語(yǔ)言模型的 pretraining 階段幾乎不會(huì)使用 long context,哪怕模型最終是支持 long context 的;這是因?yàn)?pretraining 階段計(jì)算成本極高,語(yǔ)言模型的訓(xùn)練者通常會(huì)選擇性價(jià)比最高的 context 長(zhǎng)度( 比如 2K~4K )進(jìn)行訓(xùn)練;而真正的 long context 能力,往往是在 post-training 階段,或者在 pretraining 最末尾花極小一部分算力的方式實(shí)現(xiàn)。

但這一點(diǎn)在 video 上非常不一樣。在 video 任務(wù)中,其實(shí)從非常早期、甚至整個(gè) pretraining 階段開(kāi)始,就持續(xù)面對(duì)特別長(zhǎng)的上下文。這就使得:整個(gè) video 領(lǐng)域?qū)?long context 的優(yōu)化需求,從一開(kāi)始就是一個(gè)高優(yōu)先級(jí)、不可回避的問(wèn)題,其優(yōu)先級(jí)比語(yǔ)言模型高很多。


MAGI-1 基于擴(kuò)散模型 DiT 構(gòu)建,并且是擴(kuò)散模型和自回歸模型的結(jié)合體,具體是如何結(jié)合的?


:整體訓(xùn)練方式的主體仍然是使用擴(kuò)散式的 loss,也就是說(shuō)優(yōu)化的是一個(gè)基于逐步去噪過(guò)程的目標(biāo)函數(shù);但在信息流通的建模方式上,采用的是完全自回歸的結(jié)構(gòu)。

也就是:未來(lái)幀可以訪問(wèn)歷史幀的信息,但歷史幀完全無(wú)法看到未來(lái)幀。從實(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)是提升整體的算力效率;正如前面提到的,語(yǔ)言模型在嘗試將自回歸和擴(kuò)散結(jié)合時(shí),也有一部分原因是因?yàn)榧兇獾淖曰貧w結(jié)構(gòu)在算力利用率上的表現(xiàn)不佳;MAGI-1 這邊也出于同樣的考量,希望找到一種性能與建模能力的平衡方式。

第二點(diǎn)考慮是:對(duì)于塊內(nèi),可以把它理解為一個(gè)非常短的視頻片段,比如可能是一秒鐘甚至更短的長(zhǎng)度。在這樣的時(shí)間尺度內(nèi),采用雙向的 diffusion(full attention)機(jī)制來(lái)刻畫(huà)內(nèi)容,其實(shí)在現(xiàn)階段的技術(shù)條件下效率更高、建模效果更成熟。

然后也有考慮到自回歸模型的的特性。所以我們會(huì)選擇采用相對(duì)較短的塊,比如說(shuō)一秒左右的長(zhǎng)度。在這樣一個(gè)非常短的時(shí)間范圍內(nèi),其內(nèi)容本質(zhì)上就像一個(gè)小視頻片段。在這種尺度下,是否建模因果關(guān)系其實(shí)影響不大。但當(dāng)我們處理的是更長(zhǎng)的視頻序列時(shí),時(shí)間維度上的結(jié)構(gòu)性就變得更重要了。


這是不是也要求,在短時(shí)長(zhǎng)(比如一秒)的視頻內(nèi)容里,它的動(dòng)態(tài)變化相對(duì)來(lái)說(shuō)是比較小的?


我們從數(shù)據(jù)設(shè)計(jì)的角度來(lái)說(shuō),并不會(huì)刻意去控制動(dòng)態(tài)變化的大小,不會(huì)明確地篩掉高動(dòng)態(tài)片段。但從實(shí)踐觀察上來(lái)看,確實(shí)是這樣。如果是劇烈碰撞、快速爆炸、瞬時(shí)運(yùn)動(dòng)切換這類內(nèi)容,在短時(shí)片段中出現(xiàn)高速大幅度變化,就會(huì)對(duì)模型造成壓力,容易出錯(cuò)。


為什么 MAGI-1 中給視頻幀序列添加的噪聲,是隨時(shí)間( 或視頻幀序列 )單調(diào)遞增的?


:這個(gè)設(shè)計(jì)背后主要有兩個(gè)方面的考量:第一個(gè)是出于自回歸建模本身的邏輯:在自回歸的語(yǔ)義下,我們的目標(biāo)是根據(jù)過(guò)去較為清晰的內(nèi)容,去預(yù)測(cè)未來(lái)還未發(fā)生的內(nèi)容;所以模型在生成時(shí),必須滿足一個(gè)自然的方向性假設(shè):“ 歷史是確定的、清晰的,未來(lái)是未知的、模糊的 ”;因此在設(shè)計(jì)上,我們就需要讓時(shí)間靠前的幀相對(duì)更 “ 干凈 ”,而時(shí)間越往后噪聲越強(qiáng),從而模擬 “ 預(yù)測(cè)的不確定性逐漸增加 ” 這一過(guò)程。

但嚴(yán)格來(lái)說(shuō),標(biāo)準(zhǔn)的自回歸模型并不像 MAGI-1 這樣,中間不會(huì)存在一個(gè) “ 模糊→清晰 ” 的過(guò)渡狀態(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ù)測(cè)下一秒的視頻;這使得我們可以在一定程度上實(shí)現(xiàn)推理過(guò)程的重疊與并行,極大地提升了流式生成( streaming )或長(zhǎng)視頻續(xù)寫(xiě)場(chǎng)景下的效率。

我們當(dāng)時(shí)希望解決的目標(biāo)是:生成無(wú)限時(shí)長(zhǎng)的視頻;并且在中間不需要停頓或等待,讓用戶可以邊看邊生成,體驗(yàn)上是流暢連續(xù)的,所以我們就設(shè)計(jì)了這樣一個(gè)策略。

更重要的是,我們?cè)谠缙趯?shí)驗(yàn)中發(fā)現(xiàn),這種策略對(duì)生成質(zhì)量的影響非常小,不會(huì)引起明顯的畫(huà)面崩潰或邏輯斷裂,同時(shí)又很好地滿足了我們對(duì)系統(tǒng)低延遲、流式輸出、多階段生成能力等方面的特性訴求。所以它最終成為 MAGI-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ù)量特別多。這就意味著如果我們一開(kāi)始就在長(zhǎng)時(shí)長(zhǎng)、高分辨率的視頻上進(jìn)行訓(xùn)練,計(jì)算復(fù)雜度會(huì)非常高、資源消耗極大,訓(xùn)練效率也會(huì)非常低。所以,為了有效控制訓(xùn)練復(fù)雜度,我們采用了一種逐步上升式的多階段訓(xùn)練策略:第一階段:先在 靜態(tài)圖像上進(jìn)行訓(xùn)練。 第二階段:訓(xùn)練低分辨率、短時(shí)長(zhǎng)的視頻。 第三階段及之后:逐步提升訓(xùn)練樣本的視頻分辨率和時(shí)長(zhǎng)。

高質(zhì)量、視覺(jué)表現(xiàn)優(yōu)秀的視頻和圖片的數(shù)量,其實(shí)非常有限,不像低質(zhì)量或中等質(zhì)量數(shù)據(jù)那么豐富。所以我們采取的策略是:在訓(xùn)練的早期階段,主要使用概念豐富但畫(huà)質(zhì)相對(duì)一般的視頻和圖片,幫助模型盡早建立起對(duì)內(nèi)容多樣性的認(rèn)知;而那些視覺(jué)質(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 太小,也就是說(shuō)當(dāng)前生成塊和前一個(gè)參考?jí)K的噪聲程度幾乎一樣,那么模型在生成時(shí)就無(wú)法從歷史中提取有效的指導(dǎo)信息;因?yàn)榇藭r(shí)“ 歷史幀 ” 本身也還處在一個(gè)比較模糊的狀態(tài),等于模型是在 “ 看著模糊的歷史去預(yù)測(cè)模糊的未來(lái) ”,最終就會(huì)導(dǎo)致生成質(zhì)量顯著下降。

另一個(gè)極端就是:如果我們選擇將一個(gè)片段完全去噪干凈后再開(kāi)始生成下一段視頻,那么模型就必須等待上一段全部完成后才能啟動(dòng)下一段的生成。這種情況下:無(wú)法實(shí)現(xiàn)多 chunk 的并行推理,必須串行執(zhí)行;所以它的效率會(huì)明顯下降;但與此同時(shí),由于每一段的歷史信息都是干凈完整的,因此從原理上講,它所帶來(lái)的生成質(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)視頻去噪生成的過(guò)程。 t = 0.3 在物理上代表的是包含清晰視頻 30% 的像素內(nèi)容( 其余為噪聲 )。

人的視覺(jué)系統(tǒng)對(duì)細(xì)節(jié)的感知是非線性的;在 t=0.3 時(shí),雖然局部紋理已經(jīng)受損,但宏觀信息仍然保留得比較好;比如:人物的位置、輪廓、動(dòng)作方向仍然清晰可辨,只是像面部皺紋、毛發(fā)邊緣、衣服褶皺這類細(xì)節(jié)會(huì)顯得模糊或消失。

也就是說(shuō),t<0.3 的時(shí)候模型主要在生成宏觀的結(jié)構(gòu)信息,t>0.3 的時(shí)候則在生成細(xì)節(jié)的紋理信息。


模型能夠在 t = 0.3 時(shí)生成相當(dāng)清晰的視頻輸出。

圖源:MAGI-1: Autoregressive Video Generation at Scale

這和人類視覺(jué)系統(tǒng)的特點(diǎn)一致:人眼對(duì)高頻細(xì)節(jié)( 如紋理、微小噪點(diǎn) )相對(duì)不敏感,但對(duì)低頻結(jié)構(gòu)( 如形狀、邊界、運(yùn)動(dòng)趨勢(shì) )高度敏感。

基于此觀察,我們啟發(fā)式地將大約 70% 的訓(xùn)練計(jì)算預(yù)算分配給 t < 0.3 的區(qū)域。


:您提到希望模型能生成無(wú)限時(shí)長(zhǎng)的視頻,并且論文中提到“ 只要 MAGI-1 的視頻生成只關(guān)聯(lián)有限的 KV( Key-Value ),其生成長(zhǎng)度就是無(wú)限的 ”,如何理解這一點(diǎn)?


:我們目前的處理方式是:在推理過(guò)程中,模型只關(guān)注時(shí)序上最近的 10 秒或 20 秒內(nèi)的 KV 信息,這使得 MAGI-1 具有恒定的峰值推理成本。

“ 恒定的峰值推理成本 ” 是對(duì)于生成固定大小的下一個(gè)視頻塊而言,每次都需要付出相同的算力代價(jià),所以生成完整視頻的成本隨著視頻延長(zhǎng)而線性增長(zhǎng),理論上是可以實(shí)現(xiàn)無(wú)限生成的。

但這里也稍作補(bǔ)充說(shuō)明:在實(shí)踐中,由于仍然存在誤差累積的問(wèn)題,當(dāng)你生成視頻長(zhǎng)度特別長(zhǎng)的時(shí)候,仍可能出現(xiàn)一些不連續(xù)或偏差的現(xiàn)象。比如我們?cè)谏梢粋€(gè) 30 秒鐘視頻時(shí),如果 “ 抽卡 ” 運(yùn)氣不好,可能在最后一幀中會(huì)看到相比第一幀圖像的畫(huà)質(zhì)下降、顏色漂移等現(xiàn)象。


MAGI-1 支持為每一個(gè)視頻塊提供不同文本條件,來(lái)實(shí)現(xiàn)逐塊的文本控制,這是不是自回歸模型才能實(shí)現(xiàn)的優(yōu)勢(shì)?


:可以從兩個(gè)角度來(lái)理解:應(yīng)用視角和技術(shù)視角。

從應(yīng)用視角:為什么逐塊文本控制是剛需、但雙向擴(kuò)散模型難以用好?假設(shè)你腦子里已經(jīng)完全構(gòu)思好了一個(gè)復(fù)雜動(dòng)作的分鏡拆解,比如一個(gè) 200 字的長(zhǎng)句子,精準(zhǔn)地把每一秒鐘的動(dòng)作用文字對(duì)上。理論上,你是可以把這些 caption 全部輸入到一個(gè) 雙向擴(kuò)散模型中,然后讓它一次性生成一個(gè) 20 分鐘的長(zhǎng)視頻,第一分鐘對(duì)應(yīng)第一段 caption,第二分鐘對(duì)應(yīng)第二段 caption,依此類推。從表達(dá)能力角度來(lái)說(shuō),雙向擴(kuò)散模型不是做不到,但在實(shí)際應(yīng)用中極難做到。

原因是:無(wú)論是自回歸模型還是雙向擴(kuò)散模型,當(dāng)你給一個(gè)長(zhǎng) caption,它都無(wú)法保證你所描述的內(nèi)容一定會(huì)在預(yù)期的時(shí)間段內(nèi)、完整且正確地出現(xiàn);換句話說(shuō),如果你在第一段 caption 中描述了一個(gè) 5 秒鐘應(yīng)該完成的動(dòng)作,模型可能會(huì)拖延到第七秒才完成,甚至提前在第三秒做完。

從技術(shù)視角:我們現(xiàn)在的模型,無(wú)論自回歸還是雙向擴(kuò)散,從技術(shù)角度講其實(shí)還遠(yuǎn)遠(yuǎn)沒(méi)法做到“零抽卡”一遍過(guò)的生成體驗(yàn)。尤其是當(dāng)你提供的某一段 caption 特別復(fù)雜、長(zhǎng)、結(jié)構(gòu)密集的時(shí)候,模型很有可能:第一次生成出來(lái)的內(nèi)容沒(méi)有覆蓋全信息;或者覆蓋了,但畫(huà)面實(shí)現(xiàn)得不夠符合你的預(yù)期;于是你就需要不斷抽卡 → 看效果 → 再抽卡 → 再修改 prompt,直到達(dá)成目標(biāo)。在這種情況下,如果你是一次性讓模型生成 20 秒、30 秒甚至更長(zhǎng)的視頻,那每次失敗的成本就非常高。

所以這就引出了一個(gè)更具實(shí)用性的策略:把復(fù)雜的 caption 拆成更短的片段,逐塊生成;每一塊都可以調(diào)試、替換、修正;整體質(zhì)量可控性就會(huì)大大提升,且不容易出現(xiàn)局部崩壞帶動(dòng)全局崩壞的問(wèn)題。而這種分塊生成 + 多輪調(diào)試的生成方式,在結(jié)構(gòu)上是只有自回歸模型才能支持得好的。

再深入到訓(xùn)練層面,目前這方面最大的一個(gè)限制在于:整個(gè)行業(yè)普遍采用的訓(xùn)練范式,還是以相對(duì)短、簡(jiǎn)單的視頻片段為主;尤其是雙向擴(kuò)散模型,因?yàn)槭芟抻诟鞣N復(fù)雜度,大多數(shù)訓(xùn)練數(shù)據(jù)都是幾秒鐘內(nèi)的完整視頻或片段;這就帶來(lái)一個(gè)直接的問(wèn)題:模型在訓(xùn)練過(guò)程中很少見(jiàn)到 “ 文本條件發(fā)生大幅變化 ” 的情形;所以一旦在測(cè)試或?qū)嶋H生成中遇到這類跨語(yǔ)義、跨動(dòng)作的多段式描述,模型很難處理得自然、準(zhǔn)確,因?yàn)樗谟?xùn)練中就沒(méi)見(jiàn)過(guò)這種復(fù)雜度和跨度的文本-視頻對(duì)齊方式。

因此,我們可以說(shuō)目前雙向擴(kuò)散模型的訓(xùn)練框架天然就不利于支持 “ 文本條件逐段變化 ” 的任務(wù),而自回歸結(jié)構(gòu)由于是分階段推進(jìn)、邊生成邊處理,其訓(xùn)練方式也可以更自然地暴露在復(fù)雜語(yǔ)義切換、節(jié)奏控制的真實(shí)任務(wù)分布下。


論文中提到了很多通過(guò)調(diào)整關(guān)聯(lián)強(qiáng)度來(lái)優(yōu)化視頻生成質(zhì)量或特性的方法或經(jīng)驗(yàn),比如調(diào)整視頻幀關(guān)聯(lián)或語(yǔ)義關(guān)聯(lián)的強(qiáng)度,以保持身份一致性或場(chǎng)景一致性,您對(duì)這些方法或經(jīng)驗(yàn)背后的理解是什么?


:這個(gè)部分是MAGI-1挺關(guān)鍵的創(chuàng)新點(diǎn)。

傳統(tǒng)的語(yǔ)言模型都使用自回歸的方式去做,但其實(shí)學(xué)界都還沒(méi)有形成一個(gè)統(tǒng)一的認(rèn)識(shí),即為什么在語(yǔ)言模型里不需要使用關(guān)聯(lián)強(qiáng)度的技巧,就能夠達(dá)到很好的生成效果。但在圖像或視頻里,哪怕是像 VideoPoet 這種純粹用自回歸生成的方法,也是需要有關(guān)聯(lián)強(qiáng)度這一項(xiàng)的。

盡管此前學(xué)界已有一些方法,例如直接借用類似 Sora 這種雙向 attension 結(jié)構(gòu)中的公式來(lái)進(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è)問(wèn)題:幀與幀之間,或更廣義上的 chunk 與 chunk 之間,生成內(nèi)容會(huì)存在一定程度的不連續(xù)性。過(guò)去對(duì)此的處理方法,很多是非本質(zhì)的手段,我們?cè)缙谝矅L試過(guò)類似的做法。但依靠我們從理論上推導(dǎo)出的關(guān)聯(lián)強(qiáng)度調(diào)整公式,可以從數(shù)學(xué)上顯式地調(diào)整以下兩個(gè)方向之間的權(quán)重關(guān)系:一方面是新生成視頻與過(guò)去時(shí)序之間的連續(xù)性;另一方面是對(duì)新的文本指令的響應(yīng)程度。通過(guò)這個(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ù)語(yǔ)中屬于 classifier-free guidance( CFG )。我們注意到:至少在視頻生成模型中,誤差累積現(xiàn)象與 CFG 存在非常強(qiáng)的相關(guān)性。在我們的論文中對(duì)此部分也做了專門(mén)闡述。我們的觀點(diǎn)是:如果未來(lái)希望進(jìn)一步解決視頻生成中的誤差累積問(wèn)題,那么研究如何將這個(gè) CFG 機(jī)制納入模型訓(xùn)練過(guò)程,可能是一個(gè)關(guān)鍵的探索方向。

第二部分,關(guān)于與語(yǔ)言模型的比較。對(duì)于語(yǔ)言模型為何不需要關(guān)聯(lián)強(qiáng)度,坦率來(lái)說(shuō),目前沒(méi)有看到學(xué)界或其他人對(duì)這個(gè)問(wèn)題有特別好的回答,我也沒(méi)有答案,但有一些猜想。我傾向的一個(gè)解釋是:這本質(zhì)上可能是因?yàn)橐曨l或圖像數(shù)據(jù)中存在較強(qiáng)的 “ 空間冗余性 ”。所謂空間冗余性,是指:以圖像為例,圖像中空間上相鄰的像素,或者說(shuō)視覺(jué)內(nèi)容,通常具有一定程度的相似性;在視頻中則表現(xiàn)為,相鄰時(shí)間點(diǎn)的兩幀畫(huà)面之間,通常內(nèi)容變化不會(huì)太大,特別是時(shí)間上非常鄰近的幀。而這種數(shù)據(jù)在局部上的相似性,在建模過(guò)程中,容易導(dǎo)致模型 “ 偷懶 ”。這里所謂的 “ 偷懶 ” 是指:模型在學(xué)習(xí)時(shí),傾向于對(duì)鄰近區(qū)域或前一幀內(nèi)容進(jìn)行簡(jiǎn)單的復(fù)制( copy )操作;這樣就可以生成一個(gè)看上去還不錯(cuò)的結(jié)果,而無(wú)需真正理解或建模更復(fù)雜的變化關(guān)系。

從訓(xùn)練的角度來(lái)看,這種簡(jiǎn)單的 copy 操作雖然在訓(xùn)練階段看起來(lái)有效,但它帶來(lái)了訓(xùn)練與測(cè)試階段之間的不一致問(wèn)題。具體來(lái)說(shuō),到了測(cè)試階段,模型從 0 開(kāi)始生成,并沒(méi)有真實(shí)的前一幀可供復(fù)制;此時(shí)如果模型在訓(xùn)練中依賴了 “ copy 策略 ”,測(cè)試時(shí)就會(huì)無(wú)法維持結(jié)構(gòu)邏輯與連續(xù)性,導(dǎo)致生成結(jié)果亂七八糟。因此,在視頻或圖像生成中,我們需要引入像 CFG 這樣的技巧,其本質(zhì)目的是為了:克服訓(xùn)練與測(cè)試之間的不一致問(wèn)題;盡可能抑制模型對(duì)簡(jiǎn)單復(fù)制策略的依賴,引導(dǎo)它學(xué)習(xí)更具泛化能力的生成方式。像這種 copy 操作,在生成過(guò)程中很可能會(huì)導(dǎo)致語(yǔ)義或物理層面上的偏差。

相比之下,在語(yǔ)言建模任務(wù)中,情況有所不同。相鄰的兩個(gè) token 通常是兩個(gè)詞,或者至少是兩個(gè)字符;這使得語(yǔ)言序列中很難出現(xiàn)直接重復(fù)的情況;同時(shí),不同語(yǔ)言中的每個(gè) token 通常都表達(dá)了非常明確的語(yǔ)義概念。因此,在語(yǔ)言建模的訓(xùn)練過(guò)程中,模型不太容易出現(xiàn)圖像或視頻任務(wù)中那種 “ 偷懶 ” 行為。但需要說(shuō)明的是,這仍然是一個(gè)猜想。我們還沒(méi)有特別明確的實(shí)驗(yàn)信號(hào)或理論依據(jù)來(lái)證實(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ù)的。如果說(shuō)追求極致,那就是:GPU 提供多少算力,我們就能盡可能100% 利用起來(lái),不產(chǎn)生任何浪費(fèi)。在這個(gè)前提下,我們會(huì)針對(duì)訓(xùn)練和推理這兩個(gè)不同的使用場(chǎng)景,做出各自的、差異化的優(yōu)化。

訓(xùn)練最主要的創(chuàng)新集中在兩個(gè)方面:第一是 MagiAttention 的 attention 結(jié)構(gòu)的設(shè)計(jì),這是在模型層面的一個(gè)重要?jiǎng)?chuàng)新點(diǎn)。第二是在訓(xùn)練過(guò)程中采用了分布式訓(xùn)練。所謂分布式訓(xùn)練,就是我們會(huì)使用大量的 GPU 并行地去處理這個(gè)模型。而一旦進(jìn)入分布式訓(xùn)練的場(chǎng)景,所面對(duì)的系統(tǒng)復(fù)雜度就會(huì)遠(yuǎn)高于非分布式的訓(xùn)練方式。因此,訓(xùn)練的基礎(chǔ)架構(gòu)必須專門(mén)針對(duì)這種分布式訓(xùn)練的場(chǎng)景,做出單獨(dú)的優(yōu)化設(shè)計(jì)。

在推理這邊,最大的復(fù)雜性可以分成兩個(gè)場(chǎng)景來(lái)看:第一個(gè)場(chǎng)景是,我們的模型有一個(gè)很關(guān)鍵的功能,就是要支持實(shí)時(shí)的 streaming 推理。 這個(gè)部分必須要做非常高強(qiáng)度的優(yōu)化,才能在盡可能少的算力消耗下實(shí)現(xiàn)流式生成。第二個(gè)場(chǎng)景是,我們目前開(kāi)源的 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 ):采用類似語(yǔ)言模型中的因果注意力( causal attention ),只關(guān)注歷史信息。這種混合結(jié)構(gòu)要求注意力機(jī)制能夠靈活地適應(yīng)不同方向、粒度和上下文范圍的變化。

輸入視頻本身具有高度非統(tǒng)一性。在訓(xùn)練過(guò)程中,輸入視頻存在顯著的分布異質(zhì)性,這進(jìn)一步加劇了注意力結(jié)構(gòu)的復(fù)雜性??臻g維度變化:不同視頻可能有不同的分辨率( 如 16:9、4:3 );時(shí)間維度變化:視頻的長(zhǎng)度差異很大,有的僅 2–3 秒,有的長(zhǎng)達(dá)十幾秒。為了提升訓(xùn)練效率,我們希望在訓(xùn)練中將多個(gè)視頻拼接在一起處理,但這也意味著:注意力編碼機(jī)制必須能夠在同一批次中處理空間維度、時(shí)間維度都不同的視頻片段,形成復(fù)雜形狀張量下的靈活attention結(jié)構(gòu)。

工程實(shí)現(xiàn)上的挑戰(zhàn)與需求。由于上述兩方面的復(fù)雜性,目前在開(kāi)源社區(qū)中:尚不存在一個(gè)開(kāi)源 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)練,或者說(shuō)所有的分布式訓(xùn)練,最大的挑戰(zhàn)通常來(lái)自兩個(gè)方面:第一方面是通信問(wèn)題。因?yàn)榉植际接?xùn)練意味著會(huì)有很多臺(tái)不同的機(jī)器一起參與運(yùn)算,它們之間不僅要各自計(jì)算,還需要頻繁通信與協(xié)調(diào)。

打個(gè)比方來(lái)說(shuō):如果只有一個(gè)人在干活,那就是非分布式訓(xùn)練;而分布式訓(xùn)練就像是有 1,000 個(gè)人一起完成一件工作,每個(gè)人負(fù)責(zé)其中的一小部分;這個(gè)時(shí)候就需要大家互相溝通、協(xié)作,技術(shù)上對(duì)應(yīng)的就是不同 GPU 或機(jī)器之間需要通信。

第二方面是速度一致性問(wèn)題。當(dāng)這 1,000 臺(tái)機(jī)器共同處理一個(gè)任務(wù)時(shí),最終的處理時(shí)間取決于最慢的那一臺(tái)機(jī)器。 如果說(shuō)在任務(wù)分配中,有一個(gè)人被分配了過(guò)多的任務(wù),那么在實(shí)際執(zhí)行過(guò)程中就會(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è)問(wèn)題——分布式訓(xùn)練中的通信和協(xié)作復(fù)雜性;任務(wù)負(fù)載不均導(dǎo)致的性能瓶頸;可以說(shuō)是我們?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è)問(wèn)題,MagiAttention 做了一些專門(mén)的優(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)域,比如語(yǔ)言模型等。但區(qū)別在于: 在語(yǔ)言模型中,attention 的復(fù)雜度通常沒(méi)那么高,大家只需要應(yīng)對(duì)一些結(jié)構(gòu)上相對(duì)簡(jiǎn)單的特例,解決一兩個(gè)典型結(jié)構(gòu)就夠用了。 而在像 MAGI-1 這樣的視頻模型中,attention 的結(jié)構(gòu)和計(jì)算模式都非常復(fù)雜,不能靠處理幾個(gè)特例就能應(yīng)對(duì)。因此可以說(shuō),是視頻生成任務(wù),特別是 MAGI-1 這樣的復(fù)雜視頻模型,倒逼我們必須去開(kāi)發(fā)出一個(gè)既高效又靈活的在線 attention 機(jī)制。也正因?yàn)檫@個(gè)需求,才催生了 MagiAttention 這樣的系統(tǒng)。


:MagiAttention 的主要組成包括 FFA( Flex-Flash-Attention )、調(diào)度求解器、Group-Cast 和 Group-Reduce 原語(yǔ)、自適應(yīng)多階段重疊策略等。其中,F(xiàn)FA是一種高效的注意力機(jī)制,調(diào)度求解器確保計(jì)算負(fù)載均衡,Group-Cast 和 Group-Reduce 原語(yǔ)消除了冗余通信,自適應(yīng)多階段重疊策略有效隱藏了通信延遲,請(qǐng)分別解釋每個(gè)組成的原理?


:關(guān)于 FFA( Flex Flash Attention ),它的核心思路是:通過(guò)將整個(gè) attention 的掩碼( mask )切分成多個(gè)計(jì)算單元的組合來(lái)進(jìn)行處理。這些掩碼可以看作是 full mask 和 causal mask 的組合。


Full mask 和 casual mask 圖示。

圖源:MAGI-1: Autoregressive Video Generation at Scale

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í)際需求。

如果我們把視角放得更長(zhǎng)遠(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ò)展,目前正在開(kāi)發(fā)當(dāng)中。

為什么 FFA( Flex Flash Attention )的設(shè)計(jì)特別適合分布式注意力計(jì)算?以及注意力掩碼( attention mask )在其中是怎么發(fā)揮作用的?

attention mask 的作用。所謂的 “ 注意力機(jī)制 ”,本質(zhì)上是:給定一組元素,比如 100 個(gè),我們希望能夠衡量這些元素之間的兩兩關(guān)系。也就是說(shuō),我們希望每一個(gè)元素都能 “ 看到 ” 其他元素,然后計(jì)算它們之間的相關(guān)性。這就是注意力要做的核心事情。而在這個(gè)兩兩關(guān)系的計(jì)算過(guò)程中,我們可以人為地加入一些 “ 約束 ”( constraint ),來(lái)控制哪些元素之間是可以交互、哪些是不可以的。比如:causal attention( 因果注意力 ) 就是一種帶有約束的機(jī)制,它規(guī)定:序列中較后位置的元素不能看到前面位置的內(nèi)容。在實(shí)際實(shí)現(xiàn)中,我們只需要把這類 “ 不允許看到的關(guān)系 ” 在注意力矩陣中通過(guò)掩碼( mask )屏蔽掉,就能實(shí)現(xiàn)我們想要的行為。所以說(shuō),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ò)去很多關(guān)于 attention 的設(shè)計(jì)其實(shí)都太復(fù)雜了。 而在 FFA 中,我們引入了兩個(gè)非常關(guān)鍵但又簡(jiǎn)單的接口,叫做:q_range( Query Range )、k_range( Key Range )你只需要指定不同的 q_range 和 k_range,就可以構(gòu)建出非常靈活的 attention 掩碼結(jié)構(gòu)。

這種設(shè)計(jì)的好處有兩個(gè):第一,靈活性好。由于所有的 attention 模式都可以通過(guò) q_range 和 k_range 來(lái)靈活組合定義, 這就使得 FFA 能夠覆蓋多種注意力結(jié)構(gòu)的需求,使用上也非常簡(jiǎn)單。第二,適合分布式計(jì)算。因?yàn)橛辛?q_range 的這個(gè)定義方式,我們就可以在進(jìn)行分布式部署時(shí):預(yù)先分析 q_range 的分布;根據(jù)它的分布情況,把注意力的計(jì)算任務(wù)更合理地切分到不同機(jī)器上;從而做到任務(wù)分布更均勻,減少資源空轉(zhuǎn),顯著降低分布式實(shí)現(xiàn)的復(fù)雜度。所以,為什么說(shuō) FFA 特別適合分布式注意力計(jì)算?本質(zhì)上是因?yàn)樗ㄟ^(guò)這套簡(jiǎn)單清晰的接口:提升了表達(dá)能力和使用靈活性;降低了并行計(jì)算中負(fù)載不均和調(diào)度復(fù)雜度的問(wèn)題。

如果我們只看一段視頻,通常只需要處理 full mask 或 causal mask 就夠了。但問(wèn)題在于,在實(shí)際訓(xùn)練中,我們經(jīng)常希望用很多機(jī)器來(lái)訓(xùn)練整個(gè)視頻模型。 為了盡可能發(fā)揮這些機(jī)器的效率,我們就不能每次只訓(xùn)練一小段視頻,而是會(huì)把一大批視頻片段組合起來(lái)一起訓(xùn)練。舉個(gè)例子,比如我們有一個(gè)視頻集合,里面包含了 1,000 段視頻。 這些視頻長(zhǎng)度不一、分辨率不一。我們?cè)谟?xùn)練的時(shí)候,會(huì)把這些視頻拼接成一個(gè) “ 巨大的長(zhǎng)視頻 ” 來(lái)進(jìn)行處理。

但與此同時(shí),有個(gè)關(guān)鍵點(diǎn):這些視頻片段之間其實(shí)是沒(méi)有任何語(yǔ)義關(guān)聯(lián)的,我們不希望它們之間產(chǎn)生 attention。也就是說(shuō),模型在做 attention 的時(shí)候,不應(yīng)該讓一個(gè)視頻片段“看到”另一個(gè)無(wú)關(guān)片段的內(nèi)容。 這個(gè)“相互不可見(jiàn)”的約束,就是通過(guò)構(gòu)造復(fù)雜的 attention mask 來(lái)實(shí)現(xiàn)的。所以,正是由于這種訓(xùn)練策略——多個(gè)視頻拼接成一個(gè)長(zhǎng)序列訓(xùn)練,但又需要彼此隔離,才導(dǎo)致我們需要使用更加復(fù)雜的、結(jié)構(gòu)化的 attention 掩碼。相比之下,在語(yǔ)言模型的訓(xùn)練里,大家過(guò)去更常見(jiàn)的做法是:直接把不同的句子拼接起來(lái),不管有沒(méi)有關(guān)聯(lián),統(tǒng)一當(dāng)成一篇長(zhǎng)文來(lái)訓(xùn)練。因此語(yǔ)言模型那邊的 attention 掩碼就相對(duì)簡(jiǎn)單很多。


復(fù)雜、不規(guī)則的mask圖示。

圖源:MAGI-1: Autoregressive Video Generation at Scale

將不同的視頻拼接在一起后,再通過(guò)上下文并行( CP,context-parallelism )分配給多張卡進(jìn)行并行計(jì)算。

直接的均勻分配會(huì)對(duì)應(yīng)不同的注意力掩碼結(jié)構(gòu),而由于注意力掩碼的不一致,就會(huì)導(dǎo)致計(jì)算負(fù)載出現(xiàn)不平衡。這就需要通過(guò)調(diào)度求解器達(dá)到計(jì)算負(fù)載均衡,解決方法簡(jiǎn)單理解是將上下文靈活切分,以為每張卡盡可能均勻分配注意力掩碼的面積。

在分布式訓(xùn)練中,一個(gè)非常重要的目標(biāo)是:讓所有機(jī)器處理的任務(wù)量盡可能一致。這樣才不會(huì)出現(xiàn)某一臺(tái)機(jī)器提前完成,而其他機(jī)器還在忙,導(dǎo)致資源空閑、效率浪費(fèi)的情況。

從技術(shù)角度來(lái)說(shuō),不同機(jī)器的任務(wù)量,主要取決于它所處理的注意力掩碼的形狀, 我們?cè)谡撐睦镆舶堰@個(gè)稱為注意力區(qū)域的 “ 面積 ”。

換句話說(shuō):如果一個(gè) attention mask 的非零區(qū)域( 未被遮擋的區(qū)域 )越大,那它所對(duì)應(yīng)的計(jì)算負(fù)載就越重;所以我們可以通過(guò)估計(jì) attention mask 中 “ 未被遮蓋區(qū)域的面積 ”,來(lái)判斷每臺(tái)機(jī)器的任務(wù)量大小。在 CP 設(shè)置中,我們會(huì)把一個(gè)很長(zhǎng)的序列拆分給多臺(tái)機(jī)器,每臺(tái)機(jī)器負(fù)責(zé)其中的一段。我們通過(guò)事先分析這些段所對(duì)應(yīng)的 attention mask,然后采用一些策略,盡量讓不同機(jī)器處理的掩碼面積相等, 從而使任務(wù)負(fù)載趨于平衡,進(jìn)一步提升訓(xùn)練效率。


計(jì)算負(fù)載均衡原理圖示

圖源:MAGI-1: Autoregressive Video Generation at Scale

Group-Cast 和 Group-Reduce 原語(yǔ)是為了實(shí)現(xiàn) “ 零冗余通信原語(yǔ) ”。從注意力掩碼的形狀就可以看出來(lái),查詢( Query )和 KV( Key-Value )之間不是一個(gè)密集的一一對(duì)應(yīng)關(guān)系,實(shí)際上是稀疏的。

因此可以基于 attention mask 的情況來(lái)計(jì)算:哪些 Query 和 KV 之間確實(shí)需要通信,哪些則不需要。

傳統(tǒng)的通信原語(yǔ),由于控制粒度較粗,在處理像 MagiAttention 這樣復(fù)雜 attention mask 的模型時(shí), 會(huì)出現(xiàn)不少不必要的通信開(kāi)銷(xiāo),也就是存在資源浪費(fèi)的情況。所以我們?cè)谶@里專門(mén)提出了一種更細(xì)粒度的通信原語(yǔ)機(jī)制, 就是為了根據(jù)實(shí)際需要來(lái)決定哪些通信該發(fā)生,哪些可以省略, 從而達(dá)到 “ 零冗余 ” 的目的,避免掉通信層面的浪費(fèi)。

關(guān)于自適應(yīng)多階段重疊,它的目的是讓前項(xiàng)和后項(xiàng)的計(jì)算與通信能夠進(jìn)行重疊。 在微觀層面上,計(jì)算和通信的重疊是怎么實(shí)現(xiàn)的呢?可以舉個(gè)例子來(lái)說(shuō)明。 在我們現(xiàn)在使用的計(jì)算框架中,不管是 GPU 還是 CPU,都可以理解為它們的內(nèi)部實(shí)際上存在兩個(gè)并行的時(shí)間線,或者說(shuō)兩條工作流(workflow)。這兩條工作流分別是:計(jì)算工作流(computation workflow)和通信工作流(communication workflow)。

我們可以分別給這兩個(gè)工作流分配任務(wù),而這兩條 “ 流水線 ” 可以并行執(zhí)行,互不阻塞。一個(gè)低效的調(diào)度方式是這樣的:先執(zhí)行一段計(jì)算;等計(jì)算完成后,再進(jìn)行通信;通信完成后,再進(jìn)行下一段計(jì)算;以此類推。這個(gè)流程的問(wèn)題在于:當(dāng)計(jì)算完成后,計(jì)算的流水線就空閑下來(lái);當(dāng)通信開(kāi)始后,通信完成前計(jì)算無(wú)法進(jìn)行;最終會(huì)出現(xiàn)大量時(shí)間被浪費(fèi)在兩條流水線互相等待、彼此空置上。

所謂的計(jì)算和通信的交疊,在微觀層面上,就是我們通過(guò)各種技巧——比如調(diào)整計(jì)算和通信的順序—— 來(lái)讓計(jì)算流水線和通信流水線盡可能都不停下來(lái)。我們會(huì)在做計(jì)算的同時(shí),想辦法提前啟動(dòng)一些通信操作, 通過(guò)這樣的方式,實(shí)現(xiàn)計(jì)算與通信的真正并行推進(jìn)。這樣做帶來(lái)的好處就是:計(jì)算效率和通信效率不會(huì)相互阻塞;不需要“通信等計(jì)算”或者“計(jì)算等通信”的情況發(fā)生;整個(gè)系統(tǒng)從全局來(lái)看,執(zhí)行效率明顯提升。

假設(shè)有兩個(gè)任務(wù),任務(wù) A 和任務(wù) B。每個(gè)任務(wù)都包含:先計(jì)算、再通信的流程;正常來(lái)說(shuō),A 的通信只能等 A 的計(jì)算做完才能開(kāi)始,所以無(wú)法內(nèi)部并行;但如果我們把 A 的計(jì)算階段與 B 的通信階段重疊起來(lái),再把 B 的計(jì)算階段和 A 的通信階段重疊起來(lái),這樣兩個(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);它有一部分硬件專門(mén)負(fù)責(zé)數(shù)值計(jì)算;另一部分硬件則負(fù)責(zé)數(shù)據(jù)傳輸和通信;因此,在硬件層面也支持兩類工作流的并行推進(jìn)。

綜合運(yùn)用以上所有技術(shù),MagiAttention 在不同場(chǎng)景下均能實(shí)現(xiàn)線性可擴(kuò)展性,線性可擴(kuò)展性即相對(duì)于并行化程度的增加( 或機(jī)器數(shù)量增加 ),計(jì)算效率可以線性的隨之增加。


在推理優(yōu)化部分,論文中提到 “ 在目前架構(gòu)設(shè)計(jì)中,通過(guò)擴(kuò)展 DTensor 和并行計(jì)劃,將建模與并行化解耦 ”,實(shí)現(xiàn)這種解耦的關(guān)鍵是什么?


:先說(shuō)一下這個(gè) “ 解耦的關(guān)鍵 ” 到底是什么。

現(xiàn)在,整個(gè)深度學(xué)習(xí)社區(qū)幾乎都在使用 PyTorch 這個(gè)框架,包括絕大多數(shù)公司、初創(chuàng)團(tuán)隊(duì)和學(xué)術(shù)界。但是,PyTorch 在最初的設(shè)計(jì)階段,其實(shí)并沒(méi)有考慮現(xiàn)在這種 “ 大模型時(shí)代 ” 的需求。比如上千上萬(wàn)臺(tái)機(jī)器同時(shí)訓(xùn)練一個(gè)大模型,或者參數(shù)量超百億的模型如何分布式高效訓(xùn)練等等。

所以,在最近幾年新需求不斷冒出來(lái)的情況下,大家只能在 PyTorch 的基礎(chǔ)上進(jìn)行不斷擴(kuò)展和改造。

一個(gè)早期、也比較典型的擴(kuò)展方式就是 Megatron-LM,這是英偉達(dá)開(kāi)發(fā)的, 它在 PyTorch 的基礎(chǔ)上提供了一個(gè)分布式訓(xùn)練的套件。但這個(gè)套件的問(wèn)題在于,它是深度侵入 PyTorch 實(shí)現(xiàn)的, 也就是說(shuō):算法工程師在使用時(shí),不得不跟底層的分布式實(shí)現(xiàn)強(qiáng)綁定、耦合在一起。

如果你想要搭建一個(gè)比較大的模型,并且希望能在上千張 GPU 卡的集群上把它訓(xùn)練起來(lái),那作為算法人員,你就需要手動(dòng)寫(xiě)很多和通信、并行化相關(guān)的代碼。這些代碼通常是直接嵌入模型邏輯里的,也就是說(shuō),把并行策略“寫(xiě)死”在模型中。這種寫(xiě)法帶來(lái)一個(gè)問(wèn)題:算法人員不得不去了解很多底層的分布式并行實(shí)現(xiàn)細(xì)節(jié);但事實(shí)上,算法同學(xué)的背景或經(jīng)驗(yàn)通常并不擅長(zhǎng)這類系統(tǒng)級(jí)、并行化的事情;所以這就導(dǎo)致了算法開(kāi)發(fā)的效率很低,維護(hù)難度也高。

我們團(tuán)隊(duì)在早期內(nèi)部開(kāi)發(fā)時(shí),也是基于像 Megatron-LM 這樣的框架,來(lái)寫(xiě)訓(xùn)練代碼和算法邏輯的。但在這個(gè)過(guò)程中,我們發(fā)現(xiàn)了一個(gè)很明顯的問(wèn)題:所有東西都被高度耦合在一起了,算法和系統(tǒng)完全綁死, 這就導(dǎo)致大家在團(tuán)隊(duì)協(xié)作中非常難以分工合作,比如算法人員和工程人員很難各自專注自己的部分,彼此牽制。

所以,這也就導(dǎo)致了我們后來(lái)意識(shí)到 —— 其實(shí)這也是整個(gè)社區(qū)的一個(gè)趨勢(shì):就是希望能把分布式并行和算法實(shí)現(xiàn)這兩件事情解耦開(kāi)。

這樣一來(lái):算法同學(xué)就可以專注在算法設(shè)計(jì)和模型搭建上;而分布式、性能優(yōu)化這些底層實(shí)現(xiàn)部分,則交由更擅長(zhǎng)這類系統(tǒng)工程的同學(xué)來(lái)處理。這個(gè)就是我們整體做這件事的一個(gè) motivation,也是我們?yōu)槭裁匆苿?dòng) “ 解耦 ” 這件事的原因。

不過(guò),要真正實(shí)現(xiàn)這個(gè)目標(biāo),其實(shí)在實(shí)踐中也遇到過(guò)不少困難。最主要的問(wèn)題是:原生的 PyTorch 并不太支持這樣靈活的解耦機(jī)制。這就需要在 PyTorch 上做一些更底層的擴(kuò)展或者改造。我們團(tuán)隊(duì)的工程同學(xué)在調(diào)研過(guò)程中發(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í)是有可能通過(guò)擴(kuò)展和定制的方式,比較優(yōu)雅地實(shí)現(xiàn) “ 建模與并行優(yōu)化 ” 的徹底解耦。


在推理優(yōu)化部分,提到了擴(kuò)散蒸餾技術(shù),請(qǐng)問(wèn)擴(kuò)散蒸餾在MAGI-1中發(fā)揮的作用是什么?擴(kuò)散蒸餾的原理是什么?


:所謂的擴(kuò)散蒸餾( Diffusion Distillation ),其實(shí)就是為了解決如下問(wèn)題:當(dāng)你已經(jīng)擁有一個(gè)預(yù)訓(xùn)練好的擴(kuò)散模型之后,如何通過(guò) “ 蒸餾 ” 這個(gè)技巧,大幅提升模型在推理階段的生成速度?

擴(kuò)散蒸餾的作用主要體現(xiàn)在推理側(cè)的優(yōu)化,具體包括兩個(gè)方面:節(jié)省成本,以及提高生成的效率。原因在于,雖然 MAGI-1 在生成過(guò)程中依然采用擴(kuò)散 loss 進(jìn)行訓(xùn)練,也就是仍需經(jīng)歷多步采樣生成過(guò)程(denoising steps),但:如果模型不進(jìn)行蒸餾處理,那么在實(shí)際推理階段所需的步數(shù)就會(huì)非常多;舉例來(lái)說(shuō),標(biāo)準(zhǔn)模型在沒(méi)有蒸餾的情況下可能需要 64 步;而通過(guò)蒸餾優(yōu)化后,可以將步數(shù)大幅減少。

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點(diǎn)推薦
宮魯鳴被嚇一跳,波黑主教練贊不絕口,賽后兩位教頭談到張子宇!

宮魯鳴被嚇一跳,波黑主教練贊不絕口,賽后兩位教頭談到張子宇!

老壥說(shuō)體育
2025-06-14 09:27:59
上海中考作文題:幫助人,使達(dá)到目的!上海中考增至12.7萬(wàn)人

上海中考作文題:幫助人,使達(dá)到目的!上海中考增至12.7萬(wàn)人

大樹(shù)成長(zhǎng)營(yíng)
2025-06-14 10:55:11
攻勢(shì)迅猛的熱辣素人,擁有黃金比例的女神—Solazola

攻勢(shì)迅猛的熱辣素人,擁有黃金比例的女神—Solazola

吃瓜黨二號(hào)頭目
2025-06-14 12:06:45
被光影偏愛(ài)的天使(3533)

被光影偏愛(ài)的天使(3533)

小椰的奶奶
2025-06-05 14:39:46
為啥關(guān)燈蚊子嗡嗡叫,開(kāi)了燈卻找不到?教你一招,一覺(jué)睡到天亮

為啥關(guān)燈蚊子嗡嗡叫,開(kāi)了燈卻找不到?教你一招,一覺(jué)睡到天亮

三農(nóng)老歷
2025-06-08 09:26:54
1645元,小米剛公布這9000mAh新機(jī),是來(lái)?yè)v亂的吧

1645元,小米剛公布這9000mAh新機(jī),是來(lái)?yè)v亂的吧

劉奔跑
2025-06-13 23:21:58
邊境局勢(shì)突變:中方不再容忍,印軍越界恐遭受沉重打擊

邊境局勢(shì)突變:中方不再容忍,印軍越界恐遭受沉重打擊

荷蘭豆愛(ài)健康
2025-06-13 07:08:46
苗苗在上海別墅養(yǎng)雞種有機(jī)菜,一個(gè)月曬黑兩個(gè)度,鄭愷心疼壞了

苗苗在上海別墅養(yǎng)雞種有機(jī)菜,一個(gè)月曬黑兩個(gè)度,鄭愷心疼壞了

素衣讀史
2025-06-14 13:36:38
年輕人正逃離上海!這事真不怪誰(shuí),577萬(wàn)老人,換你你也頂不???

三農(nóng)老歷
2025-06-13 10:29:58

兒子剛走出高考考場(chǎng),媽媽竟然對(duì)兒子大喊:我兩個(gè)老死不要往來(lái)了

兒子剛走出高考考場(chǎng),媽媽竟然對(duì)兒子大喊:我兩個(gè)老死不要往來(lái)了

南南說(shuō)娛
2025-06-11 09:36:38
總算讓印度怕了!中國(guó)撥款千億,在5400米海拔建起一座現(xiàn)代化小城

總算讓印度怕了!中國(guó)撥款千億,在5400米海拔建起一座現(xiàn)代化小城

百科密碼
2025-06-13 17:10:47
李媛媛墓地現(xiàn)狀曝光:雜草叢生太難找到,墓碑上的照片仍鮮亮!

李媛媛墓地現(xiàn)狀曝光:雜草叢生太難找到,墓碑上的照片仍鮮亮!

古希臘掌管月桂的神
2025-06-13 13:27:47
以色列官員:如果對(duì)伊朗的襲擊成功,在10天里對(duì)真主黨高級(jí)官員所做的,就相當(dāng)于10分鐘內(nèi)對(duì)伊朗所做的

以色列官員:如果對(duì)伊朗的襲擊成功,在10天里對(duì)真主黨高級(jí)官員所做的,就相當(dāng)于10分鐘內(nèi)對(duì)伊朗所做的

和訊網(wǎng)
2025-06-13 10:04:30
17歲森碟機(jī)場(chǎng)被偶遇,穿衛(wèi)衣短褲很樸素,雙腿粗壯活力滿滿

17歲森碟機(jī)場(chǎng)被偶遇,穿衛(wèi)衣短褲很樸素,雙腿粗壯活力滿滿

鑫鑫說(shuō)說(shuō)
2025-06-14 15:13:39
如果不是醫(yī)保局的通報(bào),都不知道已經(jīng)爛成這樣了!

如果不是醫(yī)保局的通報(bào),都不知道已經(jīng)爛成這樣了!

閑侃閑侃
2025-06-11 20:23:31
那爾那茜暴雷,吳京遭受質(zhì)疑,新電影《鏢人》上映恐受影響楊

那爾那茜暴雷,吳京遭受質(zhì)疑,新電影《鏢人》上映恐受影響楊

星光看娛樂(lè)
2025-06-14 14:57:01
巴薩可要想清楚,現(xiàn)在的尼科威廉姆斯,說(shuō)不定就是庫(kù)蒂尼奧

巴薩可要想清楚,現(xiàn)在的尼科威廉姆斯,說(shuō)不定就是庫(kù)蒂尼奧

老樂(lè)說(shuō)球
2025-06-14 09:33:54
伊朗宣戰(zhàn),內(nèi)塔跑了,德黑蘭:所有一切都是被以色列逼的

伊朗宣戰(zhàn),內(nèi)塔跑了,德黑蘭:所有一切都是被以色列逼的

葡萄說(shuō)娛
2025-06-13 11:20:33
援俄讓朝鮮看清了自己,再不做出改變,百萬(wàn)朝軍將無(wú)立足之地

援俄讓朝鮮看清了自己,再不做出改變,百萬(wàn)朝軍將無(wú)立足之地

跳跳歷史
2025-04-28 14:27:45
反轉(zhuǎn)!王楚欽避戰(zhàn)樊振東2天后,真相浮出,王勵(lì)勤讀懂,球迷錯(cuò)怪

反轉(zhuǎn)!王楚欽避戰(zhàn)樊振東2天后,真相浮出,王勵(lì)勤讀懂,球迷錯(cuò)怪

大秦壁虎白話體育
2025-06-13 14:40:15
2025-06-14 16:11:00
差評(píng)XPIN incentive-icons
差評(píng)XPIN
用知識(shí)和觀點(diǎn)Debug the world!
9053文章數(shù) 488509關(guān)注度
往期回顧 全部

科技要聞

一輛新車(chē)比特斯拉FSD都便宜,全行業(yè)陪葬?

頭條要聞

伊朗出手15分鐘內(nèi)3次導(dǎo)彈齊射 被指計(jì)劃打擊美軍基地

頭條要聞

伊朗出手15分鐘內(nèi)3次導(dǎo)彈齊射 被指計(jì)劃打擊美軍基地

體育要聞

32隊(duì)爭(zhēng)10億獎(jiǎng)金,全新世俱杯來(lái)了!

娛樂(lè)要聞

鳳凰傳奇曾毅手表引爭(zhēng)議 含性暗示元素

財(cái)經(jīng)要聞

樓市權(quán)威發(fā)聲

汽車(chē)要聞

長(zhǎng)城為了拿環(huán)塔冠軍有多拼?魏建軍在下一盤(pán)大棋!

態(tài)度原創(chuàng)

旅游
健康
藝術(shù)
家居
游戲

旅游要聞

熱聞|清明假期將至,熱門(mén)目的地有哪些?

呼吸科專家破解呼吸道九大謠言!

藝術(shù)要聞

故宮珍藏的墨跡《十七帖》,比拓本更精良,這才是地道的魏晉寫(xiě)法

家居要聞

森林幾何 極簡(jiǎn)灰調(diào)原木風(fēng)

《守望先鋒2》第17賽季6月25日開(kāi)幕 6月17日詳情

無(wú)障礙瀏覽 進(jìn)入關(guān)懷版 主站蜘蛛池模板: 色吊丝av中文字幕| 亚洲av丰满熟妇在线播放| 777亚洲精品乱码久久久久久| 国产三级精品三级在专区| 久久人人做人人妻人人玩精品va| 亚洲 日韩 激情 无码 中出| 日韩精品一区二区三区影院| 亲胸揉屁股膜下刺激视频免费网站| 国产96在线 | 亚洲| 好男人www社区视频在线资源| 久久久久久亚洲精品中文字幕| 久久夜色精品国产亚洲| 国产在线视频福利资源站| 18?????网站"91| 日韩加勒比无码人妻系列| 狠狠色综合7777久夜色撩人ⅰ| 久久久婷婷五月亚洲97号色| 丰满饥渴老女人hd| 免费啪视频在线观看视频网页| 日韩成人免费无码不卡视频| 又爽又高潮的bb视频免费看| 中文字幕无码免费久久| 天天做天天大爽天天爱| 国产成人综合久久精品推荐| 国产精品露脸视频观看| 久久天天躁夜夜躁狠狠| 护士张开腿被奷日出白浆| 免费看又色又爽又黄的国产软件| 少妇精品久久久一区二区三区| 夜鲁鲁鲁夜夜综合视频欧美| 日本一二三区视频在线| 日本高清在线天码一区播放| 亚洲欧洲自拍拍偷午夜色| 免费黄色电影网| 欧美熟妇另类久久久久久多毛| 亚洲欧美另类在线图片区| 亚洲aⅴ无码专区在线观看| 国产色无码精品视频免费| 人妻av无码专区久久| 欧美亚洲日韩在线在线影院| 久久男人av资源网站|