L10|深入管線:自組 Diffusers 與 miniai 起步(Diving Deeper)

零基礎提示

  • 這一課不用額外數學
  • Part 2 是大學程度:中三同學先求看懂概念,不用每行程式都會
  • 字幕:離線網站選「中英」(電腦翻譯,大意正確)
  • 看不懂的詞查 白話小辭典

用 VAE、U-Net、scheduler、tokenizer 手動組出完整管線;接著開始從零打造,談 Python 資料模型、張量與亂數產生器。 (Assemble a full Diffusers pipeline by hand from the VAE, U-Net, scheduler and tokenizer, then start building from scratch: the Python data model, tensors and random number generation.)

項目內容
所屬Part 2:Deep Learning Foundations to Stable Diffusion
影片YouTube
對應書本章節無對應章節(Part 2 以 notebook 為主)
原始頁面Lessons/lesson10
難度(F3 視角)★★★★★ 大學程度(F3 只求理解概念)

影片

本課重點

  1. 手動組管線:自己串起 tokenizer、CLIP 編碼器、U-Net、scheduler、VAE,就能完全控制推論的每一步,例如加入 callback 或改負面提示詞的處理。
  2. 三篇新論文:Progressive Distillation 與 Distillation of Guided Diffusion 讓推論快 10 倍以上;Imagic 只要用文字描述,就能編輯任何照片。
  3. miniai 與整理程式:學生會在課程中一起打造 miniai 函式庫。強調把程式整理得簡單、可重用。
  4. Python 資料模型:迭代器、產生器、dunder 方法(如 getitem、len),讓自訂類別像內建型別一樣好用;自己寫一個矩陣類別。
  5. 虛擬亂數:電腦的亂數是用公式算出來的。介紹 Wichmann-Hill 演算法,並說明多行程時的亂數狀態問題;比較自製與 PyTorch 亂數產生器的速度。

關鍵概念

英文術語中文一句話解釋
Pipeline管線把多個模型元件串成一個流程
Distillation蒸餾用大模型教小模型,用更少步數得到相近結果
Iterator / Generator迭代器/產生器一次給一個元素、需要時才計算的物件
Dunder method雙底線方法如 len,讓類別支援內建語法
Pseudo-random虛擬亂數用確定的公式算出看似隨機的數字
Random seed亂數種子設定起點,讓亂數可以重現

認識關聯圖與重點圖

L10_關聯圖_202611041526

練習題

  1. 電腦的「隨機數」為什麼叫「虛擬亂數」?設定 seed 有什麼好處?
  2. 在 Python 類別裡定義 len 和 getitem 之後,可以對它的物件用哪些寫法?
  3. 為什麼要自己手動組管線,而不直接用現成的 pipeline?

資源連結

英文延伸資源(零基礎可以先略過,點開看)

相關筆記

Built with LogoFlowershow