Short Claim Results 56a KO - teamswyg/laya-tools GitHub Wiki
์์ Go ์ฃผ์ฅ ๋๊ตฌ: ๊ตฌํยท๋ฌดํ์ต ์ง๋จ56a
English ยท ์ฌ์ฉ๋ฒ ยท ์ซ์ ๊ฒฐ๊ณผ ยท ์์ ๊ฒฐ๊ณผ ยท ํ๋กํ์ผ ์ง๊ณ
ํฐ ์ธ์ฝ๋ ์๋ Go preview๋ฅผ ๊ตฌํํ๊ณ ์ธก์ ํ๋ค. 48๊ฐ ์์ฒด ์์ฑ ์์ฒญ์11๊ฐ ์ฐ๊ฒฐ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ์ฌ ํ์ต ์ค๋น ํํ15๊ฐ์ ๋ชป ๋ฏธ์น๋ค. ๋ถํ ยทํ์ตยท๊ฐ์ค์นยท๋ชจ๋ธ ํธ์ถ์ ๋ชจ๋0์ด๋ฉฐ, ์ค์ LLM ์ ๊ฐ์ ์ฃผ์ฅํ์ง ์๋๋ค. ์ด์ ์ค๋น ๊ณํ56์ ์ค๋น ๋น์ ์๋ฃ0ยท์ค์ธก0์ ์ญ์ฌ์ snapshot์ผ๋ก ์ ์งํ๋ค.
๋ฌด์์ ๊ตฌํํ๋
riido-shortclaim์ ํ์ ๋ ์๊ตฌ์ ํ๋ณด ์ค๋ช
์ผ๋ก ๋
๋ฆฝ ๊ฒ์ฌ ์์๋ฅผ ์ ์ํ๋ค. ์
๋ ฅ๊ณผ ์ ๊ทํ์ ๊ธธ์ด, Unicodeยท์ค๋ณต JSON ํคยทํ๋ณด ์๋ฅผ ์๊ฒฉํ ๊ฒ์ฌํ๋ฉฐ ๋ชจ๋ ํ๋ณด๋ฅผ ๋จ๊ธด๋ค. ํ ํ๋ก์ธ์ค๋ก ์ฌ๋ฌ JSONL ์์ฒญ์ ์ฒ๋ฆฌํ๋ --stream, Go ํจํค์ง pkg/shortclaim, ๋ค ๋ฌดํ์ต ๊ธฐ์ค์ ์ ๊ณตํ๋ค. ๋ชจ๋ธ ๋ค์ด๋ก๋ยทPythonยท์ธ๋ถ API ํค๊ฐ ํ์ ์๋ค. ๊ธฐ์กด Laya ๋์ด๋ ๋ผ์ฐํฐ์ Codex ๊ธฐ๋ณธ ์ค์ ์ ๋ฐ๊พธ์ง ์๋๋ค.
๊ธฐ์ค์ fixed order, BM25, ๋จ์ด/์ฐ์ ๋ ๋จ์ด ์ผ์น, ๋ช
์๋ behavior-v1: ์ข์ ๋ฌธ๋ฒ์ด๋ค. ์ผ๋ฐ ๋ฌธ์ฅ์๋ ๊ท์น์ ์ถ์ธกํด์ ์ ์ฉํ์ง ์๋๋ค. ์์ฐ์ด ๊ฐ๋ฐ ์๋ฃ48๊ฐ๋ ์ ๋ถ ๊ท์น ๋ฐ์ด๋ฏ๋ก ์ข์ ๊ท์น ๊ฒฐ๊ณผ๋ 48/48 BM25 fallback์ด๋ค. ์ ํ ๋ฌธ๋ฒ์์ ๋น ๋ฅด๊ฒ ๋น๊ตํ ์ ์๋ค๋ ์ฌ์ค๊ณผ ์ผ๋ฐ ๋ฌธ์ฅ ์๋ฏธ๋ฅผ ์ดํดํ๋ค๋ ์ฃผ์ฅ์ ๊ตฌ๋ถํ๋ค.
์ฌ์ ์ ๊ณ ์ ํ ๋ฒ์
๊ณต์ ์ ์ยท์ฑ๋ฅ ๊ด์ธก ์ ์ commit45b2ad3์ ์ ๋ ฅยท์คํ๊ธฐยท์์ฒยท๋ฌดํ์ต ์คํ ๊ณํ์ ๋ด์ธํ๋ค.
| ๋์ | SHA-256 |
|---|---|
| ์คํ ๊ณํ | 9c8461b9fe0a80a0f0976c8f07a68f3a47f0c534800a0a303e1cbd8a613caaeb |
| 48์์ฒญ ์๋ณธ | 0fe97dd65606f4239ef9187f1fc4d9c8dc2fcaebf342612b2071220896b92df0 |
| Go ํจ์ยท๋ ๋ฆฝ literal ํ ์์ฒ | b377343a64c019c205f69865286a21ce5d91dda3051c31aa5c69b75a40300559 |
| 8ํ๋ณด ์ฑ๋ฅ ์ ๋ ฅ ํ์ผ | bc41dc423139be4adebc0687ffd30237f22458ea58fccf58771e2003276b5155 |
| Mac ์ธก์ ๋ฐ์ด๋๋ฆฌ | 5f5463005f9dd482247a5f028af9c5c6e6d7cec2c04aa18e4605e8a45a278fb2 |
๊ณํ์ runtime ์์ฒ8๊ฐ ํด์์ Go1.27.1์ ํจ๊ป ๊ณ ์ ํ๋ค. Go ๋น๋์๋ CGO0ยทtrimpathยทbuildvcs=false๋ฅผ ์ฌ์ฉํ๋ค. ์คํ ํ์ผ ๋ฐ์ดํธยทGo ๋น๋ ์ ๋ณดยทํจํค์ง ID๋ฅผ ํ์ธํ ๋ค ๊ฒ์ฆํ ๋ฐ์ดํธ์ ๋ณ๋ private copy๋ฅผ ์คํํ๋ค. ์๋ณธ ์ ๋ ฅ ํด์๋ฅผ ํ์ธํ ๊ทธ ๋ฐ์ดํธ๋ฅผ ํ๊ฐํ๋ฉฐ, ๊ฒฐ๊ณผ ์๋ฌธ์ ๊ฐ์ธ ๊ฒฝ๋กยทํ๊ฒฝ ์ ์ฒดยท์์ trace๋ฅผ ๋ฃ์ง ์๋๋ค. ์ถ๋ ฅ ํฌ๊ธฐ์ ์ ์ฒด60์ดยทchild15์ด ์ ํ๋ ์ ์ฉํ๋ค.
์๋ฃ์ ์ ๋ต
์๋ฃ๋ ์์ฒด ์์ฑํ 48๋ถ๋ชจยท144ํ๋ณด ์ค๋ช ยท12๋์ ์ํยท11์ฐ๊ฒฐ ๊ทธ๋ฃน์ด๋ค. ์์ด๋ง ํฌํจํ๊ณ ๊ฐ์ ์์ฑ์์ ํ๊ณ๋ฅผ ๊ฐ๋๋ค. ์กฐ๊ฑด ์ ์ง, ๊ถํ์ ๋ถ์ , ํฌํจ ๊ฒฝ๊ณ, ํฉ๊ณ ๋น๊ต, ์์ ํํฐ, ์ฒซ ํญ๋ชฉ ์ ๊ฑฐ, ์ธ์ ์ค๋ณต ์ถ์ฝ, ํ์ , ๋น๊ฐ์ ์์, clamp, prefix balance์ ์ฐ์ ๋์ ์์๋ฅผ ๋ค๋ฃฌ๋ค. ๋ณ์ยท์ซ์ยท๋ฒ์ญยท๋ชจ๋ธ ์ค์ ์๋ฅผ ๋ ๋ฆฝ ์์ฒญ ์๋ก ์ธ์ง ์๋๋ค.
Go ์ ๋ต ํจ์12๊ฐ์ ์ค๋ต ํจ์24๊ฐ๋ ํ๋ณด๊ฐ ์์ฑํ์ง ์์ literal ๋ฒกํฐ68๊ฐ๋ก ๊ฒ์ฌํ๋ค. ์ํ๋ณ ๋ฒกํฐ๋ฅผ ์ธ ํจ์์ ์ ์ฉํ ๊ธฐ๋ณธ ๋์กฐ ๊ฒ์ฌ204๊ฐ์ ์ค์ ํ๋ณด์งํฉ ๊ฒ์ฌ๋ฅผ ๋ณ๋ ๊ธฐ๋กํ๋ค. ์ฝ๋ hashยท์ด๋ฆ ์ ๊ทํ hashยทํต์ฌ templateยท๋์ผ ์์ฒญยท๊ณต์ ์์ฑ ํ๋ณด๋ฅผ ์ ์ด์ ์ผ๋ก ํฉ์น๋ค. closed-window์ clamp-window๋ ๊ฐ์ closed-boundary core์ฌ์ ํจ๊ป ๋ฌถ์๊ณ , 12์ํ์ด11๊ทธ๋ฃน์ด ๋๋ค.
์์ฐ์ด ์ถฉ์ค์ฑ์ Go ํ ์คํธ์ ๋ณ๋๋ก ๋ ๋ฆฝ์ ์ผ๋ก ์ฝ์๋ค. โ๋ฐ์ ๊ฐ์ ๋ฐ์ง ์๋๋คโ์ฒ๋ผ ์์ชฝ ๊ฐ์ ๋ฐ๋์ ๋ฐ๋๋ค๋ ๋ป์ด ๋น ์ง ์๊ตฌ์ ์ธ์ ์ถ์ฝ์ ํ์ ๋์์ด ๋น ์ง ํํ์ ์ ์ ๊ด์ธก ์ ์ ๋ณด๊ฐํ๋ค. ์ ํ ๋ฒกํฐ์ ํ ๋ฒ์ ๋ ๋ฆฝ ๋ ํด๋ ์ผ๋ฐ ์๋ฏธ ์ ๋ต์ ์ธ์ฆํ์ง ์๋๋ค. ์์ฒยท๋ผ๋ฒจยท๋์ modeยท์ญํ ยทID๋ scorer ํน์ง์ ๋ค์ด๊ฐ์ง ์์ผ๋ฉฐ, ์์ฒญ๊ณผ ํ๋ณด ์ค๋ช ๋ง ์ฌ์ฉํ๋ค.
์ ๋ต ์๋ ์์ฒญ24๊ฐ, ๊ฒ์ฌ๋ ์ ๋ต ์๋ ์์ฒญ12๊ฐ, ์ ์ฑ ์ด ๋ชจํธํ unknown12๊ฐ๋ค. Unknown์ ์๋48๊ฐ ๋ถ๋ชจ์ ๋จ์ง๋ง ๋น์ฉยทTop1/3์์ ์ ์ธํ๋ค. No-answer๋ ๊ธฐ์ค๊ณผ oracle ๋ชจ๋ ํ๋ณด๋ฅผ ์ ๋ถ ๊ฒ์ฌํ๋ค. ์ ๋ต ์งํฉ์ ์ฌ๋ฌ ํ๋ณด๋ฅผ ํ์ฉํ ์ ์๋ค.
๋ฌดํ์ต ๊ฒฐ๊ณผ
์ญํ ๋ถํ ์ด ์๋ ๊ฐ๋ฐ ์ง๋จ์ด๋ค. ์์น๋ ์ด ์์ฒด ์์ฑ ์งํฉ์ ๊ด์ธก์ด๋ฉฐ holdout์ด๋ ์ค์ Codex ์์ ๊ฒฐ๊ณผ๊ฐ ์๋๋ค.
| ๊ธฐ์ค | known36๊ฐ ์ ์ฒด ๊ฒ์ฌ ์ | answerable24๊ฐ ๊ฒ์ฌ ์ | Top1 /24 | Top3 /24 |
|---|---|---|---|---|
| ์๋ ์์ | 72 | 48 | 4 | 24 |
| BM25 | 59 | 35 | 15 | 24 |
| ๋จ์ดยท์ฐ์ ๋จ์ด | 60 | 36 | 14 | 24 |
| ์ข์ ๋ฌธ๋ฒโBM25 fallback | 59 | 35 | 15 | 24 |
| ์ ๋ต์ ๋ฏธ๋ฆฌ ์๋ oracle | 48 | 24 | โ | โ |
์ต์ ๋ฌดํ์ต ๊ธฐ์ค์ BM25์ด๋ฉฐ no-answer ํฌํจ ํ๊ท ๊ฒ์ฌ ์๋59/36โ1.639๋ค. Oracle์48/36โ1.333์ด๋ค. ๊ฐ๋ฅํ ์ต๋ ์๋ ์ด๋์ (59โ48)/59โ18.64%์ด๊ณ answerable๋ง ๋ณด๋ฉด (35โ24)/35โ31.43%๋ค. Oracle์ ๋ฌ์ฑํ ๋ชจ๋ธ ์ฑ๋ฅยท์คํ ์ ์ฑ
ยทํ์ต ํน์ง์ด ์๋๋ค. 5% ํ์ ์ํ์ ๋์ง๋ง ํ์ต ๊ฐ๋ฅ์ฑ์ ๋ณด์ฅํ์ง ์๋๋ค. ์์ฑํ ํ๋ณด ์์์ ์งง์ ๋์กฐ๊ตฐ ๊ตฌ์ฑ์ด ๊ฒฐ๊ณผ์ ์ํฅ์ ์ค๋ค. Top3 ์ ๋ถ ํต๊ณผ๋ ์์3~4ํ๋ณด ์งํฉ๊ณผ ์ค๋ณต๋ ํ์ฉ ํ๋ณด์ ํน์ฑ์ ํฌํจํ๋ฏ๋ก ๋ณ๋ ์๋ฏธ ์ดํด ์ฑ๊ณผ๋ก ํ๋ํ์ง ์๋๋ค.
์ค์ ๊ทธ๋ฃน11<15์ด๋ฏ๋ก ์ญํ ์ ๋ฐฐ์ ํ๊ฑฐ๋ ๊ทธ๋ฃน์ ์ชผ๊ฐ์ง ์์๋ค. insufficient_connected_groups์ no_partition_or_training_execution_plan์ผ๋ก ์ค๋จํ๋ค. FP32ยทINT8ยทSTE/PTQ fit, HF ๊ฐ์ค์น ๊ฒ์, final ์ฑ์ , production ํ์ฑํ๋0์ด๋ค. ๊ธฐ์กด protected final๊ณผ CoSQA reserve๋ ์ฝ์ง ์์๋ค.
Mac ์์ ์ธก์
Apple M4 Proยท24GiBยทdarwin/arm64ยทGo1.27.1์ด๋ค. GOMAXPROCS=1๋ก Go์ ๋์ ์คํ P๋ฅผ ์ ํํ์ผ๋ฉฐ OS ์ค๋ ๋ ์๋ affinity๋ฅผ ์ธก์ ํ ๊ฒ์ ์๋๋ค. GPUยทORTยทLaya ์ธ์ฝ๋ยท๊ฒฐ๊ณผ ์บ์๋ ์ฌ์ฉํ์ง ์๋๋ค.
๊ฐ์ ์๋ณธ8ํ๋ณด ์์ ๋ฅผ ๊ธฐ์ค๋ง๋ค ์ ํ๋ก์ธ์ค cold3ํ์ warm1ํ๋ก ์คํํ๋ค. Warm์ ๋ค์ฏ ๋จ๊ณ๋ ๊ฐ๊ฐ20๋ฒ ์ค๋น, AllocsPerRun์101๋ฒ allocation probe, ์ค์ 2,000๋ฒ ํ์ด๋ฐ ํ๋ณธ์ด๋ค. ๋ฐ๋ณต ํ์๋ ๋ฐ์ดํฐ ํ๋ณธ ์๊ฐ ์๋๋ค. ์์ ์ ์์ฒญ์ ์ ๊ทํ32๋จ์ด์ด๊ณ ํ๋ณด๋ ์ต๋32๋จ์ด์ด๋ฉฐ ๋ชจ๋ ๊ฐ๋ฅํ512๋ฐ์ดํธยท์ธ์ดยท์ ๋ ฅ ๋ชจ์์ ์ต์ ๊ฐ์ ์๋๋ค.
| ๊ธฐ์ค | ์ ์ฒด Go ํธ์ถ warm p95 | ๋ฐ๋ณต ์ธก์ child peak RSS | ์ ์ฒด ํธ์ถ Go ํ ๋น/op |
|---|---|---|---|
| ์๋ ์์ | 0.063417ms | 10.5625MiB | 291 |
| BM25 | 0.069667ms | 10.2500MiB | 291 |
| ๋จ์ดยท์ฐ์ ๋จ์ด | 0.077042ms | 10.421875MiB | 291 |
| ์ข์ ๋ฌธ๋ฒ | 0.079250ms | 10.468750MiB | 291 |
์ ์ฒด ํธ์ถ์ JSON ์ค๋นยท์ ๋ ฅ ๊ฒ์ฆยท์์ยทdigestยท์ถ๋ ฅ ์ง๋ ฌํ๋ฅผ ํฌํจํ๊ณ ์ถ๋ ฅ์ io.Discard์ ๋ณด๋ธ๋ค. ์์ ๋จ๊ณ์๋ ์ฌ๊ฒ์ฆยทํน์งยท์ ์ยท์ ๋ ฌ์ด ํฉ์ณ์ ธ ์๋ค. HeapAlloc์ ๋ฏธ์๊ฑฐ ๊ฐ์ฒด๋ฅผ ํฌํจํ Go heap snapshot์ด๋ฉฐ RSS์ ๋ค๋ฅด๋ค. Peak RSS๋ ๋ฐ๋ณต ์ธก์ ํ๋ก์ธ์ค ์ ์ฒด๋ก ๋จ์ผ ์๊ฐ ์ถ๋ก RAM์ด ์๋๋ค. 32MiBยท1ms ๋ชฉํ๋ ์ด ์์ ์์ ์ถฉ์กฑํ์ผ๋ฉฐ ์๋ฏธ ํ์ง gate๋ฅผ ๋์ ํ์ง ์๋๋ค.
12๊ฐ cold process ์ค ์ฒซ ์์์370.932333ms, ๋๋จธ์ง๋2.5649585.232667ms์๋ค. ์ฒซ ๊ฐ์ ๋ฒ๋ฆฌ๊ฑฐ๋ ์์ธ์ ํ์ ํ์ง ์๋๋ค. OSยทํ์ผ cacheยท์ต์ด ์คํ ํจ๊ณผ๋ ๋ณ๋ ๋ฏธํ์ธ์ด๋ค. Cold RSS๋ ์ฝ4.534.69MiB์๋ค. ์ฑ๋ฅ replay wall์1.269162916์ด๋ค. ๋ค warm child์ user CPU๋0.184671/0.200684/0.214853/0.232318์ด, system CPU๋0.003933/0.003496/0.003057/0.003607์ด์๋ค. ์ค์ JSON์๋ ๋ชจ๋ cold/warm ๊ด์ธก์ ๋ณด์กดํ๋ค. Open-loop ๋์ฐฉ๋ฅ ๋ถํยท๋์ ๋ค์ค ์์ฒญยทstream ์ง์ฐ์ ์์ง ์ธก์ ํ์ง ์์๋ค.
ํ๋กํ์ผ๊ณผ ์ต์ ํ ํ๋จ
๊ณ ์ ๊ณํ์ ๋ฐ๋ผ ์ข์ ๊ท์น๋ง ๋ณ๋1ํ, ๋จ๊ณ๋น10,000ํ๋ก CPU ํ๋กํ์ผ์ ์์งํ๋ค. Headline ์ง์ฐ/RSS์๋ ์์ง ์์๋ค. ํ๋กํ์ผ1.34์ดยทsamples1.06์ด์์ runtime.kevent flat0.88์ด(83.02%), runtime.madvise0.07์ด, BM250.02์ด, lexical tokenํ cumulative0.05์ด๋ฅผ ๊ด์ธกํ๋ค. kevent ๋น์ค์ ์ ํ๋ฆฌ์ผ์ด์ ์ CPU ๋ณ๋ชฉ์ด๋ lock ๊ฒฝํฉ์ผ๋ก ํด์ํ์ง ์๋๋ค. Darwin syscall stack ๊ท์์ Go ์์ฒ ์ด์80921๋ go1.28-devel์ ๋ณ๋ ๋ณด๊ณ ์ด๋ฉฐ ํ์ฌ go1.27.1 ๊ด์ธก์ ์์ธ์ผ๋ก ์ฌํํ๊ฑฐ๋ ํ์ ํ์ง ์์๋ค.
์ ๋ ฅ์ ๊ณ ์ ๋ฐฐ์ด8๊ฐ, ๋จ์ด๋ ๋ฐฐ์ด32๊ฐ, ๋น๋๋ ์์ ์ฐ์ ๋ฐฐ์ด์ ์ด๋ค. Runtime mapยท๊ณต์ ๊ฐ๋ณ ์ํยท๊ณต์ lock์ด ์๋ค. Rank๋ง ์ ํํ๋ฉด ๋ค๋ฅธ ๊ธฐ์ค์ ์ ์๋ฅผ ๊ณ์ฐํ์ง ์๋๋ค. ๊ทธ๋ฌ๋ ์ ๊ทํยท์ฌ๊ฒ์ฆยทJSON์ ํ ๋น์ ์ฌ์ฉํ๋ฏ๋ก zero-allocation ๋๊ตฌ๋ผ๊ณ ๋ถ๋ฅด์ง ์๋๋ค. ํ์ฌ ์๋ฃ๋ก SIMDยทSoA ์ฌ๋ฐฐ์ด์ ์ด๋์ด๋ application hotspot์ ์ ์ฆํ์ง ์์์ผ๋ฉฐ, ์ด๋ฅผ ๊ฐํํ๊ธฐ ์ ์ ํ๋กํ์ผ ๊ท์๊ณผ stage๋ณ ์์ ๋น์ฉ์ ๊ฒ์ฆํ๋ค.
์ฌํ๊ณผ ๋ค์ ์์
์๋ ์ฑ๋ฅ ๊ณํ์ ๊ณ ์ ๋ Mac arm64 ๋ฐ์ด๋๋ฆฌ์ฉ์ด๋ค. ๋ค๋ฅธ ํ๋ซํผ์ฉ ์คํ ํ์ผ์ SHA๋ฅผ ๊ฐ์ ๊ณํ์ ๋ฃ์ด ๋ฐ๊พธ์ง ์๋๋ค. ๋ฌดํ์ต ๊ฒฐ๊ณผ ์ฌ์์ Linux/macOS CI์์ ์ํํ๊ณ ์ ์ยท๊ทธ๋ฃนยท์์๋ ์ ํํ๊ฒ, ๋ถ๋ ์์์ ์ ์๋ง1e-12 ์๋ ํ์ฉ์ค์ฐจ๋ก ๋น๊ตํ๋ค. ํ์ง ๊ฒ์ฌ๊ฐ ํต๊ณผํด์ผ ์๋ ๋ณํฉ๋๋ฉฐ ๋ณ๋ ์ฌ๋ ์น์ธ์ ์๊ตฌํ์ง ์๋๋ค.
CGO_ENABLED=0 go build -trimpath -buildvcs=false -o .cache/riido-shortclaim-56 ./cmd/riido-shortclaim
go run ./cmd/riido-behavioraudit --plan-sha256 9c8461b9fe0a80a0f0976c8f07a68f3a47f0c534800a0a303e1cbd8a613caaeb --out .cache/my-short-audit
go run ./cmd/riido-shortperf --plan-sha256 9c8461b9fe0a80a0f0976c8f07a68f3a47f0c534800a0a303e1cbd8a613caaeb --out .cache/my-short-performance.json
์ ์ถ๋ ฅ๋ง ํ์ฉํ๋ค. ์์ pprofยท๊ฐ์ธ ๊ฒฝ๋กยท์ค์ ์ ๋ฌด ์ ๋ ฅ์ ๊ณต๊ฐํ์ง ์๊ณ ์๋ณธ fixtureยท์ซ์ยทhashยทํจ์ ์ง๊ณ๋ง ๊ฒ์ํ๋ค. ์ด์ ์ค๋น snapshot์ ์ ์ธํ ์ Git JSON ์๋ฃยท์ซ์ ํฉ๊ณ๋ ์ฝ260.6KiB์ด๋ฉฐ ์์ฒ/๋ฌธ์๊น์ง๋64MiB ์์ฐ๋ณด๋ค ์๋ค. ๋ชจ๋ธ ๋ณธ์ฒด๋ Git์ ์ฌ๋ฆฌ์ง ์๋๋ค. ๋ค์ ํ๋ณด ๊ณํ56b๋ ์์์ ๋ฐ์ยท์ค๋ฅ ์์ธยทsnapshotยท์๋ช ยทescapeยท๊ทธ๋ํ์ฒ๋ผ ๋ค๋ฅธ ์คํจ ์์์ ๋ค๋ฃจ๋, ์๋ก์ด typed truth ๊ณ์ฝ๊ณผ ์ ์ด ๊ทธ๋ฃน ๊ฒ์ฌ๋ฅผ ๋จผ์ ์๊ตฌํ๋ค. ๋๋ฉ์ธ๋ณ ์๋ก ๋ค๋ฅธ ์ต์ข 2,400์์ฒญ ๋ชฉํ๋ ๊ทธ๋๋ก์ด๋ฉฐ ์ด๋ฒ final ์ ๊ฒฉ์0์ด๋ค.