๐ค Transformers๋ฅผ ์ฌ์ฉํ Bark ์ต์ ํ
Hugging Face๋ Bark ํ ์คํธ-์์ฑ(TTS) ๋ชจ๋ธ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ค์ด๊ณ ์ถ๋ก ์๋๋ฅผ ๋์ด๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ์์ธํ ์ค๋ช ํ์ต๋๋ค. Better Transformer, ๋ฐ์ ๋ฐ๋ ๋ถ๋์์์ (fp16), CPU ์คํ๋ก๋๋ผ๋ ์ธ ๊ฐ์ง ํน์ ์ต์ ํ ๊ธฐ์ ์ ๊ฒฐํฉํ๋ฉด ์ฌ์ฉ์๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ต๋ 80% ์ค์ด๊ณ ์๋๋ฅผ 23% ๋์ผ ์ ์์ต๋๋ค.
Bark ๋ชจ๋ธ ์ํคํ ์ฒ
Bark๋ Suno AI์์ ๊ฐ๋ฐ๋ ํธ๋์คํฌ๋จธ ๊ธฐ๋ฐ ํ ์คํธ-์์ฑ(TTS) ๋ชจ๋ธ๋ก, ์์ฑ, ์์ , ๋ฐฐ๊ฒฝ ์์ ๋ฐ ๋น์ธ์ด์ ์๋ฆฌ(์: ์์๊ณผ ํ์จ)๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์ํคํ ์ฒ๋ ์์ฐจ์ ์ผ๋ก ์๋ํ๋ ๋ค ๊ฐ์ง ์ฃผ์ ๊ตฌ์ฑ ์์๋ก ๊ตฌ์ฑ๋ฉ๋๋ค:
- BarkSemanticModel: ์๋ฏธ ์๋ ํ ์คํธ ํ ํฐ์ ์์ธกํ๋ ์ธ๊ณผ ์๊ธฐํ๊ท ํธ๋์คํฌ๋จธ์ ๋๋ค.
- BarkCoarseModel: EnCodec์ ์ฒซ ๋ ์ค๋์ค ์ฝ๋๋ถ์ ์์ธกํ๋ ์ธ๊ณผ ์๊ธฐํ๊ท ํธ๋์คํฌ๋จธ์ ๋๋ค.
- BarkFineModel: ๋ฐ๋ณต์ ์ผ๋ก ๋จ์ ์ฝ๋๋ถ์ ์์ธกํ๋ ๋น์ธ๊ณผ ์คํ ์ธ์ฝ๋ ํธ๋์คํฌ๋จธ์ ๋๋ค.
- EncodecModel: ์ต์ข ์ฝ๋๋ถ ์ฑ๋์ ์ถ๋ ฅ ์ค๋์ค ๋ฐฐ์ด๋ก ๋์ฝ๋ฉํฉ๋๋ค.
์ต์ ํ ๊ธฐ์
์ต์ ํ๋ ์ต์ํ์ ์ฝ๋ ๋ณ๊ฒฝ์ผ๋ก ๐ค Optimum ๋ฐ ๐ค Accelerate ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด ๋ฌ์ฑ๋ฉ๋๋ค.
Better Transformer
Better Transformer๋ ์ปค๋ ํจ์ ๊ณผ Flash Attention์ ํ์ฉํ์ฌ GPU ์ฐ์ฐ์ ์ต์ ํํฉ๋๋ค. Flash Attention์ ์ํ์ค ๊ธธ์ด์ ๋ํด 2์ฐจ์์์ ์ ํ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ค์ฌ ๋ชจ๋ธ ์ฑ๋ฅ์ ์ ํ์ํค์ง ์์ผ๋ฉด์ ์๋๋ฅผ ๋์ ๋๋ค.
์ฃผ์ ์ด์ : ์ถ๋ ฅ ํ์ง ์์ค ์์ด ์๋๊ฐ 20%~30% ์ฆ๊ฐํฉ๋๋ค.
Half-Precision (fp16)
fp32(์ซ์๋น 32๋นํธ) ๋จ์ ๋ฐ๋ ๋ถ๋์์์ ์์ fp16(์ซ์๋น 16๋นํธ) ๋ฐ์ ๋ฐ๋๋ก ์ ํํ๋ฉด ๋ชจ๋ธ์ ์ ์ฅ ์๊ตฌ ์ฌํญ์ด ์ ๋ฐ์ผ๋ก ์ค์ด๋ญ๋๋ค.
์ฃผ์ ์ด์ : ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด 50% ๊ฐ์ํ๊ณ ์๋๊ฐ ์ฝ 5% ํฅ์๋์ง๋ง, ์ฝ๊ฐ์ ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
CPU Offload
Bark์ ๋ค ๊ฐ์ ์๋ธ ๋ชจ๋ธ์ ์์ฐจ์ ์ผ๋ก ํธ์ถ๋๋ฏ๋ก ์ด๋ ์์ ์ ํ๋์ ๋ชจ๋ธ๋ง ํ์ฑ ์ํ์ด๊ณ ๋๋จธ์ง๋ ์ ํด ์ํ์ ๋๋ค. CPU ์คํ๋ก๋๋ ๋นํ์ฑ ์ํ์ธ ์๋ธ ๋ชจ๋ธ์ GPU์์ CPU๋ก ์ธ๋ก๋ํ์ฌ่ฒด้ํ GPU ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ๋ณดํฉ๋๋ค.
์ฃผ์ ์ด์ : ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ์ฝ 60% ๊ฐ์ํ์ง๋ง ์ง์ฐ ์๊ฐ์ด ์ฝ๊ฐ(10%) ์ฆ๊ฐํฉ๋๋ค.
์ฑ๋ฅ ๋ฒค์น๋งํฌ
์ฑ๋ฅ ๋ฒค์น๋งํฌ๋ NVIDIA TITAN RTX 24GB์์ Bark์ ๋ํ ๋ฒ์ ์ ์ฌ์ฉํ์ฌ ์ต๋ 256๊ฐ์ ์๋ก์ด ํ ํฐ์ ๊ธฐ์ค์ผ๋ก 100๊ฐ์ ์ํ์ ๋ํด ํ๊ท ์ ๋ด์ด ์ํ๋์์ต๋๋ค.
๋จ์ผ ์ํ ์์ฑ (๋ฐฐ์น ํฌ๊ธฐ = 1)
๋จ์ผ ์ํ์ ์์ฑํ ๋ Better Transformer, CPU ์คํ๋ก๋, ๊ทธ๋ฆฌ๊ณ fp16์ ์กฐํฉ์ด ๊ฐ์ฅ ํฐ ํฅ์์ ๊ฐ์ ธ์ต๋๋ค:
| ์ต์ ํ | ์ง์ฐ ์๊ฐ ๋ณํ | ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ๋ณํ |
|---|---|---|
| ์ต์ ํ ์์ | 0% | 0% |
| Better Transformer๋ง | -27% | -1% |
| ์คํ๋ก๋ + Better Transformer | -15% | -59% |
| ์คํ๋ก๋ + Better Transformer + fp16 | -23% | -80% |
๋ฐฐ์น ์์ฑ (๋ฐฐ์น ํฌ๊ธฐ = 8)
์ฌ๋ฌ ์ํ์ ํจ๊ป ๋ฐฐ์น ์ฒ๋ฆฌํ๋ฉด ์ฒ๋ฆฌ๋์ด ํฌ๊ฒ ์ฆ๊ฐํฉ๋๋ค. Better Transformer๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋ ์ํ์์ ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๊ด์ฐฐํ์ต๋๋ค:
| ์ต์ ํ | ์ง์ฐ ์๊ฐ ๋ณํ | ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ๋ณํ | ์ฒ๋ฆฌ๋ ๋ณํ |
|---|---|---|---|
| ๊ธฐ๋ณธ ์ฌ๋ก (Better Transformer) | 0% | 0% | 0% |
| + fp16 | -46% | -50% | +87% |
| + ์คํ๋ก๋ | +6% | -38% | -6% |
| + ์คํ๋ก๋ + fp16 | -43% | -69% | +77% |
์ต์ ๊ตฌ์ฑ ์์ฝ
์ฌ์ฉ ์ฌ๋ก์ ๋ฐ๋ผ ๋ค์๊ณผ ๊ฐ์ ์ต์ ํ ์กฐํฉ์ด ๊ถ์ฅ๋ฉ๋๋ค:
- ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ฑ์ ์ํด: Better Transformer์ CPU ์คํ๋ก๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ํ Bark ๋ชจ๋ธ์ 5GB ๋์ 2GB์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ผ๋ก ์คํํฉ๋๋ค.
- ๋์ ์ฒ๋ฆฌ๋์ ์ํด: ๋ฐฐ์น ํฌ๊ธฐ 8๊ณผ Better Transformer, ๋ฐ์ ๋ฐ๋(
fp16)๋ฅผ ๊ฒฐํฉํ์ฌ ์ฌ์ฉํฉ๋๋ค. - ๊ท ํ ์กํ ์ฑ๋ฅ์ ์ํด:
fp16, Better Transformer, ๊ทธ๋ฆฌ๊ณ CPU ์คํ๋ก๋๋ฅผ ๊ฒฐํฉํ์ฌ ์ง์ฐ ์๊ฐ๊ณผ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ ๋ฐ์ ์ผ๋ก ๊ฐ์ฅ ํฌ๊ฒ ์ค์ ๋๋ค.