BitNet.Cpp

,

์ „๋ฌธ๊ฐ€๊ฐ€ ์•„๋‹ˆ๋ผ์„œ ๋ฌด์Šจ ๋‚ด์šฉ์ธ์ง„ ์ž˜ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ Microsoft์—์„œ BitNet.cpp ๋ผ๋Š” CPU๋ฅผ ์‚ฌ์šฉํ•œ ๊ณ ์„ฑ๋Šฅ LLM ๋„๊ตฌ๊ฐ€ ๋‚˜์˜จ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

BitNet.cpp, Microsoft๊ฐ€ ๊ณต๊ฐœํ•œ x86 ๋ฐ ARM ๊ธฐ๋ฐ˜ CPU์— ์ตœ์ ํ™”ํ•œ BitNet ์ถ”๋ก  ํ”„๋ ˆ์ž„์›Œํฌ - ์ฝ์„๊ฑฐ๋ฆฌ&์ •๋ณด๊ณต์œ  - ํŒŒ์ดํ† ์น˜ ํ•œ๊ตญ ์‚ฌ์šฉ์ž ๋ชจ์ž„

microsoft/BitNet: Official inference framework for 1-bit LLMs

์ถœ์‹œํ•œ์ง€ 5์ผ๋ฐ–์— ์•ˆ๋˜์—ˆ๋Š”๋ฐ GitHub Star๊ฐ€ 8000๊ฐœ๊ฐ€ ๋„˜์—ˆ๋„ค์š”.

5๊ฐœ์˜ ์ข‹์•„์š”

์ € ์—ญ์‹œ๋„ ๋ฌธ์™ธํ•œ์ธ ๋ถ„์•ผ์ง€๋งŒ, ๋Œ€๋žต ์•Œ๊ณ  ์žˆ๋Š” ๋‚ด์šฉ์œผ๋กœ ์ •๋ฆฌํ•ด๋ณธ ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ใ…Žใ…Ž (ChatGPT์˜ ๋„์›€๊ณผ ํ•จ๊ป˜)

BitNet์€ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์—์„œ ๊ฐœ๋ฐœํ•œ **1๋น„ํŠธ ๋Œ€ํ˜• ์–ธ์–ด ๋ชจ๋ธ(LLM)**์˜ ์ถ”๋ก ์„ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ์˜ ํ•ต์‹ฌ์€ bitnet.cpp๋ผ๋Š” ์ตœ์ ํ™”๋œ ์ปค๋„์„ ์‚ฌ์šฉํ•˜์—ฌ 1๋น„ํŠธ ๋ชจ๋ธ์„ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์œผ๋กœ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ CPU์—์„œ์˜ ์ถ”๋ก ์„ ์ง€์›ํ•˜๋ฉฐ, ํ–ฅํ›„ NPU ๋ฐ GPU ์ง€์›๋„ ์˜ˆ์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

BitNet์˜ ๋ชฉํ‘œ๋Š” ๋Œ€ํ˜• ์–ธ์–ด ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์„ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ ๊ณ„์‚ฐ ๋ถ€๋‹ด๊ณผ ์—๋„ˆ์ง€ ์†Œ๋น„๋ฅผ ํฌ๊ฒŒ ์ค„์ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, x86 CPU์—์„œ 2๋ฐฐ์—์„œ 6๋ฐฐ์— ๋‹ฌํ•˜๋Š” ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์ด๋ฃจ๋ฉฐ, ์ตœ๋Œ€ 82%๊นŒ์ง€ ์—๋„ˆ์ง€ ์†Œ๋น„๋ฅผ ์ ˆ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ตœ์ ํ™”๋ฅผ ํ†ตํ•ด, 100์–ต ํŒŒ๋ผ๋ฏธํ„ฐ ์ด์ƒ์˜ ๋Œ€ํ˜• ๋ชจ๋ธ๋„ ๋‹จ์ผ CPU์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค์–ด, ๋กœ์ปฌ ์žฅ์น˜์—์„œ๋„ ๋Œ€ํ˜• ์–ธ์–ด ๋ชจ๋ธ์„ ์‹ค์šฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

BitNet์€ BitLinear๋ผ๋Š” ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์กด์˜ ์„ ํ˜• ๋ ˆ์ด์–ด๋ฅผ 1๋น„ํŠธ๋กœ ํ›ˆ๋ จํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ์œผ๋กœ์จ, ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ํฌ๊ฒŒ ์ค„์ด๋ฉด์„œ๋„ ์„ฑ๋Šฅ์€ ๊ธฐ์กด 8๋น„ํŠธ ๋˜๋Š” FP16 ๋ฐฉ์‹๊ณผ ๋น„๊ตํ•ด ์†์ƒ‰์—†์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” ๋Œ€ํ˜• ์–ธ์–ด ๋ชจ๋ธ์˜ ํ™•์žฅ์„ฑ์„ ๋†’์ด๊ณ , ๋” ์นœํ™˜๊ฒฝ์ ์ธ ๋ฐฉ์‹์œผ๋กœ ์šด์˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ž์˜ ์ž…์žฅ์—์„œ๋ณด๋Š” ๋Œ€๋žต์ ์ธ ์‚ฌ์šฉ๋ฒ•์€, BitNet์„ ์—”์ง„์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด์„œ, ํ—ˆ๊น…ํŽ˜์ด์Šค์— ์˜ฌ๋ผ์˜ค๋Š” ํ˜ธํ™˜๋˜๋Š” 1๋น„ํŠธ ๋ชจ๋ธ์„ ํ•˜๋‚˜ ํƒํ•ด์„œ ChatGPT๋ฅผ ์‚ฌ์šฉํ•˜๋“ฏ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํ™œ์šฉํ•˜๋Š” ํ˜•ํƒœ๊ฐ€ ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์—ฌ๊ธฐ์„œ ์˜๋ฏธ์žˆ๋Š” ๋ถ€๋ถ„์€, ์ง€๊ธˆ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” CPU๋‚˜ GPU ์„ฑ๋Šฅ ๋งŒ์œผ๋กœ๋„ "์“ธ๋งŒํ•œ ์ถ”๋ก "์„ ํ•ด๋‚ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ํฌ์ธํŠธ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

LlamaSharp ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” BitNet์šฉ ๋‹ท๋„ท ๋ž˜ํผ๊ฐ€ ๋“ฑ์žฅํ•œ๋‹ค๋ฉด, LlamaSharp๋ณด๋‹ค ๋” ๋ผ์ดํŠธํ•˜๊ฒŒ ์“ธ ์ˆ˜ ์žˆ๋Š” ๋กœ์ปฌ LLM API๊ฐ€ ๋“ฑ์žฅํ•˜๋Š” ๊ฒƒ์„ ์ƒ์ƒํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ทธ๋Ÿฐ ๊ทธ๋ฆผ์ด ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค.

3๊ฐœ์˜ ์ข‹์•„์š”

BitNet์€ ๊ธฐ์กด 4๋น„ํŠธ/3๋น„ํŠธ ์–‘์žํ™”๋ณด๋‹ค ๋” ๋‚˜์•„๊ฐ€,
๊ฐœ์„ ๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ์•ฝ 1.58๋น„ํŠธ ์–‘์žํ™”๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ํฐ ๋ชจ๋ธ์„ ๋‚ฎ์€ ์„ฑ๋Šฅ์˜ ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.

์†๋„๋ณด๋‹ค๋Š” ๋ชจ๋ธ ํฌ๊ธฐ๋ฅผ ์ค„์—ฌ ๋Œ€ํ˜• ๋ชจ๋ธ์„ ์‚ฌ์šฉ์ž ๋””๋ฐ”์ด์Šค์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ์กด ๋…ผ๋ฌธ์œผ๋กœ ์žˆ๋˜ ๋‚ด์šฉ์„ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•œ๊ฒƒ ๊ฐ™์€๋ฐ ๋‹น์—ฐํžˆ ์ „์šฉ์œผ๋กœ ์–‘์žํ™”๋œ ๋ชจ๋ธ์ด ๋ณ„๋„๋กœ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์•„๋งˆ MS๋‹ˆ๊นŒ ๋‚˜์ค‘์— ML.NET์— ์ถ”๊ฐ€๋˜์ง€ ์•Š์„๊นŒ ๊ธฐ๋Œ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹คโ€ฆ

2๊ฐœ์˜ ์ข‹์•„์š”