Retrieval Audit 06 KO - teamswyg/laya-tools GitHub Wiki

๊ฒ€์ƒ‰ ์ž๋ฃŒ ์ ๊ฒ€ 06: 2,400๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์งˆ๋ฌธ์„ ์ค€๋น„ํ•˜๊ธฐ

English ยท ์ง‘๊ณ„ ๊ฒฐ๊ณผ

์•„์ง ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ ์‹œํ—˜์ด ์•„๋‹ˆ๋‹ค. 24๊ฐœ ์งˆ๋ฌธ์— ํ›„๋ณด 100๊ฐœ์”ฉ์„ ๋ถ™์—ฌ๋„ ์งˆ๋ฌธ 2,400๊ฐœ๊ฐ€ ๋˜์ง€๋Š” ์•Š๋Š”๋‹ค. ๊ธฐ์กด CoSQA ๋ถ„๋ฅ˜ ์‹œํ—˜์˜ ์‹คํŒจ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ, ์‹ค์ œ ํ›„๋ณด ์ฐพ๊ธฐ ์‹œํ—˜์— ์“ธ ๋ณ„๋„ ์ž๋ฃŒ์˜ ํŽธํ–ฅ๊ณผ ๋ถ„๋ฆฌ ๊ฐ€๋Šฅ์„ฑ์„ ์กฐ์‚ฌํ–ˆ๋‹ค. ์›๋ฌธยท์งˆ๋ฌธยท์ฝ”๋“œยท๊ฐ€์ค‘์น˜๋Š” ๊ณต๊ฐœํ•˜์ง€ ์•Š๋Š”๋‹ค.

ํ™•์ธํ•œ ์ˆ˜์น˜

ํ•ญ๋ชฉ ์ˆ˜
ํ•จ์ˆ˜/์„ค๋ช… ์Œ 14,291
์ €์žฅ์†Œ 213
์†Œ๋ฌธ์žยท๊ณต๋ฐฑ ์ •๊ทœํ™” ํ›„ ๊ณ ์œ  ์„ค๋ช… 11,678
์ฃผ์„ยท์„œ์‹์„ ์ œ์™ธํ•œ ๊ณ ์œ  Go ํ† ํฐ์—ด 14,291
์„ค๋ช…์— ํ•จ์ˆ˜ ์ด๋ฆ„์ด ๋…๋ฆฝ๋œ ๋‹จ์–ด๋กœ ๋“ฑ์žฅ 12,908
์„ค๋ช… ์ „์ฒด๊ฐ€ ์ฝ”๋“œ์— ์ •๊ทœํ™” ํ›„ ๊ทธ๋Œ€๋กœ ํฌํ•จ 2
์„ค๋ช…์ด ์„ธ ๋‹จ์–ด ๋ฏธ๋งŒ 104
๊ฒฝ๋กœยทํ•จ์ˆ˜ ๋ฐœ์ทŒ๋ฌธ์—์„œ ์ฐพ์€ ์ƒ์„ฑ ์ฝ”๋“œ ๋‹จ์„œ 34
์ €์žฅ์†Œยท๋™์ผ ์„ค๋ช…ยท๋™์ผ ์ฝ”๋“œ๋กœ ์—ฐ๊ฒฐํ•œ ๊ทธ๋ฃน 205

ํ•จ์ˆ˜ ์ด๋ฆ„ ์ถœํ˜„์€ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ๋ฌธ์žยท์ˆซ์žยท๋ฐ‘์ค„ ๋‹จ์–ด ๊ฒฝ๊ณ„๋ฅผ ํ™•์ธํ•œ๋‹ค. ์ด๊ฒƒ๋งŒ์œผ๋กœ ๋ถ€์ •ํ•œ ๋ฐ์ดํ„ฐ ๋ˆ„์ถœ์ด๋ผ๊ณ  ๋‹จ์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋‹ค๋งŒ ์‚ฌ์šฉ์ž๊ฐ€ ํ•จ์ˆ˜ ์ด๋ฆ„์„ ๋ชจ๋ฅด๋Š” ํƒ์ƒ‰ ๋Šฅ๋ ฅ๊ณผ ์ด๋ฆ„ ๊ฒ€์ƒ‰ ๋Šฅ๋ ฅ์„ ๊ตฌ๋ถ„ํ•ด์•ผ ํ•œ๋‹ค. ์ „์ฒด ํ–‰์—์„œ ํ•จ์ˆ˜ ์ด๋ฆ„์ด ์—†๋Š” ํ–‰์€ 1,383๊ฐœ์ด๋ฏ€๋กœ ํ˜„์žฌ ์ž๋ฃŒ๋งŒ์œผ๋กœ 'ํ•จ์ˆ˜ ์ด๋ฆ„์„ ๋ชจ๋ฅด๋Š” ์งˆ๋ฌธ 2,400๊ฐœ' ์‹œํ—˜์„ ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค. ๊ฐ™์€ ์„ค๋ช…์„ ์žฌ์ž‘์„ฑํ•ด ์ˆ˜๋งŒ ์ฑ„์šฐ์ง€ ์•Š๋Š”๋‹ค.

codeKey๋Š” Go scanner๋กœ ์ฃผ์„ยท์„œ์‹์„ ์ œ๊ฑฐํ•˜์ง€๋งŒ ๋ฌธ์ž์—ด ๋‚ด์šฉ๊ณผ ํ† ํฐ ๊ฒฝ๊ณ„๋ฅผ ์œ ์ง€ํ•œ๋‹ค. ๋ณ€์ˆ˜๋ช… ๋ณ€๊ฒฝยท์˜๋ฏธ์ƒ ๋ณต์ œ๊นŒ์ง€ ์ฐพ์•˜๋‹ค๋Š” ๋œป์€ ์•„๋‹ˆ๋‹ค. ๋™์ผ ์ €์žฅ์†Œ ๋˜๋Š” ๋™์ผ ์„ค๋ช…/์ฝ”๋“œ๋กœ ์—ฐ๊ฒฐ๋œ ์‚ฌ๋ก€๋ฅผ ๊ฐ™์€ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์–ด ํ–ฅํ›„ ํ•™์Šต/ํ‰๊ฐ€ ๋ˆ„์ถœ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€์žฅ ํฐ ๊ทธ๋ฃน์€ ํ•œ ์ €์žฅ์†Œ์˜ 2,579๊ฐœ๋ผ, ๊ทธ๋ฃน ํ•˜๋‚˜๋กœ ์ˆ˜์น˜ ๋ชฉํ‘œ๋ฅผ ์ฑ„์šฐ๋Š” ๊ฒƒ์„ ํ”ผํ•˜๊ณ  ์ถœ์ฒ˜๋ณ„ ์„ฑ๋Šฅ๋„ ๋ณด๊ณ ํ•ด์•ผ ํ•œ๋‹ค. ์•„์ง ๋ถ„ํ• ์ด๋‚˜ ์ œ์™ธ ์ •์ฑ…์„ ํ™•์ •ํ•˜์ง€ ์•Š์•˜๋‹ค.

์ƒ์„ฑ ์ฝ”๋“œ์™€ ์ด์šฉ ์กฐ๊ฑด

์›์ฒœ์€ CodeSearchNet ๋ฐฐํฌ๋ณธ์˜ ๊ณ ์ • Parquet๋‹ค. SHA256์€ cb78d8951e9623bc2460d9b29c3c4152724f28c4f685fc019e0aafa071d2b18f, ํฌ๊ธฐ๋Š” 9,751,451๋ฐ”์ดํŠธ๋‹ค. Python์€ ์œ ์ง€๊ด€๋ฆฌ์šฉ Parquet ํˆฌ์˜์—๋งŒ ์“ฐ๋ฉฐ ์ ๊ฒ€ ๊ณ„์‚ฐ์€ Go๋‹ค.

๊ฒฝ๋กœ๋งŒ ๋ณด๊ณ  ์ƒ์„ฑ ์ฝ”๋“œ๋ฅผ ํ™•์ •ํ•  ์ˆ˜ ์—†๋‹ค. chromedp/cdproto๋Š” 2,579๊ฐœ ํ–‰๊ณผ 114๊ฐœ ๊ฒฝ๋กœ๋ฅผ ์ฐจ์ง€ํ•œ๋‹ค. ํ‘œ๋ณธ์œผ๋กœ ์›์ฒœ commit์˜ domstorage.go๋ฅผ ํ™•์ธํ–ˆ์œผ๋ฉฐ ํ—ค๋”์— Generated by the cdproto-gen command.๊ฐ€ ์žˆ์—ˆ๋‹ค. ํ™•์ธํ•œ ํŒŒ์ผ SHA256์€ 86521cac6e076b84c700a6236787d5be52fb211ab06de518db919fe76d48efa0์ด๋‹ค. ์ด๊ฒƒ์œผ๋กœ ๋‚˜๋จธ์ง€ 113๊ฐœ ํŒŒ์ผ๋„ ๊ฒ€์‚ฌํ–ˆ๋‹ค๊ณ  ์ฃผ์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ์œ„์˜ 34๊ฐœ๋Š” ์ƒ์„ฑ ์ฝ”๋“œ ์ „์ฒด ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋‹ค.

vendor ๊ฒฝ๋กœ๊ฐ€ 0๊ฐœ์—ฌ๋„ ์ œ3์ž ์ฝ”๋“œ๊ฐ€ ์—†๋‹ค๋Š” ์˜๋ฏธ๋Š” ์•„๋‹ˆ๋‹ค. ๊ธฐ์กด ์ถœ์ฒ˜ยท๋ฃจํŠธ ๋ผ์ด์„ ์Šค ์ ๊ฒ€์€ ์ผ๋ถ€ ์ €์žฅ์†Œ๋งŒ ๋‹ค๋ฃฌ๋‹ค. ํŒŒ์ผ๋ณ„ ๊ณ ์ง€, ์ƒ์„ฑ ์ฝ”๋“œ, ์ค‘๋ณต๊ณผ ์งˆ๋ฌธ ์ถœ์ฒ˜๋ฅผ ์ถ”๊ฐ€ ์ ๊ฒ€ํ•ด์•ผ ํ•˜๋ฉฐ, ๊ฒฐ๊ณผ์˜ license_cleared=false๋ฅผ ์œ ์ง€ํ–ˆ๋‹ค. ์„ค๋ช… ๊ธฐ๋ฐ˜ ์งˆ๋ฌธ์€ ์‹ค์ œ ์‚ฌ์šฉ์ž ์š”์ฒญ๊ณผ ๊ตฌ๋ถ„ํ•œ๋‹ค.

๋‹ค์Œ ํ‰๊ฐ€ ๊ณ„์•ฝ

  1. ๊ฒ€์ƒ‰ ์งˆ๋ฌธ์€ ์ตœ์†Œ 2,400๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์งˆ๋ฌธ์œผ๋กœ ์„ผ๋‹ค. ํ›„๋ณด ์ˆ˜, ๋ฐ˜๋ณต ์‹คํ–‰, ๋ฒˆ์—ญยท๋‹จ์ˆœ ์žฌ์ž‘์„ฑ์œผ๋กœ ์ˆ˜๋ฅผ ๋ถ€ํ’€๋ฆฌ์ง€ ์•Š๋Š”๋‹ค.
  2. ์‹ค์ œ ์ž์—ฐ์–ด ํƒ์ƒ‰ ์ฃผ์žฅ์€ ํ•จ์ˆ˜ ์ด๋ฆ„์„ ๋ชจ๋ฅด๋Š” ๋…๋ฆฝ ์งˆ๋ฌธ ์ž๋ฃŒ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ํ˜„์žฌ ์„ค๋ช… ๊ธฐ๋ฐ˜ ์‹œํ—˜์€ ๋ณ„๋„ ๋Œ€๋ฆฌ ์ง€ํ‘œ๋กœ ๊ธฐ๋กํ•œ๋‹ค. ์ด๋ฆ„ ์œ ๋ฌด๋ณ„ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜๋ˆ„๊ณ , ์ด๋ฆ„ ์ œ๊ฑฐ ์‹œํ—˜์€ ์ธ์œ„์ ์ธ ๋ณด์กฐ ์‹œํ—˜์ž„์„ ํ‘œ์‹œํ•œ๋‹ค.
  3. ์ €์žฅ์†Œยท์ค‘๋ณต ์—ฐ๊ฒฐ ๊ทธ๋ฃน์„ ๋ถ„๋ฆฌํ•˜๊ณ  ์ถœ์ฒ˜๋ณ„ ๊ฒฐ๊ณผ์™€ ์ง‘์ค‘๋„๋ฅผ ๊ณต๊ฐœํ•œ๋‹ค. ์ด์šฉ ์กฐ๊ฑด์ด ํ™•์ธ๋œ ์ž๋ฃŒ๋งŒ ์ฑ„ํƒํ•œ๋‹ค. ๋ชจ๋ธ ์ ์ˆ˜๋ฅผ ๋ณด๊ณ  ์‰ฌ์šด ์‚ฌ๋ก€๋ฅผ ๊ณ ๋ฅด์ง€ ์•Š๋Š”๋‹ค.
  4. ์•Œ๋ ค์ง„ ์ •๋‹ต ํ•จ์ˆ˜์˜ ์ˆœ์œ„, Recall@k/MRR, ๊ฒ€์‚ฌ ํ›„๋ณด ์ˆ˜, ์ค€๋น„ ์‹œ๊ฐ„, ๊ฒ€์ƒ‰ p50/p95, ์ „์ฒด RSS๋ฅผ ์ธก์ •ํ•œ๋‹ค. ๋‹ค๋ฅธ ํ›„๋ณด๋Š” ๋ฏธํŒ์ •์ด๋ฉฐ ๋ฌด์กฐ๊ฑด ์˜ค๋‹ต์œผ๋กœ ์„ธ์ง€ ์•Š๋Š”๋‹ค.
  5. ์‹ค์ œ ์—์ด์ „ํŠธ ์ž‘์—… ์„ฑ๊ณต๋ฅ ยท์ด ์‹œ๊ฐ„ยทLLM ์‚ฌ์šฉ๋Ÿ‰์€ ๋ณ„๋„ ์‹œํ—˜์ด๋‹ค. ์ด ์ž๋ฃŒ์˜ ์ ์ˆ˜๋กœ ๋น„์šฉ ์ ˆ๊ฐ์ด๋‚˜ ์‹ค์‚ฌ์šฉ ์ค€๋น„ ์™„๋ฃŒ๋ฅผ ์ฃผ์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค. CoSQA reserve ๋‘ ๋ฌถ์Œ์€ ๊ทธ๋Œ€๋กœ ๋ฏธํ‰๊ฐ€ ์ƒํƒœ๋‹ค.

์žฌํ˜„

๊ณ ์ • Parquet์™€ ์œ ์ง€๊ด€๋ฆฌ์šฉ PyArrow ํ™˜๊ฒฝ์„ ์ค€๋น„ํ•œ ๋’ค ์‹คํ–‰ํ•œ๋‹ค. ํˆฌ์˜ ํŒŒ์ผ์€ ์›๋ฌธ์„ ํฌํ•จํ•˜๋ฏ€๋กœ .cache ๋ฐ–์— ๊ณต๊ฐœํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ถœ๋ ฅ ํŒŒ์ผ์€ ์ƒˆ ๊ฒƒ์ด์–ด์•ผ ํ•œ๋‹ค.

python scripts/training/project_retrieval_audit.py \
  --input .cache/codesearchnet-go/go/test-00000-of-00001.parquet \
  --output .cache/retrieval-audit-new.jsonl
go run ./cmd/riido-retrievalaudit --input .cache/retrieval-audit-new.jsonl

Go CLI๋Š” ๋กœ์ปฌ JSONL์„ ์ ๊ฒ€ํ•˜๋Š” ๋„๊ตฌ์ด๋ฉฐ ์ž…๋ ฅ ์ „์ฒด 64MiB/ํ–‰ 2MiB/100,000ํ–‰ ํ•œ๋„๋ฅผ ๋‘”๋‹ค. ๋ฏธ์ง€ ํ•„๋“œยท์—ฌ๋ถ„ JSONยท๋นˆ ์ž๋ฃŒ๋ฅผ ๊ฑฐ๋ถ€ํ•œ๋‹ค. ์›์ฒœ ๊ณ ์ • ํ•ด์‹œ๋Š” ํˆฌ์˜ ๋„๊ตฌ๊ฐ€ ํ™•์ธํ•˜๊ณ  Go ๊ฒฐ๊ณผ๋Š” ํˆฌ์˜ ํŒŒ์ผ์˜ ํ•ด์‹œ๋ฅผ ๊ธฐ๋กํ•œ๋‹ค. Go CLI ๋‹จ๋…์œผ๋กœ ์ถœ์ฒ˜๋ฅผ ์ธ์ฆํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค. ๋งต์€ ์˜คํ”„๋ผ์ธ ์ค‘๋ณต ์ ๊ฒ€์—๋งŒ ์‚ฌ์šฉํ•˜๋ฉฐ ์ถ”๋ก  ๊ฒฝ๋กœ๊ฐ€ ์•„๋‹ˆ๋‹ค.

Apple M4 Pro/Go1.27.1์—์„œ ์ปดํŒŒ์ผ๋œ ์ ๊ฒ€ ๋„๊ตฌ์˜ ์žฌ์‹คํ–‰์€ wall 0.66์ดˆ, user CPU 0.30์ดˆ, ์ตœ๋Œ€ RSS 63,143,936๋ฐ”์ดํŠธ์˜€๋‹ค. ์ถœ๋ ฅ์€ ์ฒซ ์‹คํ–‰๊ณผ ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ๊ฐ™์•˜๋‹ค. Parquet ํˆฌ์˜ยท๋‹ค์šด๋กœ๋“œ ์‹œ๊ฐ„์€ ํฌํ•จํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋ชจ๋ธ ์ถ”๋ก  ์„ฑ๋Šฅ๋„ ์•„๋‹ˆ๋‹ค.