Baseline First 10 KO - teamswyg/laya-tools GitHub Wiki
์ฒซ ํ๋ณด ๋ณด์กด 10: ์ง์ ์ฌ์ฉํ ์ ์๋ ๋นํ์ต ๋ณด์กฐ ๊ฒ์
๊ธฐ์กด ๊ฒ์์ ์ฒซ ํ๋ณด๋ฅผ ๊ณ ์ ํ๊ณ ์๋ณ์ ๋ถ๋ฆฌ ๊ฒ์์ ํ๋ณด๋ฅผ ์ฌ์ด์ ๋ฃ๋๋ค. 2,948๊ฐ ๋ฌธ์ ์ค๋ช ์ง๋ฌธ์์ ์ฒซ ํ๋ณด ์ ๋ต๋ฅ ์ ์ ์งํ๋ฉด์ ์์ 10๊ฐ ๋ฐ๊ฒฌ๋ฅ ๊ณผ ํ๊ท ์ ๋ต ์์๋ฅผ ๊ฐ์ ํ๋ค. ํ์ต ๋ชจ๋ธ์ ์ฑ๊ณผ๊ฐ ์๋ ๋นํ์ต ๊ธฐ์ค์ ์ด๋ฉฐ, ๊ธฐ๋ณธ ์ต์ ์ ๋ฐ๊พธ์ง ์๋๋ค.
๋ฐ๋ก ์ํํ๊ธฐ
๋ชจ๋ธ ๋ค์ด๋ก๋๋ Python ์์ด ๋ค์ ์๋ณธ ๊ณต๊ฐ ์์ ๋ก ์คํํ ์ ์๋ค.
printf '%s\n' '{"snapshot_id":"demo","query":"read config","documents":[{"id":"a","text":"read"},{"id":"b","text":"config"},{"id":"c","text":"func ReadConfig() {}"}]}' \
| go run ./cmd/riido-hints --identifier-hints
๊ธฐ์กด ์์๋ a,b,c์ด๊ณ ์ ์์๋ a,c,b๋ค. ์ฒซ ํ๋ณด a๋ ์ ์งํ๋ฉด์ ReadConfig๋ฅผ read config๋ก ๋๋ ์ฐพ์ c๋ฅผ ๋ ๋ฒ์งธ์ ์ ์ํ๋ค. ์ถ๋ ฅ์ ํ๋ณด IDยท์์ยท๊ธฐ์กด BM25 ์ ์์ด๋ฉฐ ์๋ฌธ ์ฝ๋๋ฅผ ๋ด๋ณด๋ด์ง ์๋๋ค. ์ ์๋ ๊ธฐ์กด ๊ฒ์ ์ ์์ด๋ฏ๋ก ์ ์์์์ ๋ฐ๋์ ๋ด๋ฆผ์ฐจ์์ธ ๊ฒ์ ์๋๋ค. status: unverified, policy: identifier_bm25_baseline_first๋ก ํ์๋๋ค.
์ต์
์ ๋นผ๋ฉด ๊ธฐ์กด ๊ฒ์์ด๋ค. ์ธ๋ถ ํํธ๋ --model๊ณผ ํจ๊ป ์ฌ์ฉํ๋ฉด ๋ช
์์ ์ผ๋ก ๊ฑฐ๋ถํ๋ค. ๋ถ๋ฆฌ ํ ์๋ฃ๊ฐ ๊ธฐ์กด ์
๋ ฅ ํ๋๋ฅผ ๋๊ฑฐ๋ ์ง๋ฌธ์ ๊ฒ์ํ ๋จ์ด๊ฐ ์์ผ๋ฉด ๊ธฐ์กด ์์๋ก ๋์๊ฐ๋ฉฐ bm25_identifier_input_out_of_scope๋ก ํ์ํ๋ค. ํธ์ถ์๋ ์ ๊ทผ ๊ฐ๋ฅํ ์๋ฃ๋ง ์ ๋ฌํด์ผ ํ๋ค. ์ด ๋๊ตฌ๊ฐ ์ ์ฅ์๋ฅผ ์๋์ผ๋ก ์ฝ๊ฑฐ๋ ๊ถํ์ ํ๋จํ์ง๋ ์๋๋ค. ํ์ฌ ์ ์ฒด ํ๋ณด๋ฅผ ์ถ๋ ฅํ๋ฏ๋ก ๋ง์ ํ๋ณด์ ์ถ๋ ฅ ํ ํฐ ๋น์ฉ๋ ๋ณ๋๋ก ๊ณ ๋ คํด์ผ ํ๋ค.
๋ณดํธ ๋ฒ์
Go API๋ hintsearch.InterleaveBaselineFirst(baseline, hints)๋ค. ๋ถ๋ถ ํํธ๋ ํ์ฉํ๊ณ , ๋๋ฝยท์ค๋ณต ์์ด ๋ชจ๋ ๊ธฐ์กด ํ๋ณด๋ฅผ ๋จ๊ธด๋ค. ๊ธฐ์กด r๋ฒ์งธ ํ๋ณด๋ ๋ฆ์ด๋ 2rโ1๋ฒ์งธ(์ ์ฒด ํ๋ณด ์ ์ด๋ด)์ ๋์จ๋ค. ์๋ฅผ ๋ค์ด ๊ธฐ์กด 3๋ฒ์งธ ํ๋ณด๋ ์ต๋ 5๋ฒ์งธ๋ค. ์ด๋ ์ ํํ๊ณ ๋์ผ ๋น์ฉ์ธ ํ๋ณด ๊ฒ์ฌ๋ฅผ ๊ฐ์ ํ ๊ฐ์ ์ ํ์ด๋ค. ์ค์ ์๊ฐยทํ ํฐยท๋ณต์ ์ฆ๊ฑฐ ์์ง์ด๋ ๋ณด์กฐ ๊ฒ์ ์์ฑ ๋น์ฉ์ ์ ํ์ ์๋๋ค. ์ฒซ ํ๋ณด๊ฐ ๊ฐ์๋ ๊ทธ ๋ค์ ์ผ๋ถ ์์๋ ๋๋น ์ง ์ ์๋ค.
์ค์ ์๋ฃ ๊ฒฐ๊ณผ
์์ 07/09์ ๊ฐ์ ๊ณ ์ ๋ ์ธ ์ ์ฅ์ยท3,009๊ฐ ํจ์ยท2,948๊ฐ ๊ณ ์ ์ค๋ช ์ ์ฌ์ฉํ๋ค. ์ ์ธ ์ ์ฑ , ํ๋ณด ํด์ ์์์ ์๋ ค์ง ์ ๋ต์ ๋ฐ๊พธ์ง ์์๋ค. ์ฒซ ์์ฒ ์ ์ ๊ณ์ฐ ์ ์ ๊ตฌํ์ commitํ๊ณ , ์ฌ์คํ์ ์ ์ฒด JSON์ด ๋ฐ์ดํธ ๋จ์๋ก ๊ฐ์๋ค. ์ด๋ฏธ ๊ด์ฐฐํ ๋ฌธ์ ๊ธฐ๋ฐ ์๋ฃ์ด๋ฏ๋ก ์ ๋ ๋ฆฝ ์ฌ์ฉ์ ์ง๋ฌธ ์ํ์ ์๋๋ค.
| ๋ฐฉ์ | ์ฒซ ํ๋ณด ์ ๋ต๋ฅ | ์์ 10๊ฐ ๋ฐ๊ฒฌ๋ฅ | MRR | ํ๊ท ์ฒซ ์ ๋ต ์์ |
|---|---|---|---|---|
| ๊ธฐ์กด BM25 | 41.79% | 74.83% | 0.5336 | 48.99 |
| ๋ณด์กฐ ๊ฒ์ ํ๋ณด๋ถํฐ ๊ต์ฐจ | 39.21% | 81.51% | 0.5479 | 26.71 |
| ๊ธฐ์กด ํ๋ณด๋ถํฐ ๊ต์ฐจ | 41.79% | 81.38% | 0.5601 | 26.70 |
๊ธฐ์กด ํ๋ณด๋ถํฐ ๊ต์ฐจํ ๊ฒฐ๊ณผ 733๊ฐ ์ง๋ฌธ์์ ์์๊ฐ ์ข์์ง๊ณ , 674๊ฐ์์ ๋๋น ์ง๊ณ , 1,541๊ฐ๋ ๊ฐ์๋ค. ํ๊ท ๊ฐ์ ์ด ๋ชจ๋ ์ง๋ฌธ์ ๊ฐ์ ์ด๋ผ๋ ๋ป์ ์๋๋ค. ์ ์ฅ์๋ณ ์์น๋ JSON์ ์๋ค. ์ด ๋นํ์ต ๊ธฐ์ค์ ์ ์ดํ ํ์ต ๋ชจ๋ธ์ด ์ถ๊ฐ ๋น์ฉ๊น์ง ๊ณ ๋ คํด ๋์ด์ผ ํ๋ค. ๊ธฐ์กด 09์ ์คํจ ๋ชจ๋ธ์ ํฉ๊ฒฉ์ผ๋ก ๋ฐ๊พธ๊ฑฐ๋ HF ๊ฐ์ค์น๋ฅผ ๊ต์ฒดํ์ง ์์๋ค.
๊ฒ์ฆ๊ณผ ๋น์ฉ
1~7๊ฐ ํ๋ณด์ ๋ชจ๋ ํํธ ์์ดยท๋ถ๋ถ ๊ธธ์ด์ ๋ํด ์ฒซ ํ๋ณดยท์ ์ฒด ํ๋ณด ๋ณด์กด๊ณผ 2rโ1 ์ ํ์ ๊ฒ์ฌํ๋ค. ๊ธฐ์กด ๋ณด์กฐ ํ๋ณด ์ฐ์ ๋์๋ ๊ณ์ ๊ฒ์ฌํ๋ค. ๊ธฐ์กด 09 ํ์ต์ ์ ๊ณตํต ๊ตฌํ์ผ๋ก ๋ค์ ์คํํด ์ ์ฒด ๊ฒฐ๊ณผ JSON์ด ๊ฐ์์ ํ์ธํ๋ค. CLI๋ ์ค์ ์คํ ์์ ์ ์ถฉ๋ยท๋ฒ์ ์ด๊ณผ ๋ณต๊ท๋ฅผ ๊ฒ์ฌํ๋ค.
Apple M4 Pro/Go1.27.1 CPU์์ ๋น๊ต ๋๊ตฌ ์ ์ฒด๋ wall 3.02์ด/user CPU 2.67์ด/์ต๋ RSS 94,683,136๋ฐ์ดํธ์๋ค. ๋ ์ ์ฑ ๋น๊ต๋ฅผ ์ํด ์์ฒ ๊ฒ์ฆ๊ณผ ๋ ๋ฒ์ ์ ์ฒด ๊ฒ์ ์ค๋น๋ฅผ ํฌํจํ๋ค. ๋จ์ผ CLI ๊ฒ์์ด๋ ์๋น์ค ์ง์ฐ ์์น๊ฐ ์๋๋ค. ์ต์ ์ ์ถ๊ฐ ์์ธ๊ณผ ๊ฒ์์ ์ํํ๋ฏ๋ก ์์ ์๊ฐ์ ํญ์ ์ค์ธ๋ค๊ณ ์ฃผ์ฅํ์ง ์๋๋ค. ํ์ตยทGPUยทLLM ํธ์ถ์ ์ด ๋น๊ต์ ์๋ค.
# 07์์ ์ค๋นํ ๊ณ ์ ์์ฒ์ ์ฌ์ฉํ๋ค.
go run ./cmd/riido-interleaveprobe
go test -race ./pkg/hintsearch ./cmd/riido-hints ./internal/retrievalbench
๋ค์ ํ์ต์ ์ด ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค์ ๊ฒ์ฌ๋ ์ด๋๊ณผ ๋ณด์กฐ ๊ฒ์ ๋น์ฉ์ ๋ค๋ค์ผ ํ๋ค. ์ค์ ์ฌ์ฉ์ ์์ ์ฑ๊ณตยท์ ์ฒด ์๊ฐยทํ ํฐ ์ ๊ฐ, ๋ ๋ฆฝ ์ง๋ฌธ ์๋ฃ์ ๋ณด๋ฅํ CoSQA ํ๊ฐ๋ ์์ง ๋จ์ ์๋ค.