ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
Optimizing Bark using ๐Ÿค— Transformers
Hugging Face BlogHugging Face Blog
Backend

Hugging Face ์ƒํƒœ๊ณ„์˜ ์ตœ์ ํ™” ๋„๊ตฌ๋ฅผ ์กฐํ•ฉํ•ด Bark ํ…์ŠคํŠธ-์Œ์„ฑ ๋ณ€ํ™˜ ๋ชจ๋ธ์˜ ๋ ˆ์ดํ„ด์‹œ๋ฅผ ์ตœ๋Œ€ 46% ๊ฐ์†Œ, ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ตœ๋Œ€ 69% ๊ฐ์†Œ

Optimizing Bark using ๐Ÿค— Transformers

2023๋…„ 8์›” 9์ผ12๋ถ„intermediate

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๋ฐฐ ํ–ฅ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

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