Path Index Reuse 35 KO - teamswyg/laya-tools GitHub Wiki
์ธ๋ฑ์ค ํ ์ ์ฌ์ฌ์ฉ โ ์คํ 35
์ ์ฒด 2,400๊ฐ ํ๊ฐ์์๋ ๋นจ๋ผ์ง์ง ์์๊ณ ์ต๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ฆ๊ฐํ๋ค. ๊ธฐ๋ณธ ํ์ฑํ๋ฅผ ๋ณด๋ฅํ๊ณ ๋ช ์์ ์ธ ์คํ ์ต์ ์ผ๋ก๋ง ์ ๊ณตํ๋ค. ๊ฐ์ ํ์ผ ๋ชฉ๋ก์ ๋ฐ๋ณตํด์ ๊ฒ์ํ๋ ๊ฒฝ์ฐ์ ๋ํ ๊ฐ์ค๊ณผ, ์ฌ๋ฌ ์ ์ฅ์ยท๊ณผ๊ฑฐ ์์ ์ด ์์ธ ์ด๋ฒ ํ๊ฐ๋ฅผ ๊ตฌ๋ถํ๋ค.
์ฌ์ ๊ณํ์ ๊ตฌํยท์ธก์ ์ ์ ๊ณ ์ ํ๋ค. ๊ธฐ์ค ์์ค๋ ์คํ 34 ๋ณํฉ๋ณธ์ด๋ค. ์๋ ์ ์ฒด ์์ฒญยทํ์ผ ๋ชฉ๋กยท๊ฒ์ ์ ์ฑ ยทํ๊ฐ ์์๋ฅผ ์ ์งํ๋ค. ํ์ต์ด๋ ์ ๋ต ๊ธฐ๋ฐ ํ๋์ ์๋ค.
fileeval.Ranker๋ ์ง์ ํ์ผ ๊ฒฝ๋ก ๋ฐฐ์ด์ ๋ชจ๋ ๋ฌธ์์ด์ด ๊ฐ์ ์์๋ก ์ผ์นํ ๋๋ง ์๋ BM25์ ์๋ณ์ ๋ถ๋ฆฌ BM25 ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฌ์ฉํ๋ค. ํด์๋ง ๋ฏฟ๊ฑฐ๋ ์ ์ฅ์ ์ด๋ฆ๋ง ๋น๊ตํ์ง ์๋๋ค. ํ ๋ชฉ๋ก๋ง ๋ณด๊ดํ๋ฉฐ ๋ณ๊ฒฝ๋๋ฉด ๊ต์ฒดํ๋ค. ์ง๋ฌธยท๊ฒ์ ๊ฒฐ๊ณผยท์ ๋ต์ ์บ์์ ์ ์ฅํ์ง ์๋๋ค. ๋ฐํ ์์๋ ํธ์ถ๋ณ ์์ ์ด๋ฉฐ ๊ธฐ์กด ๊ฒฐ๊ณผ๋ฅผ ๋ฎ์ด์ฐ์ง ์๋๋ค. ์์
์๋ณ ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ์ ๊ธ์ ์๊ณ , ํ ์ธ์คํด์ค๋ฅผ ๋์์ ํธ์ถํ๋ฉด ์ ๋๋ค. ์
๋ ฅ ํ๋์ fallback์ ์ ์งํ๋ค.
| ์คํ ์์ | ๋ฐฉ์ | ์ ์ฒด ์ด | user / system ์ด | ์ต๋ RSS ๋ฐ์ดํธ |
|---|---|---|---|---|
| 1 | ๊ธฐ์กด | 52.59 | 53.88 / 2.06 | 108,150,784 |
| 2 | ์ฌ์ฌ์ฉ | 52.94 | 55.09 / 1.83 | 122,044,416 |
| 3 | ์ฌ์ฌ์ฉ | 52.72 | 55.33 / 1.88 | 128,991,232 |
| 4 | ๊ธฐ์กด | 52.65 | 55.25 / 1.94 | 109,920,256 |
Apple M4 Pro CPU์์ ์๋ก ๊ฒน์น์ง ์๊ฒ ์คํํ๋ค. ๋ฐฉ์๋ณ ๋ ๊ด์ธก์ ์๊ฐ ์ค์๊ฐ์ 52.62 โ 52.83์ด์ด๋ฉฐ, ์ต๋ ๊ด์ธก RSS๋ ์ฝ 104.8 โ 123.0MiB๋ค. ์ธก์ ํ์๊ฐ ์ ์ด ์์ ์๊ฐ ์ฐจ์ด๋ฅผ ํต๊ณ์ ์ผ๋ก ํ์ ํ์ง ์๋๋ค. ์ฌ์ฌ์ฉ์ ๋งค๋ฒ 3ํ๋ฟ์ด๊ณ 2,397๊ฐ ๋ชฉ๋ก์ ์๋ก ๋ง๋ค์๋ค. ์ ์ฒด ํ๋ก์ธ์ค๋ ์ ๋ ฅยท์บ์ ๊ฒ์ฆยทํ์ผ ์ฝ๊ธฐยท๊ฒ์ยท์ฑ์ ยท์ถ๋ ฅ์ ํฌํจํ๋ฏ๋ก ์์ ์ถ๋ก ์๊ฐ์ด ์๋๋ค. ๋ชจ๋ ๊ด์ธก๊ฐ.
๋ชจ๋ ์คํ์ ์คํ 34 ์ง๊ณ์ ๋ฐ์ดํธ ๋จ์๋ก ๊ฐ์ผ๋ฉฐ, 2,400๊ฐ ์์ ์ ์ธ ์ ์ฑ ์ ์ฒด ์์ ์ง๋ฌธ๋ ์ผ์นํ๋ค. ์์ ID ๊ธธ์ดยท์ ์ฑ ๋ฒํธยทํ๋ณด ์ยท๋ชจ๋ ํ๋ณด ์์น๋ฅผ ์์๋๋ก SHA-256์ ๊ธฐ๋กํ๋ค. ๋ฐ๋ผ์ ์์ ์ ๋ต ์๋ง ๊ฐ์ ๋น๊ต๊ฐ ์๋๋ค. ์๋ฌธ์ด๋ ์์ ๋ณ ์์๋ ๊ณต๊ฐํ์ง ์๋๋ค.
์ฌ์ ์น์ธ ์กฐ๊ฑด์ ์ ์ฒด ์์ยท์ง๊ณ ์ผ์น์ ์๊ฐ ์ค์๊ฐ ๊ฐ์, ์ต๋ ๊ด์ธก RSS ๋น์ฆ๊ฐ๋ค. ์๋ยท๋ฉ๋ชจ๋ฆฌ ์กฐ๊ฑด์ ํต๊ณผํ์ง ๋ชปํ๋ค. ์ฌํ์ ์์ ์ ์ฌ์ ๋ ฌํ๊ฑฐ๋ ์บ์ ํฌ๊ธฐ๋ฅผ ๋๋ ค ๊ฐ์ ์คํ์ ์ฑ๊ณต์ผ๋ก ๋ฐ๊พธ์ง ์๋๋ค. ํฅํ ๋ฐฐ์น ์์ ๋ณ๊ฒฝ์ ๋ณ๋ ์คํ์ด๋ค.
# ๊ธฐ๋ณธ: ์ง์ ์ธ๋ฑ์ค๋ฅผ ์ ์งํ์ง ์์
go run ./cmd/riido-fileeval --out .cache/file-eval-new
# ๋ช
์์ ์คํ ์ต์
: ์ง์ ํ์ผ ๋ชฉ๋ก ํ๋๋ง ์ ์ง
go run ./cmd/riido-fileeval --reuse-path-indexes --out .cache/file-eval-reuse-new
์คํ 34์ ๊ณ ์ ๋ ๋ก์ปฌ ์์ฒญยท์ ๋ต projection๊ณผ ์ ์ฒด ์บ์๊ฐ ํ์ํ๋ค. ๊ธฐ๋ณธ ์คํ๋ ์ ์ฒด ์์ ์ง๋ฌธ์ ์ถ๋ ฅํ๋ค. ๋ฌดํจยท๋ณ๊ฒฝ ์
๋ ฅ, ํธ์ถ์ ๋ฐฐ์ด ๋ณ๊ฒฝ, ๊ธด ์ ๊ทํ ์ง๋ฌธ์ fallback, ๊ธฐ์กด ๋ฐํ๊ฐ ๋ณด์กด, ๋
๋ฆฝ ์์
์ ๋์ ์ฌ์ฉ์ ๊ฒ์ฆํ๋ค. ๊ธฐ์กด standalone Rank๋ ํธ์ถ ์ฌ์ด ์บ์๋ฅผ ๋จ๊ธฐ์ง ์๋๋ค.
์ด ์คํ์ ๊ฒ์ ์คํ ๋น์ฉ๋ง ๋ค๋ฃฌ๋ค. Layaยท3์ง ๋ชจ๋ธ ์ถ๋ก /ํ์ต, GPU, ์ค์ ์์ด์ ํธ ํ ํฐ ์ ๊ฐ ๋๋ ์ ํ์ง ์ฆ๊ฑฐ๊ฐ ์๋๋ค. ๊ธฐ์กด ์ต์ข ์๋น ํ๊ฐ์ ๊ณผ ๋ชจ๋ธ ํ์ผ์ ๋ณ๊ฒฝํ์ง ์์์ผ๋ฉฐ Hugging Face ๋ฐฐํฌ๋ ์๋ค. ๊ณต๊ฐ ์๋ฃ๋ ์๋ณธ ํฉ์ฑ fixtureยท์ฝ๋ยท์ง๊ณ์ด๊ณ ์๋ฌธยท๊ฒฝ๋ก ๋ชฉ๋กยท์ ๋ตยทpprof ํ์ผ์ ๋น๊ณต๊ฐ ๋ก์ปฌ์ ๋๋ค.
๋ณ๋์ ์๋ณธ ํฉ์ฑ fixture๋ ๊ฐ์ 10,000๊ฐ ๊ฒฝ๋ก์ ์ง๋ฌธ์ ๋ฐ๋ณตํ๋ค. pprof๋ฅผ ์ผ 3ํ benchmark์์ ๊ธฐ์กด ๋ฐฉ์์ 18.90โ19.77ms/op, ์ฝ 29.16MB ํ ๋น/op, 80,249ํ ํ ๋น/op์๊ณ ์ฌ์ฌ์ฉ์ 0.1127โ0.1130ms/op, ์ฝ 0.423MB ํ ๋น/op, 21ํ ํ ๋น/op์๋ค. ์ด๊ธฐ ์ธ๋ฑ์ค ์์ฑ์ ๊ฐ benchmark์ ํ ๋ฒ ํฌํจ๋์ด ๋ฐ๋ณต ํ์์ ๋ถ์ฐ๋๋ค. ์ด ์ ๋ฆฌํ ๋ฐ๋ณต ์กฐ๊ฑด์ ์ค์ 2,400๊ฐ ๊ฒฐ๊ณผ์ ์ผ๋ฐํํ์ง ์๋๋ค.
๊ฒฐํฉ pprof์ ๋์ ํ ๋น์ ์์ ๋ฐฐ์ด ์์ฑ๊ณผ ๋ณํฉ์๋ ์ง์ค๋๋ค. ๋ฐฉ์๋ณ ์คํ ํ์๊ฐ ํฌ๊ฒ ๋ค๋ฅด๋ฏ๋ก ์ ์ฒด ๋์ ๋ฐ์ดํธ ๋น์จ์ ๋ฐฉ์ ๊ฐ ๋ฉ๋ชจ๋ฆฌ ํจ์จ ๋น๊ต๊ฐ ์๋๋ค. CPU ํ๋ณธ์๋ ๋ฐํ์ ๋๊ธฐยท๋ฉ๋ชจ๋ฆฌ ๋ฐํ ๋น์ฉ์ด ํฌ๊ฒ ๋ํ๋ฌ์ผ๋ฉฐ, SIMD๋ ์ถ๊ฐ ์ ๊ธ์ด ํด๊ฒฐ์ฑ ์ด๋ผ๋ ๊ทผ๊ฑฐ๋ ์๋ค. pprof ๋์ ํ ๋น๋์ ์์ฃผ ๋ฉ๋ชจ๋ฆฌ๋ GPU ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋๋ค. ์ ์ฒด raceยทvetยทํ์ ๊ฒ์ฌ๋ฅผ ํต๊ณผํ๋ค.