18個小時以上的視頻將您從VAE到接近實時的穩定擴散與Pytorch和擁抱的臉...帶有大量動手實例,使深度學習再次變得有趣!
該存儲庫包含我的編程生成AI視頻課程中的代碼,幻燈片和示例。
編程生成的AI是一次深入生成建模的動手游覽,使您無法在Pytorch建立簡單的前饋神經網絡,一直到使用能夠理解文本和圖像的大型多模型模型。在此過程中,您將學習如何從頭開始訓練自己的生成模型以創建無限的圖像,以大型語言模型(LLM)生成文本,類似於那些為諸如chatgpt等應用的供電的文本,編寫自己的文本到圖像管道,以了解迅速的基於基於迅速的生成模型的實際工作,並如何實現穩定的型號,例如生成穩定的擴散模型,以生成新穎的圖像中的獨特視覺圖像(包括其他獨特的視覺樣式)(包括其他獨特的視覺範圍)(包括其他類型的視圖)。
該存儲庫中的代碼,幻燈片和練習是(並將始終是)可用的。可以購買相應的視頻:
最簡單的入門方法(無論視頻與否)是使用雲筆記本環境/平台,例如Google Colab(或Kaggle,paperspace等)。為了方便起見,我提供了指向本地開發的原始Jupyter筆記本電腦的鏈接,如果您想瀏覽代碼而不克隆倉庫(或者可以使用內置的GitHub查看器),則提供了NBViewer鏈接,如果您想在不建立本地開發環境(並與Cuda Ibrularies戰鬥)上進行交互性地運行代碼,則可以使用COLAB鏈接。
| 筆記本 | 幻燈片 | NBViewer(靜態) | Google Colab(Interactive) |
|---|---|---|---|
| 第1課:什麼,原因和生成性AI | |||
| 第2課:不耐煩的Pytorch | |||
| 第3課:潛在空間統治著我周圍的一切 | |||
| 第4課:神秘的擴散 | |||
| 第5課:使用變壓器生成和編碼文本 | |||
| 第6課:連接文本和圖像 | |||
| 第7課:擴散模型的培訓程序 |
如果您在代碼或材料中找到任何錯誤,請打開github問題或發送電子郵件至[email protected]。
git clone https://github.com/jonathandinu/programming-generative-ai.git
cd programming-generative-ai用Python 3.10.12實施和測試的代碼(其他版本> = 3.8可能可以正常工作,但要當心...)。要在本地虛擬環境中安裝筆記本上使用的所有軟件包:
# pyenv install 3.10.12
python --version
# => Python 3.10.12
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt 如果使用pyenv來管理Python版本,則pyenv在更改此目錄時應自動使用.python-version中列出的版本。
此外,將筆記本電腦設置為使用單元格,以根據可用的設備自動選擇適當的設備(GPU)。如果在Windows或Linux機器上,NVIDIA和AMD GPU都應起作用(儘管僅使用NVIDIA進行了測試)。如果在Apple Silicon Mac上,將使用金屬性能著色器。
import torch
# default device boilerplate
device = (
"cuda" # Device for NVIDIA or AMD GPUs
if torch . cuda . is_available ()
else "mps" # Device for Apple Silicon (Metal Performance Shaders)
if torch . backends . mps . is_available ()
else "cpu"
)
print ( f"Using { device } device" )如果找不到兼容設備,則代碼將默認為CPU後端。對於課程1和2來說,這應該很好,但是對於任何圖像生成示例(第2課後的幾乎所有內容),不使用GPU可能會感到不舒服 - 在這種情況下,我建議您在上表中使用Google Colab鏈接。
中間到高級
第1課從介紹生成AI的實際介紹,至少在與本課程相關的情況下,在進入深層生成建模的細節之前。它涵蓋了許多可能的多模型模型(就輸入和輸出方式而言),以及算法如何實際生成豐富的媒體似乎是用稀薄的空氣產生的。該課程結合了一些深層生成模型的形式和理論,以及各種類型的生成建模體系結構之間的權衡。
第2課始於一般的Pytorch和深度學習框架的介紹。我向您展示GPU上自動分化和透明計算的組合如何真正使深度學習研究和應用的當前爆炸式增長。接下來,我向您展示如何使用Pytorch實現和學習線性回歸模型,這是建立更複雜的神經網絡的墊腳石。最後,通過結合Pytorch提供的所有組件來構建簡單的饋電多層感知器,結合了課程結合在一起。
第3課從計算機程序如何實際表示為數字張量的底漆開始。我介紹了卷積神經網絡的細節以及使計算機“看到”的特定體系結構特徵。接下來,通過構建和培訓簡單的自動編碼器來學習輸入圖像的壓縮表示,您將首次品嚐到潛在變量模型。在課程結束時,您通過將概率採樣添加到自動編碼器體系結構中以到達變異自動編碼器(VAE)(VAE)(這是我們將遇到的未來生成模型中的關鍵組件),遇到了第一個適當的生成模型。
第4課始於擴散模型的概念介紹,這是當前狀態的關鍵組件,例如穩定擴散。第4課是您對開源庫的擁抱面孔生態系統的第一個真實介紹,您將看到我們如何使用擴散器庫來從隨機噪聲中生成圖像。然後,該課程慢慢剝離庫上的圖層以解構擴散過程,並向您展示擴散管道實際工作的細節。最後,您將學習如何利用擴散模型的迭代授權過程的獨特負擔,以在圖像之間插值,執行圖像到圖像翻譯,甚至還原和增強圖像。
正如第4課都是關於圖像的一樣,第5課都與文本有關。它始於自然語言處理管道的概念介紹,以及對語言概率模型的介紹。然後,您將學習如何通過生成模型將文本轉換為更容易理解的表示形式,並探索將單詞表示為向量的更廣泛的效用。該課程以對變壓器體系結構的處理結束,您將看到如何使用擁抱面孔變壓器庫與預訓練的大型語言模型(LLMS)進行推理,以從頭開始生成文本。
第6課始於多模型模型的概念介紹以及所需的必要組件。您會看到對比性語言圖像如何共同學習圖像和文本的共享模型,並了解如何使用共享的潛在空間來構建語義,圖像搜索引擎。本課程以潛在擴散模型的概念概述結束,然後再解構穩定的擴散管道,以確切地查看文本到圖像系統如何將用戶提供的提示轉換為從未見過的圖像。
第7課都是關於適應和增強現有的預訓練的多模型。它始於更平凡但非常重要的任務,即在轉移到參數有效微調的方法和技術之前評估生成模型。然後,您將學習如何教授預先訓練的文本對圖像模型,例如有關新樣式,主題和條件的穩定擴散。該課程用技術結束,使擴散更有效地接近實時圖像生成。
©️2024喬納森·杜努(Jonathan Dinu)。版權所有。明確禁止在部分或整個文本,圖像和/或代碼中刪除本版權通知或複制。
有關使用您自己的演示文稿中的內容(博客文章,講座,視頻,課程等)的許可,請聯繫[email protected]。