Packed Weights 78 KO - teamswyg/laya-tools GitHub Wiki

์ž‘์€ ๊ฐ€์ค‘์น˜ ํ‘œ๋ฅผ Go์—์„œ ์„ ํƒํ•ด ์“ฐ๊ธฐ

pkg/hintweights๋Š” ๋ฌธ์žฅ์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋ชจ๋ธ์„ ํ•™์Šตํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ด๋ฏธ ์ค€๋น„ํ•œ RIIDOH01 ํ˜•์‹์˜ 8,192๊ฐœ ๊ณ„์ˆ˜๋กœ ์ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ, ์ „์ฒด ๊ณ„์ˆ˜๋ฅผ FP64 ๋ฐฐ์—ด๋กœ ํ’€์ง€ ์•Š๊ณ  ์••์ถ• ๋ฐ”์ดํŠธ์—์„œ ์ฝ๋Š” ์„ ํƒํ˜• Go API์ž…๋‹ˆ๋‹ค. Laya ๋ฌธ์žฅ encoder ์ „์ฒด๋ฅผ ์ด ํฌ๊ธฐ๋กœ ์‹คํ–‰ํ•œ๋‹ค๋Š” ๋œป์€ ์•„๋‹™๋‹ˆ๋‹ค.

FP64 ๊ณ„์ˆ˜ ๋ฐฐ์—ด์˜ ๋ฐ์ดํ„ฐ๋Š” 65,536๋ฐ”์ดํŠธ์ž…๋‹ˆ๋‹ค. ์ƒˆ reader์˜ ์†Œ์œ  payload๋Š” FP32 32,792๋ฐ”์ดํŠธ, INT8 8,216๋ฐ”์ดํŠธ, ternary๋Š” 0์ด ์•„๋‹Œ ๊ณ„์ˆ˜ 13๊ฐœ์—์„œ 1,308๋ฐ”์ดํŠธยท8,192๊ฐœ์—์„œ 2,330๋ฐ”์ดํŠธ์ž…๋‹ˆ๋‹ค. ๊ตฌ์กฐ์ฒดยทํ• ๋‹น ๋ฐ˜์˜ฌ๋ฆผยทํ˜ธ์ถœ์ž ์ž…๋ ฅยทํŠน์ง• ๋ฐฐ์—ดยทGo heapยท์ „์ฒด ํ”„๋กœ์„ธ์Šค RSS๋Š” ์ด ํ‘œ์— ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ƒ์„ฑ ์ค‘์—๋Š” ์› ์ž…๋ ฅ๊ณผ ๋ณต์‚ฌ๋ณธ์ด ํ•จ๊ป˜ ๋‚จ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์†๋„์—๋Š” ๋Œ€๊ฐ€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต๊ฐœ ํ•ฉ์„ฑ ํŠน์ง• 266๊ฐœ๋ฅผ ์“ฐ๋Š” private prototype์˜ ์ ์ˆ˜ ๊ณ„์‚ฐ์€ ์ฒ˜์Œ ๊ตฌํ˜„์—์„œ ๊ธฐ์กด ๋ฐฐ์—ด๋ณด๋‹ค ์•ฝ45๋ฐฐ ๋А๋ ธ์Šต๋‹ˆ๋‹ค. ํ˜•์‹๋งˆ๋‹ค ๋ฃจํ”„๋ฅผ ๋ถ„๋ฆฌํ•œ ํ›„์† ๊ตฌํ˜„์—์„œ๋Š” ์ค‘์•™๊ฐ’์ด FP32 213.1ns, INT8 189.6ns, ternary sparse 248.9nsยทdense 418.8ns๋กœ, ๊ธฐ์กด ๋ฐฐ์—ด๋ณด๋‹ค ์•ฝ1.212.68๋ฐฐ ๋А๋ ธ์Šต๋‹ˆ๋‹ค. ์ธก์ •ํ•œ ์ ์ˆ˜ ๊ณ„์‚ฐ์€ ๋ชจ๋‘ 0 bytes/opยท0 allocs/op์˜€์Šต๋‹ˆ๋‹ค. ์ด ๋น„๊ต๋Š” ํ•œ Mac์˜ warm ํ•ฉ์„ฑ ๋ฐ˜๋ณต์ด๋ฉฐ ๋‘ ๋ฒ„์ „์€ ๋ณ„๋„ ํ”„๋กœ์„ธ์Šค์—์„œ ์ธก์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ณต๊ฐœ ํŒจํ‚ค์ง€ ํฌํŒ…์€ ๋ณ„๋„ ๋ฒค์น˜๋งˆํฌํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ค‘์š”ํ•œ ๊ฐœ๋ฐœ์ž๋Š” ์„ ํƒํ•ด ์‹œํ—˜ํ•˜๊ณ , ์ ์ˆ˜ ๊ณ„์‚ฐ ์†๋„๊ฐ€ ์ค‘์š”ํ•˜๋ฉด ๊ธฐ์กด ๊ฒฝ๋กœ๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋ผ์šฐํ„ฐ๋Š” ์ƒˆ reader๋ฅผ ์ž๋™ ์„ ํƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. New๋Š” ์ž…๋ ฅ์„ ๊ฒ€์ฆํ•œ ๋’ค ์†Œ์œ  ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ค๋ฉฐ, ์ƒ์„ฑ ์ค‘ ์ž…๋ ฅ์€ ์•ˆ์ •์ ์œผ๋กœ ์œ ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜ํ™˜๋œ View๋Š” ์ฝ๊ธฐ๋งŒ ๊ณต์œ ํ•˜๋ฏ€๋กœ ๋ณ„๋„ lock ์—†์ด ๋™์‹œ ์ฝ๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ž…๋ ฅ ์ˆœ์„œยท์ค‘๋ณตยทFP64 ๊ณฑ์…ˆ/๋ˆ„์ ์„ ์œ ์ง€ํ•˜๊ณ , Inf/NaN ๋™์ž‘ ๋•Œ๋ฌธ์— 0 ๊ณ„์ˆ˜์˜ ๊ณฑ์…ˆ๋„ ์ƒ๋žตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ ์˜ˆ์ œ์™€ API ยท ์›๋ณธ ์ธก์ •๊ณผ ์‹คํŒจ ๊ธฐ๋ก. ํ˜„์žฌ bitmap/sign ์ €์žฅ์€ native 1.58-bit ์—ฐ์‚ฐยทbulk SIMDยท์ „์ฒด SoA ๊ตฌํ˜„์„ ๋œปํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹ค์‚ฌ์šฉ RAMยท๋ชจ๋ธ ์ •ํ™•๋„ยทLLM ์‚ฌ์šฉ๋Ÿ‰ ์ ˆ๊ฐ์€ ๋ณ„๋„ ๊ฒ€์ฆ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ ์ž๋ฃŒ๋„ ๋„“ํžˆ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€์ฐฐ77์€ logfmt์™€ percent escape์˜ 24๊ฐœ ์œ ํ•œ ์ž…๋ ฅ์„ ํ•œ ๋ฒˆ ๊ด€์ธกํ•ด ์˜ˆ์ƒ๊ณผ ์ผ์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋…๋ฆฝ ์ž‘์—… 24๊ฐœ๋‚˜ ์ƒˆ ํ•™์Šต ์ •๋‹ต ์ˆ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์›์ฒœ ์ œ์•ˆ79์€ UUIDยทhumanize ๋“ฑ 6๊ณ„์—ด์„ ๊ฒ€ํ† ํ•˜๋˜, ์›๋ฌธ ์ทจ๋“ยท๋ผ์ด์„ ์Šคยท๊ทธ๋ฃน ๊ด€๊ณ„ยท๊ด€์ฐฐยทํ•™์Šต ์ž๊ฒฉ์„ ๋”ฐ๋กœ ํ™•์ธํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋ณดํ˜ธ๋œ 2,400๊ฐœ ์ตœ์ข… ํ‰๊ฐ€์™€ ์ƒˆ ๋ชจ๋ธ์˜ ํšจ์šฉ ์ฆ๋ช…์€ ์•„์ง ์™„๋ฃŒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

English