ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
Running IF with ๐Ÿงจ diffusers on a Free Tier Google Colab
Hugging Face BlogHugging Face Blog
AI/ML

Hugging Face Diffusers ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ์ตœ์ ํ™” ๊ธฐ๋ฒ•์„ ์กฐํ•ฉํ•ด 40GB ๋ชจ๋ธ(IF)์„ 15GB VRAM ํ”„๋ฆฌ ํ‹ฐ์–ด Google Colab์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ

Running IF with ๐Ÿงจ diffusers on a Free Tier Google Colab

2023๋…„ 4์›” 26์ผ12๋ถ„intermediate

Context

IF๋Š” DeepFloyd๊ฐ€ 2023๋…„ 4์›” ์ถœ์‹œํ•œ ํ…์ŠคํŠธ-์ด๋ฏธ์ง€ ์ƒ์„ฑ ๋ชจ๋ธ๋กœ, ํ”ฝ์…€ ๊ณต๊ฐ„์—์„œ ์ง์ ‘ ๋™์ž‘ํ•˜๊ณ  T5-XXL ํ…์ŠคํŠธ ์ธ์ฝ”๋”๋ฅผ ์‚ฌ์šฉํ•ด ๊ณ ํ’ˆ์งˆ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ T5(4.5B), Stage 1 UNet(4.3B), Stage 2 UNet(1.2B) ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ด 40GB์˜ ๊ฐ€์ค‘์น˜๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด, ํ”„๋ฆฌ ํ‹ฐ์–ด Google Colab์˜ 13GB CPU RAM๊ณผ 15GB GPU VRAM(T4) ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ ๋ถˆ๊ฐ€๋Šฅํ–ˆ์Šต๋‹ˆ๋‹ค.

Technical Solution

  • Float32์—์„œ Float16์œผ๋กœ ์ •๋ฐ€๋„ ๋ณ€ํ™˜: T5 11GB, Stage 1 UNet 8.6GB, Stage 2 UNet 1.25GB๋กœ ๊ฐ์†Œ
  • Bitsandbytes 8bit ์–‘์žํ™” ์ ์šฉ: T5 ๊ฐ€์ค‘์น˜๋ฅผ 8GB ์ดํ•˜๋กœ ์••์ถ•
  • Diffusers ๋ชจ๋“ˆ์‹ ๋กœ๋”ฉ ํ™œ์šฉ: ํ•„์š”ํ•œ ์ปดํฌ๋„ŒํŠธ๋งŒ ๊ฐœ๋ณ„ ๋กœ๋“œํ•ด CPU/GPU ๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ณผ ๋ฐฉ์ง€
  • ํ…์ŠคํŠธ ์ž„๋ฒ ๋”ฉ ์‚ฌ์ „ ๊ณ„์‚ฐ: ํŒŒ์ดํ”„๋ผ์ธ ์‹คํ–‰ ์ „ ํ”„๋กฌํ”„ํŠธ ์ž„๋ฒ ๋”ฉ์„ ๊ณ„์‚ฐํ•ด ๋ฉ”๋ชจ๋ฆฌ ์žฌ์‚ฌ์šฉ
  • ๋‹จ๊ณ„๋ณ„ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ: ๊ฐ ์ฒ˜๋ฆฌ ๋‹จ๊ณ„ ์™„๋ฃŒ ํ›„ del pipe์™€ flush() ํ˜ธ์ถœ๋กœ GPU ๋ฉ”๋ชจ๋ฆฌ ํ™•๋ณด

Impact

์•„ํ‹ฐํด์€ ์ •๋Ÿ‰์  ์„ฑ๋Šฅ ์ˆ˜์น˜(์˜ˆ: ์ฒ˜๋ฆฌ ์‹œ๊ฐ„, ๋ฉ”๋ชจ๋ฆฌ ์ ˆ๊ฐ๋ฅ )๋ฅผ ๋ช…์‹œํ•˜์ง€ ์•Š์•˜์œผ๋‚˜, ํ”„๋ฆฌ ํ‹ฐ์–ด Google Colab์—์„œ IF ํ…์ŠคํŠธ-์ด๋ฏธ์ง€ ์ƒ์„ฑ, ์ด๋ฏธ์ง€ ๋ณ€ํ˜•, ์ด๋ฏธ์ง€ ์ธํŽ˜์ธํŒ… ๊ธฐ๋Šฅ 3๊ฐ€์ง€๋ฅผ ๋ชจ๋‘ ์‹คํ–‰ ๊ฐ€๋Šฅํ•จ์„ ์ž…์ฆํ–ˆ์Šต๋‹ˆ๋‹ค.

Key Takeaway

์†Œ๋น„์ž ํ•˜๋“œ์›จ์–ด์—์„œ ์ตœ์‹  ๋Œ€๊ทœ๋ชจ ์ƒ์„ฑ ๋ชจ๋ธ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹จ์ผ ์ตœ์ ํ™” ๊ธฐ๋ฒ•์ด ์•„๋‹Œ ์ •๋ฐ€๋„ ๋ณ€ํ™˜, ์–‘์žํ™”, ๋ชจ๋“ˆ์‹ ๋กœ๋”ฉ, ๋ฉ”๋ชจ๋ฆฌ ์ˆ˜๋ช… ๊ด€๋ฆฌ๋ฅผ ์กฐํ•ฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜คํ”ˆ์†Œ์Šค ๋„๊ตฌ ์ฒด์ธ(Diffusers, Transformers, Accelerate, bitsandbytes)์˜ ํ†ตํ•ฉ์œผ๋กœ ๊ณ ๊ธ‰ ML ๊ธฐ์ˆ ์˜ ๋ฏผ์ฃผํ™”๊ฐ€ ๊ฐ€๋Šฅํ•จ์„ ์‹œ์‚ฌํ•ฉ๋‹ˆ๋‹ค.


์ œํ•œ๋œ GPU VRAM ํ™˜๊ฒฝ(15GB ์ดํ•˜)์—์„œ 10B ์ด์ƒ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์ƒ์„ฑ ๋ชจ๋ธ์„ ๋ฐฐํฌํ•ด์•ผ ํ•  ๋•Œ, Diffusers์˜ `device_map='auto'` ํŒŒ๋ผ๋ฏธํ„ฐ์™€ bitsandbytes 8bit ์–‘์žํ™”๋ฅผ ์กฐํ•ฉํ•˜๊ณ , ํŒŒ์ดํ”„๋ผ์ธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ๋กœ๋“œ/์–ธ๋กœ๋“œํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ณผ ์—†์ด ์ถ”๋ก ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์›๋ฌธ ์ฝ๊ธฐ