Search Claim 09 KO - teamswyg/laya-tools GitHub Wiki
๋ณด์กฐ ๊ฒ์ ์ฃผ์ฅ ๋ชจ๋ธ 09: ์๊ฒ ํ์ตํ์ง๋ง ์์ง ์ด๋์ ๋ง๋ค์ง ๋ชปํจ
English ยท ๊ณ ์ ๊ณํ ยท ์ ์ฒด ๊ฒฐ๊ณผ์ ๊ฐ์ค์น ํด์ ยท ์ฌํยท์์
์ฃผ ํ๋ณด๋ 2,948๊ฐ ์ง๋ฌธ ๋ชจ๋์์ ๋ณด์กฐ ๊ฒ์์ ์ ์ํ์ง ์์ ๊ธฐ์ค์ ์ ๊ฐ์ ํ์ง ๋ชปํ๋ค. ์ด ์คํจ๋ฅผ ๊ธฐ๋กํ๊ณ ๊ธฐ๋ณธ ์ ์ฉํ์ง ์๋๋ค. ์ง๋ฌธ ์๋ 2,948๊ฐ์ด๋ฉฐ, 24๊ฐ๋ ์ง๋ฌธ ์๊ฐ ์๋๋ผ ์ ์ฅํ ๋ชจ๋ธ ํ์ผ ์๋ค.
๋ฌด์์ ์ฃผ์ฅํ๋
์ ๋ ฅ์ ์ง๋ฌธ์ ๋ชจ์๊ณผ ๊ธฐ์กด BM25 ๊ฒ์ ์ ์ ํต๊ณ๋ค. ์ถ๋ ฅ์ '์๋ณ์ ๋ถ๋ฆฌ ๊ฒ์์ ์ถ๊ฐํ๋ฉด ์ ๋ต ํ๋ณด์ ๋ ์ผ์ฐ ๋๋ฌํ ์ ์์ ๊ฒ ๊ฐ๋ค'๋ ๊ฐ์ค์ด๋ค. ์ ๋ต ํ์ , ๊ถํ ์น์ธ, ๋๊ตฌ ์คํ์ด๋ Codex ๋ชจ๋ธ ์ ํ์ ์ํํ์ง ์๋๋ค. ์คํ์์๋ ์ด ์ฃผ์ฅ์ด ์์์ผ ๋ ๋ณด์กฐ ๊ฒ์๊ณผ ๊ธฐ์กด ๊ฒ์์ ๋ฒ๊ฐ์ ์ ์ํ๊ณ , ์์์ด๋ฉด ๊ธฐ์กด ์์๋ฅผ ์ ์งํ๋ค. ์ด๋ ๊ฒฝ์ฐ๋ ์ ์ฒด ํ๋ณด๋ฅผ ๋ณด์กดํ๋ค.
ํน์ง์ 12๊ฐ๋ค: ์์ํญ, ๋จ์ด ์, ๋ฐ์ดํธ ์, ๋๋ฌธ์ยท์ซ์ยท๋ฐ์ค ๋น์จ, camelCase ๊ฒฝ๊ณ ์, ๊ณ ์ ๋จ์ด ๋น์จ, ์ต๊ณ ์ ์, 1ยท2์ ์ ์ ์ฐจ์ด, ์์ 10๊ฐ ์์ ์ ์ ๋น์จ, ์ ์ฒด ํ๋ณด ์์ ์ ์ ๋น์จ. ๋ชจ๋ ์คํ ์ ์ ์ ์๋ค. ์ ๋ต ํจ์ ์ด๋ฆ, ์ ๋ต ์์, ์ ์ฅ์ ์ ๋ต, ๋ณด์กฐ ๊ฒ์ ๊ฒฐ๊ณผ๋ ํน์ง ํจ์์ ์ ๋ ฅ์ ์๋ค. ์ ๋ต ์์๋ ํ์ต ๋ผ๋ฒจ๊ณผ ํ๊ฐ์๋ง ์ฌ์ฉํ๋ค.
๋ผ๋ฒจ์ '๋ณด์กฐ ํ๋ณด๋ฅผ ๋จผ์ ๋ด๋ ๊ต์ฐจ ์์๊ฐ ๊ธฐ์กด ์์๋ณด๋ค ์๋ ค์ง ์ฒซ ์ ๋ต ์์๋ฅผ ์๊ฒฉํ ์ค์๋๊ฐ'๋ค. 801/2,948๊ฐ์์ ์ฐธ์ด์๋ค. ์ด์ง ๋ผ๋ฒจ์ ๊ฐ์ ํฌ๊ธฐ์ ์ถ๊ฐ ๊ฒ์ CPU ๋น์ฉ์ ์ง์ ํํํ์ง ์๋๋ค. ์ ์ 0 ์ด์์ ์ ์์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ธฐ์ค์ ์คํ ์ ์ ๊ณ ์ ํ๊ณ ์ด๋ฒ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ ๋ฎ์ถ์ง ์์๋ค. ์ถ๋ ฅ ์ ์๋ฅผ ๋ณด์ ๋ ํ๋ฅ ๋ก ํด์ํ์ง ์๋๋ค.
ํ์ตยท๋ถ๋ชจ์ ์์ ๋ชจ๋ธ
์ฌ์ ํ์ต ์ธ์ฝ๋ ์์ด Go๋ก 12๊ณ์ ์ธต์ ์ฒ์๋ถํฐ ํ์ตํ๋ค. Laya/Model2Vec ์ ์ฒด ์ธ์ฝ๋๋ฅผ ์์ถํ ๊ฒฐ๊ณผ๊ฐ ์๋๋ค. ์๋ฏธ ๋ชจ๋ธ ์คํ๊ณผ ๋ถ๋ฆฌ๋, ๊ฒ์ ์ ์ด์ ํ์ํ ์ต์ ์ ํธ ์คํ์ด๋ค.
| ํ๊ฐ ์ ์ฅ์ | ํ์ต ์ ์ฅ์ | epoch ์ ํ์ฉ ๊ฒ์ฆ ์ ์ฅ์ |
|---|---|---|
| etcd | kubernetes/test-infra | lxc/lxd |
| kubernetes/test-infra | lxc/lxd | etcd |
| lxc/lxd | etcd | kubernetes/test-infra |
๊ฐ fold์์๋ ํ๊ฐ ์ง๋ฌธ์ ๋ผ๋ฒจ์ ํ์ตยทepoch ์ ํ์ ์ฌ์ฉํ์ง ์๋๋ค. ์ ์ฒด ์ฝ๋ ํ๋ณด ์์ธ์ ์ค์ ๊ฒ์ ์นดํ๋ก๊ทธ๋ก ์ธ fold ๋ชจ๋์์ ๋ณผ ์ ์๋ค. ์์ฒ ์ค๋ช ์ ์ด๋ฏธ 07์์ ๊ด์ฐฐํ ์๋ฃ์ด๋ฏ๋ก ์ ๋ ๋ฆฝ ์ต์ข ์ํ์ ์๋๋ค. ๋ค๋ฅธ fold์์๋ ๊ฐ์ ์ ์ฅ์๊ฐ ํ์ต์ฉ์ด ๋๋ค. ์ธ fold์ ๋ชจ๋ธ์ ํฉ์ณ ์ด ํ๊ฐ๊ฐ ๋ ๋ฆฝ์ด๋ผ๊ณ ์ฃผ์ฅํด์๋ ์ ๋๋ค.
๊ฐ fold/seed๋ง๋ค FP32์ 3์ง STE๋ฅผ ๋ณ๋๋ก ํ์ตํ๋ค. FP32์์ INT8๊ณผ 3์ง PTQ๊ฐ ํ์๋๊ณ , STE๋ ๋ณ๋ ํ์ตํ ํ์ ๋ชจ๋ธ์ด๋ค. 3 fold ร 2 seed ร 2 ํ์ต ๋ฐฉ์ = 12ํ ํ์ต, ํ์๋ณธ ํฌํจ 24๊ฐ ํ์ผ์ด๋ค. ํ์ต๋ฅ 0.1, L2 0.0001, batch 64, 100 epoch๋ฅผ ๊ณ ์ ํ๊ณ ๊ฒ์ฆ BCE๊ฐ ์ต์์ธ epoch๋ฅผ ์ ํํ๋ค. ์ฃผ ํ๋ณด๋ FP32/seed1729๋ค.
๊ฒฐ๊ณผ
๊ฐ ์ง๋ฌธ์ ์์ ์ ์ ์ฅ์๋ฅผ ํ๊ฐ์ฉ์ผ๋ก ๋ ๋ชจ๋ธ์์ ํ ๋ฒ๋ง ์ง๊ณํ๋ค.
| ๋ฐฉ๋ฒ | ๋ณด์กฐ ๊ฒ์ ํธ์ถ | ์ฒซ ํ๋ณด ์ ๋ต๋ฅ | ์์ 10๊ฐ ๋ฐ๊ฒฌ๋ฅ | ํ๊ท ์ฒซ ์ ๋ต ์์ |
|---|---|---|---|---|
| ๊ธฐ์กด BM25 | 0 | 41.79% | 74.83% | 48.99 |
| ํญ์ ๋ณด์กฐ ๊ฒ์ ๊ต์ฐจ | 2,948 | 39.21% | 81.51% | 26.71 |
| FP32 ์ฃผ ํ๋ณด | 0 | 41.79% | 74.83% | 48.99 |
| INT8/seed1729 | 0 | 41.79% | 74.83% | 48.99 |
| 3์ง PTQ/seed1729 | 53 | 41.82% | 75.00% | 47.73 |
| 3์ง STE/seed1729 | 0 | 41.79% | 74.83% | 48.99 |
seed2718์ ๋ชจ๋ ๋ฐฉ์๋ ๋ณด์กฐ ๊ฒ์ ํธ์ถ 0ํ์๋ค. PTQ ํ ๊ตฌ์ฑ์ ์์ ๊ฐ์ ์ ์ฃผ ํ๋ณด๋ก ๋ฐ๊ฟ ์ฑํํ์ง ์๋๋ค. ์ฌ์ ๊ธฐ์ค์ธ ํ๊ท ์์ 10% ๊ฐ์ ๊ณผ ์ฒซ ํ๋ณด/์์ 10๊ฐ ๋ฐ๊ฒฌ๋ฅ ๋นํ๋ฝ์ ํต๊ณผํ ๊ตฌ์ฑ์ ์์๋ค. ํญ์ ๊ต์ฐจํ๋ ๋นํ์ต ๋์กฐ๊ตฐ์ ํ๊ท ์์๋ฅผ ์ค์ด์ง๋ง ์ฒซ ํ๋ณด ์ ๋ต๋ฅ ์ ๋จ์ด๋จ๋ฆฐ๋ค. ๋ชจ๋ธ์ ์์ ํฌ๊ธฐ๋ง์ผ๋ก ์ ์ฉ์ฑ์ ์ฃผ์ฅํ ์ ์๋ค.
๋ค์ ๊ฐ์ค์ ์์คยท์ ์ ๊ธฐ์ค๊ณผ ์ค์ ์ด๋์ ๋ถ์ผ์น๋ค. ๋จ์ํ ๋์ ์ฌ๋ถ๋ฅผ ๋งํ๋ ๊ฒ๊ณผ ๊ฒ์ฌํด์ผ ํ ํ๋ณด ์๋ฅผ ์ค์ด๋ ๊ฒ์ ๋ค๋ฅธ ๋ชฉํ๋ค. ๋ค์ ๋ณ๋ ์คํ์์๋ ๊ธฐ์กด ์ฒซ ํ๋ณด๋ฅผ ์ฐ์ ๋ณด์กดํ๋ ์์์ ๋น์ฉ์ ๋ฐ์ํ ํ์ต/๊ฒ์ฆ์ ๊ฒํ ํ๋ค. ์ด ๊ฒฐ๊ณผ๋ฅผ ์ง์ฐ๊ฑฐ๋ ๊ธฐ์ค์ ์ฌํ ๋ณ๊ฒฝํ์ง ์๋๋ค.
์์ยท์ฌํยท๊ณต๊ฐ
Apple M4 Pro/Go1.27.1 CPU์์ ์์ฒ ๊ฒ์ฆยท๋ ๊ฒ์ยท๋ผ๋ฒจ ์์ฑยท12ํ ํ์ตยท24๊ฐ ๋ด๋ณด๋ด๊ธฐ๋ฅผ ํฌํจํด wall 1.80์ด, user CPU 1.44์ด, ์ต๋ RSS 94,273,536๋ฐ์ดํธ์๋ค. ์ฌ์คํ์ ๋ชจ๋ธ 24๊ฐ์ ์ ์ฒด ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ดํธ ๋จ์๋ก ๊ฐ์๋ค. GPU๋ ์ฌ์ฉํ์ง ์์๋ค.
ํ ๋ชจ๋ธ์ ๊ณ์ 12๊ฐ์ด๋ฉฐ ํ์ฌ float64 ๋ฐํ์ ๊ณ์๋ง 96๋ฐ์ดํธ, ๋ฉํ๋ฐ์ดํฐ ํฌํจ JSON์ 521~669๋ฐ์ดํธ๋ค. ์ ์ฒด ํ๋ก๊ทธ๋จยท์์ธ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋๋ค. 3์ง ๊ฐ์ด ๋ค์ด ์์ด๋ ํ์ฌ JSON์ ์์ถ๋ 1.58-bit ์คํ ํ์์ด ์๋๋ค. ์ด๋ฏธ ๊ณ์ฐํ 3,009๊ฐ ํ๋ณด ์ ์์์ ํน์ง์ ๋ฝ๋ ๊ณ ์ ์ง๋ฌธ ๋ฒค์น๋งํฌ๋ ์ฝ 1.75ยตs/32B ์ ํ ๋น/1ํ ํ ๋น์ด์๋ค. ๊ฒ์๊ณผ ๋ชจ๋ธ ์ถ๋ก ์๊ฐ์ ์ด ์์น์ ํฌํจํ์ง ์๋๋ค.
# ์์ 07์ ๊ณ ์ ์์ฒ๊ณผ ZIP์ ๋จผ์ ์ค๋นํ๋ค. ์ถ๋ ฅ ํด๋๋ ์ ๊ฒ์ด์ด์ผ ํ๋ค.
go run ./cmd/riido-claimtrain --out .cache/search-claim-new
go test -race ./internal/searchclaim ./internal/retrievalbench
๊ฐ์ค์น๋ Git์ ๋ฃ์ง ์๋๋ค. ๊ณต๊ฐ ์ฐ๊ตฌ ๋ฌถ์์ ๊ณ ์ ๊ฒฐ๊ณผยทํ์ผ ํด์์ CI๋ฅผ ํ์ธํ ๋ค HF์ ๊ฒ์ํ๋ ๋ณ๋ ๋จ๊ณ๋ค. ์๋ฌธ ์ง๋ฌธยท์ฝ๋ยท๋ผ๋ฒจ ํ๊ณผ ZIP์ ๋ก์ปฌ์๋ง ๋๋ค. riido-hubcheck์ ์ ๊ณ์ฝ์ ์ซ์ ๊ณ์, fold/์ฐจ์/seed, ๋ช
์๋ ํ์ผ ๋ชฉ๋ก๊ณผ ์ถ์ฒ ๊ณ ์ง๋ฅผ ํ์ธํ๊ณ ์ ์ ์๋ ๋ชจ๋ธยทmanifest ํ๋๋ฅผ ๊ฑฐ๋ถํ๋ค. ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฌ๊ฐ ์ฌ์ฉ์ฑ์ด๋ ์ด์ฉ ์กฐ๊ฑด ์ ์ฒด๋ฅผ ์ฆ๋ช
ํ์ง๋ ์๋๋ค. .claim.json์ ์ฐ๊ตฌ ํ์ผ์ด๋ฉฐ ๊ธฐ์กด riido-hints --model์ .hbin ํ์๊ณผ ํธํ๋์ง ์๋๋ค.
์์ฒ์ ์์ 07์์ ์ ๊ฒํ ์ธ ๊ณต๊ฐ ์ ์ฅ์์ ์ฝ๋์ ์ค๋ช ์ด๋ค. ๋ณ๋ ๊ณ ์ง๊ฐ ์๋ ์ฌ๋ก ๋ฑ์ ์ ์ธํ ์ ์ฐจ์ ๋ผ์ด์ ์ค ํ๊ณ๋ 07์ ๊ธฐ๋กํ๋ค. ์ด ๋ชจ๋ธ์ ํน์ง์ ์ ์ฐจ์ ํต๊ณ์ด๋ฉฐ ์๋ฌธ ๋ฌธ์์ด์ ๊ฐ์ค์น ํ์ผ์ ์ ์ฅํ์ง ์๋๋ค. CoSQA reserve ๋ ๋ฌถ์์ ํ์ตยท์ ์ ๊ณ์ฐ์ ์ฌ์ฉํ์ง ์์๋ค. ์ค์ ์ฌ์ฉ์ ์์ , ํ ํฐ ์ ๊ฐ, ๋ฐฐํฌ ์ค๋น ์๋ฃ๋ ์์ง ์ ์ฆํ์ง ๋ชปํ๋ค.
๊ฒ์ฆํ HF ์ฐ๊ตฌ ๊ณต๊ฐ
๊ณ ์ ์ฐ๊ตฌ ๋ฌถ์์ ๊ณต๊ฐํ๋ค. 24๊ฐ ๊ฐ์ค์น์ ๋ฌธ์๋ฅผ ํฌํจํ 31๊ฐ ํ์ผ์ ๋ค์ ๋ด๋ ค๋ฐ์ ์ ์ฒด ์๊ฒฉ ๋ชฉ๋กยท๋ฐ์ดํธยทํด์๊ฐ ๋ก์ปฌ ๋ฌถ์๊ณผ ๊ฐ์์ง ํ์ธํ๋ค. riido-hubcheck --require-ci๋ ํต๊ณผํ๋ค. ์์ค 84a5f74f779cb7d2d0fbbd65a8f303a0d37da1b4์ CI๊ฐ ํต๊ณผํ๊ณ PR32๋ ๋ณํฉ๋๋ค. HF ๊ณต๊ฐ ์ฐ๊ตฌ ์ปฌ๋ ์
์๋ ์ถ๊ฐํ๋ค. ๋ฐฐํฌ ๋ฌด๊ฒฐ์ฑ์ด ํ์ธ๋ ์คํจ ๊ธฐ๋ก์ด๋ฉฐ ํ์ง ํฉ๊ฒฉ์ด๋ ๊ธฐ๋ณธ ์ ์ฉ์ ์๋ฏธํ์ง ์๋๋ค.