ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
How we sped up transformer inference 100x for ๐Ÿค— API customers
Hugging Face BlogHugging Face Blog
AI/ML

Hugging Face๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ตœ์ ํ™”, ์ปดํŒŒ์ผ ๊ธฐ๋ฐ˜ ๊ทธ๋ž˜ํ”„ ์ตœ์ ํ™”, ํ•˜๋“œ์›จ์–ด๋ณ„ ํŠœ๋‹์„ ๋‹จ๊ณ„์ ์œผ๋กœ ์ ์šฉํ•ด Transformer ์ถ”๋ก  ์†๋„ 100๋ฐฐ ํ–ฅ์ƒ

How we sped up transformer inference 100x for ๐Ÿค— API customers

2021๋…„ 1์›” 18์ผ8๋ถ„advanced

Context

๐Ÿค— Transformers ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๊ตฌ์ถ•๋œ ๋Œ€๊ทœ๋ชจ ์‚ฌ์ „ํ•™์Šต ๋ชจ๋ธ๋“ค์€ ํ”„๋กœ๋•์…˜ ๋ฐฐํฌ ์‹œ ๋†’์€ ๋ ˆ์ดํ„ด์‹œ๋กœ ์ธํ•ด ์‹ค์‹œ๊ฐ„ ์†Œ๋น„์ž ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ˆ˜์šฉ ๊ฐ€๋Šฅํ•œ ์‘๋‹ต ์‹œ๊ฐ„์„ ๋ณด์žฅํ•˜๊ธฐ ์–ด๋ ค์› ๋‹ค.

Technical Solution

  • ๐Ÿค— Transformers ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ตœ์ ํ™”๋œ ํŒŒ์ดํ”„๋ผ์ธ๊ณผ Rust ๊ธฐ๋ฐ˜ ๐Ÿค— Tokenizers ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•œ ํ† ํฌ๋‚˜์ด์ œ์ด์…˜ ์บ์‹ฑ์œผ๋กœ ๊ธฐ๋ณธ ๋ฐฐํฌ ๋Œ€๋น„ 10๋ฐฐ ์†๋„ ํ–ฅ์ƒ
  • ONNX Runtime์„ ์‚ฌ์šฉํ•œ ์ •์  ๊ทธ๋ž˜ํ”„ ์ปดํŒŒ์ผ๊ณผ ๋ชจ๋ธ ์•„ํ‚คํ…์ฒ˜๋ณ„ ๋งž์ถค ์ตœ์ ํ™”(๊ทธ๋ž˜ํ”„ ์ตœ์ ํ™”, ๋ ˆ์ด์–ด ํ“จ์ง•, ์–‘์žํ™”)๋กœ ์ถ”๊ฐ€ 10๋ฐฐ ์†๋„ ํ–ฅ์ƒ
  • CPU ์ถ”๋ก ๊ณผ GPU ์ถ”๋ก ์„ ์š”์ฒญ ๋ฐฐ์น˜ ํ”„๋กœํ•„๊ณผ ๋ชจ๋ธ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์„ ํƒ์ ์œผ๋กœ ๋ฐฐํฌํ•˜์—ฌ ํ•˜๋“œ์›จ์–ด๋ณ„ ์ตœ์ ํ™” ์ ์šฉ
  • Intel, NVIDIA, Qualcomm, Amazon, Microsoft์™€์˜ ํŒŒํŠธ๋„ˆ์‹ญ์„ ํ†ตํ•ด ์ตœ์‹  ํ•˜๋“œ์›จ์–ด ์ตœ์ ํ™” ๊ธฐ๋ฒ• ์ ์šฉ

Impact

  • ์ด 100๋ฐฐ ์ถ”๋ก  ์†๋„ ํ–ฅ์ƒ ๋‹ฌ์„ฑ (10๋ฐฐ + 10๋ฐฐ)
  • ์›”๊ฐ„ ์ •๊ธฐ ๋ฆด๋ฆฌ์Šค๋ฅผ ํ†ตํ•ด API ๊ณ ๊ฐ์ด ์ž๋™์œผ๋กœ ์ตœ์‹  ์ตœ์ ํ™” ๊ธฐ๋ฒ• ์ ์šฉ ๊ฐ€๋Šฅ

Key Takeaway

Transformer ๋ชจ๋ธ์˜ ๊ทน๋‹จ์  ์„ฑ๋Šฅ ํ–ฅ์ƒ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ˆ˜์ค€์˜ ๋ฒ”์šฉ ์ตœ์ ํ™”์—์„œ ์‹œ์ž‘ํ•˜์—ฌ ์ปดํŒŒ์ผ ๊ธฐ๋ฐ˜ ๊ทธ๋ž˜ํ”„ ์ตœ์ ํ™”์™€ ๋ชจ๋ธยทํ•˜๋“œ์›จ์–ด๋ณ„ ์ €์ˆ˜์ค€ ๋งž์ถค ์ตœ์ ํ™”๊นŒ์ง€ ๊ณ„์ธต์ ์œผ๋กœ ์ ์šฉํ•ด์•ผ ๋‹ฌ์„ฑ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋‹จ์ผ ์ตœ์ ํ™” ๊ธฐ๋ฒ•์œผ๋กœ๋Š” ์ตœ๊ณ  ์„ฑ๋Šฅ์— ๋„๋‹ฌํ•  ์ˆ˜ ์—†๋‹ค.


Transformer ๊ธฐ๋ฐ˜ NLP ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•˜๋Š” ํŒ€์—์„œ ์ถ”๋ก  ๋ ˆ์ดํ„ด์‹œ ๊ฐœ์„ ์ด ํ•„์š”ํ•  ๋•Œ, ๋จผ์ € ๐Ÿค— Transformers์˜ ์ž‘์—…๋ณ„ ์ตœ์ ํ™”๋œ ํŒŒ์ดํ”„๋ผ์ธ(์˜ˆ: GPT์˜ ๊ฒฝ์šฐ ๋งˆ์ง€๋ง‰ ํ† ํฐ ์–ดํ…์…˜๋งŒ ๊ณ„์‚ฐ)๊ณผ Rust ๊ธฐ๋ฐ˜ ํ† ํฌ๋‚˜์ด์ œ์ด์…˜์„ ์ ์šฉํ•˜๋ฉด 10๋ฐฐ ํ–ฅ์ƒ์„ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ๊ณ , ์ดํ›„ ONNX Runtime ์ปดํŒŒ์ผ๊ณผ ์–‘์žํ™”๋ฅผ ๋ชจ๋ธ ์•„ํ‚คํ…์ฒ˜์— ๋งž๊ฒŒ ํŠœ๋‹ํ•˜๋ฉด ์ถ”๊ฐ€ 10๋ฐฐ ํ–ฅ์ƒ์œผ๋กœ ์ „์ฒด 100๋ฐฐ ์„ฑ๋Šฅ ๊ฐœ์„ ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

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