Short Claim Usage 56 KO - teamswyg/laya-tools GitHub Wiki

์ž‘์€ ๋™์ž‘ ํžŒํŠธ ๋„๊ตฌ ์‚ฌ์šฉํ•˜๊ธฐ

English ยท ์ด์ „ ์ค€๋น„ ๊ณ„ํš ยท ์‹คํ–‰ ๊ณ„ํš

riido-shortclaim์€ ์งง์€ ์š”๊ตฌ์™€ ํ›„๋ณด ์„ค๋ช…์„ ๋ฐ›์•„ ์–ด๋А ํ›„๋ณด๋ถ€ํ„ฐ ๋…๋ฆฝ์ ์œผ๋กœ ํ™•์ธํ• ์ง€ ์ œ์•ˆํ•˜๋Š” Go ๋„๊ตฌ๋‹ค. ๋ชจ๋“  ํ›„๋ณด๋ฅผ ๋‚จ๊ธฐ๋ฉฐ, ์ž‘์—… ์™„๋ฃŒยท์ •๋‹ตยท์‹คํ–‰ ๊ถŒํ•œ์„ ํ™•์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค. Laya ์ธ์ฝ”๋”๋‚˜ ํ•™์Šต๋œ ๊ฐ€์ค‘์น˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ณ„๋„ ์‹คํ—˜์ด๋‹ค.

์‚ฌ๋žŒ์€ โ€œ๋งŒ๋ฃŒ ํ•ญ๋ชฉ์„ ์ œ๊ฑฐํ•˜๋ฉด์„œ ์ˆœ์„œ๋ฅผ ๋ณด์กดํ•œ๋‹คโ€๋Š” ์š”๊ตฌ์™€ ํ›„๋ณด๋“ค์˜ ์งง์€ ์„ค๋ช…์„ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค. ์—์ด์ „ํŠธ๋Š” ๋ฐ˜ํ™˜๋œ ํ›„๋ณด ID ์ˆœ์„œ๋Œ€๋กœ ์‹ค์ œ ์ฝ”๋“œ์™€ ๊ฒ€์‚ฌ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์„ค๋ช…์ด ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ์ถฉ์‹คํžˆ ๋‚˜ํƒ€๋‚ด๋Š”์ง€๋Š” ์ด ๋„๊ตฌ๊ฐ€ ๋ณด์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ „์ฒด ์ฝ”๋“œ๋ฅผ ๋ชฐ๋ž˜ ์š”์•ฝํ•˜๊ฑฐ๋‚˜ LLM์„ ํ˜ธ์ถœํ•˜์ง€ ์•Š๋Š”๋‹ค.

์ฒ˜์Œ ์‹คํ–‰

์ €์žฅ์†Œ์—์„œ Go1.27.1๋กœ ๋‹ค์Œ์„ ์‹คํ–‰ํ•œ๋‹ค. Python, ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ, ์™ธ๋ถ€ API ํ‚ค ์—†์ด ๋นŒ๋“œยท์‹คํ–‰๋œ๋‹ค.

CGO_ENABLED=0 go build -trimpath -o bin/riido-shortclaim ./cmd/riido-shortclaim
./bin/riido-shortclaim --baseline lexical_ordered < examples/shortclaim/order.json

์ถœ๋ ฅ์˜ verification_order๋Š” ํ›„๋ณด ID์™€ ์ ์ˆ˜๋‹ค. status๋Š” ํ•ญ์ƒ unverified_heuristic์ด๋ฉฐ ์ ์ˆ˜๋Š” ์„ฑ๊ณต ํ™•๋ฅ ์ด ์•„๋‹ˆ๋‹ค. ๋™์ž‘ ๋ฐ˜์ „์ด๋‚˜ ๋ถ€์ •์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ ์–ดํœ˜ ๊ธฐ์ค€์ด ์ž˜๋ชป๋œ ์ˆœ์„œ๋ฅผ ์ œ์•ˆํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์‹ค์ œ ํ™•์ธ์ด ํ•„์š”ํ•˜๋‹ค. input_sha256๋Š” ์š”์ฒญยทํ›„๋ณดยท์ˆœ์„œยท๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์˜ ๊ธธ์ด๋ฅผ ๊ตฌ๋ถ„ํ•œ ์ž…๋ ฅ ์‹๋ณ„์šฉ digest๋‹ค. ์›๋ฌธ๊ณผ provenance๋ฅผ ๊ฒฐ๊ณผ์— ๋˜ํ’€์ดํ•˜์ง€ ์•Š์ง€๋งŒ ํ›„๋ณด ID๋Š” ์ถœ๋ ฅํ•˜๋ฏ€๋กœ ๊ณต๊ฐœํ•  ์ˆ˜ ์žˆ๋Š” ID๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

์š”์ฒญ๊ณผ ๊ฐ ํ›„๋ณด๋Š” UTF-8 ์ตœ๋Œ€512๋ฐ”์ดํŠธ, ์ •๊ทœํ™” ํ›„ ์ตœ๋Œ€512๋ฐ”์ดํŠธยท32๋‹จ์–ด์ด๋ฉฐ ํ›„๋ณด๋Š”18๊ฐœ๋‹ค. JSON ํ•œ ๊ฑด์€12KiB ์ดํ•˜, ID๋Š”164๋ฐ”์ดํŠธ, provenance๋Š”1~128๋ฐ”์ดํŠธ์˜ ํ•œ์ •๋œ ASCII ์‹๋ณ„์ž๋‹ค. schema๋Š” riido-short-behavior-claim-v1์ด๋‹ค. ์ค‘๋ณต ํ‚คยท์•Œ ์ˆ˜ ์—†๋Š” ํ‚คยท์ž˜๋ชป๋œ ์œ ๋‹ˆ์ฝ”๋“œยท๊ธธ์ด ์ดˆ๊ณผยท์•Œ ์ˆ˜ ์—†๋Š” schema๋Š” ๊ณ ์ • ์˜ค๋ฅ˜ ์ฝ”๋“œ์™€ ์‹คํŒจ ์ข…๋ฃŒ๋กœ ๊ฑฐ์ ˆํ•œ๋‹ค. ์ž…๋ ฅ์„ ์ž๋ฅด์ง€ ์•Š๋Š”๋‹ค. ์ด๋Š” ์ค€๋น„ ๊ณ„ํš์˜ fallback ์ œ์•ˆ์„ ๊ตฌ์ฒดํ™”ํ•œ ์‹ค์ œ ์ž…๋ ฅ ๊ณ„์•ฝ์ด๋‹ค.

์—ฌ๋Ÿฌ ๋ฒˆ ์“ฐ๊ธฐ

๊ฐ JSON ๊ฐ์ฒด๋ฅผ ํ•œ ์ค„๋กœ ์ „์†กํ•˜๊ณ  --stream์„ ์‚ฌ์šฉํ•œ๋‹ค. ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—ฌ๋Ÿฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋ฏ€๋กœ ๋งค๋ฒˆ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹œ์ž‘ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค. ์ž˜๋ชป๋œ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋งŒ๋‚˜๋ฉด ์ข…๋ฃŒํ•˜๊ณ  ๊ทธ ๋’ค ๋ ˆ์ฝ”๋“œ๋Š” ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ž…๋ ฅ์„ ๋‹ซ์œผ๋ฉด ์ •์ƒ ์ข…๋ฃŒํ•œ๋‹ค. ์‹คํ–‰ ๊ฒฐ๊ณผ ์บ์‹œ๋Š” ์—†์œผ๋ฉฐ ๋งค๋ฒˆ ์‹ค์ œ ๊ณ„์‚ฐํ•œ๋‹ค.

./bin/riido-shortclaim --stream --baseline bm25 < public-requests.jsonl

public-requests.jsonl์€ ๊ฐ™์€ ์ž…๋ ฅ schema๋กœ ์ง์ ‘ ์ค€๋น„ํ•  ํŒŒ์ผ ์ด๋ฆ„์ด๋‹ค. ์‚ฌ๋žŒ์ด ์„ ํƒํ•ด์„œ ์‹คํ–‰ํ•˜๋Š” preview์ด๋ฉฐ ๊ธฐ์กด riidolaya ๋ผ์šฐํŒ…์ด๋‚˜ Codex ๊ธฐ๋ณธ ์„ค์ •์„ ๋ฐ”๊พธ์ง€ ์•Š๋Š”๋‹ค. Go ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ pkg/shortclaim.Load, Validate, Rank๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋ฐ˜ํ™˜๋œ Prepared๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์ง์ ‘ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์–ด Rank๋Š” ๋‹ค์‹œ ๊ฒ€์ฆํ•œ๋‹ค. ๋ชจ๋ธ๋ณ„ ์Šน์ธ์ด๋‚˜ ์ž๋™ ์ž‘์—… ์‹คํ–‰ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์—†๋‹ค.

๋„ค ๊ฐ€์ง€ ๋น„๊ต ๋ฐฉ์‹

์˜ต์…˜ ์˜๋ฏธ์™€ ๋ฒ”์œ„
fixed_order ์›๋ž˜ ์ˆœ์„œ ๊ทธ๋Œ€๋กœ
bm25 ํ›„๋ณด ๋‚ด๋ถ€ ๋‹จ์–ด ๋นˆ๋„ยท๋ฌธ์„œ ๋นˆ๋„๋กœ ์ผ์น˜๋„๋ฅผ ๊ณ„์‚ฐ
lexical_ordered ๋‹จ์–ด์™€ ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•œ ์—ฐ์† ๋‘ ๋‹จ์–ด์˜ ์ผ์น˜
narrow_rule ์–‘์ชฝ์ด behavior-v1:์˜ ๊ณต๊ฐœ๋œ ์ข์€ ๋ฌธ๋ฒ•์„ ์™„์ „ํžˆ ๋”ฐ๋ฅผ ๋•Œ๋งŒ ๊ทœ์น™ ๋น„๊ต. ํ•œ ํ›„๋ณด๋ผ๋„ ๋ฌธ๋ฒ• ๋ฐ–์ด๋ฉด ์š”์ฒญ ์ „์ฒด๋ฅผ BM25๋กœ ์ฒ˜๋ฆฌ
./bin/riido-shortclaim --baseline narrow_rule < examples/shortclaim/rule.json

๊ทœ์น™์€1~4๊ฐœ if [not] ์ด๋ฆ„ [๋น„๊ต์—ฐ์‚ฐ ์ด๋ฆ„] then [not] ๋™์ž‘ [๋Œ€์ƒ] else [not] ๋™์ž‘ [๋Œ€์ƒ] ์ ˆ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. ๋น„๊ต์—ฐ์‚ฐ < <= > >= == !=์—๋Š” ์ฃผ๋ณ€ ๊ณต๋ฐฑ์ด ํ•„์š”ํ•˜๋‹ค. ๋™์ž‘์€ keep/remove/accept/reject/preserve/reverse๋‹ค. ์กฐ๊ฑด ๋ถ€์ •์€ ๋ถ„๊ธฐ ๊ตํ™˜์œผ๋กœ ๋น„๊ตํ•˜๊ณ  ๋™์ž‘ ๋ถ€์ •์€ ์ •ํ™•ํ•œ flag๋กœ ๋ณด์กดํ•œ๋‹ค. ์ ˆ ์ˆœ์„œยทํ”ผ์—ฐ์‚ฐ์ž ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•œ๋‹ค. ์ผ๋ฐ˜ ๋ฌธ์žฅยท์ฝ”๋“œ์˜ ์˜๋ฏธ๋ฅผ ์ถ”๋ก ํ•˜๊ฑฐ๋‚˜ ๋™์˜์–ดยท๋ฐ˜๋Œ€๋งยท๋…ผ๋ฆฌ์  ํ•จ์˜๋ฅผ ์ผ๋ฐ˜ํ™”ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์‹ค์ œ ์ž์—ฐ์–ด ๊ฐœ๋ฐœ ์ž๋ฃŒ๋ฅผ ๊ทœ์น™์— ๋งž์ถฐ ๋ฐ”๊พธ์ง€ ์•Š์•˜๋‹ค.

๊ตฌ์กฐ์™€ ์ธก์ •

์š”์ฒญ๋‹น ๊ณ ์ • ํ›„๋ณด ๋ฐฐ์—ด8๊ฐœ์™€ ๋‹จ์–ด ๋ฐฐ์—ด32๊ฐœ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ํ† ํฐ์€ ๋ฌธ์ž์—ด์˜ ์ผ๋ถ€๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฉฐ, ์ž‘์€ ์ ์ˆ˜ ๋ฐฐ์—ด๊ณผ ์•ˆ์ • ์ •๋ ฌ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค. ๊ณต์œ  ์บ์‹œยท๊ณต์œ  ๊ฐ€๋ณ€ ์ƒํƒœยท๊ณต์œ  lockยทruntime map์ด ์—†๋‹ค. ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์™€ ์ •๋‹ต์€ ํŠน์ง•์—์„œ ๋ถ„๋ฆฌํ•œ๋‹ค. ์ „์ฒด ์‹œ์Šคํ…œ์ด ECS/SoA๋‚˜ SIMD๋ผ๋Š” ์ฃผ์žฅ์€ ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ด ํฌ๊ธฐ์—์„œ๋Š” ๊ณ ์ • ๋ฐฐ์—ด๋กœ ๊ฒ€์‚ฌํ•  ์ˆ˜ ์žˆ๋Š” ๋น„์šฉ์„ ๋จผ์ € ์ธก์ •ํ•œ๋‹ค.

--benchmark๋Š” ๊ณต๊ฐœ๋œ8ํ›„๋ณด ์˜ˆ์ œ์—์„œ ์ž…๋ ฅ ์ค€๋น„, ์ˆœ์œ„ ๊ณ„์‚ฐ, ์ž…๋ ฅ digest, ์ง๋ ฌํ™”, ์ „์ฒด Go ํ˜ธ์ถœ์„ ์ธก์ •ํ•œ๋‹ค. ์ˆœ์œ„ ๋‹จ๊ณ„๋Š” ์žฌ๊ฒ€์ฆยทํŠน์ง•ยท์ ์ˆ˜ยท์ •๋ ฌ์ด ํ•ฉ์ณ์ง„ ๊ฐ’์ด๋ฉฐ ๊ฐ๊ฐ์˜ ๋…๋ฆฝ ํƒ€์ด๋ฐ์œผ๋กœ ์˜ค์ธํ•˜์ง€ ์•Š๋Š”๋‹ค. cmd/riido-shortperf๋Š” ์‚ฌ์ „ ๊ณ ์ • ๊ณ„ํš์„ ํ™•์ธํ•œ ๋’ค OS ์ „์ฒด ํ”„๋กœ์„ธ์Šค RSSยทCPUยทcold ์‹œ์ž‘์„ ๊ธฐ๋กํ•œ๋‹ค. ์ธก์ • ๋ช…๋ น๊ณผ ๊ฒฐ๊ณผ๋Š” ํ›„์† ๊ฒฐ๊ณผ ๋ฌธ์„œ์—์„œ ์ œ๊ณตํ•œ๋‹ค.

--cpuprofile์€ ์œ ์ง€๋ณด์ˆ˜์šฉ ๋กœ์ปฌ ์ „์šฉ์ด๋‹ค. ์›์‹œ ํ”„๋กœํŒŒ์ผ์€ ๊ฐœ์ธ ๊ฒฝ๋กœ์™€ stack ์ •๋ณด๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ Git์ด๋‚˜ Hub์— ์˜ฌ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค. Go HeapAlloc์€ ์•„์ง ํšŒ์ˆ˜ํ•˜์ง€ ์•Š์€ ๊ฐ์ฒด๋ฅผ ํฌํ•จํ•˜๋ฉฐ OS peak RSS์™€ ๋‹ค๋ฅด๋‹ค. ์ด ์‹คํ—˜์€ CPU๋งŒ ์‚ฌ์šฉํ•˜๊ณ  GPUยทORTยท์ธ์ฝ”๋”๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

48๊ฐœ ๊ฐœ๋ฐœ ์š”์ฒญ์€48๊ฐœ ๋…๋ฆฝ ํ‘œ๋ณธ์ด ์•„๋‹ˆ๋‹ค. ๊ณต์œ  ํ›„๋ณดยท์›ํ˜•ยท์†Œ์Šคยทํ•ต์‹ฌ ํ…œํ”Œ๋ฆฟ์„ ์ „์ด์ ์œผ๋กœ ๋ฌถ๊ณ  ์ž์—ฐ์–ด ์ถฉ์‹ค์„ฑ๊ณผ ์œ ํ•œ Go truth table์„ ๋”ฐ๋กœ ํ™•์ธํ•œ๋‹ค. ์ด ๋„๊ตฌ์˜ ๋น ๋ฅธ ์‹คํ–‰์€ ์˜๋ฏธ ์ •ํ™•๋„ยทLLM ์‚ฌ์šฉ๋Ÿ‰ ์ ˆ๊ฐ์„ ์ž…์ฆํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋„๋ฉ”์ธ๋ณ„ ์ตœ์ข…2,400์š”์ฒญ ๋ชฉํ‘œ๋„ ๋Œ€์‹ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

โš ๏ธ **GitHub.com Fallback** โš ๏ธ