๐Ÿค— 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 ์˜คํ”„๋กœ๋“œ๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ์ง€์—ฐ ์‹œ๊ฐ„๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ „๋ฐ˜์ ์œผ๋กœ ๊ฐ€์žฅ ํฌ๊ฒŒ ์ค„์ž…๋‹ˆ๋‹ค.

Sources