Articlehuggingface.coยท2026๋…„ 3์›” 5์ผยท0

Tricks from OpenAI gpt-oss YOU ๐Ÿซต can use with transformers

Quick Summary

OpenAI์˜ GPT OSS ๋ชจ๋ธ์„ transformers์—์„œ ํšจ์œจ์ ์œผ๋กœ ์‹คํ–‰ยท๋ฏธ์„ธ์กฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋„์ž…๋œ ๋‹ค์šด๋กœ๋“œํ˜• ์ปค๋„, MXFP4 ์–‘์žํ™”, Flash Attention 3, ํ…์„œ ๋ณ‘๋ ฌํ™” ๋“ฑ ํ•ต์‹ฌ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์„ค๋ช…ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.

Tricks from OpenAI gpt-oss YOU ๐Ÿซต can use with transformers ๊ด€๋ จ ๋Œ€ํ‘œ ์ด๋ฏธ์ง€

๐Ÿ–ผ๏ธ ์ธํฌ๊ทธ๋ž˜ํ”ฝ

Tricks from OpenAI gpt-oss YOU ๐Ÿซต can use with transformers ๋‚ด์šฉ์„ ์„ค๋ช…ํ•˜๋Š” ๋ณธ๋ฌธ ์ด๋ฏธ์ง€

๐Ÿ–ผ๏ธ 4์ปท ์ธํฌ๊ทธ๋ž˜ํ”ฝ

Tricks from OpenAI gpt-oss YOU ๐Ÿซต can use with transformers ๋‚ด์šฉ์„ ์„ค๋ช…ํ•˜๋Š” ๋ณธ๋ฌธ ์ด๋ฏธ์ง€

๐Ÿ’ก ํ•œ ์ค„ ์š”์•ฝ

OpenAI์˜ GPT-OSS ๋ชจ๋ธ์„ transformers์—์„œ ํšจ์œจ์ ์œผ๋กœ ์‹คํ–‰ยท๋ฏธ์„ธ์กฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋„์ž…๋œ ๋‹ค์šด๋กœ๋“œํ˜• ์ปค๋„, MXFP4 ์–‘์žํ™”, Flash Attention 3, ํ…์„œ ๋ณ‘๋ ฌํ™” ๋“ฑ ํ•ต์‹ฌ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์„ค๋ช…ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.

๐Ÿ“Œ ํ•ต์‹ฌ ์š”์•ฝ

  • ๊ธ€์€ OpenAI GPT-OSS ๋ชจ๋ธ ์ถœ์‹œ๋ฅผ ๊ณ„๊ธฐ๋กœ transformers ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋Œ€๊ทœ๋ชจ๋กœ ๊ฐœ์„ ๋˜์—ˆ๊ณ , ๊ทธ ๊ฒฐ๊ณผ ๋ชจ๋ธ ๋กœ๋“œยท์‹คํ–‰ยท๋ฏธ์„ธ์กฐ์ •์ด ๋” ํšจ์œจ์ ์ด ๋˜์—ˆ๋‹ค๊ณ  ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
  • ํ•ต์‹ฌ ๋ณ€ํ™” ์ค‘ ํ•˜๋‚˜๋Š” Hub์—์„œ ์‚ฌ์ „ ๋นŒ๋“œ๋œ ์ปค๋„์„ ๋‚ด๋ ค๋ฐ›์•„ ์“ฐ๋Š” ๋ฐฉ์‹์œผ๋กœ, ๊ฐœ๋ณ„ ์ปค๋„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์˜์กด์„ฑ ์ฆ๊ฐ€์™€ ๋กœ์ปฌ ์ปดํŒŒ์ผ ๋ถ€๋‹ด์„ ์ค„์ด๋Š” ๋ฐ ์ดˆ์ ์„ ๋‘ก๋‹ˆ๋‹ค.
  • GPT-OSS๋Š” MoE ๊ตฌ์กฐ๋ฅผ ํ™œ์šฉํ•˜๋ฉฐ Liger RMSNorm, MegaBlocks MoE MLP, attention sinks๋ฅผ ์ง€์›ํ•˜๋Š” Flash Attention 3, MXFP4 Triton ์ปค๋„ ๊ฐ™์€ ์—ฌ๋Ÿฌ ์ปค์Šคํ…€ ์ปค๋„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • MXFP4๋Š” 4๋น„ํŠธ ๋ถ€๋™์†Œ์ˆ˜์  ํ˜•์‹๊ณผ 32๊ฐœ ๋‹จ์œ„ ๋ธ”๋ก๋ณ„ ์Šค์ผ€์ผ๋ง์„ ๊ฒฐํ•ฉํ•ด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ํฌ๊ฒŒ ์ค„์ด๋ฉฐ, ์ง€์› ํ™˜๊ฒฝ์—์„œ๋Š” GPT-OSS 20B์™€ 120B๋ฅผ ํ›จ์”ฌ ์ž‘์€ VRAM์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  • ์›๋ฌธ ํ›„๋ฐ˜๋ถ€๋Š” tensor parallelism์„ ์†Œ๊ฐœํ•˜๋ฉฐ, ๋ ˆ์ด์–ด ๋‚ด๋ถ€ ํ…์„œ๋ฅผ ์—ฌ๋Ÿฌ GPU๋กœ ๋‚˜๋ˆ„์–ด ๊ฐ™์€ ๋ ˆ์ด์–ด๋ฅผ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌํ•จ์œผ๋กœ์จ GPU๋‹น ๋ฉ”๋ชจ๋ฆฌ ๋ถ€๋‹ด์„ ๋‚ฎ์ถ”๊ณ  ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๋†’์ด๋Š” ๋ฐฉ์‹์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿงฉ ์ฃผ์š” ํฌ์ธํŠธ

  1. ๊ธ€์€ OpenAI GPT-OSS ๋ชจ๋ธ ์ถœ์‹œ๋ฅผ ๊ณ„๊ธฐ๋กœ transformers ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋Œ€๊ทœ๋ชจ๋กœ ๊ฐœ์„ ๋˜์—ˆ๊ณ , ๊ทธ ๊ฒฐ๊ณผ ๋ชจ๋ธ ๋กœ๋“œยท์‹คํ–‰ยท๋ฏธ์„ธ์กฐ์ •์ด ๋” ํšจ์œจ์ ์ด ๋˜์—ˆ๋‹ค๊ณ  ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
  2. ํ•ต์‹ฌ ๋ณ€ํ™” ์ค‘ ํ•˜๋‚˜๋Š” Hub์—์„œ ์‚ฌ์ „ ๋นŒ๋“œ๋œ ์ปค๋„์„ ๋‚ด๋ ค๋ฐ›์•„ ์“ฐ๋Š” ๋ฐฉ์‹์œผ๋กœ, ๊ฐœ๋ณ„ ์ปค๋„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์˜์กด์„ฑ ์ฆ๊ฐ€์™€ ๋กœ์ปฌ ์ปดํŒŒ์ผ ๋ถ€๋‹ด์„ ์ค„์ด๋Š” ๋ฐ ์ดˆ์ ์„ ๋‘ก๋‹ˆ๋‹ค.
  3. GPT-OSS๋Š” MoE ๊ตฌ์กฐ๋ฅผ ํ™œ์šฉํ•˜๋ฉฐ Liger RMSNorm, MegaBlocks MoE MLP, attention sinks๋ฅผ ์ง€์›ํ•˜๋Š” Flash Attention 3, MXFP4 Triton ์ปค๋„ ๊ฐ™์€ ์—ฌ๋Ÿฌ ์ปค์Šคํ…€ ์ปค๋„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  4. MXFP4๋Š” 4๋น„ํŠธ ๋ถ€๋™์†Œ์ˆ˜์  ํ˜•์‹๊ณผ 32๊ฐœ ๋‹จ์œ„ ๋ธ”๋ก๋ณ„ ์Šค์ผ€์ผ๋ง์„ ๊ฒฐํ•ฉํ•ด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ํฌ๊ฒŒ ์ค„์ด๋ฉฐ, ์ง€์› ํ™˜๊ฒฝ์—์„œ๋Š” GPT-OSS 20B์™€ 120B๋ฅผ ํ›จ์”ฌ ์ž‘์€ VRAM์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  5. ์›๋ฌธ ํ›„๋ฐ˜๋ถ€๋Š” tensor parallelism์„ ์†Œ๊ฐœํ•˜๋ฉฐ, ๋ ˆ์ด์–ด ๋‚ด๋ถ€ ํ…์„œ๋ฅผ ์—ฌ๋Ÿฌ GPU๋กœ ๋‚˜๋ˆ„์–ด ๊ฐ™์€ ๋ ˆ์ด์–ด๋ฅผ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌํ•จ์œผ๋กœ์จ GPU๋‹น ๋ฉ”๋ชจ๋ฆฌ ๋ถ€๋‹ด์„ ๋‚ฎ์ถ”๊ณ  ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๋†’์ด๋Š” ๋ฐฉ์‹์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿง  ์ƒ์„ธ ์ •๋ฆฌ

1. GPT-OSS ์ถœ์‹œ์— ๋งž์ถ˜ transformers ์—…๊ทธ๋ ˆ์ด๋“œ

๊ธ€์€ OpenAI๊ฐ€ GPT-OSS ๋ชจ๋ธ ์‹œ๋ฆฌ์ฆˆ๋ฅผ ๊ณต๊ฐœํ–ˆ๊ณ , ์ด ๋ชจ๋ธ๋“ค์ด MXFP4 ์–‘์žํ™”, ํšจ์œจ์ ์ธ ์ปค๋„, ์ƒˆ๋กœ์šด ์ฑ„ํŒ… ํ˜•์‹ ๊ฐ™์€ ๊ธฐ์ˆ ์„ ํฌํ•จํ•œ๋‹ค๊ณ  ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. Hugging Face ์ธก์€ GPT-OSS๋ฅผ transformers์—์„œ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ƒ๋‹นํžˆ ๊ฐœ์„ ํ–ˆ์œผ๋ฉฐ, ๋ชฉํ‘œ๋Š” ๋ชจ๋ธ์„ ๋” ํšจ์œจ์ ์œผ๋กœ ๋กœ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ณ  ๋ฏธ์„ธ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ๊ตฌํ˜„์ด GPT-OSS์—๋งŒ ๊ฐ‡ํžˆ์ง€ ์•Š๊ณ  transformers ๋„๊ตฌ์ƒ์ž์˜ ์ผ๋ถ€๊ฐ€ ๋˜์–ด ํ˜„์žฌ์™€ ๋ฏธ๋ž˜์˜ ๋‹ค๋ฅธ ๋ชจ๋ธ๋„ ํ˜œํƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค. ๊นจ๋—ํ•œ ๊ตฌํ˜„์„ ๊ณต๊ฐœํ•˜๋ฉด ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์ƒˆ ๋ฐฉ๋ฒ•์„ ๋น ๋ฅด๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์ฑ„ํƒํ•  ์ˆ˜ ์žˆ๊ณ , MLX, llama.cpp, vLLM ๊ฐ™์€ ํ”„๋ ˆ์ž„์›Œํฌ๋„ ์ฐธ๊ณ  ๊ตฌํ˜„์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด ๋ฐฐ๊ฒฝ์œผ๋กœ ์ œ์‹œ๋ฉ๋‹ˆ๋‹ค.

2. Hub์—์„œ ๋‚ด๋ ค๋ฐ›๋Š” zero-build ์ปค๋„์˜ ๋ฌธ์ œ์˜์‹

์›๋ฌธ์€ ๋จผ์ € ์ปค๋„์„ ๊ฐ€์†๊ธฐ์—์„œ ํ–‰๋ ฌ๊ณฑ, ํ™œ์„ฑํ™”, ์ •๊ทœํ™” ๊ฐ™์€ ์ž‘์—…์„ ์‹คํ–‰ํ•˜๋Š” ํŠน์ˆ˜ํ•˜๊ณ  ์ž‘์€ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. eager PyTorch์—์„œ๋Š” ์—ฐ์‚ฐ๋งˆ๋‹ค ๊ฐœ๋ณ„ ์ปค๋„์ด ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰๋˜์–ด ์ดํ•ดํ•˜๊ธฐ๋Š” ์‰ฝ์ง€๋งŒ, ๋ฉ”๋ชจ๋ฆฌ ์ „์†ก๊ณผ ์ปค๋„ ์‹คํ–‰ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ถ”๊ฐ€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. PyTorch 2.0์˜ torch.compile๊ณผ TorchInductor๋Š” ์ปค๋„์„ ์ž๋™์œผ๋กœ ์œตํ•ฉํ•˜๊ณ  ์ตœ์ ํ™”ํ•ด ์„ฑ๋Šฅ์„ ๋†’์ด์ง€๋งŒ, ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” Flash Attention์ฒ˜๋Ÿผ ์ž์ฃผ ๋“ฑ์žฅํ•˜๋Š” ์—ฐ์‚ฐ ๋ฌถ์Œ์„ ์ง์ ‘ ์ตœ์ ํ™”ํ•œ ์ปค์Šคํ…€ ์ปค๋„๋„ ๋งŒ๋“ค์–ด ์™”์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ์ด๋Ÿฐ ์ปค๋„๋“ค์ด ๋ณ„๋„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ํฉ์–ด์ ธ ์žˆ๊ณ  CUDA, C++, Python ๋ ˆ์ด์–ด๊ฐ€ ์„ž์ธ ์ €์ˆ˜์ค€ ์ฝ”๋“œ๋ผ ๋Œ€์ƒ ์‹œ์Šคํ…œ์—์„œ ์ปดํŒŒ์ผํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์˜์กด์„ฑ๊ณผ ๋นŒ๋“œ ๋ถ€๋‹ด์ด ์ปค์ง„๋‹ค๋Š” ๋ฐ ์žˆ์Šต๋‹ˆ๋‹ค.

3. kernels ํŒจํ‚ค์ง€์™€ GPT-OSS์˜ ์ปค์Šคํ…€ ์ปค๋„ ์‚ฌ์šฉ

์ด ๊ธ€์—์„œ ์ œ์‹œํ•˜๋Š” ํ•ด๊ฒฐ์ฑ…์€ kernels ํŒจํ‚ค์ง€๊ฐ€ Hub์—์„œ ์ง€์› ์ปค๋„์˜ ์‚ฌ์ „ ๋นŒ๋“œ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋‚ด๋ ค๋ฐ›๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ํ•„์š”ํ•œ ์ปค๋„์„ ์ง€์ •ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋˜๊ณ , kernels๋Š” ์‹œ์Šคํ…œ๊ณผ ํ˜ธํ™˜๋˜๋Š” ๋ฒ„์ „์„ ์ฐพ์•„ ์ตœ์ดˆ ์‚ฌ์šฉ ์‹œ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. GPT-OSS๋Š” Mixture of Experts ๋ชจ๋ธ๋กœ์„œ Liger RMSNorm, MegaBlocks MoE MLP, attention sinks๋ฅผ ์ง€์›ํ•˜๋Š” Flash Attention 3, MXFP4 Triton ์ปค๋„ ๋“ฑ ์—ฌ๋Ÿฌ ์ปค์Šคํ…€ ์ปค๋„์„ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค. RMSNorm๊ณผ MegaBlocksMoeMLP๋Š” ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋ฅผ ํ†ตํ•ด ์ปค๋ฎค๋‹ˆํ‹ฐ ์ปค๋„์„ ๊ฐ€๋ฆฌํ‚ค๋ฉฐ, CUDA ๋˜๋Š” ROCm, ํ•™์Šต ๋˜๋Š” ์ถ”๋ก  ์—ฌ๋ถ€์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ์ปค๋„์ด ์ž๋™์œผ๋กœ ์„ ํƒ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ Hub์—์„œ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜ ์ปค์Šคํ…€ ์ปค๋„ ์‚ฌ์šฉ์€ ๋ชจ๋ธ ์ƒ์„ฑ ์‹œ use_kernels=True๋กœ ๋ช…์‹œ์ ์œผ๋กœ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

4. ์ปค์Šคํ…€ ์ปค๋„์˜ ์ ์šฉ ๋ฒ”์œ„์™€ ๋ฒค์น˜๋งˆํฌ ์ฃผ์˜์ 

์›๋ฌธ์€ ์ด ์„ค๊ณ„๊ฐ€ ํŠน์ • ๋ชจ๋ธ์— ๋งž์ถ˜ ๋™์‹œ์— ์ผ๋ฐ˜ํ™” ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Liger RMSNorm ์ปค๋„์€ ์ด๋ฏธ ์—ฌ๋Ÿฌ ๋ชจ๋ธ์—์„œ ์žฌ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๊ณ , MoE ์ปค๋„๋„ ํ–ฅํ›„ ๋‹ค๋ฅธ MoE ๋ชจ๋ธ์— ์ ์šฉ๋  ์—ฌ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์‹œ ์ฝ”๋“œ์—์„œ๋Š” openai/gpt-oss-20b๋ฅผ AutoModelForCausalLM.from_pretrained๋กœ ๋ถˆ๋Ÿฌ์˜ค๋ฉด์„œ dtype๊ณผ device_map์„ ์ž๋™์œผ๋กœ ์„ค์ •ํ•˜๊ณ  use_kernels=True๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ ์‹œ ๋กœ๊ทธ์—๋Š” LigerRMSNorm๊ณผ MegaBlocksMoeMLP๊ฐ€ ๊ฐ๊ฐ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ์—์„œ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ์›๋ฌธ์€ ํ…Œ์ŠคํŠธํ•œ ์‹œ์Šคํ…œ์—์„œ ์ด๋Ÿฌํ•œ ์ปค๋„์ด ๋” ํฐ ๋ฐฐ์น˜ ํฌ๊ธฐ์—์„œ ํŠนํžˆ ์ข‹์€ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์˜€๋‹ค๊ณ  ๋งํ•˜๋ฉด์„œ, ์‹ค์ œ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์ƒ์‚ฐ ํ™˜๊ฒฝ์— ์ตœ๋Œ€ํ•œ ๊ฐ€๊นŒ์šด ์กฐ๊ฑด์œผ๋กœ ์ง์ ‘ ๋ฒค์น˜๋งˆํฌํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๊ถŒ๊ณ ํ•ฉ๋‹ˆ๋‹ค.

5. Flash Attention 3์™€ attention sinks ์ง€์›

GPT-OSS ๋ชจ๋ธ์€ attention sinks๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ์›๋ฌธ์€ ์ด ๊ธฐ๋Šฅ์ด ํ’ˆ์งˆ์„ ๋†’์ด๊ณ  ๋” ๊ธด ์ปจํ…์ŠคํŠธ ์‚ฌ์šฉ์„ ๋•๋Š”๋‹ค๊ณ  ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. vLLM ํŒ€์€ ์ด ๊ธฐ๋Šฅ์„ ์ตœ์‹  Flash Attention์ธ Flash Attention 3์— ์ถ”๊ฐ€ํ–ˆ๊ณ , ๊ทธ ๊ฒฐ๊ณผ ๋งŒ๋“ค์–ด์ง„ ์ปค์Šคํ…€ ์ปค๋„์ด Hub์—์„œ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์›๋ฌธ์ด ์–ธ๊ธ‰ํ•œ ํ˜ธํ™˜ ๋Œ€์ƒ์€ Hopper ์•„ํ‚คํ…์ฒ˜์ด๋ฉฐ, ํ•ด๋‹น ํ•˜๋“œ์›จ์–ด๊ฐ€ ์žˆ๋‹ค๋ฉด attn_implementation์— kernels-community/vllm-flash-attn3๋ฅผ ์ง€์ •ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ถ€๋ถ„์€ ์•ž์„œ ์„ค๋ช…ํ•œ zero-build ์ปค๋„ ํ๋ฆ„๊ณผ ์ด์–ด์ง€๋ฉฐ, attention block์ฒ˜๋Ÿผ ๋ชจ๋ธ ์„ฑ๋Šฅ์— ์ค‘์š”ํ•œ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ๋‹จ์ผ ์ปค๋„๋กœ ์ตœ์ ํ™”ํ•ด ๋ฉ”๋ชจ๋ฆฌ ์ „์†ก์„ ์ค„์ด๊ณ  ์†๋„์™€ ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์„ ๊ฐœ์„ ํ•˜๋ ค๋Š” ๋ฐฉํ–ฅ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

6. MXFP4 ์–‘์žํ™”์˜ ํ˜•์‹๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์ ˆ๊ฐ ํšจ๊ณผ

์›๋ฌธ์€ ๋Œ€ํ˜• ์–ธ์–ด ๋ชจ๋ธ์ด ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์š”๊ตฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์–‘์žํ™”๊ฐ€ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. FP32๋Š” ์ˆซ์ž ํ•˜๋‚˜์— 32๋น„ํŠธ๋ฅผ ์“ฐ๊ณ  BF16์€ 16๋น„ํŠธ๋ฅผ ์“ฐ์ง€๋งŒ, ๋น„ํŠธ ํญ์„ ๋‚ฎ์ถ”๋ฉด ์ผ๋ถ€ ์ •๋ฐ€๋„๋ฅผ ํฌ๊ธฐํ•˜๋Š” ๋Œ€์‹  ๋ชจ๋ธ ํฌ๊ธฐ์™€ ๋ฉ”๋ชจ๋ฆฌ ์ด๋™๋Ÿ‰์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. MXFP4๋Š” 1๊ฐœ์˜ ๋ถ€ํ˜ธ ๋น„ํŠธ, 2๊ฐœ์˜ ์ง€์ˆ˜ ๋น„ํŠธ, 1๊ฐœ์˜ ๊ฐ€์ˆ˜ ๋น„ํŠธ๋กœ ๊ตฌ์„ฑ๋œ E2M1 4๋น„ํŠธ ๋ถ€๋™์†Œ์ˆ˜์  ํ˜•์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. E2M1 ์ž์ฒด๋Š” ๋งค์šฐ ๊ฑฐ์น ๊ธฐ ๋•Œ๋ฌธ์— MXFP4๋Š” 32๊ฐœ ์›์†Œ ๋‹จ์œ„ ๋ธ”๋ก๋งˆ๋‹ค ๊ณต์œ  ์Šค์ผ€์ผ์„ ์ €์žฅํ•˜๋Š” blockwise scaling์„ ๊ฒฐํ•ฉํ•ด ๋™์  ๋ฒ”์œ„๋ฅผ ๋ณด์™„ํ•ฉ๋‹ˆ๋‹ค. ์›๋ฌธ์— ๋”ฐ๋ฅด๋ฉด MXFP4๊ฐ€ ํ™œ์„ฑํ™”๋˜๋ฉด GPT-OSS 20B๋Š” ์•ฝ 16GB VRAM, GPT-OSS 120B๋Š” ์•ฝ 80GB VRAM์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์–ด ๋‹จ์ผ GPU์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅ์„ฑ์ด ํฌ๊ฒŒ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

7. transformers ์•ˆ์˜ MXFP4 ํ†ตํ•ฉ๊ณผ ์‹คํ–‰ ์กฐ๊ฑด

transformers๋Š” MXFP4๋ฅผ ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ์ง€์›ํ•˜๋ฉฐ, ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•ด ์ตœ์ ํ™”๋œ Triton ๊ธฐ๋ฐ˜ MXFP4 ์ปค๋„์„ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ์ด MXFP4๋ฅผ ์ง€์›ํ•˜๋Š”์ง€๋Š” GptOssConfig์—์„œ quantization_config๋ฅผ ํ™•์ธํ•ด ์•Œ ์ˆ˜ ์žˆ๊ณ , ์˜ˆ์‹œ์—๋Š” quant_method๊ฐ€ mxfp4๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์ด ์žˆ์œผ๋ฉด ์ง€์› ํ™˜๊ฒฝ์—์„œ ๋ชจ๋ธ์€ ์ž๋™์œผ๋กœ MXFP4 ๊ฒฝ๋กœ์™€ Triton ์ปค๋„์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ๋ฏธ์„ธ์กฐ์ •ํ•œ GPT-OSS ๋ชจ๋ธ์„ MXFP4 ํ˜•์‹์œผ๋กœ Hub์— ์ง์ ‘ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ๋„ ์–ธ๊ธ‰๋ฉ๋‹ˆ๋‹ค. GPU์—์„œ MXFP4๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด accelerate, kernels, triton 3.4 ์ด์ƒ์ด ํ•„์š”ํ•˜๊ณ , NVIDIA GPU๋Š” compute capability 7.5 ์ด์ƒ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์กฐ๊ฑด์ด ์ถฉ์กฑ๋˜์ง€ ์•Š์œผ๋ฉด transformers๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ bfloat16 ๊ฐ™์€ ๋” ๋†’์€ ์ •๋ฐ€๋„ ๊ฒฝ๋กœ๋กœ fallbackํ•˜๋ฉฐ, ์ด ๊ฒฝ์šฐ MXFP4๋ณด๋‹ค ์•ฝ 4๋ฐฐ ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

8. MXFP4 ์ปค๋„ ๋ฐฐํฌ์™€ Tensor Parallelism ๋„์ž…

MXFP4๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์“ฐ๋ ค๋ฉด GEMM๊ณผ fused operation์—์„œ 32๊ฐœ ์›์†Œ ๋ธ”๋ก๊ณผ ๊ฐ ๋ธ”๋ก์˜ ์Šค์ผ€์ผ์„ ์ดํ•ดํ•˜๋Š” ์ปค๋„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์›๋ฌธ์€ transformers๊ฐ€ MXFP4๊ฐ€ ํ•„์š”ํ•œ ๋ชจ๋ธ์„ ๋กœ๋“œํ•  ๋•Œ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ €์žฅ์†Œ์˜ MXFP4 ์ธ์‹ Triton ์ปค๋„์„ ์ž๋™์œผ๋กœ ๊ฐ€์ ธ์˜ค๋ฉฐ, ์ด ๊ฒฝ์šฐ ์•ž์„œ์˜ ์ผ๋ฐ˜ ์ปค์Šคํ…€ ์ปค๋„๊ณผ ๋‹ฌ๋ฆฌ use_kernels=True๋ฅผ ๋”ฐ๋กœ ์ง€์ •ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค๊ณ  ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. Hugging Face cache CLI๋กœ ํ™•์ธํ•˜๋ฉด kernels-community/triton_kernels์™€ openai/gpt-oss-20b๊ฐ€ ๋กœ์ปฌ ์บ์‹œ์— ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ๊ณ , ์ด๋Š” ์ปค๋„์ด ์‹คํ–‰ ์ค€๋น„ ์ƒํƒœ์ž„์„ ๋ณด์—ฌ์ฃผ๋Š” sanity check๋กœ ์ œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด์–ด์„œ ๊ธ€์€ tensor parallelism์„ ์†Œ๊ฐœํ•˜๋ฉฐ, ๋ ˆ์ด์–ด ๋‚ด๋ถ€ ํ…์„œ๋ฅผ ์—ฌ๋Ÿฌ GPU์— ๋‚˜๋ˆ„๊ณ  ๊ฐ GPU๊ฐ€ ์ž๊ธฐ shard๋ฅผ ๋ณ‘๋ ฌ๋กœ ๊ณ„์‚ฐํ•œ ๋’ค all-gather๋‚˜ all-reduce๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์œผ๋Š” ๋ฐฉ์‹์ด๋ผ๊ณ  ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ์‹์€ GPU๋‹น ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ค„์ด๊ณ  ๊ฐ™์€ ๋ ˆ์ด์–ด์—์„œ ์—ฌ๋Ÿฌ GPU๋ฅผ ๋™์‹œ์— ์ผํ•˜๊ฒŒ ํ•˜๋ฏ€๋กœ, ์‹œํ€€์Šค ๊ธธ์ด๋‚˜ ๋ฐฐ์น˜ ํฌ๊ธฐ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์ฒ˜๋ฆฌ๋Ÿ‰ ๊ฐœ์„ ์— ๋„์›€์ด ๋˜์ง€๋งŒ ๋น ๋ฅธ ๋‹จ์ผ ๋จธ์‹  ๋‚ด๋ถ€ ์—ฐ๊ฒฐ์ด ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ •๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

๐Ÿงพ ํ•ต์‹ฌ ์ฃผ์žฅ / ์‹œ์‚ฌ์ 

  • ์ด ๊ธ€์˜ ํ•ต์‹ฌ์€ GPT-OSS ์ง€์›์ด ๋‹จ์ˆœํ•œ ๋ชจ๋ธ ์ถ”๊ฐ€๊ฐ€ ์•„๋‹ˆ๋ผ, ์ปค๋„ ๋ฐฐํฌยท์–‘์žํ™”ยท๋ณ‘๋ ฌํ™” ๊ฐ™์€ ์‹คํ–‰ ์ธํ”„๋ผ๋ฅผ transformers ๋‚ด๋ถ€์— ์ผ๋ฐ˜ํ™”ํ•ด ๋„ฃ๋Š” ์ž‘์—…์ด์—ˆ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.
  • MXFP4๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ ˆ๊ฐ ํšจ๊ณผ๊ฐ€ ํฌ์ง€๋งŒ, 32๊ฐœ ๋‹จ์œ„ ๋ธ”๋ก ์Šค์ผ€์ผ์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ์ „์šฉ ์ปค๋„๊ณผ ํ•˜๋“œ์›จ์–ด ์กฐ๊ฑด์ด ํ•จ๊ป˜ ๋งž์•„์•ผ ์‹ค์šฉ์ ์ธ ์ด์ ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์›๋ฌธ์€ ์„ฑ๋Šฅ ๊ธฐ๋Šฅ์„ ์ผœ๋Š” ๋ฐฉ๋ฒ•๋งŒ ์ œ์‹œํ•˜์ง€ ์•Š๊ณ , ์ปค์Šคํ…€ ์ปค๋„๊ณผ MXFP4 ๋ชจ๋‘ ์‹ค์ œ ํ™˜๊ฒฝ์—์„œ ๋ฒค์น˜๋งˆํฌํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๋ฐ˜๋ณตํ•ด ๊ฐ•์กฐํ•˜๋ฉฐ ๋ฉ”๋ชจ๋ฆฌ์™€ ์ฒ˜๋ฆฌ๋Ÿ‰์˜ ์ตœ์  ์กฐํ•ฉ์€ ์‹œ์Šคํ…œ๋งˆ๋‹ค ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Œ์„ ๋ถ„๋ช…ํžˆ ํ•ฉ๋‹ˆ๋‹ค.

โœ… ์•ก์…˜ ์•„์ดํ…œ

  • OpenAI GPT-OSS๋ฅผ transformers์—์„œ ๋„์ž…ํ•  ๋•Œ Hub ๊ธฐ๋ฐ˜ ์ปค๋„ ๋‹ค์šด๋กœ๋“œ ๋ฐฉ์‹๊ณผ ๋กœ์ปฌ ์ปดํŒŒ์ผ ๋ฐฉ์‹์˜ ์˜์กด์„ฑ ๋ถ€๋‹ด์„ ๋น„๊ตํ•ด ์‚ฌ์šฉ ๋ฐฉ์‹์„ ์ •ํ•œ๋‹ค.
  • Liger RMSNorm, MegaBlocks MoE MLP, Flash Attention 3(attention sinks), MXFP4 Triton ์ปค๋„ ์กฐํ•ฉ์„ GPT-OSS 20Bยท120B์—์„œ ์‹ค์ œ VRAM ์ ˆ๊ฐ๊ณผ ์ฒ˜๋ฆฌ๋Ÿ‰ ์˜ํ–ฅ ๊ธฐ์ค€์œผ๋กœ ์ ๊ฒ€ํ•œ๋‹ค.
  • MXFP4 4๋น„ํŠธ + 32๊ฐœ ๋ธ”๋ก ์Šค์ผ€์ผ๋ง ์„ค์ •์„ ์ ์šฉํ•ด 20Bยท120B ๋ฏธ์„ธ์กฐ์ • ํ™˜๊ฒฝ์—์„œ VRAM ํ•œ๊ณ„์™€ ์„ฑ๋Šฅ ๋ณ€ํ™”๋ฅผ ์ ๊ฒ€ํ•œ๋‹ค.

โ“ ์—ด๋ฆฐ ์งˆ๋ฌธ

  • Hub์—์„œ ๋‚ด๋ ค๋ฐ›์€ ์‚ฌ์ „ ๋นŒ๋“œ ์ปค๋„์˜ ๋ฒ„์ „ ํ˜ธํ™˜์„ฑ ์‹คํŒจ ๊ฐ€๋Šฅ์„ฑ์€ ์–ด๋А ์ง€์ ์—์„œ ๊ฐ€์žฅ ๋จผ์ € ํƒ์ง€ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?
  • MXFP4 4๋น„ํŠธ + 32๊ฐœ ๋ธ”๋ก ์Šค์ผ€์ผ๋ง์ด ์ •ํ™•๋„๋‚˜ ๋ฏธ์„ธ์กฐ์ • ์ˆ˜๋ ด์„ฑ์— ๋ผ์น˜๋Š” ์˜ํ–ฅ์€ ์–ด๋–ค ๊ธฐ์ค€์œผ๋กœ ํŒ๋‹จํ•  ๊ฒƒ์ธ๊ฐ€?
  • ์ธต ๋‚ด๋ถ€ ํ…์„œ๋ฅผ GPU ๊ฐ„ ๋ถ„ํ• ํ•˜๋Š” ํ…์„œ ๋ณ‘๋ ฌํ™”๋Š” ์–ด๋–ค GPU ์กฐํ•ฉ์—์„œ ๋ฉ”๋ชจ๋ฆฌ ์™„ํ™”์™€ ์ฒ˜๋ฆฌ๋Ÿ‰ ํ–ฅ์ƒ์„ ๋™์‹œ์— ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?

๊ด€๋ จ ๋ฌธ์„œ

๊ณตํ†ต ํƒœ๊ทธ์™€ ์ฃผ์ œ ํ๋ฆ„์„ ๊ธฐ์ค€์œผ๋กœ ๊ฐ™์ด ๋ณด๋ฉด ์ข‹์€ ๋ฌธ์„œ๋ฅผ ์ด์–ด์„œ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.