Hugging Face ์ํ๊ณ์ ์ต์ ํ ๋๊ตฌ๋ฅผ ์กฐํฉํด Bark ํ ์คํธ-์์ฑ ๋ณํ ๋ชจ๋ธ์ ๋ ์ดํด์๋ฅผ ์ต๋ 46% ๊ฐ์, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ต๋ 69% ๊ฐ์
Optimizing Bark using ๐ค Transformers
AI ์์ฝ
Context
๐ค Transformers์ Bark ํ ์คํธ-์์ฑ ๋ณํ ๋ชจ๋ธ์ ์ถ๋ก ์๋์ ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ฑ ์ธก๋ฉด์์ ์ต์ ํ๊ฐ ํ์ํ๋ค. ๋๊ท๋ชจ ์์ฑ ์์ฑ ์์ ์์ ๋ ์ดํด์์ ๋ฉ๋ชจ๋ฆฌ ํํ๋ฆฐํธ๋ ์ค์ ๋ฐฐํฌ ํ๊ฒฝ์ ์ฃผ์ ์ ์ฝ์ด๋ค.
Technical Solution
- Better Transformer ์ ์ฉ: ๐ค Transformers ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ธฐ๋ณธ ์ ๊ณต ์ต์ ํ ๊ธฐ๋ฒ์ผ๋ก ๋์ผํ ๋ฉ๋ชจ๋ฆฌ ํํ๋ฆฐํธ ์ ์งํ๋ฉด์ ์ถ๋ก ์๋ ๊ฐ์
- FP16 ์ ๋ฐ๋ ์ ํ: ๋ชจ๋ธ ๊ฐ์ค์น๋ฅผ ๋ฐ์ ๋ฐ๋(float16)๋ก ๋ณํํด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ๊ฐ์ ๋ฐ ๋ ์ดํด์ ๋จ์ถ
- CPU ์คํ๋ก๋ ํ์ฑํ: ๐ค Accelerate ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํด GPU ๋ฉ๋ชจ๋ฆฌ ์๋ฐ ์ ์ผ๋ถ ์ฐ์ฐ์ CPU๋ก ์คํ๋ก๋
- ๋ฐฐ์น ํฌ๊ธฐ ์ฆ๋: ๋ฐฐ์น ํฌ๊ธฐ 8๋ก ์ค์ ํ์ฌ ์ฒ๋ฆฌ๋ ํฅ์ ๋ฐ ๋์์ฑ ํ์ฉ
- ๋ฒค์น๋งํฌ ์ธก์ ์๋ํ: PyTorch CUDA ํ์ด๋ฐ ์ด๋ฒคํธ๋ฅผ ํ์ฉํ ๋ ์ดํด์ยท๋ฉ๋ชจ๋ฆฌ ํํ๋ฆฐํธ ์ธก์ ํจ์ ๊ตฌํ
Impact
๋ฐฐ์น ํฌ๊ธฐ 1 ๊ธฐ์ค:
- Better Transformer + FP16: ๋ ์ดํด์ -46%, ๋ฉ๋ชจ๋ฆฌ -50%
- Better Transformer + FP16 + CPU ์คํ๋ก๋: ๋ ์ดํด์ -43%, ๋ฉ๋ชจ๋ฆฌ -69%
๋ฐฐ์น ํฌ๊ธฐ 8 ๊ธฐ์ค:
- FP16: ๋ ์ดํด์ -46%, ๋ฉ๋ชจ๋ฆฌ -50%, ์ฒ๋ฆฌ๋ +87%
- FP16 + CPU ์คํ๋ก๋: ๋ ์ดํด์ -43%, ๋ฉ๋ชจ๋ฆฌ -69%, ์ฒ๋ฆฌ๋ +77%
์ค์ ์ฌ์ฉ ์๋๋ฆฌ์ค:
- Bark ๋ํ ๋ชจ๋ธ: ๋ฉ๋ชจ๋ฆฌ 5GB โ 2GB (60% ๊ฐ์), ์ถ๋ก ์๋ 15% ํฅ์ (Better Transformer + CPU ์คํ๋ก๋ ์กฐํฉ)
Key Takeaway
Hugging Face ์ํ๊ณ์ ๋ฒ์ฉ ์ต์ ํ ๋๊ตฌ(Better Transformer, FP16, CPU ์คํ๋ก๋)๋ ๋ชจ๋ธ ์ํคํ ์ฒ ๋ณ๊ฒฝ ์์ด ์์์ ์ฝ๋ ๋ผ์ธ๋ง์ผ๋ก ๋๊ท๋ชจ ์ถ๋ก ์ฑ๋ฅ ๊ฐ์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ค. ์ฌ์ฉ ๋ชฉํ(๋ฎ์ ๋ ์ดํด์ vs ๋์ ์ฒ๋ฆฌ๋)์ ๋ฐ๋ผ ์ต์ ํ ์กฐํฉ์ ์ ํ์ ์ผ๋ก ์ ์ฉํ ์ ์๋ค.
์ค์ฒ ํฌ์ธํธ
Transformers ๊ธฐ๋ฐ ์์ฑ ์์ฑ ๋ชจ๋ธ์ ํ๋ก๋์ ์ ๋ฐฐํฌํ๋ ์์ง๋์ด๋ Better Transformer๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ํ์ฑํํ๊ณ , ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ์ด ์์ผ๋ฉด FP16๊ณผ CPU ์คํ๋ก๋๋ฅผ ์กฐํฉํด ์ ์ฉํ๋ฉด ๋ ์ดํด์ 40% ์ด์ ๋จ์ถ๊ณผ ๋ฉ๋ชจ๋ฆฌ 50% ์ด์ ์ ๊ฐ์ ๋์์ ๋ฌ์ฑํ ์ ์๋ค. ๋ฐฐ์น ์ถ๋ก ์ด ํ์ํ๋ฉด ๋ฐฐ์น ํฌ๊ธฐ ์ฆ๋ ์ FP16์ ํจ๊ณผ๊ฐ ๊ทน๋ํ๋์ด ์ฒ๋ฆฌ๋์ ๊ฑฐ์ 2๋ฐฐ ํฅ์ํ ์ ์๋ค.