Caption Reference Usage 59 KO - teamswyg/laya-tools GitHub Wiki
๋ฌธ์ฅ ์ฐธ์กฐ ์ค๋น ๋๊ตฌ ์ฌ์ฉ๋ฒ
English ยท ๊ณต์ ๊ฒฐ๊ณผ์ ํด์ ยท ์ฌ์ ๊ณํ
์์งยท์คํจ ์์ฅ ยท ๋ ๋ฆฝ ์ฐธ์กฐ ๊ฒํ
riido-captionref๋ ์ ์ง๋ณด์์๋ ์์ด์ ํธ๊ฐ ์ค๋ช
์ ๊ฒํ ํ ์๋ฌธ๊ณผ ๊ทผ๊ฑฐ๋ฅผ ์ฐพ๋ Go ๋๊ตฌ๋ค. ์๋ JSON ์์นยท๋ฌธ์ฅ ํด์ยทGo ๋ฆฌํฐ๋ด ํํ์ ์์น๋ฅผ ์ฐ๊ฒฐํ๋ค. Python์ด๋ ๋ชจ๋ธ ๊ฐ์ค์น๊ฐ ํ์ํ์ง ์์ผ๋ฉฐ, ํ๋ณด ์ฝ๋ยทLayaยท์์ยทํ์ต์ ์คํํ์ง ์๋๋ค. ๋น๋ ์ฑ๊ณต์ด๋ ์ฐธ์กฐ ์์ฑ ์ฑ๊ณต์ ๋ฌธ์ฅ ์๋ฏธยท๋ผ์ด์ ์คยท๋ชจ๋ธ ๋ฐฐํฌ ์๊ฒฉ์ ์น์ธ์ด ์๋๋ค.
๊ฒฐ๊ณผ๋ฅผ ์ฝ๊ณ ๊ฒํ ๋ฅผ ์์ํ๊ธฐ
์ผ๋ฐ ์ฌ์ฉ์๋ caption-coverage-59.json๊ณผ ๊ฒฐ๊ณผ ์ค๋ช ์ ์ฝ์ผ๋ฉด ๋๋ค. ๊ณต์ ์์ฑ์ ๋ค์ ์คํํ ํ์๊ฐ ์๋ค.
generation_counters์์ Bind1/1ยทAST3/3ยท๋ถ๋ชจ72ยท์ค๋ช 216ยท๊ณ์ฝ18์ ํ์ธํ๋ค.references.parents์request๋๋ ํ๋ณด์caption์์ ์๋ณธ ํ์ผยทJSON pointerยทํด๋ ํ UTF-8 ๋ฐ์ดํธ ์์ SHA๋ฅผ ์ฐพ๋๋ค. ๋ฌธ๊ตฌ์ ์์๋ฅผ ๋ฐ๊พธ์ง ์๊ณ ํด๋น ์๋ฌธ์ ์ฝ๋๋ค.- ๊ฐ์ ์ํ์
references.contracts์์ ์ญ์ฌ์ ์ ๋ ฅ ๋ฒ์์literal_source_reference๋ฅผ ์ฝ๋๋ค. byte offset์0๋ถํฐ ์์ํ๊ณ ๋์ ์ ์ธํ๋ค. ์ค ๋ฒํธ๋ ์๋ณธ physical line์ด๋ฉฐ ์๋์ ํฌํจํ๋ค. - ๋ด์ฉ ๊ฒํ recipe์ ๋ฐ๋ผ ๊ตฌํ ์ค๋ช ยท์์ฒญ ๋ฒ์ยท๊ด์ธก ํ๋ยท๋ถ์ /๊ฒฝ๊ณ๋ฅผ ๋ฐ๋ก ๊ฒํ ํ๊ณ , ๋ฌธ์ฅ๊ณผ ์์ฒ ๊ทผ๊ฑฐ ์์นยท๋จ์ ๋ถํ์ค์ฑ์ ๊ธฐ๋กํ๋ค. ํ์ฌ ๋ชจ๋ ๊ฒํ ๋ pending์ด๋ค.
ํ์ฉ ํ๋ณด์ ํ๋ณด๋ณ ๊ฒ์ฌ/์คํจ ์๋ ์ ์ฅ๋ ์ญ์ฌ์ ์ ๋ต์ด๋ค. ์ฐธ์กฐ ๋๊ตฌ๊ฐ ์๋ก ์คํํ ๊ฒฐ๊ณผ๊ฐ ์๋๋ค. unknown21๊ณผ unknown-only ๊ทธ๋ฃน64๋ ๊ทธ๋๋ก ์ ์งํ๋ฉฐ, IDยท๊ทธ๋ฃนยท์ ๋ตยทliteralยท๊ฒํ ์ํ๋ฅผ scorer ํน์ง์ ๋ฃ์ง ์๋๋ค. ์๋ชป๋ ๊ตฌํ์ ์ถฉ์คํ ๋ฌ์ฌํ caption๋ ์ ๋ต ํ๋ณด๋ผ๋ ๋ป์ ์๋๋ค.
์ฝ๋ ํ์ธ๊ณผ CI ์ฌํ์ ๋ฒ์
์ ์ฅ์ ๋ฃจํธ์์ Go1.27.1๋ก ๋๊ตฌ์ ์ ์ฅ ์ฐธ์กฐ์ ํ๊ท ๊ฒ์ฌ๋ฅผ ์คํํ ์ ์๋ค.
GOTOOLCHAIN=go1.27.1 go test -race ./internal/captionref ./cmd/riido-captionref
๋จ์ ๊ฒ์ฌ๋ ์์ ์์ fixture๋ก ASTยท๋ฐ์ดํธ ๊ตฌ๊ฐยทํยท์
์ถ๋ ฅ ์ ํยท์ถ๋ ฅ ๋ณด์กดยท์คํจ ์นด์ดํฐ๋ฅผ ํ์ธํ๋ค. ๊ณต์ ๊ฒฐ๊ณผ ๋ค ์ถ๊ฐํ frozen ํ๊ท ๊ฒ์ฌ๋ ๊ธฐ์กด ์
๋ ฅ์์ references ๋ณธ๋ฌธ๊ณผ generation_counters๋ฅผ ์ ํํ๊ฒ ์ฌ์ยท๋น๊ตํ๋ ๋ณ๋ ๊ฒ์ฌ๋ค. ์ด๋ ์ ์ฅ ๋ฉํ๋ฐ์ดํฐ Bind๋ ์ํํ์ง๋ง ์์ฒ APIยท์์ยท๋ชจ๋ธ์ ํธ์ถํ์ง ์๋๋ค. ์ ์๋ ๋ถ๋์์์ ํ์ฉ ์ค์ฐจ๋ ์๋ค. ์๋ Darwin envelopeยท์์คยท์
๋ ฅยท๊ณํยท๋ฐ์ด๋๋ฆฌ ํ์ ๋ณ๋๋ก ํ์ธํ๋ฉฐ, Linux/macOS CI ์คํ ํ์ผ์ด ์๋ Darwin ํ์ผ๊ณผ ๊ฐ์์ผ ํ๋ ๊ฒ์ ์๋๋ค.
๊ณต์ ๊ฒฐ๊ณผ ์ดํ ๋ก์ปฌ frozen ํ๊ท ๊ฒ์ฌ์ ์ ์ฒด race/vet๋ ํต๊ณผํ๋ค. ๋ ๋ฆฝ ์ฐธ์กฐ ๊ฒํ ์ ์ฝ๊ธฐ ์ ์ฉ ๊ฒํ ์๋ GenerateยทBindยทํ ์คํธ๋ฅผ ์คํํ์ง ์์๋ค. ๋ฐ๋ณต ๊ฒ์ฌ๋ ๊ณต์ ์๋ยท๋ ๋ฆฝ ์์ฒญยท์ truth๋ฅผ ์ถ๊ฐํ์ง ์๊ณ ์์ง ์์ฅ์ ์์ง ํ์์ ๊ตฌ๋ถํ๋ค. ํ์ ํ๊ท ํ์ผ์ ์ฌ์ ์ง์ ํ์ผ9๊ฐ์ ์๊ธํ์ง ์๋๋ค. ์ต์ข GitHub CI๋ ์ด ๋ฌธ์ ์์ฑ ์์ ์ ๋๊ธฐ ์ค์ด๋ฉฐ ์ค์ ํด๋น ์คํ์์ ๋ฐ๋ก ํ์ธํด์ผ ํ๋ค.
์ด๋ฏธ ๋๋ ๊ณต์ ์์ง ์ ์ฐจ
์๋๋ ๊ณผ๊ฑฐ ๊ณต์1ํ๋ฅผ ๋ง๋ ์ ์ฐจ์ ๊ธฐ๋ก์ด๋ค. ๊ธฐ์กด ์ถ๋ ฅ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฌ์ฉํ๊ฑฐ๋ ์ ๊ฒฝ๋ก๋ง ๊ณจ๋ผ ๊ณต์59๋ฅผ ๋ค์ ์คํํ๋ผ๋ ์๋ด๊ฐ ์๋๋ค. ์๋ ์์ค commit์ 75a9776230f7eaef3294247cc10bb7f13342f102, ์
๋ ฅ commit์ 69e9ddc51e218da029572e2bb463500dc36cd143์ด๋ค.
GOTOOLCHAIN=go1.27.1 CGO_ENABLED=0 go build -trimpath -buildvcs=false -p=1 -o .cache/captionref59-driver ./cmd/riido-captionref
.cache/captionref59-driver prepare --repo . --source-commit 75a9776230f7eaef3294247cc10bb7f13342f102 --out .cache/captionref59-plan.json
# ์์ฑํ plan ๋ฐ์ดํธ๋ฅผ experiments/short-claim/execution-plan-59.json์ ๊ทธ๋๋ก ๊ณ ์ ํ๊ณ input commit์ ๋ง๋ ๋ค:
.cache/captionref59-driver references --repo . --input-commit 69e9ddc51e218da029572e2bb463500dc36cd143 --out .cache/captionref59-official/results.json
๊ณํ ์ค๋น๋ถํฐ ๊ณต์ ์์ฑ๊น์ง ๊ฐ์ Go1.27.1/CGO0/trimpath/Darwin arm64 ์คํ ํ์ผ์ ์ฌ์ฉํ๋ค. ๊ธฐ์กด ๊ณํ์ ์ค์ ์คํ ํ์ผ SHA๊น์ง ๊ณ ์ ํ๋ฏ๋ก ๋ค๋ฅธ ๋น๋๋ ํ๋ซํผ์ ํ์ผ๋ก ์๋ ๊ณต์ CLI ์คํ์ ์ฌํํ ์ ์๋ค. ์คํ ํ์ผ์ ๋ก์ปฌ private ๊ฒฝ๋ก์ ๋๋ฉฐ Git์ ์ฌ๋ฆฌ์ง ์๋๋ค. ์ ์คํ์ ๋ณ๋ versionยท์ฌ์ ๊ณํยท๋ด์ธยท์๋ ์์ฅ์ผ๋ก ์ค๋นํด์ผ ํ๋ค.
prepare๋ Bind/Generate0์ด๋ฉฐ ์์ค5ยท์ง์9ยท์
๋ ฅ6์ Git blob20๊ฐ๋ฅผ ๊ฒ์ฌํ๋ค. references๋ ์์ค5ยท์ง์9ยท์
๋ ฅ6ยท๊ณํ1์21๊ฐ๋ฅผ ๋จผ์ ๊ฒ์ฌํ๊ณ , ์ ๋๋ ํฐ๋ฆฌ์ ๋ฐฐํ์ ์ธ results.json์ ์์ฝํ ๋ค Bind์ AST ์ฐธ์กฐ ์์ฑ์ ํ๋ค. ์
๋ ฅ/๊ฒฐ๊ณผ๋ ๊ฐ๊ฐ1MiB ์ดํ, ๋ฐ์ด๋๋ฆฌ๋64MiB ์ดํ, Git ๊ฒ์ฌ๋ ํ์ผ๋ณ5์ด๋ค. ์ถ๋ ฅ ๊ฒฝ๋ก ์ฌ์ฌ์ฉ ๋ฐฉ์ง๋ ์ปดํจํฐ ์ ์ฒด์ ๊ณต์ ์คํ ํ์ ์ ํ์ ๋์ ํ์ง ์๋๋ค.
์คํจํ๋ฉด state=incomplete, ๊ณ ์ failure_code/failure_cause์ ๋จ๊ณ๋ณ ์นด์ดํฐ๋ฅผ ๋จ๊ธด๋ค. ์ถ๋ ฅ ์ธ์ฝ๋ฉยท์ฐ๊ธฐ๊ฐ ์คํจํด ํ์ผ์ ์จ์ ํ ๋จ์ง ๋ชปํ๋ฉด ๊ฐ์ ์นด์ดํฐ๊ฐ ์ค๋ฅ ์ง๋จ์ ๋จ๋๋ค. ์คํจ๋ฅผ ์ญ์ ํ๊ฑฐ๋ ์๋ ์ฌ์๋ํ์ฌ ์คํ0์ฒ๋ผ ๋ง๋ค์ง ์๋๋ค. prototype ledger์ ์ค๋น2ํยทBind2ํ์ ์ฒซ ์คํจ๋ ๊ณต์1ํ์ ๋ณ๋๋ก ๋ณด์กดํ๋ค.
๋ค์ ์ค๋น ์๋ฃ
์์ฒ ์ ์ด ์ค๋ช ๊ณผ ๊ธฐ๊ณ๊ฐ ์ฝ๋ ์์ฒ ์ฐ๊ฒฐ์ semver/glob์ ๊ธฐ์กด ์๋ฌธ๊ณผ ์ ์ฅ๋57 ๊ด์ธก์ ์ฐ๊ฒฐํ ๋ scoped proposal์ด๋ค. ์ ์์ฒญยทcaptionยท์ ๋ตยท์์ฒ API ํธ์ถ์0์ด๋ค. ์ญํ recipe๋ ์ค์ ๋ฐฐ์ ์ ์ด๋ฉฐ train9/validation3/calibration3 ํํ๊ณผ transfer0 ํ์ฉ์ ์ ์งํ๋ค. ๋ด์ฉ ๊ฒํ ยท๊ด๊ณ ๊ทธ๋ํยทcoverageยทmembership/seed ๋ด์ธ์ด ๋ค์ ์์ ์ด๋ค.
training_ready=false, no_roles_plan, synthetic_single_pipeline์ ํจ๊ป ์ฝ๋๋ค. ์ด๋ฒ ์๋ฃ๋ก ๋ชจ๋ธ ํจ์ฉยทํ ํฐ/์๊ธ ์ ๊ฐยท์ค์ธก ๋ฉ๋ชจ๋ฆฌ/CPU/GPU๋ ํ๊ตญ์ด ์
๋ ฅ ์ฑ๋ฅ์ ์ฃผ์ฅํ์ง ์๋๋ค. ์๋ก ๋ค๋ฅธ ๋ณดํธ ์ต์ข
์์ฒญ2,400๊ฐ๋ ๋ณ๋ ๋ชฉํ์ด๋ฉฐ ๋ชจ๋ ๊ฐ๋ฐ fit์ ์ ํ ์ต์๊ฐ ์๋๋ค. ๊ธฐ์กด Laya CI๋ ๋ณ๋ ๊ธฐ๋ก์ด๊ณ ์ด๋ฒ ๋๊ตฌ ์์ฒด์ ๋ชจ๋ธ ํธ์ถ์0์ด๋ค.