Caption Reference Usage 59 KO - teamswyg/laya-tools GitHub Wiki

๋ฌธ์žฅ ์ฐธ์กฐ ์ค€๋น„ ๋„๊ตฌ ์‚ฌ์šฉ๋ฒ•

English ยท ๊ณต์‹ ๊ฒฐ๊ณผ์™€ ํ•ด์„ ยท ์‚ฌ์ „ ๊ณ„ํš

์ˆ˜์ง‘ยท์‹คํŒจ ์›์žฅ ยท ๋…๋ฆฝ ์ฐธ์กฐ ๊ฒ€ํ† 

riido-captionref๋Š” ์œ ์ง€๋ณด์ˆ˜์ž๋‚˜ ์—์ด์ „ํŠธ๊ฐ€ ์„ค๋ช…์„ ๊ฒ€ํ† ํ•  ์›๋ฌธ๊ณผ ๊ทผ๊ฑฐ๋ฅผ ์ฐพ๋Š” Go ๋„๊ตฌ๋‹ค. ์›๋ž˜ JSON ์œ„์น˜ยท๋ฌธ์žฅ ํ•ด์‹œยทGo ๋ฆฌํ„ฐ๋Ÿด ํ‘œํ˜„์‹ ์œ„์น˜๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค. Python์ด๋‚˜ ๋ชจ๋ธ ๊ฐ€์ค‘์น˜๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ, ํ›„๋ณด ์ฝ”๋“œยทLayaยท์ˆœ์œ„ยทํ•™์Šต์„ ์‹คํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋นŒ๋“œ ์„ฑ๊ณต์ด๋‚˜ ์ฐธ์กฐ ์ƒ์„ฑ ์„ฑ๊ณต์€ ๋ฌธ์žฅ ์˜๋ฏธยท๋ผ์ด์„ ์Šคยท๋ชจ๋ธ ๋ฐฐํฌ ์ž๊ฒฉ์˜ ์Šน์ธ์ด ์•„๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ๋ฅผ ์ฝ๊ณ  ๊ฒ€ํ† ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ

์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋Š” caption-coverage-59.json๊ณผ ๊ฒฐ๊ณผ ์„ค๋ช…์„ ์ฝ์œผ๋ฉด ๋œ๋‹ค. ๊ณต์‹ ์ƒ์„ฑ์„ ๋‹ค์‹œ ์‹คํ–‰ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

  1. generation_counters์—์„œ Bind1/1ยทAST3/3ยท๋ถ€๋ชจ72ยท์„ค๋ช…216ยท๊ณ„์•ฝ18์„ ํ™•์ธํ•œ๋‹ค.
  2. references.parents์˜ request ๋˜๋Š” ํ›„๋ณด์˜ caption์—์„œ ์›๋ณธ ํŒŒ์ผยทJSON pointerยทํ•ด๋…ํ•œ UTF-8 ๋ฐ”์ดํŠธ ์ˆ˜์™€ SHA๋ฅผ ์ฐพ๋Š”๋‹ค. ๋ฌธ๊ตฌ์™€ ์ˆœ์„œ๋ฅผ ๋ฐ”๊พธ์ง€ ์•Š๊ณ  ํ•ด๋‹น ์›๋ฌธ์„ ์ฝ๋Š”๋‹ค.
  3. ๊ฐ™์€ ์›ํ˜•์˜ references.contracts์—์„œ ์—ญ์‚ฌ์  ์ž…๋ ฅ ๋ฒ”์œ„์™€ literal_source_reference๋ฅผ ์ฝ๋Š”๋‹ค. byte offset์€0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ณ  ๋์€ ์ œ์™ธํ•œ๋‹ค. ์ค„ ๋ฒˆํ˜ธ๋Š” ์›๋ณธ physical line์ด๋ฉฐ ์–‘๋์„ ํฌํ•จํ•œ๋‹ค.
  4. ๋‚ด์šฉ ๊ฒ€ํ†  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์ด๋‹ค.