融界6月28日消息,有投資者在互動(dòng)平臺(tái)向博納影業(yè)提問(wèn):請(qǐng)問(wèn)貴公司7月12日上映的電影《傳說(shuō)》,在電影的制作上運(yùn)用了哪些AI技術(shù)?
公司回答表示:在電影《傳說(shuō)》的制作過(guò)程中運(yùn)用了多種AI技術(shù),包括:Deepfake(深度偽造)技術(shù)。利用深度學(xué)習(xí)算法,通過(guò)分析大量的成龍年輕時(shí)的影像資料,生成符合其年輕面貌的數(shù)字模型。這個(gè)技術(shù)主要用于還原成龍27歲的形象,使其能夠在影片中扮演年輕的漢代將軍 ;圖像到視頻轉(zhuǎn)換:AI技術(shù)通過(guò)對(duì)成龍的年輕面貌進(jìn)行圖像生成,并將這些靜態(tài)圖像轉(zhuǎn)換為動(dòng)態(tài)視頻。這樣可以確保在電影中成龍的面部表情和動(dòng)作自然流暢。深度學(xué)習(xí)技術(shù);深度學(xué)習(xí)不僅用于面部還原,還用于動(dòng)作捕捉和生成。這使得成龍?jiān)谟捌械膭?dòng)作場(chǎng)面更加真實(shí)可信,特別是在復(fù)雜的武打和戰(zhàn)斗場(chǎng)景中 ;數(shù)字替身:通過(guò)AI技術(shù)創(chuàng)建的成龍數(shù)字替身,不僅能夠進(jìn)行面部還原,還能夠在實(shí)際拍攝中替代部分高難度的動(dòng)作場(chǎng)面。這種技術(shù)不僅提高了拍攝效率,還確保了演員的安全;視覺(jué)效果增強(qiáng):AI技術(shù)被用于電影的視覺(jué)效果處理,包括背景的生成和優(yōu)化。這些技術(shù)使得影片中的場(chǎng)景更加宏大和逼真,例如千軍萬(wàn)馬的戰(zhàn)斗場(chǎng)景 。通過(guò)這些AI技術(shù)的綜合運(yùn)用,《傳說(shuō)》不僅實(shí)現(xiàn)了視覺(jué)上的突破,還在故事和情感表達(dá)上做到了兼顧,使得整部電影更加引人入勝。
本文源自金融界AI電報(bào)
21世紀(jì)的今天,信息技術(shù)如同一股強(qiáng)勁的東風(fēng),吹拂著教育領(lǐng)域的每一個(gè)角落,為傳統(tǒng)的教學(xué)模式注入了新的活力與可能。高校籃球教學(xué),作為體育教育的重要組成部分,也在這場(chǎng)信息技術(shù)的浪潮中迎來(lái)了前所未有的變革機(jī)遇。信息技術(shù)的融入,不僅為籃球教學(xué)提供了更為豐富、多元的教學(xué)手段和資源,更在提升教學(xué)效率、激發(fā)學(xué)生興趣、促進(jìn)個(gè)性化學(xué)習(xí)等方面展現(xiàn)出巨大的潛力。它如同一盞明燈,照亮了高校籃球教學(xué)的新征程,引領(lǐng)我們探索更加科學(xué)、高效、有趣的教學(xué)模式。因此,深入探討信息技術(shù)如何點(diǎn)亮高校籃球教學(xué)的新征程,分析其在提升教學(xué)質(zhì)量、優(yōu)化教學(xué)體驗(yàn)、推動(dòng)教學(xué)創(chuàng)新等方面的具體應(yīng)用與價(jià)值,能夠?yàn)楦咝;@球教學(xué)的現(xiàn)代化發(fā)展貢獻(xiàn)一份力量。
隨著信息技術(shù)的飛速發(fā)展,其在教育領(lǐng)域的應(yīng)用日益廣泛,為傳統(tǒng)教學(xué)模式帶來(lái)了革新與挑戰(zhàn)。特別是在高校籃球教學(xué)中,信息技術(shù)的融入不僅豐富了教學(xué)手段,還極大地提升了教學(xué)效率與學(xué)生的學(xué)習(xí)體驗(yàn),展現(xiàn)出獨(dú)特的應(yīng)用價(jià)值。因此,深入探討信息技術(shù)在高校籃球教學(xué)中的具體應(yīng)用及其帶來(lái)的積極影響,對(duì)于推動(dòng)體育教學(xué)現(xiàn)代化具有重要意義。
推動(dòng)籃球教學(xué)模式的創(chuàng)新與轉(zhuǎn)型。縱觀當(dāng)前高校籃球教學(xué)現(xiàn)狀,在信息技術(shù)融入應(yīng)用之后,籃球教學(xué)模式的確發(fā)生了諸多變化且呈現(xiàn)出越發(fā)豐富和多元化的特征。比如,融入信息技術(shù)之后,高校籃球教學(xué)不再局限于教師示范、學(xué)生模仿訓(xùn)練這些傳統(tǒng)單一的模式,而是獲得了更加多元化的學(xué)習(xí)渠道和方式,學(xué)生們參與籃球?qū)W習(xí)的自主性與之前相比有了很大提升,學(xué)生們隨時(shí)可以通過(guò)網(wǎng)絡(luò)平臺(tái)來(lái)了解和接收籃球運(yùn)動(dòng)項(xiàng)目的相關(guān)知識(shí)和技能技巧,籃球教師也因此獲取了更高效科學(xué)的資料渠道,大大豐富了籃球課程的教學(xué)內(nèi)容。
優(yōu)化了籃球課程知識(shí)結(jié)構(gòu)。在之前傳統(tǒng)教學(xué)理念導(dǎo)向作用下,高校籃球教學(xué)目的性比較單一,對(duì)于大部分學(xué)生而言,籃球教學(xué)更多是以培養(yǎng)和激發(fā)學(xué)生興趣為目的,引導(dǎo)大學(xué)生喜歡上籃球并養(yǎng)成運(yùn)動(dòng)的好習(xí)慣。但伴隨著信息技術(shù)在籃球教學(xué)中的應(yīng)用,現(xiàn)在籃球教學(xué)所涉及到的信息檢索、信息傳遞理念和方式都發(fā)生了一系列變化,籃球課程知識(shí)結(jié)構(gòu)也因此得到了進(jìn)一步優(yōu)化和完善,其不僅重點(diǎn)突出籃球運(yùn)動(dòng)本身的知識(shí)與技能技巧培訓(xùn)需求,同時(shí)還引入了除此之外的其它知識(shí)結(jié)構(gòu),籃球課程教學(xué)知識(shí)范疇在信息技術(shù)的助力之下得到了有效拓展和延伸,籃球與其它課程教學(xué)之間的關(guān)系也變得越來(lái)越緊密。
引領(lǐng)人才培養(yǎng)方向的調(diào)整。在信息技術(shù)的影響之下,高校籃球教學(xué)越來(lái)越注重籃球人才的挖掘和培養(yǎng),信息技術(shù)的應(yīng)用可以更全方位地發(fā)現(xiàn)和挖掘出學(xué)生們的籃球天賦和潛力,也使得高校越來(lái)越關(guān)注時(shí)代需求,進(jìn)而對(duì)籃球人才培養(yǎng)方向做出相應(yīng)調(diào)整。這是信息時(shí)代信息技術(shù)融入籃球教學(xué)的一個(gè)必然趨勢(shì),也是推動(dòng)高校籃球教學(xué)工作可持續(xù)、高質(zhì)量發(fā)展的強(qiáng)勁驅(qū)動(dòng)力量。
在高校籃球教學(xué)的現(xiàn)代化進(jìn)程中,信息技術(shù)的深度融入已成為不可忽視的趨勢(shì)。其多樣化的應(yīng)用形式不僅豐富了教學(xué)手段,還極大地提升了教學(xué)效率和學(xué)生的學(xué)習(xí)體驗(yàn)。
應(yīng)用信息技術(shù)講解籃球理論知識(shí)與競(jìng)賽規(guī)則。高校籃球教學(xué)中,理論與實(shí)踐所占比例同等重要。在日常教學(xué)過(guò)程中,籃球教師可以利用信息技術(shù)來(lái)給學(xué)生們講授相應(yīng)理論知識(shí),比如籃球發(fā)展史、籃球競(jìng)賽規(guī)則等等,同時(shí)也可借助信息技術(shù)來(lái)給學(xué)生們播放一些比較有爭(zhēng)議的籃球比賽視頻,和學(xué)生們一起討論分析和解讀,幫助學(xué)生們從更多方面深入了解籃球運(yùn)動(dòng)的相關(guān)知識(shí)和技能。
應(yīng)用信息技術(shù)突破籃球教學(xué)的重難點(diǎn)。眾所周知,籃球運(yùn)動(dòng)中所涉及到的一些技術(shù)動(dòng)作基本上都是在瞬間完成的,如果單純依靠籃球教師自己示范相關(guān)動(dòng)作技能,學(xué)生們很難深入記憶和掌握各項(xiàng)技能技巧的精髓,那么,籃球教師便可以應(yīng)用信息技術(shù)來(lái)制作相應(yīng)課件內(nèi)容,通過(guò)課件形式來(lái)對(duì)相關(guān)動(dòng)作技能進(jìn)行拆解,或慢動(dòng)作、或回放、或暫停、或放大等等,再輔以教師的口頭講授來(lái)幫助學(xué)生們更全方位地了解和掌握動(dòng)作方法與技巧,這對(duì)于解決籃球教學(xué)重難點(diǎn)工作有著很大幫助作用。舉例說(shuō)明:籃球技能教學(xué)中,三步上籃屬于核心內(nèi)容之一。如果依靠教師示范,教師的示范動(dòng)作必然是連貫完成的,不可能暫停在某一處或者停留在某一個(gè)動(dòng)作上面,而且教師也不可能一直重復(fù)三步上籃的動(dòng)作確保每一位學(xué)生都學(xué)會(huì)為止。教師示范動(dòng)作做太快,學(xué)生只能是一看而過(guò),很可能出現(xiàn)一頭霧水的情況,可教師示范動(dòng)作做太慢就會(huì)影響到動(dòng)作落點(diǎn)的準(zhǔn)確度。但如果教師應(yīng)用信息技術(shù),采用生動(dòng)圖像、多變動(dòng)畫相結(jié)合的方式,通過(guò)停鏡來(lái)講解相關(guān)細(xì)節(jié)內(nèi)容,那么便可隨時(shí)根據(jù)學(xué)生學(xué)習(xí)需求來(lái)自主調(diào)整播放內(nèi)容,學(xué)生也能夠更清晰全面地了解三步上籃的每一個(gè)細(xì)節(jié)動(dòng)作。還有,對(duì)于其中所涉及到的一個(gè)關(guān)鍵細(xì)節(jié),比如急停,籃球教師在播放完視頻之后也可向?qū)W生們提問(wèn):什么樣的姿勢(shì)能夠停得住、停得穩(wěn)?教師可以給學(xué)生們留出充足的思考和討論時(shí)間,再通過(guò)正確講解與示范,回放慢動(dòng)作,分析動(dòng)作要領(lǐng),學(xué)生對(duì)照視頻,嘗試練習(xí),啟發(fā)學(xué)生分析控制身體重心內(nèi)外因素,加深對(duì)動(dòng)作的體會(huì),引導(dǎo)學(xué)生探索出自己獲得知識(shí)和技能的途徑,從而引導(dǎo)學(xué)生掌握“急停”技術(shù)的重點(diǎn),突破難點(diǎn)。
應(yīng)用信息技術(shù)營(yíng)造輕松愉悅的學(xué)習(xí)氛圍。對(duì)于大學(xué)生學(xué)習(xí)籃球而言,興趣依然是最好的老師,教學(xué)環(huán)境和氛圍的影響力更是不容小覷。籃球?qū)W習(xí)本就是一個(gè)比較枯燥乏味的過(guò)程,學(xué)生們要想學(xué)好籃球,掌握各項(xiàng)籃球技能必須要經(jīng)過(guò)重復(fù)訓(xùn)練和辛苦付出。所以,籃球教師在日常教學(xué)中需要下意識(shí)為學(xué)生們營(yíng)造出更加輕松愉悅的學(xué)習(xí)氛圍,讓學(xué)生們感受到學(xué)習(xí)籃球的樂(lè)趣。籃球教師可以借助信息技術(shù)來(lái)營(yíng)造帶有趣味性的教學(xué)氛圍,引導(dǎo)學(xué)生們自主發(fā)現(xiàn)學(xué)習(xí)籃球的快樂(lè)以及感受獨(dú)立完成技術(shù)動(dòng)作的成就感和滿足感。舉例說(shuō)明:在講授胸前傳接球這一核心技能時(shí),籃球教師可以要求學(xué)生們以自愿結(jié)組的方式組成若干個(gè)小組,然后每一個(gè)小組都提前準(zhǔn)備好一部電腦,以微視頻的方式來(lái)進(jìn)行學(xué)習(xí),學(xué)生們以小組為單位來(lái)自主練習(xí)傳接球,并根據(jù)視頻里所提醒的一些比較容易犯錯(cuò)的地方相互監(jiān)督指正,學(xué)生們對(duì)于這樣一種新型學(xué)習(xí)方式自然會(huì)表示出很強(qiáng)的好奇心,參與興致也會(huì)變得更高。還有,籃球教師可以嘗試在訓(xùn)練過(guò)程中增加一些帶有闖關(guān)性質(zhì)的游戲,比如,由原地傳接球--移動(dòng)傳接球--行進(jìn)間傳接球,由直線傳接球--三角傳接球--四角傳接球一五角傳接球,根據(jù)平板電腦里的傳球路線,每完成一組,小組長(zhǎng)就可以帶領(lǐng)組員進(jìn)行下一關(guān)的練習(xí),并搭配一些競(jìng)賽活動(dòng)同步進(jìn)行,比如看哪一組傳得準(zhǔn),傳得快,傳的時(shí)間長(zhǎng)等等。將先進(jìn)信息技術(shù)運(yùn)用于體育課堂教學(xué)當(dāng)中更有助于營(yíng)造生動(dòng)活潑、輕松愉悅的教學(xué)氛圍,學(xué)生也可從信息技術(shù)的應(yīng)用中獲得一些新的體驗(yàn)和感受,這對(duì)于激發(fā)學(xué)生參與籃球?qū)W習(xí)的積極性以及提高籃球教學(xué)質(zhì)量都有著很大幫助作用。
應(yīng)用信息技術(shù)展示籃球技戰(zhàn)術(shù)原理以及過(guò)程。技戰(zhàn)術(shù)原理以及形成過(guò)程是高校籃球教學(xué)中不可或缺的一項(xiàng)教學(xué)內(nèi)容,通常情況下,籃球教師會(huì)通過(guò)口頭講述的方式來(lái)進(jìn)行,對(duì)于其中一些關(guān)鍵的技戰(zhàn)術(shù)也會(huì)做詳細(xì)延伸講解,但是很難引起學(xué)生的情感共鳴,學(xué)生們從中感受不到場(chǎng)上的緊張氛圍,也理解不了籃球運(yùn)動(dòng)員的心理波動(dòng)和變化情況,換而言之,即使教師講述得再精彩,單純依靠語(yǔ)言也不可能激活學(xué)生的思維潛能,學(xué)生還是會(huì)以固定的視角和固定的套路去認(rèn)知和了解技戰(zhàn)術(shù),而真到學(xué)生上場(chǎng)應(yīng)戰(zhàn)時(shí)變得手足無(wú)措,不知如何是好。現(xiàn)在有了信息技術(shù)的助力,籃球教師可以利用各種信息技術(shù)和設(shè)備來(lái)給學(xué)生們充分展示和講解籃球技戰(zhàn)術(shù)的原理和形成過(guò)程,可以引導(dǎo)學(xué)生們基于不同情況去進(jìn)行思考、體會(huì),進(jìn)而從本質(zhì)上去把握戰(zhàn)術(shù)、理解戰(zhàn)術(shù)、應(yīng)用戰(zhàn)術(shù)。只有真正學(xué)到了技戰(zhàn)術(shù)的精髓才能夠轉(zhuǎn)化應(yīng)用,在真實(shí)比賽中做到融會(huì)貫通運(yùn)用戰(zhàn)術(shù)。此外,籃球教師可以利用信息技術(shù)去最大限度地復(fù)制、創(chuàng)造戰(zhàn)術(shù)的形成過(guò)程,如此一來(lái),學(xué)生才會(huì)深刻感受到緊張氣氛、激烈比賽氛圍的戰(zhàn)術(shù)生成。以無(wú)球隊(duì)員掩護(hù)進(jìn)攻戰(zhàn)術(shù)為例:其中有三名無(wú)球隊(duì)員為一名無(wú)球隊(duì)員做定位掩護(hù),這時(shí)每個(gè)隊(duì)員都要清清楚楚地知道無(wú)球隊(duì)員之間掩護(hù)進(jìn)攻的概念、過(guò)程以及真正的精髓,如果與第一名隊(duì)友完成進(jìn)攻了,這就是最基本的無(wú)球隊(duì)員掩護(hù)戰(zhàn)術(shù);如果不成就要與第二或第三名隊(duì)友進(jìn)行掩護(hù)戰(zhàn)術(shù),則一套基本戰(zhàn)術(shù)就會(huì)衍生出多套戰(zhàn)術(shù)。如果籃球教師單獨(dú)以口頭講授的方式來(lái)給學(xué)生們分析這樣的戰(zhàn)術(shù)策略,學(xué)生們很難在腦海中建立起形象認(rèn)知,但如果籃球教師利用信息技術(shù)就該項(xiàng)戰(zhàn)術(shù)制作成一套解讀課件,就場(chǎng)上可能出現(xiàn)的各種情況進(jìn)行分類歸納并予以形象演示,學(xué)生可對(duì)各種情況一目了然,自然可以更深入地了解各種技戰(zhàn)術(shù),其對(duì)于日后轉(zhuǎn)化應(yīng)用也會(huì)產(chǎn)生很大幫助作用。
在探討高校籃球教學(xué)如何邁向新臺(tái)階的過(guò)程中,信息技術(shù)的應(yīng)用效率成為了一個(gè)不可忽視的關(guān)鍵點(diǎn)。為了充分發(fā)揮信息技術(shù)在高校籃球教學(xué)中的潛力,需要深入挖掘并應(yīng)用有效策略,以提升信息技術(shù)的使用效率,進(jìn)一步優(yōu)化教學(xué)過(guò)程,增強(qiáng)學(xué)生的學(xué)習(xí)體驗(yàn)。
打造高水平籃球教師隊(duì)伍。要想確保信息技術(shù)在高校籃球教學(xué)中的應(yīng)用效果,籃球教師是至關(guān)重要的角色。籃球教師作為教學(xué)主要力量,其自身信息技術(shù)素養(yǎng)以及綜合能力水平會(huì)直接影響到信息技術(shù)的應(yīng)用效果和籃球教學(xué)的整體質(zhì)量:其一,高校要加強(qiáng)對(duì)籃球教師的信息技術(shù)培訓(xùn)與指導(dǎo)力度,為籃球教師提供更多參與信息技術(shù)學(xué)習(xí)的機(jī)會(huì),切實(shí)提高籃球教師的信息技術(shù)應(yīng)用水平,以便為后續(xù)開(kāi)展籃球教學(xué)工作奠定基礎(chǔ)。其二,高校要逐步強(qiáng)化籃球教師的思想認(rèn)知,引導(dǎo)籃球教師建立起正確先進(jìn)的信息化籃球教學(xué)理念,意識(shí)到信息技術(shù)融入籃球教學(xué)的必要性和重要性,同時(shí)采取措施積極推動(dòng)籃球教學(xué)信息化應(yīng)用的創(chuàng)新與改革。
增強(qiáng)籃球教學(xué)器材設(shè)施的信息化水平。先進(jìn)高效的籃球教學(xué)器材設(shè)施是保證高校籃球教學(xué)質(zhì)量的重要前提條件,因此,高校應(yīng)結(jié)合自身實(shí)際能力來(lái)積極引入和應(yīng)用更多更具先進(jìn)性的籃球教學(xué)器材設(shè)施,為推動(dòng)籃球教學(xué)創(chuàng)新與改革提供強(qiáng)有力的支持和援助。比如,高校可以采購(gòu)分辨率更高的電子計(jì)算機(jī)、構(gòu)建互聯(lián)網(wǎng)信息數(shù)據(jù)平臺(tái)、開(kāi)發(fā)籃球教學(xué)軟件等等,通過(guò)加強(qiáng)籃球教學(xué)信息化基礎(chǔ)構(gòu)建力度來(lái)切實(shí)提升籃球教學(xué)的效率和質(zhì)量。
高校籃球教學(xué)中應(yīng)用信息技術(shù)是必然趨勢(shì),在應(yīng)用信息技術(shù)的過(guò)程中,高校、籃球教師、學(xué)生這三大核心主體是否能夠找準(zhǔn)自己的位置、充分發(fā)揮出自己的功能作用尤為關(guān)鍵。作為高校理應(yīng)積極主動(dòng)承擔(dān)起信息技術(shù)融入籃球教學(xué)的責(zé)任,全方位采取措施來(lái)保證融入與應(yīng)用效果。作為籃球教師要及時(shí)調(diào)整自己的教學(xué)理念,認(rèn)識(shí)到信息技術(shù)融入籃球教學(xué)的重要意義,并致力于探索合適的融入方式,逐步提升籃球教學(xué)質(zhì)量。作為學(xué)生則應(yīng)在第一時(shí)間找準(zhǔn)適合自己的位置,一改以往被動(dòng)的學(xué)習(xí)態(tài)度,主動(dòng)參與和配合籃球教師應(yīng)用信息技術(shù)所展開(kāi)的教學(xué)工作,借助信息技術(shù)的力量來(lái)深入學(xué)習(xí)和了解籃球相關(guān)理論知識(shí)和技能技巧,進(jìn)而全面提升自身的籃球能力。除此之外,高校籃球教學(xué)在應(yīng)用信息技術(shù)的過(guò)程中還需要多尋求與社會(huì)各類主體建立合作關(guān)系,針對(duì)性整合利用合作主體資源優(yōu)勢(shì),為學(xué)生搭建起更高質(zhì)量的籃球?qū)W習(xí)平臺(tái)。(作者:黃國(guó)榮,廣州城市理工學(xué)院 講師)
來(lái)源: 光明網(wǎng)
了讓優(yōu)秀的飛槳開(kāi)發(fā)者們掌握第一手技術(shù)動(dòng)態(tài)、讓企業(yè)落地更加高效,飛槳官方在7月至10月特設(shè)《飛槳框架3.0全面解析》系列技術(shù)稿件及直播課程,邀請(qǐng)百度飛槳核心團(tuán)隊(duì)數(shù)十位工程師齊上陣,技術(shù)解析加代碼實(shí)戰(zhàn),帶大家掌握包括核心框架、分布式計(jì)算、產(chǎn)業(yè)級(jí)大模型套件及低代碼工具、前沿科學(xué)計(jì)算技術(shù)案例等多個(gè)方面的框架技術(shù)及大模型訓(xùn)推優(yōu)化經(jīng)驗(yàn)。
本文是該系列第二篇技術(shù)稿件,文末附對(duì)應(yīng)直播課程詳情。
01
前言
近些年來(lái),越來(lái)越多的框架和研究者將編譯器技術(shù)引入到深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)模型優(yōu)化中,并在此基礎(chǔ)上借助編譯器的理念、技術(shù)和工具對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行自動(dòng)優(yōu)化和代碼生成。作為深度學(xué)習(xí)框架性能優(yōu)化、推理部署、編譯器等方向的重要基石——計(jì)算圖中間表示(Intermediate Representation,即 IR),在大模型場(chǎng)景下對(duì)其靈活性、擴(kuò)展性、完備性也提出了更高的要求,即如何便捷地支撐大模型自動(dòng)并行下豐富的切分策略,如何更低成本地實(shí)現(xiàn)性能優(yōu)化 Pass 等。
飛槳框架架構(gòu)圖
在3.0版本下,飛槳充分考慮大模型對(duì) IR 的需求,在基礎(chǔ)架構(gòu)層面規(guī)范了中間表示 IR 定義,全架構(gòu)統(tǒng)一表示,實(shí)現(xiàn)了推理、分布式、編譯器等上下游各方向共享開(kāi)發(fā)成果。飛槳的新一代 IR 架構(gòu)通過(guò)更加完備且魯棒的語(yǔ)義表達(dá)能力、訓(xùn)推全架構(gòu)統(tǒng)一表示和高效可插拔的性能優(yōu)化策略(Pass)開(kāi)發(fā)機(jī)制,無(wú)縫對(duì)接神經(jīng)網(wǎng)絡(luò)編譯器實(shí)現(xiàn)自動(dòng)性能優(yōu)化和多硬件適配,加速大模型訓(xùn)推流程。
02
新一代 IR 設(shè)計(jì)
▎什么是中間表示 IR?
手寫字體識(shí)別任務(wù)模型
算子表示
對(duì)于一個(gè)特定的深度學(xué)習(xí)任務(wù)模型,從算法工程師的模型視角來(lái)看,主要涉及三個(gè)核心概念:數(shù)據(jù)集(Dataset)、網(wǎng)絡(luò)模型(Model)、迭代訓(xùn)練(Training);但從研發(fā)工程師的框架視角來(lái)看,主要有兩個(gè)核心概念:張量(Tensor)和算子(Operator)。廣義上,算子是“計(jì)算操作”的一種表示,比如矩陣乘算子 Matmul,有兩個(gè)輸入和一個(gè)輸出。狹義上,算子包含計(jì)算表示和 Kernel 定義,其中 Kernel 與硬件有很強(qiáng)的關(guān)聯(lián)性,同一個(gè)算子表示可以對(duì)應(yīng)多個(gè) Kernel 定義。比如 Matmul 算子有 CPU Kernel,也有 GPU、XPU、NPU 等硬件上 Kernel。
飛槳采用了動(dòng)靜統(tǒng)一的技術(shù)架構(gòu)設(shè)計(jì),以動(dòng)態(tài)圖為默認(rèn)編程范式。其即時(shí)執(zhí)行的特點(diǎn)給開(kāi)發(fā)者提供了 Pythonic 的流暢使用體驗(yàn),同時(shí)提供了動(dòng)轉(zhuǎn)靜功能(如飛槳的@to_static)支持用戶可以一鍵轉(zhuǎn)為靜態(tài)圖執(zhí)行。用戶的模型代碼在靜態(tài)圖模式下會(huì)先記錄所有的張量和算子操作,構(gòu)建一個(gè)完整的計(jì)算圖(即 IR 中間表示),然后借助框架的內(nèi)核執(zhí)行器在給定的硬件設(shè)備上執(zhí)行訓(xùn)練或者推理。
靜態(tài)圖模式下執(zhí)行流程
▎為什么需要 IR ?
在深度學(xué)習(xí)框架中,中間表示在架構(gòu)層面承擔(dān)著非常重要的角色,主要包括:
性能優(yōu)化 Pass
社區(qū)生態(tài)
▎初窺 Paddle IR
飛槳新的一代 IR 是基礎(chǔ)架構(gòu)層面的升級(jí),對(duì)于用戶在 API 層面的使用是無(wú)感的,用戶可保持之前動(dòng)轉(zhuǎn)靜(即 paddle.jit.to_static)或靜態(tài)圖代碼不變,在3.0-Beta 下僅需額外通過(guò)export FLAGS_enable_pir_api=1開(kāi)啟新 IR 功能即可,如下是一個(gè)簡(jiǎn)單的使用樣例。
# test_add_relu.py
?
import unittest
import numpy as np
import paddle
from paddle.static import InputSpec
?
class SimpleNet(paddle.nn.Layer):
def __init__(self):
super(?).__init__(?)
?
?
def forward(self, x, y):
z=x + y
out=paddle.nn.functional.relu(z)
return out
# Step 1: 構(gòu)建模型對(duì)象,并應(yīng)用動(dòng)轉(zhuǎn)靜策略
specs=[InputSpec(shape=?(-1, -1)), InputSpec(shape=?(-1, -1))?]
net=paddle.jit.to_static(SimpleNet(?), specs)
?
# Step 2: 準(zhǔn)備輸入,執(zhí)行 forward
x=paddle.rand(shape=?[?16, 64?], dtype?=paddle.float32)
y=paddle.rand(shape=?[?16, 64?], dtype?=paddle.float32)
out=net(x, y)
print(out)
將上述文件保存為 test_add_relu.py,執(zhí)行如下命令:FLAGS_enable_pir_api=1 python test_add_relu.py 即可。開(kāi)發(fā)者可額外指定 GLOG_v=6輸出日志,查看新一代 IR 下的 Program 表示,如下所示,在動(dòng)轉(zhuǎn)靜或靜態(tài)圖模式下,用戶的代碼經(jīng)過(guò)組網(wǎng) API 下會(huì)先生成 Operator Dialect 下計(jì)算圖表示,在執(zhí)行時(shí)飛槳會(huì)將其轉(zhuǎn)換為給定硬件下的 Kernel Dialect,然后交給執(zhí)行器去依次調(diào)度對(duì)應(yīng)的 PHI 算子庫(kù),計(jì)算最終結(jié)果。
{ // Operator Dialect
(%0)="pd_op.data" () {dtype:(pd_op.DataType)float32,name:"x",place:(pd_op.Place)Place(undefined:0),shape:(pd_op.IntArray)[-1,-1],stop_gradient:[true]} : () -> builtin.tensor<-1x-1xf32>
(%1)="pd_op.data" () {dtype:(pd_op.DataType)float32,name:"y",place:(pd_op.Place)Place(undefined:0),shape:(pd_op.IntArray)[-1,-1],stop_gradient:[true]} : () -> builtin.tensor<-1x-1xf32>
(%2)="pd_op.add" (%0, %1) {stop_gradient:[true]} : (builtin.tensor<-1x-1xf32>, builtin.tensor<-1x-1xf32>) -> builtin.tensor<-1x-1xf32>
(%3)="pd_op.relu" (%2) {stop_gradient:[true]} : (builtin.tensor<-1x-1xf32>) -> builtin.tensor<-1x-1xf32>
()="builtin.shadow_output" (%3) {output_name:"output_0"} : (builtin.tensor<-1x-1xf32>) ->
}
// IR after lowering
{ // Kernel Dialect
(%0)="data(phi_kernel)" () {dtype:(pd_op.DataType)float32,kernel_key:<backend:Undefined|layout:Undefined(AnyLayout)|dtype:float32>,kernel_name:"data",name:"x",op_name:"pd_op.data",place:(pd_op.Place)Place(undefined:0),shape:(pd_op.IntArray)[-1,-1],stop_gradient:[true]} : () -> undefined_tensor<-1x-1xf32>
(%1)="shadow_feed(phi_kernel)" (%0) {kernel_key:<backend:GPU|layout:Undefined(AnyLayout)|dtype:float32>,kernel_name:"shadow_feed",op_name:"pd_op.shadow_feed"} : (undefined_tensor<-1x-1xf32>) -> gpu_tensor<-1x-1xf32>
(%2)="data(phi_kernel)" () {dtype:(pd_op.DataType)float32,kernel_key:<backend:Undefined|layout:Undefined(AnyLayout)|dtype:float32>,kernel_name:"data",name:"y",op_name:"pd_op.data",place:(pd_op.Place)Place(undefined:0),shape:(pd_op.IntArray)[-1,-1],stop_gradient:[true]} : () -> undefined_tensor<-1x-1xf32>
(%3)="shadow_feed(phi_kernel)" (%2) {kernel_key:<backend:GPU|layout:Undefined(AnyLayout)|dtype:float32>,kernel_name:"shadow_feed",op_name:"pd_op.shadow_feed"} : (undefined_tensor<-1x-1xf32>) -> gpu_tensor<-1x-1xf32>
(%4)="add(phi_kernel)" (%1, %3) {kernel_key:<backend:GPU|layout:NCHW|dtype:float32>,kernel_name:"add",op_name:"pd_op.add",stop_gradient:[true]} : (gpu_tensor<-1x-1xf32>, gpu_tensor<-1x-1xf32>) -> gpu_tensor<-1x-1xf32>
(%5)="relu(phi_kernel)" (%4) {kernel_key:<backend:GPU|layout:NCHW|dtype:float32>,kernel_name:"relu",op_name:"pd_op.relu",stop_gradient:[true]} : (gpu_tensor<-1x-1xf32>) -> gpu_tensor<-1x-1xf32>
()="builtin.shadow_output" (%5) {output_name:"output_0"} : (gpu_tensor<-1x-1xf32>) ->
}
▎PIR 架構(gòu)設(shè)計(jì)
在深度學(xué)習(xí)框架 IR 概念中,“順序性”和“圖語(yǔ)義”是兩個(gè)非常高頻常用的概念。舊的中間表示體系由“順序性”ProgramDesc 和“圖語(yǔ)義”Graph 兩個(gè)核心類共同承載。用戶在靜態(tài)圖 API 或者動(dòng)轉(zhuǎn)靜模塊下,產(chǎn)生的中間表示是 Op-by-Op 的 Program,如果要應(yīng)用更高層面的優(yōu)化策略(比如算子融合、inplace 策略、剪枝等),框架會(huì)將由 Program 構(gòu)造出 Graph,其由數(shù)據(jù)節(jié)點(diǎn)、算子節(jié)點(diǎn)和彼此關(guān)聯(lián)的邊構(gòu)成。
Paddle IR 分層架構(gòu)圖
在新的 Paddle IR 中,飛槳在底層抽象了一套高度可擴(kuò)展的基礎(chǔ)組件,包括 Type、Attrbute、Op、Trait 和 Interface,并引入了 Dialect 的概念,支持開(kāi)發(fā)者靈活擴(kuò)展、自由定制,提供了完備魯邦的語(yǔ)義表達(dá)能力;在模型表示層,通過(guò)多 Dialect 模塊化管理,統(tǒng)一多端表示,實(shí)現(xiàn)了訓(xùn)推一體的全架構(gòu)統(tǒng)一表示,無(wú)縫銜接組合算子和編譯器,支持自動(dòng)優(yōu)化和多硬件適配;在圖變換層,通過(guò)統(tǒng)一底層模塊,簡(jiǎn)化基礎(chǔ)概念,向用戶提供了低成本開(kāi)發(fā)、易用高性能、豐富可插拔的 Pass 優(yōu)化機(jī)制。飛槳的新一代的 IR 表示堅(jiān)持 SSA(靜態(tài)單賦值)原則,模型等價(jià)于一個(gè)有向無(wú)環(huán)圖。并以 Value、Operation 對(duì)計(jì)算圖進(jìn)行抽象:
如上左圖所示,新一代 IR 的整體設(shè)計(jì)自底向上分為三層:
■ 靈活的基礎(chǔ)組件
飛槳提供了 Trait 和 Interface 兩種重要機(jī)制實(shí)現(xiàn)了對(duì)算子 Op 的特征和接口的抽象標(biāo)記。比如 InplaceTrait 表示一個(gè) Op 具有 Inplace 特征, InferShapeInterface 表示一個(gè)算子定義了 InferShape 函數(shù)接口等,這二者都是可以任意擴(kuò)展的,僅派生自相應(yīng)的基類、遵循相應(yīng)的實(shí)現(xiàn)規(guī)則即可;并對(duì)算子體系下核心概念抽象出 Type、Attrbute、Op,這三者是基于 Trait 和 Interface 進(jìn)行定義的。Dialect 用來(lái)對(duì) Type、Attribtue、Op 做模塊化管理, 比如 BuiltinDialect、DistDialect、CinnDialect 等等。一個(gè) Dialect 里面包含了一系列的 Type、Attribtue、Op 的定義。相應(yīng)的,每個(gè) Type、Attribtue、Op 都是定義在某個(gè)唯一的 Dialect 里面。對(duì)整個(gè) IR 框架而言, Dialect 是可以隨意插拔的,也是可以任意擴(kuò)展的。
這一層是 IR 適應(yīng)多種場(chǎng)景的基礎(chǔ)。這一層的每一個(gè)要素都是可定制化擴(kuò)展,一般情況下,針對(duì)一個(gè)具體的場(chǎng)景(比如分布式、編譯器)只需要在其 Dialect 中定義特定的 Trait、Interfce 以及 Type、Attribute、Op 即可。
■ 多層級(jí)的 Dialect
飛槳通過(guò)不同層級(jí)的 Dialect 來(lái)管理框架內(nèi)不同領(lǐng)域的算子體系,比如 Built-in 下的 Shape Dialect 和 Control Flow Dialect(分別用于形狀符號(hào)推導(dǎo)和控制流表示)、與 PHI 算子庫(kù)執(zhí)行體系相關(guān)的 Operator Dialect 和 Kernel Dialect、與神經(jīng)網(wǎng)絡(luò)編譯器領(lǐng)域相關(guān)的 CINN Dialect 等。在飛槳神經(jīng)網(wǎng)絡(luò)編譯器中,主要以計(jì)算圖 Operator Dialect 為輸入,經(jīng)過(guò)組合算子和 Pass Pipline 后,會(huì)轉(zhuǎn)換為 CINN Dialect,并附加 Shape Dialect 中的符號(hào)信息,最后會(huì) Lowering 成編譯器的 AST IR。
上述這些多層級(jí)的 Dialect 內(nèi)的算子 Op 會(huì)組成 Program ,并用來(lái)表示一個(gè)具體的模型,它包含兩部分:計(jì)算圖和權(quán)重 。
■ 功能完善的 Pass 體系
Pass 的核心是子圖匹配和替換(即圖變換),是將一個(gè) Program 通過(guò)某種規(guī)則轉(zhuǎn)換為另一個(gè)新的 Program。IR 中包含了計(jì)算圖中全局信息,如上下游算子的鄰接關(guān)系等,更有利于進(jìn)行圖優(yōu)化,比如常量折疊、算子融合,Inplace 策略等。我們將在第三章節(jié)詳細(xì)介紹 Pass 開(kāi)發(fā)機(jī)制。
03
Pass 體系介紹
飛槳以 Paddle IR 為基礎(chǔ),提供了高效可插拔的性能優(yōu)化 Pass 策略開(kāi)發(fā)機(jī)制,在訓(xùn)練、推理、分布式、編譯器等多領(lǐng)域場(chǎng)景下可復(fù)用,且友好支持多硬件定制化。在新 IR 體系下,飛槳支持2種 Pass 開(kāi)發(fā)范式:Pattern Rewriter 和 DRR,充分兼顧自定義靈活性和開(kāi)發(fā)易用性,實(shí)現(xiàn)了 Pass 開(kāi)發(fā)成本降低58%;應(yīng)用于推理場(chǎng)景,超過(guò)84%的模型推理加速超10%。
▎Pattern Rewriter 機(jī)制
Pass 的核心是一個(gè)“子圖匹配和替換”的過(guò)程,一般需要開(kāi)發(fā)者定義待替換子圖的源 Pattern,以及期望替換的目標(biāo) Pattern。在 Pattern Rewriter 機(jī)制下,分別對(duì)應(yīng)于實(shí)現(xiàn) Match 和 Rewrite 邏輯。
舉個(gè)例子,假設(shè)在 Kernel Dialect 里,我們期望移除冗余的 Feed 算子,以提升執(zhí)行效率。則需要如下兩個(gè)步驟。
1.繼承 PatternRewritePass類:只需要在 InitializePatterns 里添加目標(biāo)算子的 Pattern 即可,開(kāi)發(fā)者無(wú)需關(guān)心計(jì)算圖遍歷實(shí)現(xiàn);
2.定義Match 和 Rewrite邏輯:新增目標(biāo)算子的Pattern,實(shí)現(xiàn) Match 和 Rewrite 接口函數(shù)。
▎DRR 機(jī)制
Declarative Rewrite Rule 機(jī)制(即 DRR)是一種三段式 Pass 開(kāi)發(fā)范式,讓開(kāi)發(fā)者更聚焦于 Pass 邏輯的處理,無(wú)需關(guān)心底層 IR 的實(shí)現(xiàn)細(xì)節(jié),所見(jiàn)即所得。
舉個(gè)例子,在混合精度訓(xùn)練的計(jì)算圖中,常會(huì)出現(xiàn)連續(xù)的 DataType 相關(guān)的 Cast 操作。從優(yōu)化角度,類似連續(xù)的 Cast 操作完全可以簡(jiǎn)化成一個(gè) Cast 即可,如下圖第一張示意圖。
基于 DRR 的 Pass 機(jī)制,我們只需要如下兩個(gè)簡(jiǎn)單的步驟。
1.繼承 DrrPatternBase 模板類:此模版類提供了一系列的基礎(chǔ)方法,幫助用戶用更簡(jiǎn)潔的形式描述中間 DAG 子圖表示的 Pattern 信息。
2.定義Source/Target Pattern:通過(guò) DrrPatternContext來(lái)創(chuàng)建、描述源、目標(biāo)Pattern,僅需要聚焦算子的輸入、輸出關(guān)系即可。
04
Dialect 最佳實(shí)踐
什么是 Dialect 呢?可以簡(jiǎn)單理解為“域”的概念,是高度靈活性的核心支撐。飛槳新 IR 下可以定義不同的 Dialect,如用于編譯期算子定義的 Operator Dialect、用于執(zhí)行期的 Kernel Dialect、用于 AI 編譯器的 CINN Dialect 等。
“從類型的角度,恰當(dāng)分層的軟件棧需要支持對(duì)張量、buffer、向量、標(biāo)量等進(jìn)行建模,以及一步步分解和 Lowering”
“從操作的角度,我們需要計(jì)算和控制流、控制流可以是顯式的基礎(chǔ)塊跳轉(zhuǎn),也可以內(nèi)含于結(jié)構(gòu)化操作中”
編譯器架構(gòu)概覽
在飛槳神經(jīng)網(wǎng)絡(luò)編譯器中,以計(jì)算圖 Operator Dialect 為輸入,經(jīng)過(guò)組合算子和 Pass Pipline 后,會(huì)轉(zhuǎn)換為 CINN Dialect,并附加 Shape Dialect 中的符號(hào)信息,最后會(huì) Lowering 編譯器 AST IR。各階段涉及的 Dialect 主要為:
在 3.0 框架中,飛槳對(duì)150+個(gè)基礎(chǔ)算子和典型算子新增支持了動(dòng)態(tài) Shape 的推導(dǎo)邏輯(即 InferSymbolicShape),可動(dòng)態(tài)地隨計(jì)算圖 Pass 的應(yīng)用來(lái)自適應(yīng)且 Lazy 地更新計(jì)算圖中間表示的符號(hào)信息。
動(dòng)態(tài)符號(hào)推導(dǎo)流程
05
總結(jié)
飛槳 3.0 Beta 版本下,推出了新一代中間表示 PIR,這項(xiàng)技術(shù)對(duì)底層的核心概念如 Operation、Attribute 等進(jìn)行了系統(tǒng)性的抽象,為開(kāi)發(fā)者提供了靈活的基礎(chǔ)組件;同時(shí),通過(guò)引入 Dialect 這一概念,飛槳能夠全面、分層次管理框架各模塊對(duì)中間表示的需求,并支持開(kāi)發(fā)者根據(jù)需求定制化擴(kuò)展 Dialect,顯著提升了框架的擴(kuò)展性。PIR 遵循 SSA(即 Static Single Assignment)原則,統(tǒng)一了頂層結(jié)構(gòu),實(shí)現(xiàn)“算子順序性”和“計(jì)算圖語(yǔ)義”的兼容表示。此外,PIR 還提供了更加簡(jiǎn)潔、低成本的 Pass 開(kāi)發(fā)流程(DRR 和 pattern write),并內(nèi)置了一系列豐富且功能完備的 Pass 優(yōu)化策略,實(shí)現(xiàn)了 Pass 開(kāi)發(fā)成本降低58%;應(yīng)用于推理場(chǎng)景,超過(guò)84%的模型推理加速超10%,為大模型的極致性能優(yōu)化提供了強(qiáng)有力支撐。
▎官方開(kāi)放課程
7月-10月特設(shè)《飛槳框架3.0全面解析》直播課程,邀請(qǐng)百度飛槳核心團(tuán)隊(duì)數(shù)十位工程師傾囊相授,技術(shù)解析+代碼實(shí)戰(zhàn),帶大家掌握核心框架、分布式計(jì)算、產(chǎn)業(yè)級(jí)大模型套件及低代碼工具、前沿科學(xué)計(jì)算技術(shù)案例等多個(gè)方面的框架技術(shù)及大模型訓(xùn)推優(yōu)化經(jīng)驗(yàn),實(shí)打?qū)嵉貛椭蠹矣蔑w槳框架3.0在實(shí)際開(kāi)發(fā)工作中提效創(chuàng)新!
▎飛槳?jiǎng)討B(tài)早知道
為了讓優(yōu)秀的飛槳開(kāi)發(fā)者們掌握第一手技術(shù)動(dòng)態(tài)、讓企業(yè)落地更加高效,根據(jù)大家的呼聲安排史上最強(qiáng)飛槳技術(shù)大餐!涵蓋飛槳框架3.0、低代碼開(kāi)發(fā)工具 PaddleX、大語(yǔ)言模型開(kāi)發(fā)套件 PaddleNLP、多模態(tài)大模型開(kāi)發(fā)套件 PaddleMIX、典型產(chǎn)業(yè)場(chǎng)景下硬件適配技術(shù)等多個(gè)方向,一起來(lái)看吧!
溫馨提示:以上僅為當(dāng)前籌備中的部分課程,如有變動(dòng),敬請(qǐng)諒解。
▎拓展閱讀
【前序技術(shù)稿件】
飛槳新一代框架3.0:“動(dòng)靜統(tǒng)一自動(dòng)并行、大模型訓(xùn)推一體”等新特性構(gòu)筑大模型時(shí)代核心生產(chǎn)力
【3.0-Beta 視頻教程】
https://aistudio.baidu.com/course/introduce/31815
【3.0-Beta 官方文檔】
https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/paddle_v3_features/index_cn.html
【開(kāi)始使用】
https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/paddle_v3_features/overview_cn.html#jiukaishishiyong
【動(dòng)轉(zhuǎn)靜 SOT 原理及使用】
https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/paddle_v3_features/sot_cn.html
【自動(dòng)并行訓(xùn)練】
https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/paddle_v3_features/auto_parallel_cn.html
【神經(jīng)網(wǎng)絡(luò)編譯器】
https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/paddle_v3_features/cinn_cn.html
【高階自動(dòng)微分功能】
https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/paddle_v3_features/higher_order_ad_cn.html
【PIR 基本概念和開(kāi)發(fā)】
https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/paddle_v3_features/paddle_ir_cn.html
【飛槳官網(wǎng)】
https://www.paddlepaddle.org.cn/
【企業(yè)合作入口】
https://paddle.wjx.cn/vm/m3sxpfF.aspx#