4 คะแนน โดย GN⁺ 2023-10-04 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • บทความนี้กล่าวถึงการรัน Stable Diffusion XL 1.0 บน Raspberry Pi Zero 2 ซึ่งเป็นไมโครคอมพิวเตอร์ที่มี RAM 512MB
  • ความท้าทายคือการรัน Stable Diffusion 1.5 ซึ่งเป็นโมเดลทรานส์ฟอร์มเมอร์ขนาดใหญ่ที่มีพารามิเตอร์เกือบ 1 พันล้านตัว โดยไม่เพิ่มพื้นที่สว็อปหรือออฟโหลดผลลัพธ์ระหว่างทางลงดิสก์
  • ผู้เขียนได้สร้าง OnnxStream ซึ่งเป็นไลบรารีอนุมานขนาดเล็กที่ปรับแต่งได้ง่าย โดยมุ่งเน้นการลดการใช้หน่วยความจำให้เหลือน้อยที่สุด
  • OnnxStream แยกเอนจินอนุมานออกจากคอมโพเนนต์ที่จัดหา model weights ทำให้รองรับการโหลด การแคช และการพรีเฟตช์พารามิเตอร์โมเดลได้หลายรูปแบบ
  • OnnxStream ใช้หน่วยความจำน้อยกว่า OnnxRuntime ถึง 55 เท่า แต่ช้ากว่าเพียง 0.5-2 เท่าเท่านั้น
  • บทความนี้มีภาพที่สร้างโดยตัวอย่างการติดตั้ง Stable Diffusion ด้วย OnnxStream ภายใต้ความละเอียดเชิงตัวเลขที่หลากหลายของ VAE decoder
  • ตอนนี้ตัวอย่างการติดตั้ง Stable Diffusion ของ OnnxStream รองรับ SDXL 1.0 แล้ว ซึ่งมีต้นทุนการคำนวณสูงกว่า SD 1.5 แต่สามารถสร้างภาพที่ใหญ่กว่าได้
  • OnnxStream สามารถรัน SDXL 1.0 ได้ด้วย RAM ต่ำกว่า 300MB ทำให้เหมาะกับ Raspberry Pi Zero 2
  • บทความนี้พูดถึงการปรับแต่งเฉพาะสำหรับ SDXL 1.0 ซึ่งรวมถึงการใช้ tile decoding เพื่อลดการใช้หน่วยความจำจาก 4.4GB เหลือ 298MB
  • ความสามารถของ OnnxStream ได้แก่ การแยก inference engine ออกจาก WeightsProvider, attention slicing, dynamic และ static quantization, การรองรับ FP16 เป็นต้น
  • บทความนี้ให้คำแนะนำอย่างละเอียดเกี่ยวกับวิธี build ตัวอย่าง Stable Diffusion บนระบบปฏิบัติการต่าง ๆ
  • การติดตั้ง Stable Diffusion ของ sd.cpp ในบทความนี้อิงจากอีกสองโปรเจ็กต์ และถูกปรับให้ใช้ OnnxStream แทน NCNN

1 ความคิดเห็น

 
GN⁺ 2023-10-04
ความเห็นจาก Hacker News
  • บทความเกี่ยวกับการใช้งาน OnnxStream ซึ่งพบว่าใช้หน่วยความจำน้อยกว่า OnnxRuntime ถึง 55 เท่า แต่ช้ากว่าราว 0.5-2 เท่า
  • จุดแลกเปลี่ยนระหว่างการใช้หน่วยความจำกับเวลาในการอนุมานอาจเป็นข้อได้เปรียบในบางสถานการณ์ และอาจทำให้ใช้ batch size ที่ใหญ่ขึ้นได้ภายใต้ RAM เท่าเดิม
  • ผู้ใช้บางคนใช้งาน Stable Diffusion บน MacBook Pro ผ่าน invoke.ai แต่กำลังมองหาคำแนะนำเพื่อการปรับพารามิเตอร์ที่ดีกว่า
  • บทความระบุว่าการสร้างภาพด้วยวิธีนี้ใช้เวลานานมาก โดยใน Readme เขียนว่าใช้เวลา 11 ชั่วโมง
  • จุดแลกเปลี่ยนระหว่างการใช้หน่วยความจำกับเวลาในการอนุมานอาจเป็นอุปสรรคต่อแอปพลิเคชันแบบเรียลไทม์หรือเกือบเรียลไทม์ที่ความหน่วงเป็นปัจจัยสำคัญ
  • มีความสับสนกับคำว่า "ช้ากว่า 0.5-2 เท่า" ซึ่งสะท้อนว่าอาจมีความไม่ชัดเจนในการสื่อสารภายในชุมชน
  • ผู้ใช้บางคนกำลังมองหาสรุปข้อกำหนดขั้นต่ำสำหรับการรันและสร้างผลลัพธ์ด้วยโมเดลโอเพนซอร์สหลักๆ
  • มีการจับตาความก้าวหน้าอย่างรวดเร็วในสาขานี้ โดยเฉพาะการเพิ่มความเร็วในช่วง 6-18 เดือนที่ผ่านมา ซึ่งน่าประทับใจมาก
  • มีข้อเสนอว่าความพยายามในการกำกับดูแลเทคโนโลยีประเภท Stable Diffusion อาจไร้ผล เพราะโมเดลเหล่านี้และโครงสร้างพื้นฐานสำหรับการอนุมานอาจถูกย่อขนาดจนรันได้บน PS2
  • แม้เวลาในการสร้างจะยาวนาน แต่ผู้ใช้บางคนก็ยังทึ่งที่ Stable Diffusion สามารถรันได้บนฮาร์ดแวร์อย่าง Pi Zero