Source Aware Field Models - kimjooyoon/meta-ontology-go GitHub Wiki

μ‹€μ œ ν•„λ“œ ν›„λ³΄μ‹μœΌλ‘œ ν•™μŠ΅ν•œ μž‘μ€ λͺ¨λΈ

후속 λ°˜λŒ€Β·ν˜Όν•© μš”κ΅¬ λͺ¨λΈ v2κ°€ κ³΅κ°œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. 같은 후보식에 λ‹€λ₯Έ μš”κ΅¬λ₯Ό 짝지어 ν•™μŠ΅ν•˜κ³ , μƒˆ ν•œμ˜ ν‘œν˜„κ³Ό ν™œμ„± ν•„λ“œλ₯Ό 별도 ν‰κ°€ν•©λ‹ˆλ‹€. μ•„λž˜λŠ” κ·ΈλŒ€λ‘œ λ³΄μ‘΄ν•œ v1 μ‹€ν—˜μ˜ μˆ˜μΉ˜μž…λ‹ˆλ‹€.

2026-10-05 μ‹€ν—˜ κΈ°λ‘μž…λ‹ˆλ‹€. 제λͺ©Β·μƒνƒœΒ·μ‚¬μœ λ₯Ό μ±„μš°λŠ” μ„Έ 역할에 집쀑해, Gooo의 μ‹€μ œ ν•„λ“œ 후보식과 ν•œμ˜ μ˜λ„λ‘œ 자체 λͺ¨λΈμ„ ν•™μŠ΅ν–ˆμŠ΅λ‹ˆλ‹€.

섀계도에 두 λΆ€ν’ˆμ”© μ€€λΉ„ν•΄ 두고, μ–΄λŠ μ‘°ν•©λΆ€ν„° 쑰립할지 μž‘μ€ λͺ¨λΈμ΄ μ œμ•ˆν•˜λŠ” λͺ¨μŠ΅μ„ λ– μ˜¬λ¦΄ 수 μžˆμŠ΅λ‹ˆλ‹€. Goooκ°€ 쑰건문·지역 λ³€μˆ˜Β·ν•„λ“œ 후보식과 확인 μ˜ˆμ‹œλ₯Ό λ‹΄κ³ , Go μ»΄νŒŒμΌλŸ¬κ°€ μ‘°λ¦½Β·μ‹€ν–‰ν•œ λ’€ μ–΄λ””κΉŒμ§€ λ§žμ•˜λŠ”μ§€ κΈ°λ‘ν•©λ‹ˆλ‹€.

달라진 μž…λ ₯κ³Ό μž‘μ„±λ²•

μƒˆ λͺ¨λΈμ€ ν•„λ“œμ˜ 이름과 두 후보식 전체, ν•΄λ‹Ή ν•„λ“œμ˜ μ˜λ„λ₯Ό λ°›μŠ΅λ‹ˆλ‹€. 같은 ν•„λ“œλ₯Ό λ³΅μ‚¬ν•˜λŠ” 식, λ‹€λ₯Έ ν•„λ“œλ₯Ό κ³ λ₯΄λŠ” 식, μƒμˆ˜, μ•žλ’€κ°€ λ‹€λ₯Έ λ¬Έμžμ—΄ 뢙이기λ₯Ό ꡬ쑰 νŠΉμ§•μœΌλ‘œ κ΅¬λΆ„ν•©λ‹ˆλ‹€. 확인 μ˜ˆμ‹œμ˜ μž…λ ₯κ³Ό 정닡은 λͺ¨λΈ λ¬Έλ§₯μ—μ„œ μ œμ™Έν•˜λ©°, μ‹€ν–‰ κ΄€μΈ‘μ—μ„œλ§Œ μΆ©μ‘±λ₯ μ„ κ³„μ‚°ν•©λ‹ˆλ‹€.

μƒˆ λ°°ν¬μ—μ„œλŠ” elseκ°€ μ—†λŠ” 쑰건문도 μ“Έ 수 μžˆμŠ΅λ‹ˆλ‹€. 일찍 λ°˜ν™˜ν•˜λŠ” 쑰건과 지역값을 κ°±μ‹ ν•˜λŠ” 쑰건 뒀에 λ‚˜λ¨Έμ§€ λ¬Έμž₯이 μ΄μ–΄μ§‘λ‹ˆλ‹€. λͺ¨λ“  경둜의 λ°˜ν™˜, λ³€μˆ˜ λ²”μœ„μ™€ λŒ€μž… νƒ€μž…μ„ ν™•μΈν•©λ‹ˆλ‹€. 개발 #1229Β·main #1230을 각각 전체12개 CI ν›„ λ³‘ν•©ν–ˆκ³ , main aeff3641둜 두 μ‹€ν–‰κΈ°λ₯Ό μ„€μΉ˜ν–ˆμŠ΅λ‹ˆλ‹€.

직접 μ‹€ν–‰ν•œ ν•™μŠ΅κ³Ό κ΄€μΈ‘

ν•™μŠ΅μ— μ•žμ„œ μ†ŒμŠ€μ™€ κ³„νšμ„ κ³΅κ°œν•˜κ³ , μƒˆλ‘œμš΄ μ΄ˆκΈ°κ°’μ—μ„œ GPU ν•™μŠ΅μ„ 480회 μ§„ν–‰ν–ˆμŠ΅λ‹ˆλ‹€. μ—¬λŸ κ°€μ§€ λ³Έλ¬ΈΒ·ν‘œν˜„μ‹ λͺ¨μ–‘, μ—¬μ„― ν•„λ“œ μˆœμ„œ, μ—¬λŸ 후보 λ°©ν–₯, ν•œκΈ€Β·μ˜μ–΄λ₯Ό μ‘°ν•©ν•΄ 768개 μ†ŒμŠ€ 관츑을 λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€. λ³Έλ¬Έ λͺ¨μ–‘λ³„λ‘œ λ‚˜λˆ  384κ°œλŠ” ν•™μŠ΅, 192κ°œλŠ” 보정, 192κ°œλŠ” 이후 평가에 μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€.

ν•™μŠ΅μ— μ“°μ§€ μ•Šμ€ 192개 μ†ŒμŠ€ FP32 PTQ μ‚Όμ§„ν™” QAT μ‚Όμ§„ν™”
첫 후보에 μ™„μ „ν•œ μ‘°ν•© 포함 192 70 134
두 후보 μ•ˆμ— 포함 192 101 192
Go νŒλ‹¨ 쀑앙값 15.958Β΅s 16.000Β΅s 16.000Β΅s
λͺ¨λΈ 파일 74,624B 3,854B 3,854B
상주 ν…μ„œ 74,624B 18,752B + μŠ€μΌ€μΌ 8B 18,752B + μŠ€μΌ€μΌ 8B

μ‚Όμ§„ 행렬은 λ°”μ΄νŠΈ ν•˜λ‚˜μ— κ°’ λ‹€μ„― 개λ₯Ό λ„£μŠ΅λ‹ˆλ‹€. μ €μž₯ λΉ„μš©μ€ κ°’λ‹Ή μ•½ 1.6λΉ„νŠΈμ΄λ©° μ •λ³΄λŸ‰μ˜ 이둠값이 μ•½1.58λΉ„νŠΈμž…λ‹ˆλ‹€. μΆ”λ‘ μ—μ„œλŠ” int8 λ°°μ—΄λ‘œ ν’‰λ‹ˆλ‹€. 파일 크기, ν…μ„œ λ©”λͺ¨λ¦¬μ™€ ν”„λ‘œμ„ΈμŠ€ 전체 λ©”λͺ¨λ¦¬λ₯Ό λ”°λ‘œ 읽어야 ν•©λ‹ˆλ‹€.

λ³„λ„λ‘œ λ„€ μ†ŒμŠ€ λͺ¨μ–‘에 μƒˆλ‘œμš΄ μž…λ ₯을 μ „λ‹¬ν•˜κ³  λ‹€μ„― 방식·넀 μ‹œλ„ μ˜ˆμ‚°μœΌλ‘œ 80회 μ‘°λ¦½ν–ˆμŠ΅λ‹ˆλ‹€. 첫 ν›„λ³΄μ—μ„œ 자체 ν•„λ“œ λͺ¨λΈμ€ μ‹€ν–‰ ν•„λ“œ 48/48개, κ²°μ •λ‘  μˆœμ„œλŠ” 32/48개, κΈ°μ‘΄ λͺ¨λΈμ€ 36/48개λ₯Ό λ§žμ·„μŠ΅λ‹ˆλ‹€. 전체 192개 평가와 λΆ„λͺ¨κ°€ λ‹€λ₯΄λ―€λ‘œ PTQ의 이 μž‘μ€ μ‹€ν–‰ κ²°κ³Όλ₯Ό 전체 μ •ν™•λ„λ‘œ λ„“ν˜€ 읽을 수 μ—†μŠ΅λ‹ˆλ‹€.

같은 후보식을 μœ μ§€ν•˜λ©° μ˜λ„λ₯Ό λ°˜λŒ€λ‘œ λ°”κΎΌ 20회 관츑도 μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€. 자체 λͺ¨λΈμ˜ 첫 ν›„λ³΄λŠ” μ‹€ν–‰ ν•„λ“œ 12/24개λ₯Ό μΆ©μ‘±ν–ˆμŠ΅λ‹ˆλ‹€. 결정둠은 20/24개, κΈ°μ‘΄ λͺ¨λΈμ€ 16/24κ°œμ˜€μŠ΅λ‹ˆλ‹€. μ˜ˆμ‚°μ„ μ—¬λŸ ν›„λ³΄κΉŒμ§€ μ£Όλ©΄ λͺ¨λ‘ 24/24κ°œμ— λ„λ‹¬ν•©λ‹ˆλ‹€. 같은 선택지에 μ„œλ‘œ λ‹€λ₯Έ μš”κ΅¬λ₯Ό 짝지어 κ°€λ₯΄μΉ˜λŠ” μžλ£Œκ°€ λ‹€μŒ ν•™μŠ΅μ— ν•„μš”ν•©λ‹ˆλ‹€. 이 μ‹€νŒ¨λ₯Ό λ³Έ λ’€ κ°€μ€‘μΉ˜λ‚˜ 기쀀을 λ‹€μ‹œ λ³΄μ •ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

λ°˜λŒ€ μ˜λ„μ˜12개 일치 ν•„λ“œλŠ” μ‘°κΈ° λ°˜ν™˜μœΌλ‘œ μž…λ ₯을 μœ μ§€ν•˜λŠ” μ‚¬λ‘€μ—μ„œ λ‚˜μ˜΅λ‹ˆλ‹€. μ‹€μ œλ‘œ λ³€ν™˜μ„ μš”κ΅¬ν•œ ν•„λ“œλ§Œ μ„Έλ©΄ 자체 λͺ¨λΈμ€0/12개, 결정둠은8/12개, κΈ°μ‘΄ λͺ¨λΈμ€4/12κ°œμ˜€μŠ΅λ‹ˆλ‹€. 전체 ν•„λ“œ λΉ„μœ¨κ³Ό μš”κ΅¬ν•œ λ³€ν™˜μ˜ λΉ„μœ¨μ„ ν•¨κ»˜ 읽어야 λͺ¨λΈμ΄ μ˜λ„λ₯Ό 따라간 정도λ₯Ό νŒŒμ•…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ—¬κΈ°μ„œ 100νšŒλŠ” 반볡 μ œμ–΄λ₯Ό ν¬ν•¨ν•œ 쑰립 κ΄€μΈ‘ μˆ˜μž…λ‹ˆλ‹€. λ‹€μ–‘ν•œ 100κ°€μ§€ 독립적인 μ‹€ν—˜ λ°©μ‹μ΄λΌλŠ” 별도 λͺ©ν‘œλŠ” 계속 μ§„ν–‰ μ€‘μž…λ‹ˆλ‹€.

λΉ„μš©μ„ μ½λŠ” κΈ°μ€€

ν•™μŠ΅ μ—°μ‚° λ£¨ν”„λŠ” 합계1.234초, 전체 ν•™μŠ΅ ν”„λ‘œμ„ΈμŠ€λŠ”3.18μ΄ˆμ˜€μŠ΅λ‹ˆλ‹€. 전체 ν”„λ‘œμ„ΈμŠ€ μ΅œλŒ€ λ©”λͺ¨λ¦¬λŠ”429.36MiB, μƒ˜ν”Œλ§ν•œ MPS ν…μ„œλŠ”1.98MiB, λ“œλΌμ΄λ²„λŠ”50.72MiBμ˜€μŠ΅λ‹ˆλ‹€. GPU μ‚¬μš©λ₯ κ³Ό 전체 호슀트 CPU μ‚¬μš©λ₯  μ¦κ°€λŠ” μΈ‘μ •ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. 100회 μ‘°λ¦½μ—μ„œλŠ” 컴파일 μžμ‹ ν”„λ‘œμ„ΈμŠ€ μ΅œλŒ€84.20MiB, μƒμ„±λœ ν”„λ‘œκ·Έλž¨ μ΅œλŒ€4.91MiBλ₯Ό κΈ°λ‘ν–ˆμŠ΅λ‹ˆλ‹€.

λͺ¨λΈ νŒλ‹¨μ€ ν•œ 번이고 μƒμ„±λœ ν”„λ‘œκ·Έλž¨μ„ 두 번 μ‹€ν–‰ν•  λ•Œ μΆ”κ°€ λͺ¨λΈ ν˜ΈμΆœμ€ 0λ²ˆμž…λ‹ˆλ‹€. λͺ¨λΈμ„ μƒλž΅ν•˜λ©΄ 결정둠적 μˆœμ„œλ‘œ 같은 후보 곡간을 μ‘°λ¦½ν•©λ‹ˆλ‹€. ν‘œν˜„μ‹ νŒŒμ‹±μ˜ μž„μ‹œ ν• λ‹Ή, Go 컴파일과 ν”„λ‘œμ„ΈμŠ€ μ‹œμž‘ λΉ„μš©λ„ λ³„λ„λ‘œ λ‚¨μŠ΅λ‹ˆλ‹€.

μ‚¬μš©ν•΄ 보기

곡개 λͺ¨λΈμ—μ„œ FP32 파일 두 κ°œμ™€ μž‘μ€ 예제λ₯Ό 받을 수 μžˆμŠ΅λ‹ˆλ‹€. μƒˆ ν•„λ“œ κΈ°λŠ₯이 μžˆλŠ” 컴파일러λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. μ‹€ν—˜μ˜ μ •ν™•ν•œ 컴파일러 μ†ŒμŠ€λŠ” af811fe3b5dbb709edd61fe9de216f6af0850911이고, ν˜„μž¬ μ„€μΉ˜ν•œ main은 같은 트리의 aeff3641254ac5f795fa1fb8c94bed702f10cbe4μž…λ‹ˆλ‹€.

hf download asketeddy/gooo-record-field-tiny-v1 \
  models/fp32/model.json models/fp32/weights.bin demo.gooo.fixture demo-cases.json \
  --revision 730694bfcceed1bab9b445b58a400b045d343c15 --local-dir ./gooo-field-demo
gooo body-compose --source ./gooo-field-demo/demo.gooo.fixture \
  --cases ./gooo-field-demo/demo-cases.json \
  --model ./gooo-field-demo/models/fp32/model.json

λͺ¨λΈ μ˜΅μ…˜μ„ λΉΌλ©΄ κ²°μ •λ‘ μ μœΌλ‘œ μ‘°λ¦½ν•©λ‹ˆλ‹€. μ˜ˆμ œμ—λŠ” 첫 후보 ν•œ 번의 μ˜ˆμ‚°μ΄ λ“€μ–΄ μžˆμ–΄ 두 λ°©μ‹μ˜ 일뢀 μΆ©μ‘± 차이λ₯Ό λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. attempts "8"둜 늘렀 전체 후보λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

곡개 λ‹€μš΄λ‘œλ“œλ³Έμ˜ 파일 15개λ₯Ό λ‹€μ‹œ λΉ„κ΅ν–ˆκ³ , μ‹€μ œλ‘œ μ—°κ²°ν•΄ 선택 ν•„λ“œ15/15와 μ‹€ν–‰ κΈ°λŒ€κ°’8/8을 ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€. μ‹€ν–‰ λ‹¨κ³„λŠ” μΆ”κ°€ μΆ”λ‘ 0λ²ˆμ΄μ—ˆμŠ΅λ‹ˆλ‹€.

μ„€μΉ˜ν•œ main aeff3641의 별도100회 쑰립·200회 μ‹€ν–‰μ—μ„œλ„ μ›λž˜ 후보와 선택 마슀크·좩쑱 μˆ˜Β·μƒμ„±λœ Gooo와 GoΒ·μ—°κ²° μ½”λ“œ 지문이 λͺ¨λ‘ κ°™μ•˜μŠ΅λ‹ˆλ‹€. 두 μž‘μ—…μžμ˜8개 λ™μ‹œ 쑰립은 선택 ν•„λ“œ120/120개λ₯Ό ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€. λ ˆμ½”λ“œ κ·Έλž˜ν”„ 싀행은 body-composeμ—μ„œ 이어가며, 상주 μž‘μ—…μžλŠ” 쑰립을 μ œκ³΅ν•©λ‹ˆλ‹€. 별도 μ„€μΉ˜ 관츑은 곡개 λͺ¨λΈμ˜ installed-native.zip에 μžˆμŠ΅λ‹ˆλ‹€.

원본과 λ‹€μŒ μž‘μ€ ν™•μž₯

전체 μ†ŒμŠ€Β·ν•™μŠ΅Β·κ΄€μΈ‘ 곡개 μ—λŠ” 768개 μ†ŒμŠ€, ν•™μŠ΅ 기둝, λͺ¨λΈ μ…‹κ³Ό λͺ¨λ“  μ‹€μ œ μ‹€ν–‰ 원본이 μ•½3.2MiB의 μ••μΆ• 파일둜 λ“€μ–΄ μžˆμŠ΅λ‹ˆλ‹€. 64MiB 원본 μ˜ˆμ‚° 쀑13.77MiBλ₯Ό μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€. Goκ°€ μ§€ν‘œλ₯Ό λ‹€μ‹œ κ³„μ‚°ν•˜κ³  CIκ°€ λ³„λ„λ‘œ μƒμ„±Β·μ‹€ν–‰ν•©λ‹ˆλ‹€.

λ‹€μŒμ—λŠ” 같은 후보식에 λŒ€ν•œ λ°˜λŒ€ μ˜λ„, ν•œμ˜ ν‘œν˜„ λ‹€μ–‘μ„±, μƒμˆ˜Β·λ³΅μ‚¬Β·λΆ™μ΄κΈ°μ˜ 더 μž‘μ€ 역할을 μΆ”κ°€ν•©λ‹ˆλ‹€. 반볡문과 λ‹€λ₯Έ ν•¨μˆ˜ ν˜ΈμΆœμ€ μ–Έμ–΄μ˜ νƒ€μž…Β·μ‹€ν–‰ λ²”μœ„λ₯Ό ν•¨κ»˜ ν™•μž₯ν•΄μ•Ό ν•©λ‹ˆλ‹€. ν˜„μž¬ νŠΉμ§•μ—μ„œ ν‘œν˜„μ‹μ˜ ν•΄μ‹œ 좩돌, 단일 λ°”μ΄νŠΈ μƒμˆ˜, μˆ˜μ‹ μž 식별과 μ§€μ—­κ°’μ˜ μ˜λ―Έκ°€ κ²ΉμΉ  수 μžˆμœΌλ―€λ‘œ μ‹€μ œ ν•„λ“œ 좩쑱을 계속 κ΄€μΈ‘ν•©λ‹ˆλ‹€.