Laya Relevance 17 KO - teamswyg/laya-tools GitHub Wiki

Laya ์ฝ”๋“œ ๊ด€๋ จ์„ฑ ์‹ ํ˜ธ ์‹œํ—˜ 17 / 17b

ํ˜„์žฌ ์ฝ”๋“œ์šฉ INT8 ์ฒดํฌํฌ์ธํŠธ์˜ CoSQA ๊ด€๋ จ์„ฑ ์‹ ํ˜ธ๋Š” ๊ธฐ์ค€์„ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. ๊ถŒ์žฅ ์ฐธ/๊ฑฐ์ง“ ํ˜•์‹์˜ ๊ฒ€์ฆ AUC๋Š” 0.5040, ๊ฐ™์€ ์‚ฌ๋ก€์˜ BM25๋Š” 0.5378์ด์—ˆ๋‹ค. ์ด ๊ฒฐ๊ณผ๋ฅผ ์ž‘์€ ๋ชจ๋ธ์— ์ฆ๋ฅ˜ํ•  ์ข‹์€ ์ •๋‹ต ์‹ ํ˜ธ๋กœ ๊ฐ„์ฃผํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ธฐ์กด ๊ธฐ๋ณธ ์ •์ฑ…๊ณผ ๊ฐ€์ค‘์น˜๋Š” ๋ฐ”๊พธ์ง€ ์•Š์•˜๋‹ค.

์™œ ๋‘ ๊ณ„ํš์ด ์žˆ๋Š”๊ฐ€

์ฒซ plan-17์€ ์งˆ๋ฌธ๊ณผ ์ฝ”๋“œ๋ฅผ ์ƒํƒœ์— ๋„ฃ๊ณ  ์ผ๋ฐ˜ choice๋กœ ๋‘ ์„ค๋ช… ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ณ ๋ฅด๊ฒŒ ํ–ˆ๋‹ค. ์‹คํ–‰ ์ค‘ ๋ชจ๋ธ ์นด๋“œ์™€ ๊ธฐ์กด ๊ฒ€์ƒ‰ ์ฝ”๋“œ๋ฅผ ๊ฒ€ํ† ํ•˜๋ฉด์„œ, ์ด ์ฝ”๋“œ์šฉ ํŒŒ์ƒ ์ฒดํฌํฌ์ธํŠธ๊ฐ€ noul ๊ด€๋ จ์„ฑ ํ˜•์‹์œผ๋กœ ํ•™์Šต๋์Œ์„ ํ™•์ธํ–ˆ๋‹ค. ์–ด๋А ์‹คํ–‰์˜ ์ง‘๊ณ„ ๊ฒฐ๊ณผ๋„ ์—ด๊ธฐ ์ „์— plan-17b๋ฅผ ๋ณ„๋„๋กœ ์ปค๋ฐ‹ํ•ด ๊ถŒ์žฅ ํ˜•์‹ ์‹œํ—˜์„ ๊ณ ์ •ํ–ˆ๋‹ค. ์ฒซ ์‹คํ–‰์„ ์ˆจ๊ธฐ๊ฑฐ๋‚˜ ๋™์ผ ํ”„๋กœํ† ์ฝœ๋กœ ํ•ฉ์น˜์ง€ ์•Š๋Š”๋‹ค.

17b๋Š” ๊ธฐ์กด internal/search์˜ ์งˆ๋ฌธ๊ณผ ์„ ํƒ์ง€๋ฅผ ๋”ฐ๋ฅธ๋‹ค:

  • ์ƒํƒœ: File: [unavailable] ๋’ค์— ์ฝ”๋“œ. CoSQA์—๋Š” ์‹ค์ œ ๊ฒฝ๋กœ๊ฐ€ ์—†์–ด ๊ฐ€์ƒ์˜ ํŒŒ์ผ๋ช…์„ ๋งŒ๋“ค์ง€ ์•Š๋Š”๋‹ค.
  • ์งˆ๋ฌธ: Is this source code relevant to the software change: "{query}"?
  • ์„ ํƒ์ง€: false: no, the statement does not hold, true: yes, the statement holds.
  • ์ฃผ ์ ์ˆ˜๋Š” ์ด ์ˆœ์„œ์—์„œ true ํ™•๋ฅ ์ด๋‹ค. ์ˆœ์„œ๋ฅผ ๋’ค์ง‘์€ ์‹คํ–‰๊ณผ ๋‘ ์ ์ˆ˜์˜ ํ‰๊ท ์€ ์ฐธ๊ณ  ์ง€ํ‘œ๋‹ค.

์›๋ž˜ ์ฝ”๋“œ ๋ชจ๋ธ์€ ์†Œํ”„ํŠธ์›จ์–ด ๋ณ€๊ฒฝ๊ณผ ํ›„๋ณด ์ฝ”๋“œ์˜ ๊ด€๋ จ์„ฑ์„ ๋Œ€์ƒ์œผ๋กœ ํ•œ๋‹ค. CoSQA ์ž์—ฐ์–ด ๊ฒ€์ƒ‰๊ณผ ํŒŒ์ผ ๊ฒฝ๋กœ ์—†๋Š” ์ž…๋ ฅ์€ ๊ทธ ํ•™์Šต ์ƒํ™ฉ๊ณผ ๋‹ค๋ฅด๋‹ค. ์ด๋ฒˆ ์ˆ˜์น˜๋กœ ๋ชจ๋“  Laya ์ฒดํฌํฌ์ธํŠธยทFP32ยท์ž ์žฌ ์ž„๋ฒ ๋”ฉ์˜ ๋Šฅ๋ ฅ์„ ๋ถ€์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋ฒ”์œ„์™€ ๊ฒฐ๊ณผ

์›์ฒœ ์ „์ฒด๋ฅผ ์ฝ์–ด SHA-256๊ณผ ๊ธฐ์กด ๋ถ„๋ฆฌ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜๊ณ  ๊ฐœ๋ฐœ ์ฝ”๋“œ๋งŒ์œผ๋กœ BM25 ํ†ต๊ณ„๋ฅผ ๊ตฌ์„ฑํ–ˆ๋‹ค. ๋ชจ๋ธ ์ถ”๋ก ์€ validation์—๋งŒ ์ˆ˜ํ–‰ํ–ˆ๋‹ค. 607๊ฐœ ๊ฒ€์ฆ ์งˆ๋ฌธ ์ค‘ ๊ธฐ์กด 4,096๋ฐ”์ดํŠธ/64๋‹จ์–ด ๋ฒ”์œ„์— ๋“œ๋Š” 553๊ฐœ๋ฅผ ์‚ฌ์šฉํ–ˆ๊ณ , 54๊ฐœ๋Š” ๋ฒ”์œ„ ๋ฐ–์ด์—ˆ๋‹ค. ํ† ํฌ๋‚˜์ด์ € ์ถ”๊ฐ€ ์ œ์™ธ๋Š” ์—†์—ˆ๋‹ค. reserve1/2์™€ ์ด๋ฏธ ์‚ฌ์šฉ๋œ final์— ๋ชจ๋ธ ์ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜์ง€ ์•Š์•˜๋‹ค.

ํ˜•์‹ ์ฃผ AUC ์ •๋ฐฉํ–ฅ AUC ์—ญ๋ฐฉํ–ฅ AUC ํ‰๊ท  ์ ์ˆ˜ AUC ์ˆœ์„œ์— ๋”ฐ๋ฅธ ์ด์ง„ ํŒ๋‹จ ์ฐจ์ด
17 ์ผ๋ฐ˜ ์„ ํƒํ˜• (์ฐธ๊ณ ) 0.5373 0.5181 0.5481 0.5373 2/553
17b ๊ถŒ์žฅ noul 0.5040 0.5040 0.5277 0.5214 217/553

BM25 AUC๋Š” ๋‘ ์‹คํ–‰ ๋ชจ๋‘ 0.5378์ด๋‹ค. 17b์˜ ์ˆœ์„œ ๊ฐ„ ํ‰๊ท  ์ ˆ๋Œ€ ํ™•๋ฅ  ์ฐจ์ด๋Š” 0.2644๋‹ค. ์—ญ์ˆœ์€ ํ•™์Šต ์‹œ์˜ ํ‘œ์ค€ ์ˆœ์„œ๊ฐ€ ์•„๋‹Œ ์ง„๋‹จ์ด๋ฉฐ, ์ด๋ฅผ ํ‰๊ท ๋‚ด์„œ ์„ฑ๋Šฅ์„ ๊ณจ๋ผ ์“ฐ์ง€ ์•Š๋Š”๋‹ค. ๋‘ ๊ณ„ํš์˜ ๊ณ ์ • ๊ธฐ์ค€ AUCโ‰ฅ0.60 ๋ฐ BM25๋ณด๋‹คโ‰ฅ0.03 ๊ฐœ์„ ์€ ๋ชจ๋‘ ์‹คํŒจํ–ˆ๋‹ค. ์™ธ๋ถ€ ๋„๋ฉ”์ธ์—์„œ ์ ์ˆ˜๋ฅผ ๋ณด์ •๋œ ํ™•๋ฅ ์ด๋‚˜ ํ–‰๋™ ๊ถŒํ•œ์œผ๋กœ ํ•ด์„ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋ฐ˜๋ณต ์‚ฌ์šฉํ•œ ๊ฒ€์ฆ ๋ฐ์ดํ„ฐ์˜ ํƒ์ƒ‰ ๊ฒฐ๊ณผ์ด๋ฉฐ ์ตœ์ข… ๋…๋ฆฝ ํ‰๊ฐ€๊ฐ€ ์•„๋‹ˆ๋‹ค.

์‹คํ–‰ ๋น„์šฉ๊ณผ ์žฌํ˜„

๊ธฐ์กด code-int8-v2 ๋ชจ๋ธยทํ† ํฌ๋‚˜์ด์ €ยท์„ค์ •๊ณผ macOS ARM64 ONNX Runtime 1.30.0์˜ ํ•ด์‹œ๋ฅผ ๊ฒ€์‚ฌํ–ˆ๋‹ค. ๋ชจ๋ธ ๊ฐ€์ค‘์น˜ SHA-256์€ 0e3665bcf1aa7d8b224af93b5e10d8c86796227f7741da92f6c8a786364a44db๋‹ค. ์‹ค์ œ ์ถ”๋ก ์€ Go โ†’ ONNX Runtime CPU, 4๊ฐœ ์Šค๋ ˆ๋“œ, ์ตœ๋Œ€ 512ํ† ํฐ์œผ๋กœ ์ˆ˜ํ–‰ํ–ˆ๋‹ค. MPS/GPU ์‹คํ–‰์ด๋‚˜ ์‹ ๊ทœ ํ•™์Šต์€ ์•„๋‹ˆ๋‹ค.

17b๋Š” 553๊ฐœ ร— ๋‘ ์ˆœ์„œ = 1,106ํšŒ ์‹ค์ œ ๋„ค์ดํ‹ฐ๋ธŒ ์ถ”๋ก ์ด๋‹ค. ๋‹จ์ผ ์ถ”๋ก  ์ค‘์•™๊ฐ’ 62.777ms, p95 95.269ms. ์ „์ฒด ์™ธ๋ถ€ ๊ณ„์ธก wall 80.73์ดˆ, user CPU 307.10์ดˆ, ์ตœ๋Œ€ RSS 1,577,156,608๋ฐ”์ดํŠธ์˜€๋‹ค. ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ์ด๋ฏ€๋กœ CPU ์‹œ๊ฐ„ ํ•ฉ์ด ๊ฒฝ๊ณผ ์‹œ๊ฐ„๋ณด๋‹ค ํด ์ˆ˜ ์žˆ๋‹ค. ์•ฑ ๋‚ด๋ถ€ ์ „์ฒด ๊ฒฝ๊ณผ ์‹œ๊ฐ„ 80.322์ดˆ์™€ ์™ธ๋ถ€ ๊ณ„์ธก ๋ฒ”์œ„๋Š” ๋‹ค๋ฅด๋‹ค. 17์€ wall 80.44์ดˆ, ์ตœ๋Œ€ RSS 1,574,371,328๋ฐ”์ดํŠธ์˜€๋‹ค. ์ด๋Š” ์ „์ฒด ํ”„๋กœ์„ธ์Šค ๋ฉ”๋ชจ๋ฆฌ์ด๋ฉฐ ์ž‘์€ ๋ชจ๋ธ ํŒŒ์ผ ํฌ๊ธฐ์™€ ๋น„๊ตํ•ด ํ˜ผ๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค.

ํ•œ ๋ชจ๋ธ ์„ธ์…˜์œผ๋กœ ์ˆœ์ฐจ ์‹คํ–‰ํ•˜๊ณ , ํ˜ธ์ถœ ์‚ฌ์ด์— 1์‹œ๊ฐ„ยทRSS 8GiB ํ•œ๋„๋ฅผ ๊ฒ€์‚ฌํ•œ๋‹ค. ๋„ค์ดํ‹ฐ๋ธŒ ํ˜ธ์ถœ ๋‚ด๋ถ€์˜ ์ˆœ๊ฐ„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ•์ œ๋กœ ์ œํ•œํ•˜๋Š” ์žฅ์น˜๋Š” ์•„๋‹ˆ๋‹ค. ์‹คํ–‰ ๋กœ๊ทธ๋Š” ์ˆซ์ž ์ง„ํ–‰๋ฅ ๋งŒ ์ถœ๋ ฅํ•˜๋ฉฐ ์›๋ฌธยท์งˆ๋ฌธยทํ–‰๋ณ„ ์˜ˆ์ธก์€ ๊ณต๊ฐœํ•˜์ง€ ์•Š๋Š”๋‹ค. ์†Œ์Šคยท๋ถ„๋ฆฌยท๋ชจ๋ธยท๊ณ„ํš ํ•ด์‹œ์™€ ์ „์ฒด ์ ์ˆ˜ trace ํ•ด์‹œ๋ฅผ ๊ฒฐ๊ณผ์— ๋‚จ๊ฒผ๋‹ค. ์ „์ฒด ๋„ค์ดํ‹ฐ๋ธŒ ์‹คํ–‰์˜ ๋ฐ˜๋ณต ์ผ์น˜๊นŒ์ง€ ๊ฒ€์ฆํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.

go run ./cmd/riido-layaprobe --protocol noul --model-dir .cache/models-v2/code --runtime /path/to/pinned/libonnxruntime.1.30.0.dylib
# ์ฒ˜์Œ ์‹œ๋„ํ•œ ์ผ๋ฐ˜ ์„ ํƒํ˜•์€ ๋ณ„๋„ ์ฐธ๊ณ  ์‹คํ–‰์ด๋‹ค.
go run ./cmd/riido-layaprobe --protocol choice --model-dir .cache/models-v2/code --runtime /path/to/pinned/libonnxruntime.1.30.0.dylib

๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋Š” ํ‰๊ฐ€ ๊ตฌ๊ฐ„ ๊ฒฉ๋ฆฌ, ์–‘์ชฝ ์ˆœ์„œ์˜ true ํ™•๋ฅ  ์œ„์น˜, ๊ถŒ์žฅ ํ˜•์‹์˜ ์ฃผ ์ ์ˆ˜๊ฐ€ ์ •๋ฐฉํ–ฅ์ž„์„ ๊ฒ€์‚ฌํ•˜๊ณ , ๊ฐ™์€ ์ œ์™ธ ์‚ฌ๋ก€๋กœ BM25๋ฅผ ๋น„๊ตํ•˜๋„๋ก ํ•œ๋‹ค. ํ…Œ์ŠคํŠธ ๋Œ€์—ญ์„ ์‹ค์ œ ๋ชจ๋ธ ๊ฒฐ๊ณผ๋ผ๊ณ  ๋ถ€๋ฅด์ง€ ์•Š๋Š”๋‹ค.

๋‹ค์Œ์—๋Š” ๋Ÿฐํƒ€์ž„์˜ ์›๋ณธ ์ฐธ์กฐ ์ผ์น˜์™€ ์‹ค์ œ ์‚ฌ์šฉ ๊ณผ์—…์˜ ์ ํ•ฉ์„ฑ์„ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค. ์ด ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ  ๋ฌด์ž‘์ • ๋” ํฐ ํ•™์Šต์ด๋‚˜ 3์ง„ ์ฆ๋ฅ˜๋ฅผ ์‹œ์ž‘ํ•˜์ง€ ์•Š๋Š”๋‹ค. CoSQA ๋ฐ์ดํ„ฐ ์กฐ๊ฑด๊ณผ ์ฒดํฌํฌ์ธํŠธ Apache ๊ณ ์ง€๋Š” ๋ณ„๊ฐœ๋กœ ์œ ์ง€ํ•˜๋ฉฐ ์ƒˆ ๋ชจ๋ธ/์›๋ฌธ์„ Git ๋˜๋Š” HF์— ๊ฒŒ์‹œํ•˜์ง€ ์•Š์•˜๋‹ค.

Source and CI: PR #40, merged as aa871ac66629bdc4af5b43e3a3efe8c7434c3179. Exact-head CI passed macOS, Linux, security and quality checks. CI validates software; it does not make the failed model-quality gate pass.