๐ ๊ฐ์
2024๋
๋ง Microsoft๊ฐ ๋ฐํํ BitNet์ ๊ณ ์ฑ๋ฅ LLM(Large Language Model)์ 1bit ์ ๋ฐ๋๋ก ํ๋ จํ๋ ์๋ก์ด ๋ฐฉ๋ฒ๋ก ์
๋๋ค.
๊ธฐ์กด์๋ 16bit(FP16), 8bit(INT8) ๊ธฐ๋ฐ์ ๋ชจ๋ธ ์ต์ ํ๊ฐ ์ฃผ๋ฅผ ์ด๋ฃจ์์ผ๋, BitNet์ ๊ทน๋จ์ ์ธ ์ ๋ฐ๋ ์ถ์๋ฅผ ํตํด ํ์ต ์์ฒด๋ฅผ 1bit๋ก ์ํํ๋ฉฐ๋ ๊ฒฝ์๋ ฅ ์๋ ์ฑ๋ฅ์ ์ ์งํ๋ค๋ ์ ์์ ํฐ ์ฃผ๋ชฉ์ ๋ฐ์์ต๋๋ค.
๐ฏ ์์ฝํ์๋ฉด:
BitNet = “๋ ์ ์ ๊ณ์ฐ์ผ๋ก, ๋ ํฐ ๋ชจ๋ธ์, ๋ ๋น ๋ฅด๊ฒ, ๋ ์ธ๊ฒ” ํ์ตํ๋ ๊ธฐ์
๐ 1. BitNet์ ํต์ฌ ์์ด๋์ด: 1bit Weight Training
โ ์ ํต์ ์ธ ํ๋ จ ๋ฐฉ์
- ์ผ๋ฐ์ ์ธ LLM์ FP32 ๋๋ FP16 ์ ๋ฐ๋๋ก ํ์ต๋ฉ๋๋ค.
- ๊ณ์ฐ๋์ด ๋งค์ฐ ํฌ๊ณ , GPU/TPU ์์์ ๋ง๋ํ๊ฒ ์๋ชจํฉ๋๋ค.
- ํ์ธํ๋์ด๋ ์ถ๋ก ์ 8bit, 4bit๋ก ์์ถ์ ๊ฐ๋ฅํ์ง๋ง, ํ์ต ์์ฒด๋ ๊ณ ์ ๋ฐ ์ฐ์ฐ์ด ํ์ํ์ต๋๋ค.
โ BitNet์ ํ์
- ๋ชจ๋ธ ํ๋ผ๋ฏธํฐ๋ฅผ 1bit (๊ฐ์ด -1 ๋๋ +1)๋ก ์ ํํ์ฌ ํ์ต
- ๋ชจ๋ weight๋ binary ๊ฐ๋ง ์ฌ์ฉ
- ์ ๋ฐ๋ ์ํด๋ฅผ ์ค์ด๊ธฐ ์ํด, ์ค์ผ์ผ๋ง ๊ณ์(scale factor) ๋ฅผ ๋ฐ๋ก ํ์ตํฉ๋๋ค.
- ๊ณ์ฐ์ ๊ฐ๋จํ ๋ถํธ ์ฐ์ฐ + ์ค์ผ์ผ๋ง๋ง ํ์ โ ๊ณฑ์ ์ ๊ฑฐ
๐ง 2. BitNet ๊ตฌ์กฐ์ ๊ธฐ์ ์ ๊ตฌ์ฑ
BitNet์ Microsoft Research์์ ์ ์ํ ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์กฐ์ ํน์ง์ ๊ฐ์ง๋๋ค:
๊ตฌ์ฑ ์์ | ์ค๋ช |
---|---|
Binary Weights | ํ๋ผ๋ฏธํฐ ๊ฐ์ด -1 ๋๋ +1๋ง ๊ฐ์ง |
Scale Factor | ๊ฐ weight matrix์ ๊ณฑํด์ง๋ learnable scalar ๊ฐ |
1bit GEMM | General Matrix Multiply ์ฐ์ฐ๋ sign ๊ธฐ๋ฐ์ผ๋ก ๋จ์ํ |
GELU โ Identity | ๋น์ ํ์ฑ ์ ๊ฑฐํ์ฌ binary์ ์ ํฉํ ๊ตฌ์กฐ๋ก ๊ฐ์ํ |
๐ก ์:
W = alpha ร Sign(Wb)
์ฌ๊ธฐ์ Wb๋ -1/+1๋ก ์ ํ๋ weight matrix์ด๋ฉฐ, alpha๋ ํ์ต ๊ฐ๋ฅํ ์ค์ ์ค์ผ์ผ๊ฐ์ ๋๋ค.
โ๏ธ 3. ์ฑ๋ฅ ๋น๊ต์ ํ๊ฐ
Microsoft๋ ๋ค์ํ ์คํ์ ํตํด ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ ์ํ์ต๋๋ค.
๐ BitNet ์ฑ๋ฅ (MMLU ๊ธฐ์ค)
๋ชจ๋ธ | ํ๋ผ๋ฏธํฐ ์ | ์ ๋ฐ๋ | MMLU ์ ํ๋ | GPU ์ฌ์ฉ๋ |
---|---|---|---|---|
BitNet-1b-1.3B | 1.3B | 1bit | 64.7% | ๋งค์ฐ ๋ฎ์ |
GPT-2 | 1.5B | FP32 | 58.9% | ์ค๊ฐ |
LLaMA 7B | 7B | FP16 | 67% | ๋งค์ฐ ๋์ |
๐ BitNet์ 1.3B ํ๋ผ๋ฏธํฐ๋ก๋ GPT-2๋ฅผ ๋ฅ๊ฐํ๊ณ , ์ฐ์ฐ๋์ ์์ญ ๋ฐฐ ์ ์
๐ ์ถ๋ก ๋น์ฉ์ 8x~16x ๋ฎ๊ณ , ๋ฉ๋ชจ๋ฆฌ ์๊ตฌ์ฌํญ๋ ๊ทน๋๋ก ์์
๐ 4. BitNet์ ์ฅ์
ํญ๋ชฉ | ๋ด์ฉ |
---|---|
โก ํจ์จ์ฑ | ์ ๋ ฅ ์๋น, ์ฐ์ฐ๋, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ๋ํญ ๊ฐ์ |
๐งฑ ๊ตฌํ ๋จ์์ฑ | ๊ณฑ์ ์ ๊ฑฐ๋ ์ฐ์ฐ ๊ตฌ์กฐ๋ก ํ๋์จ์ด ๊ตฌํ ์ ๋ฆฌ |
๐ ๋น์ฉ ์ ๊ฐ | GPU ์์ด๋ CPU๋ Edge ์ฅ์น์์๋ ํ์ต ๊ฐ๋ฅ |
๐ ํ์ฅ์ฑ | ์์ ๋น์ฉ์ผ๋ก ๋ ๋ง์ ํ๋ผ๋ฏธํฐ ์คํ ๊ฐ๋ฅ |
๐ 5. ๋จ์ ๊ณผ ํ๊ณ
- ๐งช ์์ง ์ด๊ธฐ ์ฐ๊ตฌ ๋จ๊ณ: ๋ค์ํ ์ธ์ด/์์ ์์ ์ผ๋ฐํ ์ฑ๋ฅ ๋ถ์กฑ
- ๐ง ๋ณต์กํ reasoning์๋ ํ๊ณ ๊ฐ๋ฅ์ฑ
- ๐ง 1bit ์ ๋ฐ๋๋ ๊ทธ๋๋์ธํธ ํญ์ฃผ๋ ์์ค ๋ฌธ์ ์ ์ทจ์ฝ โ ์ค์ผ์ผ๋ง ์ ๋ต ํ์
๐ฌ 6. ํ์ฉ ๊ฐ๋ฅ์ฑ
ํ์ฉ ์์ญ | ์์ |
---|---|
๋ชจ๋ฐ์ผยท์๋ฒ ๋๋ AI | Edge ๋๋ฐ์ด์ค์์์ ๋๊ท๋ชจ ๋ชจ๋ธ ์ถ๋ก |
LLM ๊ฒฝ๋ํ ์ฐ๊ตฌ | Distillation, ์์ํ ๊ธฐ๋ฐ์ ๊ต์ฐจ์ ์ฉ |
์ด์ ์ ๋ ฅ AI ์นฉ ๊ฐ๋ฐ | Custom ASIC/NPU์ ์ต์ ํ๋ ์ฐ์ฐ |
AI ๊ต์ก/์ฐ๊ตฌ์ฉ ๋ชจ๋ธ | GPU ์๋ ํ๊ฒฝ์์ ๋ชจ๋ธ ํ์ต ์ค์ต ๊ฐ๋ฅ |
๐ 7. BitNet๊ณผ ๊ฒฝ์ ๊ธฐ์ ๋น๊ต
๊ธฐ์ | ๋ฐฉ์ | ์ ๋ฐ๋ | ํน์ง |
---|---|---|---|
BitNet | Binary + Scale | 1bit | ํ๋ จ ์์ฒด๋ฅผ 1bit๋ก ์ํ |
QLoRA | ์์ํ ํ์ธํ๋ | 4bit | ๊ธฐ์กด ๋ชจ๋ธ ์์ ํ๋ จ |
LLaMA.cpp | ์ถ๋ก ์ต์ ํ | 4bit | ๋ก๋ฉ/์คํ๋ง ๊ฒฝ๋ํ |
GPTQ | ์ถ๋ก ์ฉ ์ ์ ์์ํ | 4bit | ํ์ต ํ ์์ํ ์ ์ฉ |
โ ๊ฒฐ๋ก : BitNet์ ‘๊ฐ๋ฅํ๊ฐ’๋ฅผ ‘๊ฐ๋ฅํ๋ค’๋ก ๋ฐ๊พผ ๊ธฐ์
BitNet์ ๊ธฐ์กด AI ๋ชจ๋ธ์ โํฌ๊ณ ๋ฌด๊ฑฐ์ดโ ํ๊ณ๋ฅผ ๋ฐ์ด๋๋ ๊ธฐ์ ์
๋๋ค.
1bit๋ก ํ์ต ๊ฐ๋ฅํ ๊ณ ์ฑ๋ฅ ๋ชจ๋ธ์ด ํ์คํ๋๋ฉฐ, ์์ผ๋ก๋ **โ์๊ณ ๊ฐ๋ฒผ์ด AIโ**๊ฐ ์๋ก์ด ์ฃผ๋ฅ๊ฐ ๋ ์ ์์ต๋๋ค.
โ๋ชจ๋๋ฅผ ์ํ AI, ๋๊ตฌ๋ ํ๋ จ ๊ฐ๋ฅํ AIโ
์ด๊ฒ์ด BitNet์ด ์ด์ด๊ฐ๋ ๋ฐฉํฅ์ฑ์ ๋๋ค.
๐ ์ฐธ๊ณ ๋ ผ๋ฌธ
- Microsoft Research: BitNet: Training Language Models in 1 Bit
Microsoft Research์์ ๊ฐ๋ฐํ BitNet b1.58 2B4T๋ ์ฝ 20์ต ๊ฐ์ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฐ์ง ์ต์ด์ ์คํ์์ค 1-bit ์ ๋ฐ๋ ๋ํ ์ธ์ด ๋ชจ๋ธ(LLM)์ ๋๋ค. ์ด ๋ชจ๋ธ์ 4์กฐ ๊ฐ์ ํ ํฐ์ผ๋ก ํ๋ จ๋์์ผ๋ฉฐ, Hugging Face๋ฅผ ํตํด ๊ณต๊ฐ๋์์ต๋๋ค .โํ๊น ํ์ด์ค+12ํ๊น ํ์ด์ค+12ํ๊น ํ์ด์ค+12ํ๊น ํ์ด์ค+1ํ๊น ํ์ด์ค+1
๐ ๋ชจ๋ธ ๊ฐ์
- ๋ชจ๋ธ๋ช : BitNet b1.58 2B4T
- ํ๋ผ๋ฏธํฐ ์: ์ฝ 20์ต ๊ฐ
- ํ๋ จ ๋ฐ์ดํฐ: 4์กฐ ๊ฐ์ ํ ํฐ
- ์ ๋ฐ๋: 1.58-bit ๊ฐ์ค์น, 8-bit ํ์ฑํ (W1.58A8)
- ํ ํฌ๋์ด์ : LLaMA 3 ๊ธฐ๋ฐ (์ดํ ํฌ๊ธฐ: 128,256)
- ์ต๋ ์ํ์ค ๊ธธ์ด: 4096 ํ ํฐ
- ๋ผ์ด์ ์ค: MITโํ๊น ํ์ด์ค+4arXiv+4ํ๊น ํ์ด์ค+4ํ๊น ํ์ด์ค+2ํ๊น ํ์ด์ค+2ํ๊น ํ์ด์ค+2ํ๊น ํ์ด์ค+1ํ๊น ํ์ด์ค+1ํ๊น ํ์ด์ค
โ๏ธ ์ํคํ ์ฒ ํน์ง
- BitLinear ๋ ์ด์ด: ๊ฐ์ค์น๋ฅผ {-1, 0, +1}์ 3์ง์๋ก ์์ํํ์ฌ ์ฐ์ฐ ํจ์จ์ฑ ํฅ์
- ํ์ฑํ ํจ์: ReLUยฒ (์ ๊ณฑ๋ ReLU) ์ฌ์ฉ
- ์ ๊ทํ: Sub-Layer Normalization (SubLN) ์ ์ฉ
- ํธํฅ ํญ ์ ๊ฑฐ: ์ ํ ๋ฐ ์ ๊ทํ ๋ ์ด์ด์์ ํธํฅ ํญ ์ ๊ฑฐ
- ์์น ์๋ฒ ๋ฉ: Rotary Position Embeddings (RoPE) ์ฌ์ฉโHugging Face Forums+2ํ๊น ํ์ด์ค+2ํ๊น ํ์ด์ค+2ํ๊น ํ์ด์ค+2ํ๊น ํ์ด์ค+2ํ๊น ํ์ด์ค+2
๐งช ํ๋ จ ๋ฐ ์ ๋ ฌ ๋จ๊ณ
- ์ฌ์ ํ๋ จ (Pre-training): ๊ณต๊ฐ ํ ์คํธ ๋ฐ ์ฝ๋ ๋ฐ์ดํฐ์ ๊ณผ ์ํ ๋ฌธ์ ๋ฐ์ดํฐ๋ก ๋๊ท๋ชจ ํ๋ จ
- ์ง๋ ํ์ต (Supervised Fine-Tuning, SFT): ๋ช ๋ น์ด ์ํ ๋ฐ ๋ํํ ๋ฐ์ดํฐ์ ์ผ๋ก ๋ฏธ์ธ ์กฐ์
- ์ง์ ์ ํธ ์ต์ ํ (Direct Preference Optimization, DPO): ์ธ๊ฐ์ ์ ํธ๋๋ฅผ ๋ฐ์ํ์ฌ ๋ชจ๋ธ ์ ๋ ฌโ
๐ ์ฑ๋ฅ ๋ฐ ํจ์จ์ฑ
BitNet b1.58 2B4T๋ ์ธ์ด ์ดํด, ์ํ์ ์ถ๋ก , ์ฝ๋ฉ ๋ฅ๋ ฅ, ๋ํ ๋ฅ๋ ฅ ๋ฑ ๋ค์ํ ๋ฒค์น๋งํฌ์์ ๋๊ธ์ ๊ณ ์ ๋ฐ ๋ชจ๋ธ๊ณผ ์ ์ฌํ ์ฑ๋ฅ์ ๋ณด์ ๋๋ค. ๋ํ, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋, ์๋์ง ์๋น, ์ถ๋ก ์ง์ฐ ์๊ฐ ์ธก๋ฉด์์ ์๋นํ ํจ์จ์ฑ์ ์ ๊ณตํฉ๋๋ค .โํ๊น ํ์ด์ค+12ํ๊น ํ์ด์ค+12ํ๊น ํ์ด์ค+12
๐ ํ์ฉ ๋ฐ ๋ฐฐํฌ
- Hugging Face ๋ชจ๋ธ ํ๋ธ: microsoft/bitnet-b1.58-2B-4T
- ๊ณต์ ์ถ๋ก ์ฝ๋: bitnet.cpp
- ๋ค์ํ ํฌ๋งท ์ ๊ณต:
- 1.58-bit ์์ํ๋ ๊ฐ์ค์น
- BF16 ํฌ๋งท์ ๋ง์คํฐ ๊ฐ์ค์น (ํ๋ จ ๋ฐ ๋ฏธ์ธ ์กฐ์ ์ฉ)
- GGUF ํฌ๋งท (CPU ์ถ๋ก ์ฉ)โHugging Face Forums+12ํ๊น ํ์ด์ค+12ํ๊น ํ์ด์ค+12ํ๊น ํ์ด์ค+5ํ๊น ํ์ด์ค+5ํ๊น ํ์ด์ค+5ํ๊น ํ์ด์ค+4ํ๊น ํ์ด์ค+4ํ๊น ํ์ด์ค+4