https://github.com/microsoft/unilm/tree/master/bitnet
๋ง์ดํฌ๋ก์ํํธ ์ธ์ด๋ชจ๋ธ ๊ด๋ จ ๊นํ๋ธ์ ์ค๋ ์ถ๊ฐ ์๋ฃ ์ฌ๋ผ์ด
The Era of 1-bit LLMs: Training Tips, Code and FAQ
๊ทธ๋ฆฌ ๊ธธ์ง๋ ์์์ ์ ์ฒด์ ์ผ๋ก ๋ณด๊ณ ์์
์ ์๋ค๋ ํ์์ ์ธ ๋ฐ์๋ค์ด ๊ฝค ์์ด์ ๊ทธ๋ฌ๋์ง,
๋ ผ๋ฌธ์ 'Believing is seeing.' ์ด๋ผ๊ณ ๋ฐ์ ๋์
(์ง์ ๋ณด๋ฉด ์ ๋ฏฟ์ ์ ์์ ๊ฒ์ด๋ค.)
์ด๋ป๊ฒ ํ์ตํ๋์ง์ ํ์ต ๊ณผ์ ์ ๋ํ ๋ณด๋ค ๊ตฌ์ฒด์ ์ธ ์๋ฃ, ํ์ดํผํ๋ผ๋ฏธํฐ ๋ฑ ๊ณต๊ฐํ๊ณ
์ด๋ป๊ฒ ํ์ดํ ์น๋ก ๊ตฌํํ๋์ง๋ ๊ณต๊ฐํจ
์ด๋ฒ ๋ณด๊ณ ์์์ ๊ณต๊ฐํ ๊ทธ๋ํ
์ ์๋ค์ 1.58 BitNet์ด S์ํ ์์ค ๊ณก์ ์ ๋ณด์ฌ์ค๋ค๊ณ ๋งํจ
๊ทธ๋ฆฌ๊ณ ์ด ๊ทธ๋ํ๊ฐ ์ด ๋ณด๊ณ ์์ ํต์ฌ์ด๋ผ๊ณ ๋ณผ ์๋ ์๋๋ฐ,
๋ชจ๋ธ ํฌ๊ธฐ๊ฐ ์ปค์ง๋ฉด ์ปค์ง ์๋ก ์ ์ฒด ์ ๋ฐ๋ ๋ชจ๋ธ๊ณผ ํ์ต ์์ค ์ฐจ์ด๊ฐ ์ค์ด๋๋ ๊ฒฝํฅ์ ๋ณด์ฌ์ค
์๋๋ ์ ์๋ค์ด ์จ๋์ FAQ
1. ์ผํญ {-1, 0, 1} ๋ง๊ณ ๋ด๊ฑด ์ ์์?
{-1, 1} : ์๋ BitNet b1(์ ์๋ค์ ์ด์ ๋ ผ๋ฌธ)์์ ๊ตฌํ์ด์๋๋ฐ ์ฑ๋ฅ์ด ์ผํญ๋ณด๋ค ๋ธ๋ ธ์
{0, 1} : ์ต์ ํ๊ฐ ๋งค์ฐ ๋ถ์์ ํจ
{-2, -1, 0, 1} or {-2, -1, 0, 1, 2}๊ฐ์ด ์ถ๊ฐ์ ์ธ ๋นํธ ์ฌ์ฉ : ์ผํญ {-1, 0, 1}ํ๊ณ ๋ณ ์ฐจ์ด ์์ด์ ์์
2. ํ๋ จ๋ ๋นจ๋ผ์ง?
ํ์ฌ ๊ตฌํ์ ์ฌ์ ํ FP16/BF16์ ์์ด์ ์คํ์์ ์ค์ ์๋ ํฅ์์ ์์
ํ์ง๋ง ๋ํ ๋ชจ๋ธ์ ๊ฒฝ์ฐ ๊ฐ์ํํ ์ ์๋ ์๋นํ ๊ธฐํ๊ฐ ์์
3. BitNet์ด ๋ ํฐ ๋ชจ๋ธ์๋ ์๋ํจ?
"The Era of 1-bit LLMs" ๋ ผ๋ฌธ์์ ๊ณต๊ฐํ ๊ฒ์ฒ๋ผ ์์ ์ ๋ฐ๋ LLM๊ณผ BitNet 1.58 ์ฌ์ด์ ๊ฐ๊ฒฉ์ด ๋ชจ๋ธ ํฌ๊ธฐ๊ฐ ์ปค์ง์ ๋ฐ๋ผ ์์์ง๋ ๊ฒ์ ๋ณด์ฌ์ฃผ๋ ๋ช ํํ ์ถ์ธ๊ฐ ์์
์ด๋ BitNet์ด ๋ ํฐ ๋ชจ๋ธ์ ๋์ฑ ํจ๊ณผ์ ์ด๋ผ๋ ๊ฒ์ ์๋ฏธํจ
์คํ๋ ค BitNet์ ๋ ํฐ ๋ชจ๋ธ ํฌ๊ธฐ์์ ๋ ๋์ ์ฑ๋ฅ์ ๋ฐํํจ
1.58 ๋นํธ ๋ชจ๋ธ์ ๋ ๋์ ์ผ๋ฐํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ๊ณผ์ ํฉ์ด ๋ ๋ฐ์ํ ์ ์์
๊ทธ๋ฆฌ๊ณ ์๋์ ํ์ดํ ์น ๊ธฐ๋ฐ ๊ตฌํ ์ฝ๋๋ ๊ณต๊ฐํ๋๋ฐ, ๋๊ฒ ๊ฐ๋จํด์ ๊ธ๋ฐฉ ์ฌ๋๋ค์ด ์คํํด๋ณผ ๋ฏ
์ด๋ฒ์๋ ์ฌ์ ํ ์ ์๋ค์ ์ฃผ์ฅ์ด๊ธฐ๋ ํ๋
์ ์๋ค์ ๋ฏฟ์์ด ๊ต์ฅํ ๊ตณ๊ฑดํด๋ณด์ธ๋ค.
๋
์ด๊ฒ๋ ๋นจ๋ฆฌ ๋ํ๋ชจ๋ธํ๋ ๋์์คฌ์ ์ข๊ฒ ๋ค
์ค
์ด๊ฑฐ ๊ฒฐ๊ณผ๊ฐ ์ง์ง ๊ถ๊ธํจ
๋๋์ด
์ง์ง์๋
๋นํธ๋ท๋ ์์ํจ ์คํ์์ค ์ง์์์ ์ด๊ฑฐ ์์ฉํด๋ณด๋ฉด ์ข๊ฒ ์ - dc App
๊ฒ์์ค๋ฐ. ์น๋ค๊ตฌ์์์ผ
์ด๊ฑฐ๋ก KLUE ํ์ต ์ํ๋ ค๋
ํฌ๊ธฐ๊ฐ ์ปค์ง๋ฉด ํจ์จ์ด ๋ ์ข์์ง ๊ฑฐ๋ค ๋ผ๊ณ ๋ฏฟ๋ ๊ฑฐ ์ด๊ฑฐ๊ฐ ๊ฑ ใ ใด ํคํฌ์ธํธ ์๋๊ฐ ํฐ ๋ชจ๋ธ ์ ๋๋ ค๋ด ใ ใ ์ด ๋ฌธ์ ์๋๋ฐ ์ผ๋ฐฉ์ ์ฃผ์ฅ์ด๊ธด ํด๋ ์คํ๋ ค ๋ ์ข์์ง ๊ฑฐ์ ใ ใ ํ๋ ๊ฑฐ ๋ณด๋ฉด
์ 3๋๋ฌธ์ ๋ฐ์ ๋ฐ์ ํ๋๋ฐ ๊ฐ๊ตณ์ด๋ค
๋ชจ๋ธ ํฌ๊ธฐ๊ฐ ์ปค์ง๋ฉด ์ปค์ง ์๋ก ์ ์ฒด ์ ๋ฐ๋ ๋ชจ๋ธ๊ณผ ํ์ต ์์ค ์ฐจ์ด๊ฐ ์ค์ด๋๋ ๊ฒฝํฅ์ ๋ณด์ฌ์ค ์ฅ์ซ์์?
์ค๊ตญ์ธ๋ค์ด ์ด ๋ ผ๋ฌธ์ด๋ผ ์์ด๊ฐ ์ ์ ์ฝํ๋ค
์ด์ฉ์ง ์์ด์ธ๋ฐ ์กด๋ ์์ฝํ๋๋ผ
๋น์ ๋ชจ๋ธ๋ ์ ์ฉ์ด ๊ฐ๋ฅํ์ง ๊ถ๊ธํ๋ค์. ํนํ ViT ๊ณ์ด์ด๋ MLPMixer ๋ชจ๋ธ์ linear ์ฐ์ฐ์ด ๋๋ถ๋ถ์ธ ๋งํผ ์ ์ฉ์ด ๊ทธ๋ ๊ฒ ํ๋ค์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทผ๋ฐ ์ด๋ ๊ฒ ๊ฐ๋จํ ๋ฐฉ์์ ์ง๊ธ๊น์ง ์๋ฌด๋ ๋ชป ์ฐพ์๊ณ ๋๋ฌด ์ ๋ฆฌํ ์ํฉ์ด๋ผ ใ 1ใ ใทใ ๋๋๋์ ์ข ์ํจ... ๊ฑ ์ค์บ ์ธ๋ฏ
๋๋ณด๋์ธ๊ฐ์ด์๋๋ฐ ์ด๋ป๊ฒ ์ค์บ ์
์ค๋ค๊ฐ ๋๋ณด์ง ์ ๋๋ณด๋ ์ธ๊ฐ์ด ์์ด?
์ง์ง์ฌ์ผ ๋์๋ณด์ง ๊ฐ์ง์ธ๋ฐ ๋ญ๋์๋ด ใ ใ ใ ใ
์ง์น๋ ๋ต๋ณ์ผ์๋ ์๋๋ฐ, ์๋ Transformer ๋ํ ๋ชจ๋ธ์ 4bit quantization๊น์ง๋ ํฐ ์์ค์ด ์๋ค๋ ๋ฆฌํฌํธ๊ฐ ๋ง์ด ์์ (QLORA์๋ 4-bit NormalFloat (NF4) LLaMa ์คํ ์๋ฃ๋ฑ์ ์ข ์ธ๊ธ). ํ๋ผ๋ฏธํฐ๊ฐ ์๋ ๋ง๋ค๋ณด๋ ์ค์ผ์ผ์ ์ฌ๋ฆด์๋ก ๊ทธ๊ฑธ ๋ค ํํํ์ ๋ค ์ด๋ค๋๊ฑด ์ข ๋ญ๋น์๋ค๋. ๊ทผ๋ฐ ์๊ฐ๋ณด๋ค ํจ์ฌ ๋ ๋ด๋ ค๋ ์์๋ณด๋ค ์์ค์ด ๋ง์ง ์์๊ฐ ๋ณด๋ค.
๊ทธ๋ฌ๋ ๋์ฑ ํฐ๋ฌด๋์๋ ๊ฐ๋ ์ด ์๋ ๊ฑฐ์ง ์ ๋งคํ๋ ํ์์ ํ์คํ๊ฒ ์ ๋ฆฌํด์ค ๊ฒ์ด๋ผ๊ณ ๋ณผ ์ ์์ ๋ฏํจ
์ค
์ด๋ฐ๊ฒ ๋์ผ ์จ๋๋ฐ์ด์ค AI๊ฐ ๋นจ๋ฆฌ ์ฑ์ฅํ๋ ๊ฑฐ์. ๋ก๋ด์๋ ํ์์ธ๋ฐ ๋คํ์ด๋ค
ในใ
ํ์ ์ด๋ค!
์๋นํ ๊ด์ฐฎ๋ค
training loss ๋ง๊ณ validation loss ๊ทธ๋ํ๋ ์๋?
validation loss ๊ทธ๋ํ๋ train๋ณด๋ค ๋๋ฝ๊ฒ ๋์ค๊ธดํ์ง. ์ด์ฐจํผ ์ฑ๋ฅ์ validation์ผ๋ก ๋ณด๋๊ฑฐ๋๊น ๋ค๋ฅธ ์ ๋ฐ๋ ๋์ ๋ชจ๋ธ๋คํ๊ณ ์ฑ๋ฅ์ฐจ์ด๊ฐ ํฌ์ง ์๊ฑฐ๋ ๋ ๋์ผ๋ฉด ์๊ด์ ์ง. ๋ชจ๋ธ์ด ์ปค์ง์๋ก ์ ๋ฐ๋ ๋์ ๋ชจ๋ธ๊ณผ์ loss ์ฐจ์ด๊ฐ ์ค์ด๋๋ ๊ฒฝํฅ์ด ๋์ค๋๊ฒ ์ ๊ธฐํ๋ค.
์ชฝ๋ํ ์ ๋.๊ทผ๋ฐ ๊ถ๊ธํ๊ธด ํ๋ค
ํ์ํด~
์ผ๋จ ๊ตฌ์ํด