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