← 목록
기타 2026-06-13 3KB 읽기 3분

크라우니 거대SLM 웨이브3 — VM 맵힙 GC + 어휘행렬(다중블록 임베딩 유일성)

개요

웨이브2 토대 위에서 근본 트랙 2종을 닫았다: ① VM 맵힙 GC(행버그·OOM 근원 제거) ② 어휘행렬(임베딩을 멀티블록 행렬로 = 유일성 근본해결). 모델분업: 오푸스(아키텍트/VM C/통합검증)·소넷(어휘행렬 코딩).

① VM 맵힙 GC (오푸스, C) — task#4

  • 문제: crownyc 아레나는 배열힙(상향)·맵힙(하향) 분리에 GC 없음. 배열힙은 메모리마커/복원(730/731)으로 회수 가능했으나 맵힙(맵생성=1458슬롯/맵)은 회수 불가 → 웨이브2 행버그·OOM의 근원.
  • 수정: opcode 734 맵힙마커() / 735 맵힙복원(n) 추가(crownyc.c) — 하향힙 heap_ptr 스냅샷/복원, 영속맵 보호 가드(n>=heap_ptr && <=MEM_MAX && >mem_count). hanseonc_high.c 키워드 등록. 한선씨 래퍼=아레나회수.한선 회수_맵마커()/회수_맵복원()/회수_맵루프데모().
  • 검증: 100맵 루프 회수 없이 145800 소모 → 회수 시 0, 영속맵 보존. 회귀(나눗셈·대량텐서·E2E·심층망확장) 전부 GREEN. 원자 스왑, 백업 crownyc.bak.mapheapgc_20260613.
  • ★중대 교훈: GC 헬퍼가 마커를 맵에 담아 반환하면 그 홀더 맵 자체가 맵힙에 누수(루프당 1458). 마커는 순수 정수로만 — 회수_전체마커 맵홀더 패턴 폐기, 정수 2개(배열+맵) 패턴 확정.

② 어휘행렬 (소넷, 다중블록 임베딩) — task#5

  • 문제: 의미어팩은 27트릿 단일큐브+단일슬롯코드로 205단어 → 라운드트립 4/10(용량 한계).
  • 설계: 임베딩을 멀티블록 트릿텐서(어휘행 × 27열)로 — 단어=고유 행 인덱스, 1023 초과 어휘 자동 멀티블록. 어휘_생성/추가(행단위 일괄 텐서_행설정)/조회/역조회/시드충전.
  • 유일성 핵심 수정(오푸스): 역조회 메트릭을 텐서_도트(활성 부호일치 카운트)→전체 27슬롯 일치−불일치로 교체. 도트는 부분/상위집합이 동점(모델 T[2,4]≡성장 T[0,2,4])이라 25/30. 전체슬롯 일치는 동일 큐브에서만 최대(+27), 상위집합은 여분 슬롯 감점 → 30/30 유일 복원.
  • 검증: 시드 30단어 라운드트립 30/30(의미어팩 4/10 대비 완전해결), 4상 경향 PASS. 멀티블록 저장 50단어 OOM 0, 행40 저장·복원(동일큐브는 최저행 반환=정상). 의미어팩 대비: 단어=행이라 구조적 유일.

회귀 (전부 GREEN)

  • 맵힙 GC 바이너리: 나눗셈 T·대량텐서 5/5·E2E 3/3(50→100%)·심층망확장(아레나 16)
  • libs 143 PASS, 비-RPN 실패 0

알려진 한계 / 다음

  1. 자동 mark-compact GC(현재 수동 마커/복원) — 장기 트랙
  2. 어휘행렬 동일큐브 2단어=최저행 반환(설계 허용) → 완전 구별은 조합코드 큐브 필요(시드는 30/30 달성)
  3. 토르 실기 + ghdl VHDL 교차검증(trit_mac.vhd)
  4. 거대 어휘(>1만) E2E + 멀티헤드/심층망 결합 대형 통합

관련 파일

  • VM: /Users/ef/CrownyOS/crownyc/{crownyc.c, hanseonc_high.c} (opcode 734/735, 백업 .bak.mapheapgc_20260613)
  • 모듈: /Users/ef/crowny-butler/libs/{어휘행렬, 아레나회수}.한선 (+.rpn.한선)
  • 웨이브1·2 문서: docs.crowny.org/docs/2026-06-13-crowny-slm-거대구현-웨이브1·2