Retrieval Baseline 07 KO - teamswyg/laya-tools GitHub Wiki
๊ฒ์ ๊ธฐ์ด ์ํ 07: ๊ณ ์ ์ง๋ฌธ 2,948๊ฐ์์ ๋ณด์กฐ ๊ฒ์์ ์ฅ๋จ์
English ยท ๊ณ ์ ๊ณํ ยท ๊ฒฐ๊ณผ ยท ์ฌํยท์ค๋ฅ ์์ ๊ธฐ๋ก
ํจ์ ์ด๋ฆ์ด ์๋ ์ค๋ช ์์๋ ์๋ณ์ ๋ถ๋ฆฌ๊ฐ ๋์์ด ๋์ง๋ง, ์ ์ฒด ์ฒซ ์ ๋ต๋ฅ ์ ๋ฎ์์ก๋ค. ๊ธฐ์กด ๊ฒ์์ ์ผ๊ด ๊ต์ฒดํ์ง ์๋๋ค. ์ด๋ฒ์๋ ์ค์ ๋ก ์๋ก ๋ค๋ฅธ ์ค๋ช 2,948๊ฐ๋ฅผ ๊ฒ์ํ๋ค. 24๊ฐ ์ง๋ฌธ์ ํ๋ณด ์๋ ๋ฐ๋ณต ํ์๋ฅผ ๋๋ ค ๋ง๋ ์๊ฐ ์๋๋ค. ๋ค๋ง ์ธ ์ ์ฅ์์ ๋ฌธ์ ์ค๋ช ์ ์ง๋ฌธ์ผ๋ก ์ฌ์ฉํ๋ ๋๋ฆฌ ์ํ์ด๋ฉฐ ์ค์ ์ฌ์ฉ์ ์ง๋ฌธ 2,400๊ฐ์ ๋ ๋ฆฝ ์ต์ข ์ํ์ ์๋๋ค.
๋ฌด์์ ๋น๊ตํ๋
ํ๋ณด๋ Go ํจ์ 3,009๊ฐ๋ค. ์๋ฌธ ์ฝ๋๋ง ์์ธํ๋ฉฐ ์ ๋ต ์ค๋ช ์ด๋ ์ ์ฅ์ ๊ฒฝ๋ก๋ฅผ ๊ฒ์ ๋ณธ๋ฌธ์ ๋ง๋ถ์ด์ง ์์๋ค. ๊ฐ์ ์ ๊ทํ ์ค๋ช ์ ์ฐ๊ฒฐ๋ ํจ์๊ฐ ์ฌ๋ฌ ๊ฐ๋ฉด ๋ชจ๋ ์๋ ค์ง ์ ๋ต ํ๋ณด๋ก ์ทจ๊ธํ๋ค. ๋๋จธ์ง ํ๋ณด๋ ๋ฏธํ์ ์ด์ง ์๋ ์ค๋ต์ด ์๋๋ค. ํ๋ณด ์์๋ ์ ์ฅ์ยท๊ฒฝ๋กยท์ฝ๋ ํด์๋ก ๊ณ ์ ํ๊ณ ์ง๋ฌธยท์ ๋ต ์์๋ ์ ์๋ก ์ ๋ ฌํ์ง ์์๋ค.
raw: ๊ธฐ์กดpkg/hintsearch์ BM25. ์๋ณ์๋ฅผ ํต์งธ๋ก ๊ฒ์ํ๋ ๊ธฐ์ค์ ์ด๋ค.identifiers: ์ฝ๋์ ์ง๋ฌธ์ camelCase/snake_case ๋ฑ์ ๋์ผํ ๋ฐฉ์์ผ๋ก ๋๋ BM25๋ฅผ ์ ์ฉํ๋ค. ํ์ต ๋ชจ๋ธ์ ์๋ค.
ํ์ตยท์ค์ ํ์ ์์ด ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ ์คํํ๋ค. ๊ณํ๊ณผ ํ๊ฐ๊ธฐ ์ด์์ ์ฒซ ์์ฒ ์ ์ ๊ณ์ฐ ์ ์ commit 33bd500์ผ๋ก ๊ณ ์ ํ๋ค. ์ฒซ ์คํ์์ ์ง๋ฌธ ์ค๋ณต ์ ๊ฑฐ์ฉ ์๋ฌธ์ ๋ฌธ์์ด์ ์ค์ ์ ์ฒ๋ฆฌ ์
๋ ฅ์ผ๋ก ์๋ชป ์ฌ์ฉํ ์ค๋ฅ๋ฅผ ๋ฐ๊ฒฌํ๋ค. ์ฝ๋์๋ ๋์๋ฌธ์๊ฐ ๋จ์ ์์ด ์์ชฝ ๋ถ๋ฆฌ๊ฐ ๋ฌ๋๋ค. ์ฒซ ๊ฒฐ๊ณผ๋ ๋ฌดํจ๋ก ๊ธฐ๋กํ๊ณ ํ๊ท ์ํ๊ณผ ํจ๊ป 2b44d9e์์ ์์ ํ๋ค. ์๋๋ ์์ ํ ๊ฒฐ๊ณผ๋ค. ์๋ฃ๋ฅผ ์ด๋ฏธ ๊ด์ฐฐํ์ผ๋ฏ๋ก ์์ผ๋ก ์ด ์๋ฃ์ ์ฌ์ํ์ ์๋ก์ด ๋
๋ฆฝ ๊ฒ์ฆ์ด๋ผ๊ณ ๋ถ๋ฅด์ง ์๋๋ค.
๊ฒฐ๊ณผ
์์ 10๊ฐ ๋ฐ๊ฒฌ๋ฅ ์ ์๋ ค์ง ์ ๋ต ์ค ํ๋๊ฐ ๊ฒ์ ๊ฒฐ๊ณผ 10๊ฐ ์์ ์๋ ์ง๋ฌธ ๋น์จ์ด๋ค. MRR์ ์ฒซ ์ ๋ต ์์์ ์ญ์๋ฅผ ํ๊ท ํ ๊ฐ์ผ๋ก ๋์์๋ก ์ข๋ค.
| ์ง๋ฌธ ์งํฉ | ๋ฐฉ๋ฒ | ์ฒซ ํ๋ณด ์ ๋ต๋ฅ | ์์ 10๊ฐ ๋ฐ๊ฒฌ๋ฅ | MRR | ํ๊ท ์ฒซ ์ ๋ต ์์ |
|---|---|---|---|---|---|
| ์ ์ฒด 2,948๊ฐ | ๊ธฐ์กด BM25 | 41.79% | 74.83% | 0.5336 | 48.99 |
| ์ ์ฒด 2,948๊ฐ | ์๋ณ์ ๋ถ๋ฆฌ | 39.21% | 77.27% | 0.5262 | 30.00 |
| ์ด๋ฆ ํฌํจ 2,604๊ฐ | ๊ธฐ์กด BM25 | 44.51% | 78.49% | 0.5640 | 19.12 |
| ์ด๋ฆ ํฌํจ 2,604๊ฐ | ์๋ณ์ ๋ถ๋ฆฌ | 40.48% | 79.22% | 0.5412 | 16.08 |
| ์ด๋ฆ ์์ 344๊ฐ | ๊ธฐ์กด BM25 | 21.22% | 47.09% | 0.3038 | 275.12 |
| ์ด๋ฆ ์์ 344๊ฐ | ์๋ณ์ ๋ถ๋ฆฌ | 29.65% | 62.50% | 0.4121 | 135.39 |
์ด๋ฆ ์ ๋ฌด๋ ํ๊ฐ ๋ ์ ๋ต ํจ์ ์ด๋ฆ์ ๋ณด๊ณ ๋ถ๋ฅํ๋ค. ์ค์ ์๋น์ค์ ๋ผ์ฐํฐ๊ฐ ์ด ์ ๋ต ์ ๋ณด๋ฅผ ์๊ณ ์๋ค๊ณ ๊ฐ์ ํด์๋ ์ ๋๋ค. ์ด๋ฆ ์๋ 344๊ฐ์์ ๊ฐ์ ๋๋ค๋ ์ฌ์ค์ ์ด๋ฆ ์๋ 2,400๊ฐ์์ ๊ฒ์ฆ๋๋ค๊ณ ํ๋ํ์ง ์๋๋ค. ์ธ ์ ์ฅ์ ๊ฒฐ๊ณผ๋ JSON์ ๋ฐ๋ก ๊ธฐ๋กํ๊ณ , ์ง๋ฌธ 2,948๊ฐ๊ฐ ๋ชจ๋ ๋ ๋ฆฝ์ด๋ผ๋ ๊ฐ์ ์ ์ ๋ขฐ๊ตฌ๊ฐ์ด๋ ์ ์ฒด ์ ์ฅ์์ ๋ํ ์ผ๋ฐํ ์ฃผ์ฅ์ ํ์ง ์๋๋ค.
์ถ์ฒ ์ ๊ฒ๊ณผ ์ ์ธ
์ด์ ์๋ฃ ์ ๊ฒ์์ ๋ฃจํธ ๊ณ ์ง๋ฅผ ํ์ธํ ์ธ ์ ์ฅ์์ ์์ฒ commit ZIP์ ๋ด๋ ค๋ฐ์ ํด์๋ฅผ ๊ณ ์ ํ๋ค. ์ ์ฒด 717๊ฐ ํด๋น ํ์ผ์์ 3,095๊ฐ ์ฝ๋ ์กฐ๊ฐ์ด ์๋ณธ์ ๊ทธ๋๋ก ์กด์ฌํ๋์ง ํ์ธํ๋ค. ํ์ผ์ ์คํํ๊ฑฐ๋ ZIP์ ์ถ์ถํ์ง ์์๋ค.
์์๋๋ก ์ ์ฉํ ์ํธ ๋ฐฐํ์ ์ ์ธ ์ฌ์ ๋ ์์ฑ ์ฝ๋ ํ์ 63๊ฐ, ํ์ ๋๋ ํฐ๋ฆฌ ๋ณ๋ ๊ณ ์ง 14๊ฐ, ๋ค๋ฅธ ๋ผ์ด์ ์ค ํค๋ 8๊ฐ, ์ค๋ช
์ ์ฒด๊ฐ ์ฝ๋์ ํฌํจ๋ 1๊ฐ๋ค. ๋จ์ 3,009๊ฐ ํ๋ณด๋ ๊ณ ์ ์ค๋ช
2,948๊ฐ์ ์ฐ๊ฒฐ๋๋ค. ์๋ฅผ ๋ค์ด lxd์ shared/log15/LICENSE, lxd shared/cert.go์ etcd pkg/pathutil/path.go์ BSD ๊ด๋ จ ํค๋๋ฅผ ๋ฐ๊ฒฌํ๋ค. ๋ค๋ฅธ ๋ผ์ด์ ์ค๊ฐ ์ฌ์ฉ ๋ถ๊ฐ๋ฅํ๋ค๋ ๋ป์ด ์๋๋ผ, ์ด๋ฒ ๋จ์ผ ์กฐ๊ฑด ์ ๊ฒ ๋ฒ์์์ ์ ์ธํ๋ค๋ ๋ป์ด๋ค.
์์ฒ revisionยทZIPยท๋ฃจํธ ๊ณ ์ง ํด์๋ ๊ฒฐ๊ณผ์ ์๋ค. ํค๋๊ฐ ์์ผ๋ฉด ํ์ธํ ๋ฃจํธ ๊ณ ์ง๋ฅผ ์ถ์ฒ ๊ทผ๊ฑฐ๋ก ์ผ์์ง๋ง, ์ด ์ ์ฐจ๊ฐ ๋ชจ๋ ๊ถ๋ฆฌ๋ ์์ฑ ์ฝ๋ ์ฌ๋ถ๋ฅผ ์์ ํ ํ์ธํ๋ค๋ ๋ป์ ์๋๋ค. ์๋ฌธ๊ณผ ์ฝ๋ ์กฐ๊ฐ์ ๋ก์ปฌ์๋ง ๋ณด๊ดํ๋ค. ๋ฌธ์ ์ค๋ช ์ ์ด๋ฆ ํธํฅ, ์ธ ์ ์ฅ์ ์ง์ค, ์๋ฏธ ๋ณต์ ๋ฏธํ์ง ๋ฑ์ ํ๊ณ๋ฅผ ์ ์งํ๋ค. CoSQA์ ๋ reserve์๋ ์ ๊ทผํด ์ ์๋ฅผ ๋งค๊ธฐ๊ฑฐ๋ ํ์ตํ์ง ์์๋ค.
์์๊ณผ ์ฌํ
Apple M4 Pro/Go1.27.1 CPU์์ ์ ์ฒด ํ๋ก์ธ์ค wall 1.74์ด/user CPU 1.41์ด/์ต๋ RSS 94,519,296๋ฐ์ดํธ(์ฝ 90.1MiB)์๋ค. ZIPยท์์ฒ ๋ก๋ฉ๊ณผ ๊ฒ์ฆ, ๋ ์์ธ ์์ฑ, ์ ์ฒด ํ๊ฐ๋ฅผ ํฌํจํ๋ค. ๋ค์ด๋ก๋ยทParquet ํฌ์ยท์ปดํ์ผ์ ์ ์ธํ๋ค. ZIP ์ค๋น ๋น์ฉ์ด ํฌํจ๋ ๊ฐ์ด๋ฏ๋ก ์์ ๊ฒ์ ์๋ฒ์ ๋ฉ๋ชจ๋ฆฌ๋ผ๊ณ ํด์ํ์ง ์๋๋ค.
์ง๋ฌธ ์ ์ฒ๋ฆฌ์ ์์ ๊ณ์ฐ์ ํฌํจํ p95๋ ๊ธฐ์กด ์ฝ 0.206ms, ์๋ณ์ ๋ถ๋ฆฌ ์ฝ 0.209ms์๋ค. ์์ธ ์์ฑ ์๊ฐ์๋ ์ฝ๋ ์ ์ฒ๋ฆฌ๊ฐ ํฌํจ๋๋ค. ํ๋ณด ์ ๋ต ๊ฒ์ฌยทJSON ์ถ๋ ฅยทํ์ผ ์ฝ๊ธฐ๋ ๊ฐ๋ณ ๊ฒ์ ์ง์ฐ์ ํฌํจํ์ง ์๋๋ค. 3,009๊ฐ ํ๋ณด์ ์ด ์ฅ๋น์์์ ์ธก์ ์ด๋ฉฐ ๋๊ท๋ชจ ์ ์ฅ์ ์ฑ๋ฅ์ด๋ LLM ๋น์ฉ ์ ๊ฐ์ด ์๋๋ค. ์ฌ์คํ์ ๋ชจ๋ ํ์ง ์งํ์ ์๋ฃ ๊ตฌ์ฑ์ ๋์ผํ๊ณ ์๊ฐ ๊ฐ์ ๋ฌ๋๋ค.
์์ ํฌ์ ์ ์ฐจ๋ฅผ ์ํํ ๋ค ๊ณ ์ ZIP์ ์ค๋นํ๋ค.
mkdir -p .cache/retrieval-source-07
curl -fL 'https://codeload.github.com/kubernetes/test-infra/zip/8125fbda10178887be5dff9e901d6a0a519b67bc' -o .cache/retrieval-source-07/test-infra.zip
curl -fL 'https://codeload.github.com/lxc/lxd/zip/7a41d14e4c1a6bc25918aca91004d594774dcdd3' -o .cache/retrieval-source-07/lxd.zip
curl -fL 'https://codeload.github.com/etcd-io/etcd/zip/616592d9ba993e3fe9798eef581316016df98906' -o .cache/retrieval-source-07/etcd.zip
go run ./cmd/riido-retrievalbench --stage audit
go run ./cmd/riido-retrievalbench --stage evaluate
์์ฒยท๊ณํยท์ ํ ํ๋ณด ํด์์ ๊ฐ์๊ฐ ๋ค๋ฅด๋ฉด ๊ฑฐ๋ถํ๋ค. GitHub๊ฐ ZIP ์ง๋ ฌํ ๋ฐฉ์์ ๋ฐ๊ฟ๋ ํด์ ๋ถ์ผ์น๋ฅผ ๋ฌด์ํ์ง ์๋๋ค. ZIP์ 50MiB, ์ฝ๋ ํ์ผ์ 8MiB๋ก ์ ํํ๋ฉฐ ๋์คํฌ์ ์ถ์ถํ์ง ์๋๋ค. ์์ฒ ์ค๋นยท์ ๊ฒ์์ ์ฐ๋ ๋งต์ ์คํ๋ผ์ธ ๋๊ตฌ์ฉ์ด๊ณ ์ค์ ์์ ๊ณ์ฐ์ ๊ธฐ์กด ๋ถ๋ณ ๋ฐฐ์ด ์์ธ์ ์ฌ์ฉํ๋ค.
๋ค์ ๊ฐ์ค
์ถ๊ฐ ๋ชจ๋ธ ์์ด ์ป์ ์ด ๋น๊ต๋ '์ด๋ค ๋ณด์กฐ ๊ฒ์์ด ์ง๊ธ ๋์์ด ๋ ์ ์๋๊ฐ'๋ฅผ ์ ์ํ๋ ์ด์ํ ์ฃผ์ฅ ๋ชจ๋ธ์ ํ์ต ๋ชฉํ ํ๋ณด๊ฐ ๋๋ค. ์ค์ ์ ๋ ฅ์์ ์ป์ ์ ์๋ ์ ํธ๋ง์ผ๋ก ๋ ๊ฒ์์ ๋์ ๊ฐ๋ฅ์ฑ์ ์์ธกํ๊ณ , ์๋ชป๋ ํํธ์๋ ๊ธฐ์กด ํ๋ณด๋ฅผ ๋ณด์กดํ๋ ๋ฐฉ์์ ๋ค์ ๋ณ๋ ์คํ์ผ๋ก ๊ฒํ ํ๋ค. ์ด ํ๊ฐ์ ์ด๋ฆ ์ ๋ฌด ์ ๋ต์ด๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ์ ์ ๋ ฅ์ผ๋ก ์ ๊ณตํ์ง ์๋๋ค. ์ถฉ๋ถํ ๋ ๋ฆฝ ์ง๋ฌธ๊ณผ ์ ์ฅ์ ๋ถ๋ฆฌ ๊ฒ์ฆ, ์ ์ฒด ์์ ์๊ฐยท์ฌ์ฉ๋ ์ธก์ ์ ์๋ ์๋ ์ ์ฉ์ด๋ ์ ์ฉ์ฑ ์ ์ฆ์ ์ ์ธํ์ง ์๋๋ค.
CPU pprof๋ ์ค์ ์ ์ฒด ํ๊ฐ์์ ์์งํ๋ค. ํ๋ณธ 1,330ms ์ค Rank ๋์ ๋น์ค์ 42.86%, runtime.madvise ์์ฒด ๋น์ค์ 29.32%์๋ค. ์งง์ ๋จ์ผ ํ๋ณธ์ด๋ฏ๋ก ์ ๊ฐ๋ฅ ๋ก ํด์ํ์ง ์๋๋ค. ๋ค์ ์ต์ ํ์์๋ SIMD๋ณด๋ค ๋จผ์ ํธ์ถ์๊ฐ ์ฌ์ฌ์ฉํ ์ ์๋ ์์ ๋ฐฐ์ด๊ณผ ์ ๋ ฌ ๋น์ฉ์ ํ์ธํ๋ค. ์์ ํ๋กํ์ผ์ ๊ณต๊ฐํ์ง ์๋๋ค. --cpuprofile .cache/new-cpu.pprof๋ก ์ ๋ก์ปฌ ํ์ผ์ ์์งํ ์ ์์ผ๋ฉฐ ์ด ์คํ์ ํ์ง ์งํ๋ ๋์ผํ๋ค.