讓AIGC成功破圈的《太空歌劇院》,背后依靠的是什么?
發(fā)布時(shí)間:2023-07-26
你能想象嗎?下面這些精美絕倫的圖片竟然都是AI自動(dòng)生成的!
圖:書(shū)中插圖
沒(méi)想到,AI界已經(jīng)有如此炫酷的技術(shù)!而在整個(gè)過(guò)程中,創(chuàng)作者只用做一件事,那就是:用一段文字描述想要的圖片內(nèi)容。這種效果背后的技術(shù)被稱(chēng)作擴(kuò)散模型(Diffusion Model)。事實(shí)上,它在很多領(lǐng)域都占有一席之地,在游戲、生物、醫(yī)療等行業(yè)都能看到它的身影。其中,最知名的當(dāng)屬畫(huà)作《太空歌劇院》。可見(jiàn),AI繪畫(huà)已經(jīng)徹底出圈?,F(xiàn)如今,要進(jìn)入AI領(lǐng)域,AIGC幾乎已經(jīng)是人手必備的生存技能了。那么,在這一過(guò)程中,關(guān)乎其效果的背后的技術(shù)擴(kuò)散模型是如何發(fā)揮魅力的呢?今天,就讓我們借由這本得到瀾舟科技創(chuàng)始人兼 CEO,創(chuàng)新工場(chǎng)首席科學(xué)家,CCF副理事長(zhǎng)周明、北京大學(xué)人工智能研究院研究員楊耀東等聯(lián)袂推薦的《擴(kuò)散模型從原理到實(shí)戰(zhàn)》,一窺究竟。趕超AI風(fēng)口,讓模型“擴(kuò)散”起來(lái)!
擴(kuò)散模型是基于擴(kuò)散思想的深度學(xué)習(xí)生成模型,其背后蘊(yùn)含著復(fù)雜的數(shù)學(xué)原理。小異發(fā)現(xiàn),為了便于讀者理解,作者特意避開(kāi)了這些復(fù)雜內(nèi)容。但是,讀者依舊可以基于本書(shū)內(nèi)容學(xué)會(huì)如何生成精美圖像。擴(kuò)散模型是一類(lèi)生成模型,它借鑒了物理熱力學(xué)中的擴(kuò)散思想:分子從高濃度區(qū)域擴(kuò)散到低濃度區(qū)域。這與由于噪聲干擾導(dǎo)致的信息丟失十分相似。書(shū)中采用了一滴墨水在水中擴(kuò)散的過(guò)程舉例。??初始狀態(tài):擴(kuò)散開(kāi)始之前,這滴墨水會(huì)在水中的某個(gè)地方形成一個(gè)大的斑點(diǎn)。??擴(kuò)散過(guò)程:這滴墨水隨著時(shí)間的推移逐步擴(kuò)散到水中,水的顏色也逐漸變成這滴墨水的顏色。
圖:一滴墨水在水中擴(kuò)散分布的示意圖(選自書(shū)中)就這個(gè)過(guò)程而言,描述該初始狀態(tài)的概率分布很困難,因?yàn)樵摲植挤浅?fù)雜。而擴(kuò)散后的墨水分子的概率分布更加簡(jiǎn)單和均勻,可以很輕松地用數(shù)學(xué)公式來(lái)描述。這時(shí)候非平衡熱力學(xué)就派上用場(chǎng)了,它可以描述墨水隨時(shí)間推移的擴(kuò)散過(guò)程中每一個(gè)時(shí)間步狀態(tài)的概率分布。如果把這個(gè)過(guò)程反過(guò)來(lái),就可以從簡(jiǎn)單的分布中逐步推斷出復(fù)雜的分布。擴(kuò)散模型和這個(gè)過(guò)程類(lèi)似,只不過(guò)它分為前向擴(kuò)散和反向擴(kuò)散兩個(gè)過(guò)程。??前向擴(kuò)散:引入噪聲,并學(xué)習(xí)由噪聲引起的信息衰減,最終得到純隨機(jī)噪聲分布的數(shù)據(jù),即類(lèi)似穩(wěn)定墨水系統(tǒng)的狀態(tài)。??反向擴(kuò)散:前向擴(kuò)散的反向過(guò)程,是“去噪”的過(guò)程,即從隨機(jī)噪聲中迭代恢復(fù)出清晰數(shù)據(jù)的過(guò)程。通俗地說(shuō),就是生成模型的采樣過(guò)程。
圖:DDPM 的擴(kuò)散過(guò)程(選自書(shū)中)
公認(rèn)最早的擴(kuò)散模型?DDPM(Denoising Diffusion Probabilistic Mode)的擴(kuò)散原理就由此而來(lái)。作者在書(shū)中對(duì)擴(kuò)散模型做了大量的詮釋?zhuān)步o出了對(duì)應(yīng)的案例和代碼,降低了理解門(mén)檻,提高了學(xué)習(xí)效率。圖:使用現(xiàn)有模型再學(xué)習(xí)到指定主體圖像的功能
在第3章中,作者以實(shí)戰(zhàn)方式演示了從0開(kāi)始搭建擴(kuò)散模型的過(guò)程,從一個(gè)簡(jiǎn)單的擴(kuò)散模型講起,展示其不同部分的工作原理。
??訓(xùn)練模型:獲取一批數(shù)據(jù)添加隨機(jī)噪聲,之后將數(shù)據(jù)輸入模型,對(duì)模型預(yù)測(cè)與初始圖像進(jìn)行比較,計(jì)算損失更新模型的參數(shù)。圖:模型的預(yù)測(cè)結(jié)果(選自書(shū)中)
??采樣過(guò)程:從完全隨機(jī)的噪聲開(kāi)始,先檢查一下模型的預(yù)測(cè)結(jié)果,然后只朝著預(yù)測(cè)方向移動(dòng)一小部分(比如,20%),如果新的預(yù)測(cè)結(jié)果比上一次的預(yù)測(cè)結(jié)果稍微好一點(diǎn),就可以根據(jù)這個(gè)新的、更好的預(yù)測(cè)結(jié)果繼續(xù)往前邁出一步。圖:采樣過(guò)程(選自書(shū)中)
此外,作者還對(duì)調(diào)整時(shí)間步、優(yōu)化采樣步驟等提出了思考,以便更好地改善模型效果。同時(shí),讀者可以訪(fǎng)問(wèn)B站觀(guān)看Hugging Face平臺(tái)提供的課程,來(lái)以互動(dòng)性更強(qiáng)的方式學(xué)習(xí)擴(kuò)散模型知識(shí)。
圖:B站擴(kuò)散模型直播活動(dòng)
正如一開(kāi)始所說(shuō),擴(kuò)散模型已經(jīng)逐漸滲透到了生活、工作的方方面面,甚至有科學(xué)家已經(jīng)開(kāi)始嘗試結(jié)合大型語(yǔ)言模型的信息與圖像生成擴(kuò)散模型,用文本指導(dǎo)擴(kuò)散過(guò)程。作者也希望各位讀者可以將學(xué)到的知識(shí)與專(zhuān)業(yè)領(lǐng)域或技能相結(jié)合,解決生活或工作中的實(shí)際問(wèn)題。
想要更高效地打造擴(kuò)散模型并解決日常問(wèn)題,少不了給力的工具。作者也在書(shū)中介紹了很多實(shí)用工具——首先是Hugging Face,它是專(zhuān)門(mén)服務(wù)機(jī)器學(xué)習(xí)從業(yè)者的協(xié)作和交流平臺(tái),致力于構(gòu)建開(kāi)放、負(fù)責(zé)的人工智能的未來(lái)。本書(shū)第3-8章的內(nèi)容就是基于Hugging Face平臺(tái)上的Diffusion課程設(shè)計(jì)的。Hugging Face 的核心產(chǎn)品是?Hugging Face Hub——一個(gè)基于 Git 進(jìn)行版本管理的存儲(chǔ)庫(kù),由模型、數(shù)據(jù)集、應(yīng)用程序三塊組成。截至 2023 年 3 月底,Hugging Face Hub 上已經(jīng)托管了 16.2 萬(wàn)個(gè)模型、2.6 萬(wàn)個(gè)數(shù)據(jù)集以及 2.5 萬(wàn)個(gè)應(yīng)用程序。
??模型:每一個(gè)模型都有一個(gè)模型卡片頁(yè)面,包括介紹、用途和限制、使用方法、訓(xùn)練方法、模型評(píng)估、使用的數(shù)據(jù)集,甚至還有供快速體驗(yàn)的示例應(yīng)用,讓讀者快速體驗(yàn)。圖:Hugging Face Hub 上的模型卡片(選自書(shū)中)
??數(shù)據(jù)集:Hugging Face 歸集了超過(guò)5000個(gè)數(shù)據(jù)集,涵蓋100多種語(yǔ)言,可用于自然語(yǔ)言處理、計(jì)算機(jī)視覺(jué)和音頻等廣泛領(lǐng)域的任務(wù)。
圖:某個(gè)模型的訓(xùn)練數(shù)據(jù)集以及使用該模型建立的應(yīng)用列表(選自書(shū)中)
??應(yīng)用程序:Hugging Face Hub 提供了Spaces 功能,它可以讓你在幾分鐘內(nèi)創(chuàng)建和部署一個(gè)應(yīng)用程序。
圖:Hugging Face Hub 內(nèi)展示的本周熱門(mén) Spaces 應(yīng)用
除此之外,Hugging Face 還在 GitHub 上開(kāi)源了一系列機(jī)器學(xué)習(xí)庫(kù)和工具,比如Transformer、Datasets、diffusers等。
此外,作者還介紹了開(kāi)源的 Python 庫(kù)Gradio。它由 Hugging Face 推出,用于構(gòu)建機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)演示以及 Web 等應(yīng)用。當(dāng)需要向用戶(hù)展示機(jī)器學(xué)習(xí)模型的時(shí)候,Gradio 可以有效地幫助你創(chuàng)建交互式應(yīng)用。
圖:使用 Gradio 運(yùn)行“Hello World !”程序(選自書(shū)中)