Ternary QAT KO - teamswyg/laya-tools GitHub Wiki
3์ง ์์ฌ๊ฒฐ์ ํค๋์ ์ค์ ํ์ต๊ณผ PDCA
English ยท ์ด์ #17 ยท ์ด์ ์์ถ ์คํ ยท ๊ณต๊ฐ HF ์ปฌ๋ ์
์ด๋ฒ์๋ ํ์ต๋ ๊ฐ์ค์น๋ฅผ ๋ง์ง๋ง์ ์ค์ด๊ธฐ๋ง ํ๋ ๋ฐฉ์์์ ๋์๊ฐ, ์ค์ ๋ก 3์ง ๊ฐ์ค์น๋ก ์์ธกํ๋ฉด์ ํ์ตํ์ต๋๋ค. ๋ ๋ฒ์ PDCA์ ์ด 32๊ฐ ํ์ต ํ๋ณด๋ฅผ ์คํํ์ต๋๋ค. ์ ํ๋ ํค๋๋ 572B์ด๋ฉฐ 3,072๊ฐ ์ ํ ๊ฐ์ค์น๋ฅผ ๊ธฐ์ค์ผ๋ก ํค๋ยท๋ฐฐ์จยทํธํฅ์ ํฌํจํด 1.490bit/weight์ ๋๋ค. ์ ์ฒด Laya๊ฐ ์ด ํฌ๊ธฐ๊ฐ ๋ ๊ฒ์ ์๋๋๋ค.
์ ์์ฑ ๋ฅ๋ ฅ๋ณด๋ค ํ๋จ ๋ฅ๋ ฅ์ ์ง์คํ๋๊ฐ
์ฐ๋ฆฌ์๊ฒ ํ์ํ ์ถ๋ ฅ์ ๋ฌธ์ฅ์ด ์๋๋ผ fast / standard / strong ํ๋ฅ ์ธ ๊ฐ์ ๋๋ค. Laya๋ ์ด๋ฏธ ์ธ์ฝ๋ ๊ธฐ๋ฐ ๊ฒฐ์ ๋ชจ๋ธ์ด๋ผ, ์์ฑ ๋์ฝ๋๋ฅผ ์๋ก ์ ๊ฑฐํด์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ค์ด๋ ๋จ๊ณ๋ ์์ต๋๋ค. ์ ๋ ฅ ๋ฌธ์ฅ์ ์ดํดํ๋ ์ธ์ฝ๋๋ ์ฌ์ ํ ํ์ํฉ๋๋ค. ์ด๋ฒ์๋ ๊ทธ ๋ค์ ์์ ํ๋จ ํค๋์ 3์ง ํ์ต์ด ์ ํจํ์ง ํ์ธํ์ต๋๋ค. ์ธ์ฝ๋ ์ ์ฒด๋ ํ์ฑ๊ฐ์ 3์งํํ์ง ์์์ต๋๋ค.
์ค์ ๋ก ๋ฌ๋ผ์ง ํ์ต ๋ฐฉ๋ฒ
- ๋ถ๋ชจ v0.2์ LayerNorm affine์ ์ ํ ์ธต์ ํฉ์น ๊ฐ์ค์น์์ ์์ํฉ๋๋ค. ๋ชจ๋ ํ๋ณด์ ์ด๊ธฐ ๋ถ๋ชจ๋ ๊ฐ์ต๋๋ค.
- ํ์ต ์ค ๋ณด๊ดํ๋ ์ค์ ๊ฐ์ค์น(shadow weights)๋ Go์ FP64 ๋ฐฐ์ด์ ๋๋ค. ์์ธกํ ๋๋ง๋ค ํ๋ณ ํ๊ท ์ ๋๊ฐ์ ์๊ณ๊ฐ์ ๊ณฑํด ์์ ๊ฐ์ค์น๋ฅผ 0์ผ๋ก ๋ง๋ค๊ณ ๋๋จธ์ง๋ฅผ -1/+1๊ณผ ๋ฐฐ์จ๋ก ๋ฐ๊ฟ๋๋ค.
- ์ค์ ์์ถ ๋ชจ๋ธ์ ์์ธก ์ค์ฐจ๋ฅผ ์ด์ฉํด ์ค์ ๊ฐ์ค์น๋ฅผ ๊ฐฑ์ ํฉ๋๋ค. ๋ฐ์ฌ๋ฆผ์ ๋ฏธ๋ถํ๊ธฐ ์ด๋ ค์ identity STE๋ผ๋ ๊ทผ์ฌ ๊ธฐ์ธ๊ธฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ฐฐ์จยท์๊ณ๊ฐ์ ๋ฏธ๋ถ์ ๊ณ์ฐํ์ง ์์ต๋๋ค. ์ด๋ ์ ํํ ๋ฐ์ฌ๋ฆผ ๋ฏธ๋ถ์ด๋ BitNet ์๋ ผ๋ฌธ์ ์ฌํ์ด ์๋๋๋ค.
- ๊ฐ epoch์์ ๊ฒ์ฆ NLL๋ง์ผ๋ก 600B ์ดํ ํ๋ณด๋ฅผ ๋น๊ตํฉ๋๋ค. final์ ์ฝ์ง ์์ต๋๋ค. ๋ seed์ ๊ฐ์ค์น๋ฅผ ์ ํํ ํ calibration 24๊ฑด๋ง์ผ๋ก ์จ๋๋ฅผ ๊ณ ๋ฆ ๋๋ค. ๊ธฐ์กด confidence ๊ธฐ์ค 0.9๋ ์ ์งํฉ๋๋ค.
- ์ ํ ๋ชจ๋ธ๊ณผ ๊ณํยท๋ฐ์ดํฐ์ SHA๋ฅผ ๊ธฐ๋กํ ๋ค ๋ณ๋ check ๋ช ๋ น์์ ์ฒ์ final์ ํ๊ฐํฉ๋๋ค.
ํ์ตยทํ๊ฐยท๊ฒ์ ๊ฒ์ฆ์ Go CPU๋ง ์ฌ์ฉํฉ๋๋ค. ์ด๋ฏธ ์บ์ํ ํ์ต ํน์ง์ ์ฌ์ฌ์ฉํ๋ฉฐ, ์๋ก์ด final ๋ฌธ์ฅ์ ํน์ง์ ์ถ์ถํ ๋๋ง ๊ธฐ์กด Python/PyTorch MPS๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ๋ seed๋ ๋ค๋ฅธ minibatch ์์๋ฅผ ๋ปํ๋ฉฐ ๋ ๋ฆฝ์ ์ธ ๋ฌด์์ ์ด๊ธฐ ๋ชจ๋ธ ๋ ๊ฐ๋ ์๋๋๋ค.
PDCA ๊ธฐ๋ก
| ๋ฐ๋ณต | ๊ณํยท์คํ | ํ์ธ | ํ์ ์กฐ์น |
|---|---|---|---|
| 01: ์ ๋ต๋ง ํ์ต | 2 seeds ร 4 ์๊ณ๊ฐ ร 2 ํ์ต๋ฅ , ๊ฐ 80 epochs | 507B๊ฐ ์ ํ๋์ง๋ง ์ด๋ฏธ ์ฌ์ด train์ ๊ฑฐ์ ํ์คํ ๋งํ gradient๊ฐ ์์์. ๊ฒ์ฆ 35/36, ๊ฐ์ ์์ถ์ ํ์ต ์ ํ ์ฐจ์ด๊ฐ ๋งค์ฐ ์์ | ์ฑ๊ณต์ ์ธ ํ์ต ๊ฐ์ ์ผ๋ก ์ฃผ์ฅํ์ง ์์. final ๋ฏธ๊ฐ๋ด ์ํ์์ ๋ค์ ๊ณํ ๊ณ ์ |
| 02: ์ ์ ์ฐจ์ด๋ ํ์ต | ๊ฐ์ 16๊ฐ ์กฐํฉ, ๊ฐ 120 epochs. ์ ๋ต CE + ๋ถ๋ชจ์ ์ค์ฌํ logit MSE ร 0.1 | 572B, ๊ฒ์ฆ 36/36. ๊ฐ์ ์๊ณ๊ฐ์ ํ์ต ์ PTQ๋ 35/36. 3์ง ๊ธฐํธ 46๊ฐ ๋ณ๊ฒฝ | ๋ seed์ ์จ๋๋ฅผ ๊ณ ์ ํ๊ณ final ์ฒ์ ํ์ธ |
๋ ๋ฒ์งธ ํ์ต์ ๋ถ๋ชจ๊ฐ ์ธ ํด๋์ค์ ๋ถ์ฌํ ์ ์ ์ฌ์ด์ ์ฐจ์ด๋ ๋ฐ๋ผ๊ฐ๊ฒ ํฉ๋๋ค. ์ด๋ฏธ ์ ๋ต์ ๋งํ ์ฌ๋ก์์๋ ์์ถ์ผ๋ก ์์ค๋ ์ ๋ณด๋ฅผ ํ์ต ์ ํธ๋ก ์ธ ์ ์์ต๋๋ค. ๊ต์ฌ๋ ๊ณ ์ ๋ ์ฐ๋ฆฌ ๊ณต๊ฐ ํค๋์ด๋ฉฐ ์ธ๋ถ API๋ ์ ๋ฃ ๋ชจ๋ธ์ ํธ์ถํ์ง ์์์ต๋๋ค. ๊ต์ฌ ์ ํธ๋ train 180๊ฑด์๋ง ์ ์ฉํ์ต๋๋ค. ์ ํํ ๋ณด์กฐ ์์ค์ 0.1 / (2ร3) ร ฮฃ(ํ์ ์ค์ฌํ logit โ ๊ต์ฌ ์ค์ฌํ logit)ยฒ์
๋๋ค.
์ฒซ ๊ณํ, ๋ ๋ฒ์งธ ๊ณํ, 32๊ฐ ํ๋ณด ์์ฝ, ์ต์ข
๊ฒฐ๊ณผ, ๋ฐ๋ณต ์๊ฐ ์ธก์ , ์์ยท์ฌํ ๊ธฐ๋ก. ๋ชจ๋ epoch์ ์๋ณธ ๊ธฐ๋ก์ HF์ development-cycle-01.json๊ณผ selection.json์ ์์ต๋๋ค. ๊ฐ์ ์คํ์์ ์ฌํ์ตํ ๋ชจ๋ธ์ด ๋ถ๋ชจ๋ฅผ ๋์ฒดํ์ง๋ ์์ต๋๋ค.
์ต์ข ๊ฒฐ๊ณผ: ์ฅ์ ๊ณผ ์ํด๋ฅผ ํจ๊ป ๋ณด๊ธฐ
ํ์ต ์ ์ ์๋ก ์์ฑํด ๊ณ ์ ํ ์์ด ํฉ์ฑ final 36๊ฑด, ํด๋์ค๋น 12๊ฑด์ ๋๋ค. ๊ธฐ๋ ๋์ด๋๋ ๋ช ์๋ ์์ ๋ฒ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑํ ๊ฐ์ค์ด๋ฉฐ ์ค์ ์ฝ๋ ์์ ์ฑ๊ณต/์คํจ์์ ์ป์ ์ ๋ต์ด ์๋๋๋ค. ๊ธฐ์กด train 180 / validation 36 / calibration 24๋ ์ฌ์ฌ์ฉํ์ต๋๋ค. ๊ธฐ์กด test 24๋ ํ์ตยท์ ํยท๋ณด์ ์ ์ฌ์ฉํ์ง ์์์ต๋๋ค. final์ ์ด๋ฒ ํ์ธ ์ดํ๋ถํฐ ์ด๋ฏธ ๋ณธ ๋ฐ์ดํฐ์ ๋๋ค.
| ํญ๋ชฉ | ๋ถ๋ชจ FP32 | ์ด์ 660B PTQ | ์ 572B QAT, ๋ seed |
|---|---|---|---|
| ์ ๋ต | 33/36 | 33/36 | 34/36 |
| confidence โฅ0.9 ํ๋จ ์ค ์ ๋ต | 32/33 | 31/31 | 32/33 |
| ํ๋จ ์๋ฝ๋ฅ | 91.7% | 86.1% | 91.7% |
| strong ์ฌํ์จ | 12/12 | 12/12 | 12/12 |
| strongโfast ์ค๋ฅ | 0 | 0 | 0 |
| NLL, ๋ฎ์์๋ก ์ข์ | 0.171 | 0.128 | 0.179 |
| Brier, ๋ฎ์์๋ก ์ข์ | 0.111 | 0.088 | 0.109 |
์ ๋ต ์์ ํฌ๊ธฐ๋ ๊ฐ์ ๋์ง๋ง ์ ๋ชจ๋ธ์ด ๋ชจ๋ ํ์ง ์งํ์์ ๋ ์ข์ ๊ฒ์ ์๋๋๋ค. ์ด์ PTQ๋ณด๋ค ํ๋ฅ ํ์ง๊ณผ accepted precision์ด ๋๋น ์ก์ต๋๋ค. ์ฌ์ ๊ธฐ์ค์ ๋ seed ๋ชจ๋ ํต๊ณผํ์ง๋ง 36๊ฑด์์ 1๊ฑด์ ์ฐจ์ด๋ ํต๊ณ์ ์ผ๋ก ์ผ๋ฐ์ ์ธ ์ฐ์์ฑ์ ์ฆ๋ช ํ์ง ์์ต๋๋ค. 34/36์ Wilson 95% ๊ตฌ๊ฐ์ ์ฝ 81.9~98.5%์ ๋๋ค. ์๋ ๋ผ์ฐํฐ๋ก ์น๊ฒฉํ์ง ์์ต๋๋ค.
๋จ์ ์ค๋ต์ ์ฌ์ด ๋ฌธ์ ๋ณ๊ฒฝ์ standard๋ก ๋ณด๋ ๊ณผ๋ ๋ถ๋ฅ 2๊ฑด์ ๋๋ค. rate-limit ๋จ์ ์คํ๋ ํ์ ์ด ์ฝ 0.852์ฌ์ ๋ณด๋ฅ๋์ง๋ง, watcher ๋ฌธ์ glob ์์ ์ ์ฝ 0.953์ผ๋ก ํ๋ฆฌ๊ฒ ์๋ฝ๋์ต๋๋ค. ์์ ํ ํํฅ ๋ผ์ฐํ ๋ฟ ์๋๋ผ ๋ถํ์ํ ์ํฅ ๋ผ์ฐํ ๋น์ฉ๋ ๋ค์ ์ค์ ์์ ํ๊ฐ์์ ํ์ธํด์ผ ํฉ๋๋ค. ์ด๋ฒ์๋ ์ด final์ ๋ณด๊ณ ์จ๋๋ ๊ฐ์ค์น๋ฅผ ๋ค์ ๋ฐ๊พธ์ง ์์์ต๋๋ค.
1.58๋นํธ๋ณด๋ค ์์ ์ด์ ์ ๋ฉ๋ชจ๋ฆฌ ๋ฒ์
์ ํ๋ ํค๋์ 0 ๋น์จ์ ์ฝ 62.63%์ ๋๋ค. ์ธ ๊ธฐํธ๊ฐ ๊ฐ์ ๋น๋๋ก ๋์ค์ง ์๊ธฐ ๋๋ฌธ์ ๊ณ ์ ์ ์ธ 1.58๋นํธ ํํ๋ง์ด ๊ฐ๋ฅํ ๊ฒ์ ์๋๋๋ค. ํ์ผ ๊ตฌ์ฑ์ presence bitmap 384B + nonzero sign 144B + ํค๋ยท๋ฐฐ์จยทํธํฅ 44B = 572B์ ๋๋ค.
- ๊ธฐํธ ๋ถ๋ถ: 528ร8รท3,072 = 1.375bit/weight.
- ์ ์ฒด ํ์ผ: 572ร8รท3,072 = 1.4896bit/weight.
- ๋ถ๋ชจ๋ ์ ํ ์ธต์ 3,072๊ฐ ๊ณ์์ ๋๋ค. ์ ์ฒด encoder, float ํ์ฑ๊ฐ, tokenizer๋ ์์ ๋ฉ๋ชจ๋ฆฌ์ ๋นํธ ์๊ฐ ์๋๋๋ค.
- float32 ๋ฐฐ์จยทํธํฅ๊ณผ float64 ๋์ฐยทnormalization์ ๊ทธ๋๋ก์ ๋๋ค. ํ์ต์ ์ค์ shadow weights์ gradient๋ ์ฌ์ฉํฉ๋๋ค. ์ถ๋ก ํ์ผ ํฌ๊ธฐ์ ํ์ต ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํผ๋ํ์ง ์์ต๋๋ค.
M4 Pro, Go 1.27.1์์ ๋์ผ 36๊ฐ ํน์ง์ ์ฌ์ฉํ๊ณ ์์๋ฅผ ์ํํ๋ฉฐ 30,000ํ์ฉ 5๋ฒ ์ธก์ ํ ์ค์๊ฐ:
| ํค๋ | ํฌ๊ธฐ | ํค๋๋ง ์คํ |
|---|---|---|
| ํฉ์น FP32 | 12,332B | 4.23ยตs |
| ์ด์ 3์ง PTQ | 660B | 5.73ยตs |
| QAT seed 1729 | 572B | 5.01ยตs |
| QAT seed 2718 | 572B | 5.03ยตs |
์ด์ 3์ง๋ณด๋ค ์ฝ 12% ์งง์ ์๊ฐ๊ณผ 13.3% ์์ ํ์ผ์ด์ง๋ง FP32๋ณด๋ค ๋๋ฆฝ๋๋ค. 5ํ ํ๋ณธ์ ์์คํ ์ ์ฒด ์ฑ๋ฅ ๋ณด์ฆ์ด ์๋๋๋ค. ๋ชจ๋ ํธ์ถ๋น ํ ๋น 0ํ์ ๋๋ค. SIMD/GPU ์ปค๋์ ์ฌ์ฉํ์ง ์์์ต๋๋ค. ์ ์ฒด ์ธ์ฝ๋๋ฅผ ํฌํจํ ์ง์ฐ ๊ฐ์ ์ผ๋ก ์ฃผ์ฅํ์ง ์์ต๋๋ค.
๋ ๋ฒ์งธ ํ๋ณด 16๊ฐ ํ์ต ์ ์ฒด๋ ์ฝ 3.25์ด, ํ๋ก์ธ์ค ์ต๋ RSS ์ฝ 24.1MiB์์ต๋๋ค. ์ด๋ ๋ฏธ๋ฆฌ ๋ง๋ ํน์ง์ ์ฐ๋ ์์ Go ํค๋ ํ์ต์ ๋๋ค. ์ ํน์ง์ ๋ง๋ MPS ํ๋ก์ธ์ค๋ ์ฝ 2.51GiB RSS๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ๋ ํ๋ก์ธ์ค๋ ์์๋๋ก ์คํ๋๊ณ RSS์ MPS ๋๋ผ์ด๋ฒ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํฉ์ฐํ์ง ์์ต๋๋ค.
์ฌํ
HF์์ ํ์ผ์ ๋ฐ์ ๋๋ ์ด์์ ๊ธฐ๋ก๋ immutable commit์ ์ฌ์ฉํฉ๋๋ค. GitHub์๋ ๋ชจ๋ธ/ํน์ง์ ์ฌ๋ฆฌ์ง ์์ต๋๋ค. ๊ธฐ์กด ํ๊ฒฝ์์ ๋ค์์ฒ๋ผ ์คํํ ์ ์์ต๋๋ค.
# ์๋ก์ด ๋ฌธ์ฅ์ ํน์ง ์ถ์ถ์๋ง PyTorch/MPS ํ์
.cache/mps-training-venv/bin/python scripts/training/export_qat_features.py \
--base .cache/training/base \
--package .cache/training/pdca-06-package-v0.2 \
--out .cache/ternary-qat/final-features.json
# train ๋ช
๋ น์ final ์ธ์๋ฅผ ๊ฑฐ๋ถํฉ๋๋ค.
go run ./cmd/riido-qat --stage train \
--development .cache/tinyhead/features.json \
--out .cache/ternary-qat/new-training
# ์ ๋จ๊ณ๊ฐ ๋ seed๋ฅผ ์ ํยท๊ณ ์ ํ ๋ค ๋ณ๋๋ก ํ๊ฐํฉ๋๋ค.
go run ./cmd/riido-qat --stage check \
--development .cache/tinyhead/features.json \
--final .cache/ternary-qat/final-features.json \
--selection .cache/ternary-qat/new-training/selection.json \
--out .cache/ternary-qat/new-check
# ํ์ง ์์น๋ฅผ ์ฌ๊ณ์ฐํ๊ณ , ๊ณต๊ฐ ์ง์ ์ ํํ ์์ค CI๊น์ง ํ์ธํฉ๋๋ค.
go run ./cmd/riido-hubcheck --package .cache/ternary-qat/package --require-ci
์ถ๋ ฅ ๊ฒฝ๋ก๋ ์ ๋๋ ํฐ๋ฆฌ์ฌ์ผ ํฉ๋๋ค. HF ํจํค์ง์์ ๋ฐ์ development-features.json์ --development๋ก ์ง์ ์ฌ์ฉํ๋ฉด Python ์์ด ํ์ต๋ถํฐ ์ฌํํ ์ ์์ต๋๋ค. 01 ๋ฐ๋ณต์ --plan experiments/ternary-qat/plan-01.json์ผ๋ก ์ฌํํฉ๋๋ค. --stage bench๋ ๋์ผํ ์
๋ ฅยท์ ํ ํ์ผ ์ธ์๋ก ์๊ฐ๋ง ๋ฐ๋ณต ์ธก์ ํฉ๋๋ค. HF ์
๋ก๋๋ ๋ณ๋ ๋จ๊ณ์ด๋ฏ๋ก ๋คํธ์ํฌ ์ํ๊ฐ ํ์ต์ ๋ง์ง ์์ต๋๋ค.
๊ณต๊ฐ ํจํค์ง ๊ฒ์ฌ๋ ํด์๋ง ํ์ธํ์ง ์์ต๋๋ค. ๋ค์ด๋ก๋ํ ํค๋์ final ํน์ง์ผ๋ก 36๊ฐ ํ๋ฅ ยท์ ๋ต ์ยท์๋ฝ ์ยทํ์ง ๊ธฐ์ค์ Go์์ ๋ค์ ๊ณ์ฐํฉ๋๋ค. ์์ ํ๋กํ์ผยท์ฌ๋ด ์ด๋ฆยท์ค์ ์ฌ์ฉ์ ํ๋กฌํํธยท์ธ์ฆ์ ๋ณดยท์ ๋ ๋ก์ปฌ ๊ฒฝ๋ก๋ ๊ฒ์ํ์ง ์์ต๋๋ค. LICENSE์ ๋ถ๋ชจ NOTICE๋ฅผ ์ ์งํฉ๋๋ค.
๋ค์ PDCA
- ์ด 36๊ฑด์ ๋ ์ด์ ์๋ก์ด final๋ก ์ฌ์ฉํ์ง ์์ต๋๋ค. ๋ค์ ์คํ ์ ์ ์ ์์ ๊ณ์ดยท์ถ์ฒ์ final์ ๋จผ์ ๊ณ ์ ํฉ๋๋ค.
- ์งง์ ๋ฌธ์ ์์ ์ ๋ณต์กํ ์ฉ์ด๊ฐ ๋ค์ด๊ฐ ๊ฒฝ์ฐ์ฒ๋ผ, ํ๋ฉด ์ดํ์ ์ค์ ์์ ๋ฒ์๊ฐ ๋ค๋ฅธ train/validation/calibration ์ฌ๋ก๋ฅผ ๋๋ฆฝ๋๋ค. ํ ์ฌ๋์ด ์ด ๋ฐ๋ณต ํ ํ๋ฆฟ์ ๋ฒ์ด๋ ์ค์ ๊ณต๊ฐ ์์ ์ ๊ฒฐ๊ณผ ๋ผ๋ฒจ๋ ์์งํด์ผ ํฉ๋๋ค.
- ๋ณด์ ๋ฐ์ดํฐ๊ฐ ์ง๋์น๊ฒ ์ฌ์ ์ต์ ์จ๋ 0.5๊ฐ ์ ํ๋๋ ๋ฌธ์ ๋ฅผ ๊ฒํ ํฉ๋๋ค. confidence ๊ธฐ์ค์ ๋ด๋ ค์ ์๋ฝ๋ฅ ์ ๋ง์ถ์ง ์์ต๋๋ค.
- ํ ๋ฒ์ ๋ฐ๊ฟ ์์ธ์ ์ ํํด 3์ง ์๊ณ๊ฐ, ํ์ต๋ฅ , teacher ๋น์ค, ๋ณด์ ์ ๊ธฐ์ฌ๋ฅผ ๋ถ๋ฆฌํฉ๋๋ค. ์ ์คํ์ NLLยทaccepted precision์ ์ ํ๋ ๋ช ์์ ์ผ๋ก ์ ํํ๋ ๋ ์๊ฒฉํ ์ฌ์ ๊ธฐ์ค์ ๊ฒํ ํฉ๋๋ค.
- ์ ์ฒด ๋ฉ๋ชจ๋ฆฌ ์ ๊ฐ์ encoder-free ํ์ ๋๋ ์ธ์ฝ๋ ์์ฒด์ ์ ๋นํธ ํ์ต/์คํ์ผ๋ก ๋ณ๋ ๊ฒ์ฆํฉ๋๋ค. ํ์ฌ ํค๋ ์ฑ๊ณต์ ๊ทผ๊ฑฐ๋ก ์ ์ฒด Laya๊ฐ 3์ง์์๋ ๊ฐ์ ์ฑ๋ฅ์ผ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ์ง ์์ต๋๋ค.
- ์ ๋ชจ๋ธ์ ๋ฒ์ ๋ณ HF ์ ์ฅ์๋ก ๊ฒ์ํ๊ณ ๋ถ๋ชจยท๋ฐ์ดํฐยท์ฝ๋ยทCIยทํด์๋ฅผ ์๋ก ์ฐ๊ฒฐํฉ๋๋ค. ์ด์ ๋ชจ๋ธ๊ณผ ์คํจ ๊ธฐ๋ก์ ๋ณด์กดํฉ๋๋ค. ์ง์ ๊ฒ์๊ฐ ๊ฒ์ฆ๋์ง ์์ ๋ชจ๋ธ์ ์๋ ์น๊ฒฉ์ ๋ปํ์ง๋ ์์ต๋๋ค.
๊ทผ๊ฑฐ์ ๋ผ์ด์ ์ค
์ํ์ ์์ด๋์ด๋ฅผ ์ฐธ๊ณ ํด Go๋ก ๋ ๋ฆฝ ๊ตฌํํ์ต๋๋ค. ์ธ๋ถ ํ์ต ๋ฐ์ดํฐ๋ ์ 3์ ๊ตฌํ์ ๋ณต์ฌํ์ง ์์์ผ๋ฉฐ ๊ธฐ์กด Apache-2.0 ๋ถ๋ชจ ์์ฐ์ LICENSE/NOTICE๋ฅผ ์ ์งํฉ๋๋ค.
- Ternary Weight Networks: ์๊ณ๊ฐ๊ณผ ๋ฐฐ์จ์ ์ด์ฉํ 3์ง ๊ฐ์ค์น์ ์ ํ ์ฐ๊ตฌ.
- STE ์ฐ๊ตฌ: ๋ฏธ๋ถํ๊ธฐ ์ด๋ ค์ด ์ฐ์ฐ์ ๊ทผ์ฌ ๊ธฐ์ธ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฐ๊ฒฝ. ์ฐ๋ฆฌ์ identity/stop-gradient ์ ํ ์์ฒด๋ ์คํ ์ค๊ณ์ ๋๋ค.
- Knowledge distillation: ๊ต์ฌ์ ์ถ๊ฐ ์ ๋ณด๋ฅผ ํ์์๊ฒ ์ ๋ฌํ๋ ๋ฐฐ๊ฒฝ. ์ด๋ฒ centered-logit MSE ํผํฉ์ ์ฐ๋ฆฌ ์ค์ ์ด๋ฉฐ ์๋ ผ๋ฌธ์ ๊ฒฐ๊ณผ๋ฅผ ์ฌํํ๋ค๋ ์ฃผ์ฅ์ด ์๋๋๋ค.
- BitNet b1.58: ์ ๋นํธ ํ์ต์ ๋ฐฉํฅ์ ์ฐธ๊ณ ํ์ง๋ง ์ ์ฒด Transformer์ BitNet ๊ตฌํ์ด ์๋๋๋ค.
- BITCOS: ๋น๋์นญ ๊ธฐํธ ๋น๋๋ฅผ ํ์ฉํ bitmap/sign ํํ. ํด๋น ๋ ผ๋ฌธ์ Intel ์ฑ๋ฅ์ ์ฐ๋ฆฌ Mac์ ์ ์ฉํ์ง ์์ต๋๋ค.