Shared Field Judgment - kimjooyoon/meta-ontology-go GitHub Wiki
ํ ํ๋จ๊ธฐ๋ฅผ ์ฌ๋ฌ ํ๋์ ์ฌ์ฉํ๋ ์กฐ๋ฆฝ
2026-10-05 KST. ๊ณต๊ฐ ๋ชจ๋ธ ยท ์๋ณธ๊ณผ ์งํ ยท ์ปดํ์ผ๋ฌ ์ฐ๊ฒฐ PR1231.
Gooo์ ํ๋ ์ด๋ฆ, ๋ ํ๋ณด์๊ณผ ์๋๋ฅผ ์ ์ต๋๋ค. ์์ ํ๋จ๊ธฐ๊ฐ ๊ฐ ํ๋์ ๋ ํ๋ณด๋ฅผ ๋น๊ตํ๊ณ ์ ์๋ฅผ ํฉ์ณ ์ ์ฒด ์ฝ๋ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฌํฉ๋๋ค. ๊ฐ์ ๋๊ตฌ๋ฅผ ์ ๋ชฉยท์ํยท์ฌ์ ์ ์ธ ์กฐ๋ฆฝ ์๋ฆฌ์ ๊ฐ์ ธ๋ค ์ฐ๋ ๋ชจ์ต์ ๋๋ค. ์ปดํ์ผ๋ฌ๊ฐ ์กฐ๊ฑด๋ฌธยท๋ณ์ยทํ๋์ ํ์ ๊ณผ ์ฐ๊ฒฐ์ ๊ฒ์ฌํ๊ณ ์ค์ ๋ก ๋ง๋ค์ด ์คํํฉ๋๋ค.
flowchart LR
S["Gooo: ํ๋ณด์๊ณผ ํ์ ์๋"] --> F["ํ๋๋ณ ํน์ง ๋ฐฐ์ด"]
F --> J["๊ณต์ ํ๋ ์์ ํ๋จ๊ธฐ"]
J --> P["์ฌ๋ ์กฐํฉ์ ์์์ ํ๋ ํ๋ฅ "]
P --> T["์ ํ ์์๋ก ์กฐ๋ฆฝยทํ์ธ"]
T --> R["๋ง๋ ์ฝ๋, ๋ง์ ํญ๋ชฉ, ๋จ์ ํญ๋ชฉ"]
๋ชจ๋ธ์ ์๋ตํ๋ฉด ๊ฒฐ์ ๋ก ์ ์ผ๋ก ์กฐํฉ์ ์๋ํฉ๋๋ค. ํ๋ ์/๋ฌธ๋งฅ ํฌ๊ธฐ๊ฐ ๋ชจ๋ธ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ฉด ๊ทธ ์ด์ ๋ฅผ ๊ธฐ๋กํ๊ณ ์ด ์์๋ก ์งํํฉ๋๋ค. ์์ฑํ ์ฝ๋์ ๋ฐํ์๊ณผ ์ ์ฅํ ์ ํ์ ์ฌ๊ตฌ์ฑ์ ์ถ๊ฐ ์ถ๋ก ์์ด ํ์ฌ ์ ๋ ฅ์ผ๋ก ์คํํฉ๋๋ค.
์์ ๋ณ๊ฒฝ์ผ๋ก ๋ฌด์์ด ๋ฌ๋ผ์ก๋
์์ ํผํฉ ์๋ ๋ชจ๋ธ์ ๊ฐ์7,168๊ฐ ์์ค/ํน์ง ๊ด์ธก์ ์ฌ์ฌ์ฉํ์ต๋๋ค. ์ธ ํ๋์ ์ฌ๋ ์๊ตฌ ์กฐํฉ์ ๋ชจ๋ ํ์ต์ ๋ค์ด๊ฐ๊ณ , ์ ๋ณธ๋ฌธ๊ณผ ํํ์ ํ๊ฐ ์ถ์ ๋ฐ๋ก ์ฝ์ต๋๋ค. ์๋ก์ด Go ์ด๊ธฐ๊ฐ์์ ๊ฐ์3,840ํGPU ๊ฐฑ์ ์ ํ์ต๋๋ค.18,656๊ฐ ๋งค๊ฐ๋ณ์ ๋์ 2,072๊ฐ๋ฅผ ๊ณต์ ํฉ๋๋ค.
| ์งํ | ์์ v2 FP32 | ๊ณต์ FP32 | ๊ณต์ QAT ์ผ์ง ํ์ต |
|---|---|---|---|
| ๋ค๋ฅธ ๋ณธ๋ฌธยท๊ธฐ๋ณธ ํํ, ์ฒซ ์์ ์กฐํฉ | 424/1,536 (27.60%) | 1,152/1,536 (75.00%) | 1,344/1,536 (87.50%) |
| ์ ํ๊ฐ์ ๋ง์ ํ๋ | 2,942/4,608 | 4,224/4,608 | 4,416/4,608 |
| ๋ค๋ฅธ ๋ณธ๋ฌธยท์ ํํ, ์ฒซ ์์ ์กฐํฉ | 81/512 (15.82%) | 120/512 (23.44%) | 102/512 (19.92%) |
| ๊ฐ์ค์น ํ์ผ | 74,624 B | 8,288 B | 446 B |
| ์ค์ ์คํ ํ ์ | 74,624 B | 8,288 B | 2,096 B + scale8 B |
| ๋ฌธ๋งฅ ํด์์ ํฌํจํ ๋ฐ๋ปํ ํ๋จ ์ค์๊ฐ | 15.96ยตs | 9.50ยตs | 9.29ยตs |
์ค๋น๋ ํน์ง ๋ฐฐ์ด ํ ํ์ FP32 ๊ณ์ฐ์3.04ยตs, QAT๋3.13ยตs์์ต๋๋ค. ์ด ๋ฐฐ์ด ๊ฒฝ๋ก์ ํ ํ ๋น์ ํธ์ถ๋น0ํ์์ต๋๋ค. ํ ์คํธ ํด์๊ณผ ์ ์ฒด ์ฝ๋ ์์ฑ์ ๋ณ๋ ๋น์ฉ์ ๋๋ค. ๊ฐ ์์ฒญ์3,200 B workspace์ ์์ ์ ์ถ๋ ฅ/์ ํ ์ํ๋ฅผ ์์ ํฉ๋๋ค.
์ง์ ์ผ์งํํ PTQ์ ๋ณธ๋ฌธ ์ฒซ ์กฐํฉ์168/1,536์ผ๋ก ๋ฎ์์ต๋๋ค. ์์ ์ ์ฅ ํ์๊ณผ ํ์ต ๋ฐฉ์์ ์ํฅ์ ํจ๊ป ๋ด์ผ ํฉ๋๋ค. ๋ชจ๋ ๋ณํ๊ณผ ์คํจ๋ฅผ ๊ณต๊ฐํฉ๋๋ค.
์ค์ ๋์์ ์์ ์ฑ
24๊ฐ ์์ค๋ฅผ ๋ค์ฏ ๋ฐฉ์๊ณผ ์์ฐ1/2/8๋ก ๋ง๋ค์ด360๊ฐ ๊ทธ๋ํยท720ํ ์ค์ ์คํ์
๊ด์ธกํ์ต๋๋ค. ์ฒ์ ๋ณด๋ ๋ฐํ์ ์
๋ ฅ์ ๋ ํ๋์ bind์ ์ ๋ฌํฉ๋๋ค. ์์ฑ
์งํ ์คํํ๊ณ ์์ ์ถ๋ ฅ์์ ํ๋/์ถ๋ ฅ/ํ๋ก์ธ์ค ์งํ๋ฅผ ๋ค์ ๊ณ์ฐํ์ต๋๋ค.
์ฒซ ํ๋ณด์์ ๋ณํ์ด ํ์ฑ์ธ ์ ๋ ฅ์ ์๊ตฌ ํ๋๋ ๊ฒฐ์ ๋ก 72/144๊ฐ, ์์ ๋ชจ๋ธ 108/144๊ฐ, ๊ณต์ FP32/QAT ๊ฐ๊ฐ126/144๊ฐ์์ต๋๋ค. ์ ๋ ฅ๊ณผ ๋ค๋ฅธ ๊ฐ์ด ํ์ํ ํญ๋ชฉ๋ง ์ธ๋ฉด60/120,92/120,108/120,106/120๊ฐ์ ๋๋ค. ์ ์ง ๋ถ๊ธฐ144/144๊ฐ๋ ๋ณ๋ ๋ถ๋ชจ์ ๋๋ค. ์์ฐ8์120๊ฐ ๊ทธ๋ํ๋ ๋ชจ๋ ์ ์ ๋ ฅ12/12ํ๋ยท8/8์ถ๋ ฅ, ์ ํ ์์15/15ํ๋๋ฅผ ์ถฉ์กฑํ์ต๋๋ค.
ํ๊ฐ ์ถ์ ๋๋๋ฉด ๊ธฐ๋ณธ ํํ์ ํ์ฑ ํ๋๋ ์์ ๋ชจ๋ธ76/96๊ฐ์์ ๊ณต์ ๋ชจ๋ธ 96/96๊ฐ๋ก ์ฌ๋์ต๋๋ค. ์ ํํ8๊ฐ ์์ค์์๋ ์์ ๋ชจ๋ธ32/48๊ฐ, ๊ณต์ ๋ชจ๋ธ30/48๊ฐ์์ต๋๋ค. ์์ ์ ํํ ๋ฌถ์์ ํดํ๋ ๊ทธ๋๋ก ๋จ๊น๋๋ค.
์ ์ฒด ๋ช ๋ น ์ค์๊ฐ์ ๊ฒฐ์ ๋ก 395.80ms, ๊ณต์ FP32 394.65ms์์ต๋๋ค. ์์ฑยท๋น๋ยท ์์ ๋น์ฉ์ ํฌํจํ ๊ณ ์ ์์ ๋น๊ต์ด๋ฉฐ, ์ด ์ ๋ ์ฐจ์ด๋ก ์ ์ฒด ์๋ ํฅ์์ ํ๋จํ๊ธฐ ์ด๋ ต์ต๋๋ค. ํ๋จ์ ํฌ๊ธฐ์ ์ ํ๋, ์กฐ๋ฆฝ์ ์ ์ฒด ๋น์ฉ์ ๋๋ ๋ด ๋๋ค.
ํ์ต ํ๋ก์ธ์ค๋9.45์ด/CPU5.06์ด, ์ต๋RAM477.9MiB์์ต๋๋ค. ํ ์ฝ์ด๋ฅผ100%๋ก ๊ณ์ฐํ ํ๊ท CPU๋53.5%์ด๋ฉฐ ํธ์คํธ ์ ์ฒดCPU ์ฆ๊ฐ๋์ ๋ฏธ์ธก์ ์ ๋๋ค. MPS์ ํ ๋น๋์tensor13.56MiB/driver50.72MiB๋ฅผ ํ๋ณธ ๊ด์ธกํ๊ณ GPU utilization์ ์ธก์ ํ์ง ์์์ต๋๋ค. ์ ์คํ ์๋ณธ37.91MiB๋ก, ๊ธฐ์กด ๋ฑ ํฌ๋ฅผ ๋ค์ ๋ณต์ฌํ์ง ์์ต๋๋ค.
๋ฐ๋ผ ํ๊ธฐ
SDK๋v0.2.23-experimental์ด๋ฉฐ ์ปดํ์ผ๋ฌ main2c807d461afc68a7ebfbd277d1dd6e97f5168e92์ ์ฐ๊ฒฐํ์ต๋๋ค.
๋ ์คํ๊ธฐ์ ๊นจ๋ํ ๋น๋ยท์ค์น์ ๊ณต๊ฐ ๋ชจ๋ธ์ ์คํ์ ํ์ธํ์ต๋๋ค.
์ค์น์ ๊ฒฐ๊ณผ ์ฝ๊ธฐ ยท ํ์ฌ ์ํ.
hf download asketeddy/gooo-record-shared-field-tiny-v1 \
models/qat_ternary/model.json models/qat_ternary/weights.bin \
demo.gooo.fixture demo-cases.json \
--revision 87f8c482d23dc0eaa41f5575f652e7ca61f44280 \
--local-dir ./gooo-field-model
gooo body-compose --source ./gooo-field-model/demo.gooo.fixture \
--model ./gooo-field-model/models/qat_ternary/model.json \
--cases ./gooo-field-model/demo-cases.json
์์ ๋ ์ฌ๋ ํ๋ณด ์์ฐ์ ์ ๊ณตํฉ๋๋ค. --model์ ์๋ตํ๋ฉด ๊ฒฐ์ ๋ก ์ ์ผ๋ก
์งํํฉ๋๋ค. ๋ณด๊ณ ์์์ model_calls, ์ค์ ํ๋ณด ์๋, ๋ง์ ํ๋์ ๊ธฐ๋๊ฐ์
์ฝ์ต๋๋ค. ์ ์ฅํ ์กฐ๋ฆฝ์ผ๋ก ๋ค์ ์
๋ ฅ์ ์คํํ ์ ์์ต๋๋ค.
ํน์ง ๊ณ์ฝ์ triple_record_field_context_v1_shared_v1์
๋๋ค. Go SDK์
PredictRecordSharedInto๋ ์ ์ฒด ๋ฌธ๋งฅ์ ๋ฐ๊ณ , PredictRecordSharedFeaturesInto๋
๋ฏธ๋ฆฌ ์ค๋นํ [768]float32 ๋ฐฐ์ด์ ๋ฐ์ต๋๋ค. RecordChoiceMarginals๋ ํ๋๋ณ
์ฒซ/๋์งธ ํ๋ณด ํ๋ฅ ์ ๋ณด์ฌ์ค๋๋ค. ํ๋ฅ ์ ์๋ ์์๋ฅผ ์ ํ๋ฉฐ ์์ ์ฑ์ ์ ๊ณตํ
์์์ ์ ์
๋ ฅ์ ์คํ ๊ด์ธก์ผ๋ก ๊ณ์ฐํฉ๋๋ค.
๋ค์์ ๊ฐ์ ํ ๋ถ๋ถ
ํ๋๋ณ ํ๋ณด๋ฅผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ฝ๋ ๊ตฌ์กฐ๊ฐ ์ด ์์ ๊ณผ์ ์ ํ์ต์ ๋์์ต๋๋ค. ์๋ก์ด ์์ฐ์ด ํํ์ ์ฌ์ ํ ์ฝํฉ๋๋ค. ์ง๊ธ์ ํน์ง ๋ฐฐ์ด์ด ์ ์ธ ๋ฐ์ ์ง์ญ๊ฐ ๋ฐ์ธ๋ฉ์ด๋ ํ๋ ์ฌ์ด์ ์์กด ๊ด๊ณ๋ฅผ ํํํ์ง ์์ต๋๋ค. ์ด ๋ถ๋ถ์ Gooo์ ํ์ ๊ณผ IR์ ๋ ๊ตฌ์ฒด์ ์ธ ํ๋จ ์๋ฃ๋ฅผ ๋ฃ๊ณ , ์์ ๋ฒ์์ ๋ฐ๋ยทํผํฉ ์๊ตฌ๋ก ํ์ธํ ๊ณผ์ ์ ๋๋ค.
ํํ์ ์งง๊ฒ ๊ฐ์ ํด ์ ์๋ฅผ ๋์ด๊ธฐ๋ณด๋ค, ์ ์ฒด ์๊ตฌ๋ฅผ ์ ์งํ๊ณ ์ด๋ค ํ๋/ํํ์์ ์ ํ์ด ํ๋ค๋ฆฌ๋์ง ๊ด์ธกํ๋ ค ํฉ๋๋ค. ์ด๋ฒ ๊ด์ธก์ ํ ๊ตฌ์กฐ ์คํ์ ๋๋ค.100๊ฐ์ง ์๋ก ๋ค๋ฅธ ์ ๊ทผ๊ณผ ๋๋ฉ์ธ ์คํ ํ์ฅ์ ๊ณ์ ์งํ ์ค์ ๋๋ค.
๊ณต๊ฐ ํ์ผ๊ณผ ์คํ ํ์ธ
์ฐ๊ตฌ์ ์ ์ฒด26๊ฐ ๊ฒ์ฌ๋ฅผ ํต๊ณผํ ๋ค Linux360๊ฐ ๊ทธ๋ํ ์๋ณธ์ ๋ณ๋๋ก ์ฌ๊ณ์ฐํ์ต๋๋ค. ์ ํํ ํดํ, PTQ ์คํจ, ๋ถ๋ถ ๊ฒฐ๊ณผ๋ ์ ์งํฉ๋๋ค. ์ต์ด๋ก์ปฌ ์๋ณธ37.91MiB์ ํ์Linux ์๋ณธ38.32MiB๋ฅผ ํฉ์น ๋ ผ๋ฆฌ์ 76.22MiB๋ ์ต์ด 64MiB๋ชฉํ๋ฅผ ๋์ต๋๋ค. ๋ก์ปฌ์Linux ๊ด์ธก์8MB์์ถ์ผ๋ก ๋ณด๊ดํด ๋ฉ๋ชจ๋ฆฌ์์ ๊ฒ์ฐํ์ต๋๋ค. ๋ ๋จ๊ณ์ ์ฉ๋์ ์จ๊ธฐ์ง ์๊ณ ๊ธฐ๋กํฉ๋๋ค.
๊ณต๊ฐ ๊ฐ์ค์น๋ก ๋ ์์
์์32๊ฐ ์์ฒญ์4ํ ๊ด์ธกํ์ต๋๋ค. ๋งคํ ํ๋480/480๊ฐ๊ฐ
๋ง์๊ณ , ์ฒซ ์๋ต์ ์
๋ ฅ ์ข
๋ฃ๋ฅผ ๊ธฐ๋ค๋ฆฌ์ง ์์์ต๋๋ค. ์ฒซ ์คํ497ms, ๋ฐ๋ณต3ํ
8.812.3msยทRAM22.622.9MiB๋ฅผ ๊ธฐ๋กํฉ๋๋ค. ์ ํ๋ ์์ฒญ์ ์๋ฃ ๊ด์ธก์
๋๋ค.
์ฝ๊ธฐ ๋๊ตฌ์--text๋ ํ๋ยทํ์ ์๋ยท์ค์ ํ๋ณด์๊ณผ ํ๋ฅ ์ ๋ณด์ฌ์ค๋๋ค. ์์ ์
์ ๋ชฉ์50:50๋๋ฅ , ์ํ๋์ฝ99.9%๋ก ๊ด์ธกํ์ต๋๋ค. ํ๋ฅ ์ ์๋ ์์์ด๋ฉฐ ์ค์
์์ ์ฑ์ ๋ณ๋์ ์คํ์ผ๋ก ๊ณ์ฐํฉ๋๋ค. ์งง์ ์ฌ์ฉ๋ฒ.
์ค์น๋ณธ์์๋ ๋ณ๋4ํ ๊ด์ธกํ์ต๋๋ค. ์ค์น๋ณธ์ ์ฒซ ์๋ต์483.816ms, ์ธ ๋ฐ๋ณต์12.16436.625ms, ์์
์RAM์22.5323.27MiB์์ต๋๋ค. ๋ชจ๋ 4ํ์์32์์ฒญยท์ ํ ํ๋480/480๊ฐ๊ฐ ๋ง๊ณ ์
๋ ฅ ์ข
๋ฃ ์ ์ ์ฒซ ์๋ต์ด ๋์ฐฉํ์ต๋๋ค.
๊ฐ๋ฐ ํ๋ณด์ ์์น์ ์ด ์ค์น ๊ด์ธก์ ๋ฐ๋ก ๋ณด์กดํ๋ฉฐ ๊ฐ์ฅ ๋น ๋ฅธ ๊ฐ์ผ๋ก ๋์ฒดํ์ง ์์ต๋๋ค.