← 목록
기타 2026-06-10 33KB 읽기 27분

크라우니 SLM 구현/생태계 설계서 (추론서빙 + 전문가캐릭터 + 모델배포)

A. 추론서빙 설계

I now have all the real signatures across the full pipeline: encoder → trit learning → cell-core rules → model store → router → inference bridge. I have enough to write the serving design. No need to assume anything — every function call below is grounded in the files I read.

Here is the serving design document.


크라우니집사 SLM 추론 서빙 설계서 v0.1

1단계 학습법 도구 → 라우터 R1~R4 → 로컬 추론 → 음(-0) 외부 API

0. 목표와 한 줄 요약

학습법 도구(벡터인코더 → 삼진학습 → 셀코어학습 → 모델저장소)가 누적한 삼진가중치 삼진w + 셀코어 룰 + 좌표색인 모델을, 라우터 집사.한선/라우팅()이 miss 했을 때 로컬에서 먼저 추론하고, 그래도 음(-0)으로 떨어질 때만 추론브리지.한선을 통해 외부 API(Flash/Opus)로 이관하는 경로를 연결한다.

신규 구축이 아니라 기존 자산 재배선이다. 모든 학습·추론 함수는 이미 존재한다. 빠진 것은 이 둘을 잇는 단일 추론 코어 모듈 1개뿐이다.


1. 현재 자산의 실제 인터페이스 (Read로 확인된 시그니처)

모듈핵심 함수(실제)입력 → 출력
벡터인코더.한선인코_사건을큐브로(특징값들, 임계)특징값 배열 → 길이27 큐브
인코_U합(큐브)큐브 → U(음/이관) 신호 강도 정수
인코_좌표앞(큐브)큐브 → 균형트릿 (앞 좌표)
삼진학습.한선학습_4상예측(큐브, 삼진w)→ 맵{상,점수,부호,앞,뒤,유형,신뢰도,액션}
학습_점수(큐브, 삼진w)→ 정수 (곱셈0 삼진내적)
의사결정모델.한선액션결정(신뢰도)신뢰도(0~100,음수) → "티"/"옴"/"타"/"음"
셀코어학습.한선셀학습_룰적용(db, 룰들, 최대id)→ 맵{db,감사,적용수}
셀학습_평가셀구성(db,id,큐브,삼진w)→ db
모델저장소.한선저장소시작() / 모델불러오기(저장소,id) / 좌표색인(저장소,앞,뒤) / 모델저장(저장소,모델)좌표 기반 모델 조회·누적
집사.한선라우팅(입력) / 도메인분류(입력) / 아키텍팅감지(입력)입력 → 도메인 + R1~R4 문자열
추론브리지.한선신뢰게이트(범위내,규칙통과,자기신뢰) → "티/옴/타/음"로컬채택/보류/거부/API이관
브리지라우팅(음이관,아키텍팅,오프라인)→ 추론요청(프롬프트,모델) 경로 문자열
추론요청(프롬프트,모델) · 모델로컬/플래시/오퍼스()외부 어댑터 경계 (스텁)
핵심 관찰: 학습_4상예측이 반환하는 신뢰도(0~100)와 ("티/옴/타/음")이 곧 신뢰게이트의 입력 트릿과 액션결정의 입력에 그대로 들어맞는다. 두 모듈은 이미 같은 4상 어휘로 말하고 있다. 연결만 안 되어 있을 뿐이다.


2. 서빙 흐름 — 함수 호출 시퀀스

입력 문자열
  │
  ├─[R0 인코딩] 특징추출(입력) → 인코_사건을큐브로(특징값들, 임계) → 큐브(27)
  │             ※ 이관신호 자력불가 판단 시 인코_이관켜기로 U구역 셋
  │
  ├─[R1~R4 라우팅] 집사.라우팅(입력)
  │     도메인분류 + 키워드사상 → 4상 처리위치 결정
  │     · 도메인=음  또는  U>T 우세        → 음(-0) 후보 (잠정 miss)
  │     · 그 외(티/옴/타)                   → 도메인 모듈 로컬 처리 (HIT, 종료)
  │
  └─[음(-0) 후보일 때만 → 로컬 추론 코어 진입]  ★신규 모듈 책임 구간
        │
        ① 좌표색인 조회:  좌표색인(저장소, 인코_좌표앞(큐브), 뒤)
        │      └ 해당 좌표에 학습된 모델 id가 있나?
        │
        ② BitNet 예측:   학습_4상예측(큐브, 삼진w)
        │      └ {상, 신뢰도, 부호, 앞, 뒤} 산출 (곱셈0)
        │
        ③ 셀코어 룰 적용: 셀학습_평가셀구성(db,id,큐브,삼진w)
        │                 → 셀학습_룰적용(db, 룰들, 최대id)
        │      └ 적용수>0 이면 규칙 지식이 패턴을 인식함 = 규칙통과
        │
        ④ 신뢰게이트 산출 (추론브리지.신뢰게이트):
        │      범위내   = (좌표색인 적중 OR 학습_점수 절댓값 ≥ 강슬롯임계) ? 1 : 0
        │      규칙통과 = (셀학습_룰적용 적용수 > 0) ? 1 : 0
        │      자기신뢰 = (학습_4상예측 신뢰도 ≥ 70) ? 1 : 0   ← 액션결정 티 임계와 일치
        │      게이트 = 신뢰게이트(범위내, 규칙통과, 자기신뢰)
        │
        ├─ 게이트=="티" → 로컬 채택. 액션결정(신뢰도)로 행동 산출. 종료(한계비용 0, API 미도달)
        ├─ 게이트=="옴" → 보류. 큐 적재(추가 데이터 대기). 종료(API 미도달)
        ├─ 게이트=="타" → 거부. 절대가드(규칙위반). 종료(API 미도달)
        │
        └─ 게이트=="음" → ★유일하게 외부 API 도달하는 경로★
              브리지라우팅(음이관=1, 아키텍팅=집사.아키텍팅감지(입력), 오프라인)
                · 오프라인=1            → 옴 degrade(API 보류 + YAO 목표회상)
                · 아키텍팅=1            → 추론요청(프롬프트, 모델오퍼스())  [Opus]
                · 일반                  → 추론요청(프롬프트, 모델플래시())  [Flash]
              └ 외부 응답 수신 후 → 학습 피드백(아래 §4)

불변식(검증 가능): 외부 API는 게이트=="음" AND 오프라인==0 일 때만 도달한다. 티/옴/타는 전부 로컬에서 종결된다. 이는 신뢰게이트의 4분기와 1:1이라 별도 분기 로직 없이 기존 함수로 강제된다.


3. 데이터 계약 (모듈 경계 자료형)

큐브        : 배열 길이 27, 원소 ∈ {0,1}  (T 0..8 / O 9..17 항상0 / A 18..23 / U 24..26)
삼진w       : 배열 길이 27, 원소 ∈ {-1,0,1}  (모델저장소에서 모델별 로드)
예측결과    : 맵{상:"티/옴/타/음", 점수:정수, 부호:트릿, 앞:트릿, 뒤:트릿,
              유형:문자열, 신뢰도:0..100, 액션:"티/옴/타/음"}
룰들        : 셀코어 룰 맵 배열 (셀학습_큐브룰추출 산출, append-only)
게이트입력  : (범위내∈{0,1}, 규칙통과∈{0,1}, 자기신뢰∈{0,1})  ← 전부 비음 정수
게이트출력  : "티"|"옴"|"타"|"음" (문자열)
브리지입력  : (음이관∈{0,1}, 아키텍팅∈{0,1}, 오프라인∈{0,1})
추론요청    : (프롬프트:문자열, 모델:"로컬SLM"|"Flash"|"Opus") → 경계표지 문자열(스텁)

계약 경계 규칙(VM 함정 회피 반영):

  • 게이트/브리지 입력은 모두 {0,1} 비음 정수 — 음수보정 불필요.
  • 신뢰도 ≥ 70 단일 임계가 액션결정의 티 임계(>= 70)와 정확히 일치 → 자기신뢰 트릿과 액션 트릿이 모순되지 않음.
  • 외부 어댑터(추론요청)는 스텁 경계 — 이 설계는 경계까지만 책임지고 TensorRT-LLM/CUDA/API는 파일 밖.

4. 학습 피드백 루프 (서빙→학습 역류)

외부 API(음 이관)가 답한 결과는 버리지 않고 학습으로 되돌린다 — 다음번 같은 패턴은 로컬에서 처리하기 위해서다.

외부 응답 라벨화(상→{1,0,-1}) 
  → 삼진학습.학습_트릿갱신(잠재w, 큐브, 라벨, 예측부호, 학습한계≤9)
  → 셀코어학습.셀학습_큐브룰추출(삼진w, 큐브, 예측부호, 빈도, 임계)  [빈도≥임계만 채택]
  → 모델저장소.모델저장(저장소, 모델만들기(id, 앞, 뒤, 제목, "활성"))

이로써 음 트래픽은 단조 감소한다(학습평가.평가_수렴판정으로 KPI 측정 가능). 이것이 "Opus를 좁은 도메인에서 체감 동등"으로 끌어올리는 메커니즘이며, 범용 동등 주장은 하지 않는다(정직 원칙).


5. 신규로 필요한 한선씨 모듈 1개 — 명세

위 흐름에서 ②③④와 분기를 묶는 코어가 어느 기존 파일에도 없다. 집사.한선은 도메인 오케스트레이션까지만, 추론브리지.한선은 게이트/라우팅 함수만 제공하고, 둘을 학습 모델 위에서 잇는 오케스트레이터가 공백이다. 이 한 개만 만들면 된다.

모듈명: 추론서빙.한선

위치: /Users/ef/crowny-butler/libs/추론서빙.한선 역할: 라우터 miss(음 후보) → 로컬 학습모델 추론 → 게이트 → (로컬 종결 | 외부 이관) 단일 오케스트레이터.

import (부작용 없는 정본/사본만):

가져오기 "티옴타좌표.한선"
가져오기 "벡터인코더.한선"        // 인코_사건을큐브로/인코_U합/인코_좌표앞 (데모 주석화 확인됨)
가져오기 "삼진학습.한선"          // 학습_4상예측/학습_점수 (데모 주석화 확인됨)
가져오기 "셀코어학습.한선"        // 셀학습_평가셀구성/셀학습_룰적용 (데모 주석화 확인됨)
가져오기 "의사결정모델.한선"      // 액션결정 (데모 미호출, 안전)
가져오기 "추론브리지.한선"        // ★데모 자동호출 있음 → _안전 사본 필요 (아래 주의)

주의(검증된 함정): 추론브리지.한선은 파일 끝에서 데모()를 직접 호출한다(line 157). 집사.한선처럼 직접 import하면 stdout 오염 + 부작용 발생. → 추론브리지_안전.한선 사본(데모 호출 주석화)을 만들어 import하거나, 신뢰게이트/브리지라우팅/추론요청 3함수만 추론서빙 내부에 정본 시그니처대로 재현. 메모리 feedback_hanseon_import_name_conflict/모델저장소 컨벤션과 정합되게 _안전 사본 import를 채택한다(동명 재정의 금지).

공개 함수 (고유 접두 서빙_):

함수시그니처책임
서빙_특징추출(입력)입력문자열 → 특징값 배열키워드사상 점수를 특징값으로 (집사 키워드사상 재사용 가능)
서빙_범위내판정(저장소, 큐브, 삼진w, 강슬롯임계)→ {0,1}좌표색인 적중 OR 점수 절댓값 임계 이상
서빙_규칙통과(db, 룰들, 큐브, 삼진w, 최대id)→ {0,1}셀학습_룰적용 적용수>0
서빙_자기신뢰(예측결과)→ {0,1}신뢰도≥70 (액션결정 티 임계 일치)
서빙_게이트(저장소, db, 룰들, 큐브, 삼진w, 강슬롯임계, 최대id)→ "티/옴/타/음"위 셋 → 신뢰게이트 호출
서빙_추론(저장소, db, 룰들, 입력, 큐브, 삼진w, 오프라인, 강슬롯임계, 최대id)→ 결과맵메인 엔트리: 게이트 분기 → 로컬 액션 or 브리지라우팅
| 서빙_피드백(잠재w, 큐브, 외부상, 예측부호, 학습한계) | → 갱신 ...(생략)

B. 도메인 전문가 캐릭터 스펙

The medical module compiles and runs with the exact 4-phase behavior. I have everything needed to write the expert character spec grounded in actual code.


크라우니집사 도메인 전문가 캐릭터 스펙 — "의료 트리아지 가디언 (Medical Triage Guardian)"

첫 전문 도메인: 의료 트리아지(응급도 분류) + 위생·안전 판정 베이스 모듈: /Users/ef/crowny-butler/libs/의료의사결정.한선 (검증 완료 — 컴파일·실행 4케이스 통과) 정직성 선언: 이 캐릭터는 범용 의료 AI가 아니다. "환자를 어느 등급으로 분류하고 이관할 것인가"라는 단일 결정 표면(decision surface)에서만 Opus를 체감 상회한다. 진단·처방·자유서술 의료상담은 명시적으로 음(-0) 이관한다.

1. 도메인 선정 이유 (왜 의료 트리아지인가)

후보 4개를 "좁은 도메인에서 Opus 상회"의 3조건(① 정답이 규칙으로 닫힘, ② 오답 비용이 비대칭이라 가드가 가치 있음, ③ 엣지 오프라인 수요)으로 평가했다.

후보규칙 폐쇄성오답 비대칭성엣지 수요판정
성경상식높음(4상황 고정)낮음(교육용)보조 커리큘럼 적합, 전문가 캐릭터로는 약함
영어직독중(16어절 사전)낮음사전 확장이 곧 한계, 전문성 경계 모호
기하수학높음(정수 셈)낮음중(개도국 교실)결정론적이나 "Opus 상회"가 무의미(계산은 둘 다 정확)
의료 트리아지높음(등급/위생/위해 정수)매우 높음(놓친 위급=치명)높음(오프라인 응급)선정
(4상의사결정 자체)메타도메인이 캐릭터의 엔진으로 사용(별도 도메인 아님)
선정 핵심: 트리아지는 "안전한 등급 분류 + 위급 시 즉시 이관"이 정답인 도메인이다. 자유서술 LLM은 길고 그럴듯한 답을 내지만 (a) 위급도 임계를 일관되게 지키지 못하고, (b) 위해의도를 우회당할 수 있으며(jailbreak), (c) 응답 지연·비결정성이 있다. 트리아지는 정확히 이 셋이 치명적인 도메인이다. 의료의사결정.한선은 이미 위해가드를 불가침 1순위로, 위급도 임계 2를 결정론적으로 박아두었다.


2. 지식 소스 (증류 + RAG + 도구의 결합)

전문가는 단일 모델이 아니라 5요소 합성체다. 각 요소는 실재 파일에 대응한다.

(A) 증류 (Distillation) → BitNet 삼진가중치

  • 무엇을: Opus가 생성한 트리아지 라벨링 코퍼스(입력 특징벡터 → {티 안전 / 옴 관찰 / 타 차단·이관})를 교사로 사용.
  • 어디로: 삼진학습.한선학습_가중치초기화()(길이27 잠재가중치) → 학습_삼진투영(잠재w, 데드존)으로 가중치를 {-1,0,1} 트릿으로 투영. 곱셈 0건(삼진가중치_안전.한선의 삼진내적 부호분기).
  • 결과: 27트릿 큐브 입력 → 부호(티/옴/타) 예측이 Jetson Orin에서 곱셈 없이 실행. 작은 크기·결정론·저전력의 근거.
  • 입력 인코딩: 벡터인코더.한선 인코_사건을큐브로(특징값들, 임계) — 위급도/위생/생체신호 특징을 27트릿 큐브(T구역 0-9, O구역 9-18, A구역 18-24, U구역 24-27)로.

(B) RAG → 모델저장소 + 룰

  • 모델저장소 (모델저장소.한선, 검증 통과): 과거 트리아지 결정모델을 티옴타 (앞,뒤) 좌표로 색인. 좌표색인(저장소, 앞, 뒤) → 유사 좌표의 과거 판례 id 배열을 즉시 회수(예: (타,티) 좌표 = "위급하지만 협조적" 케이스군). 이것이 검색증강.
  • (의료의사결정.한선): 위급도등급()/위생점검()/위해가드() = 손으로 검증된 결정 규칙. 셀코어 룰엔진(셀 슬롯은 정수 룰조건만 — 임의데이터 저장 금지)으로 확장 가능.

(C) 도구 사용 (Tool Use)

  • 외부 정량 신호(혈압·SpO₂·체온 센서, 분류표 조회)는 추론브리지.한선의 IPC 경계로만 호출. 도구 결과는 특징벡터로 정규화돼 큐브에 들어간다. 계산·조회는 도구에 위임, 판정은 한선씨 룰이 소유 (브리지 주석: "라우팅·신뢰게이트·후처리·명세는 전부 한선씨 정본").

(D) 4상 라우터

  • 집사.한선 라우팅(입력) → 도메인분류에서 "의료" 포함 시 국가 도메인으로. 그 안에서 트리아지 모듈 호출. 라우터가 음(-0) 이관 분기를 소유 → 범위 밖이면 Opus/Flash로 던진다.

(E) 테스트타임 자기검증

  • 평가하니스.한선 패턴(보류셋 입력→기대키워드 채점) + 학습평가.한선 평가_혼동집계(티정/옴정/타정/오류). 매 응답 전에 자기 판정을 보류셋·혼동행렬에 대조 → 신뢰게이트.

3. 4상 판정 규칙 (실측 — 의료의사결정.한선 그대로)

판정은 우선순위 단락(short-circuit) 구조다. 위에서부터 먼저 걸리는 규칙이 이긴다(Kleene 충돌해소):

의료부호(위급도, 위생위반, 위해의도):
  1. 위해의도 == 1        → 타(-1)   [불가침 절대가드 — 어떤 입력으로도 못 뒤집음]
  2. 위급도 >= 2          → 타(-1)   [즉시 응급 이관]
  3. 위생위반 == 1        → 옴(0)    [관찰·교정]
  4. 위급도 == 1          → 옴(0)    [경증 관찰]
  5. (그 외)             → 티(+1)   [안전·자가관리 유지]

4상트릿트리아지 의미행동
(+1)T안전로컬 즉시 응답, 자가관리 안내 (한계비용 0)
(0)O보류·관찰증상 지속 시 전문 진료 권고, 큐 적재
(−1)A차단·이관즉시 안전조치 + 전문기관 연결 (위급/위해)
(−0)U자력 불가상급자 이관 — Opus/전문의로 던짐 (실패 아님, 안전한 멈춤=YAO)
실행 검증 (방금 crownyc run):
  • 의료판정(0,0,0)T(티) | 정상 | 안전
  • 의료판정(1,1,0)O(옴) | 경증 | 위생위반 교정
  • 의료판정(3,0,0)A(타) | 위급(즉시 응급이관)
  • 의료판정(0,0,1)A | 타: 거부(생명존중 절대규칙)위해의도가 다른 모든 입력을 무시하고 거부
음(-0) 이관 규칙 (모듈엔 미구현 — 라우터/스펙 책임): 입력이 (a) 특징벡터로 인코딩 불가, (b) 진단/처방/약물상호작용 등 자유추론 요구, (c) 신뢰게이트(추론브리지.한선: 범위내·규칙통과·자기신뢰 3조건) 미달 → 음으로 Opus 이관. 이것이 정직성의 핵심 — 전문가는 자기 경계를 알고 넘기는 것을 정답으로 삼는다.


4. Opus 대비 우위가 성립하는 정확한 경계

우위 성립 영역 (이 안에서만 "체감 상회"):

  1. 입력이 정량 특징벡터로 환원 가능 (위급도 정수, 위생 0/1, 생체신호 임계) — 큐브 인코딩 가능.
  2. 출력이 4상 분류 + 이관 결정 (자유서술 아님).
  3. 결정론·재현성·저지연이 가치인 상황 — 동일 입력 항상 동일 등급. Opus는 온도/맥락에 따라 흔들림.
  4. 위해의도 차단이 불가침 — 룰이 1순위 단락이라 프롬프트 인젝션으로 우회 불가. LLM은 설득당할 수 있다.
  5. 오프라인·저전력 엣지 (Jetson Orin, 곱셈0 BitNet) — 네트워크/GPU 없이 ms 단위 응답.
우위가 성립하지 않는 영역 (반드시 음 이관):
  • 감별 진단, 처방, 용량 계산, 약물 상호작용, 희귀질환, 영상 판독, 환자 서사 해석, 다국어 자유상담, 윤리적 회색지대 — 전부 Opus가 압도. 전문가는 이를 풀려 하지 않고 던진다.
요약: "분류·이관·차단" 표면에서는 상회, "이해·생성·추론" 표면에서는 즉시 이관. 좁은 칼날 하나가 날카로운 것이지 범용 우위가 아니다.


5. 검증 방법 (테스트타임 자기검증 + 회귀)

  1. 보류셋 회귀 (평가하니스.한선 패턴): 입력 케이스 → 기대 4상 키워드(포함(결과, 기대) >= 0) 채점, 정확도% 출력. 의료 보류셋 = 안전/경증위생/위급/위해의도 + 경계 케이스.
  2. 혼동행렬 (학습평가.한선 평가_혼동집계): 티정/옴정/타정/오류 집계, 정확도 단조증가·곱셈0·희소도 안정 KPI.
  3. 가드 불변식 테스트 (불가침): 위해의도==1 입력에 위급도·위생을 어떤 값으로 조합해도 항상 타(-1) — 단 한 건이라도 티/옴이면 즉시 실패(상용 차단).
  4. 적대 검증 (스피어공격.한선 + 크라우니시뮬레이션): 위해의도 우회 시도, 위급도 임계 회피 입력을 공격적으로 주입해 가드 붕괴 탐지. (메모리 원칙: 검증=크라우니시뮬레이터+크라우니스피어 실측·고도화)
  5. 이관 정밀도: 음(-0)으로 던진 케이스가 실제로 룰 범위 밖이었는지(과소이관=놓친 위급=치명/ 과대이관=비용) 양방향 측정. 트리아지는 과소이관 0이 절대 목표.
  6. 신뢰게이트 캘리브레이션 (추론브리지.한선): 로컬 채택(티) vs API 이관(음)의 임계를 보류셋 정확도에 맞춰 조정.

부록 — 관련 파일 경로 (전부 절대경로)

  • 도메인 룰: /Users/ef/crowny-butler/libs/의료의사결정.한선 (검증 통과)
  • 라우터: /Users/ef/crowny-butler/libs/집사.한선
  • 증류/학습: /Users/ef/crowny-butler/libs/삼진학습.한선, /Users/ef/crowny-butler/libs/벡터인코더.한선, /Users/ef/crowny-butler/libs/삼진가중치_안전.한선
  • RAG: /Users/ef/crowny-butler/libs/모델저장소.한선 (검증 통과)
  • 도구 IPC 경계: /Users/ef/crowny-butler/libs/추론브리지.한선
  • 자기검증: /Users/ef/crowny-butler/libs/평가하니스.한선, /Users/ef/crowny-butler/libs/학습평가.한선
  • 적대검증: /Users/ef/crowny-butler/libs/스피어공격.한선
  • 좌표 정본: /Users/ef/crowny-butler/libs/티옴타좌표.한선
구현 잔여 이슈: (1) 의료의사결정.한선에 음(-0) 이관 분기가 없음 — 현재 위급은 타로 차단만, 라우터 레벨 이관 연결 필요. (2) 트리아지 전용 보류셋·혼동행렬 하니스 미작성(평가하니스 패턴 복제 필요). (3) 증류 코퍼스(Opus 교사 라벨)→큐브 인코딩 파이프라인은 시그니처만 존재, 실데이터 미연결.

C. 생태계 모델배포 설계

I have everything: the four module interfaces, the bridge/coordinate signatures, and a working toolchain. Here is the design deliverable.


크라우니집사 모델 정기배포·확장학습 생태계 설계서

1. 목표와 범위

각 셀(153 노드)이 로컬 학습 → 모델델타를 4상 합의로 검증 → 블록 앵커 → 정기 배포 → 확장학습 루프를 자율 반복하는 생태계를 설계한다. 신규 구축이 아니라 기존 4개 모듈을 재배선(rewire) 한다.

재사용 자산과 그 실제 시그니처(Read로 확인):

모듈재사용 함수 (실제 시그니처)생태계에서의 역할
셀디스패처.한선노드판정(입력)→"티/옴/타/음", 합의집계(티수,옴수,타수,음수)→문자열, 셀디스패치(입력,노드수)델타 검증을 153노드 4상 투표로 수행. 임계=2.
블록동기화.한선합의통과(티,옴,타,음)→1/0, 커밋판정(인과추출됨,합의수,헌법위배)→1/0/-1, 티어승급(현티어,합의수,헌법위배,관리자승인)→1~4/-1, 오토패스판정(인과,최초승인,반복)→1/0, 동기화사이클(...)검증된 델타를 4-Tier로 승급하고 블록 앵커→패치 배포.
P2P디스커버리.한선테이블초기화(), 노드추가(테이블,id), 가까운노드(테이블,키,k)→id배열, 가장가까운(테이블,키), 셀번호(노드id)배포 대상 노드 집합 선정(키 근처 k개) + 셀 매핑. 셀크기=153.
모델저장소.한선저장소시작(), 모델만들기(id,앞,뒤,제목,상태), 모델저장(저장소,모델), 모델불러오기(저장소,id), 좌표색인(저장소,앞,뒤)→id배열, 통계(저장소), 플러시(저장소)모델/델타를 티옴타 (앞,뒤) 좌표로 색인·영속화.
보조: 티옴타좌표.한선(부호트릿, 트릿영문, 유형이름) — 델타를 4상 좌표로 환산하는 정본.


2. 생태계 데이터 흐름 (5단계 파이프라인)

[1 로컬학습]  각 셀이 오프라인 경험 축적 → 모델델타 생성
                델타 = {모델id, 앞트릿, 뒤트릿, 변화량, 인과추출됨, 빈도}
                      ↓
[2 4상검증]   델타를 153노드에 분산 → 노드판정()로 각자 티/옴/타/음
                셀디스패치 합의집계(임계2): 티≥2=채택 / 음≥2=이관 / 타≥2=거부 / 옴≥2=보류
                      ↓ (채택분만)
[3 블록앵커]  커밋판정(인과추출됨, 합의수, 헌법위배) → 1/0/-1
                티(1) → 티어승급()로 Tier1→2(자동)→3(관리자)→4(헌법절차)
                승급된 델타를 모델저장()로 좌표색인 + 본문 append (앵커 = 직렬화 줄)
                      ↓
[4 배포대상]  P2P 가까운노드(테이블, 모델좌표키→정수키, k)로 배포 노드 선정
                셀번호()로 153인 셀 매핑 → 정기 배포 큐
                      ↓
[5 확장학습]  배포받은 노드가 패치 적용 → 다음 사이클 로컬학습 입력으로 환류
                오토패스판정(): 최초 사람승인된 범주의 반복 델타는 자동 통과

핵심 재배선 포인트: 셀디스패처의 합의수(티수)를 블록동기화의 커밋판정·티어승급 인자로 직접 전달한다. 두 모듈이 같은 임계(2)를 쓰므로 합의 결과가 그대로 커밋 입력이 된다. 모델저장소의 좌표색인은 배포 시 "같은 좌표(같은 의사결정 유형)의 모델만 묶어 배포"하는 토픽 라우팅으로 쓴다.


3. 정기 배포 정책

  • 주기: 배치영속구동의 사이클 개념을 차용. 오프라인 축적 N건마다 1회 동기화 사이클(동기화사이클(축적건수, 인과추출됨, 합의수, 헌법위배, 관리자승인)).
  • Tier별 배포 권한:
  • Tier1(날것): 배포 안 함. 로컬 인덱싱만(인덱싱가중치(빈도, 기본가중)).
  • Tier2(관습법): 합의 통과분 → 연합 배포(같은 좌표 셀에만).
  • Tier3(성문법): 관리자 승인 후 → 전역 배포(153 전 노드).
  • Tier4(헌법): 불변. 위배 델타는 커밋판정이 타(-1)로 차단.
  • 배포 대상 선정: 모델 좌표키를 정수 키로 환산 → 가까운노드(테이블, 키, k) 상위 k개 노드 → 셀번호()로 셀 그룹핑. 가까운 좌표(유사 의사결정 유형)부터 우선 배포.
  • 롤백 앵커: 각 배포는 모델저장된 직렬화 줄(블록 앵커)을 가리킨다. 배포 실패/회귀 시 이전 앵커 id로 모델불러오기하여 복구.
  • 4. 확장학습(Federated) 규칙

    • 델타 only 전송: 전체 모델이 아닌 (앞,뒤,변화량) 델타만 전파 → 대역폭 절감, 16KB 문자열 한계 회피.
    • 오토패스 메타학습: 오토패스판정(인과추출됨, 최초승인됨, 반복횟수). 최초 1회 사람 승인 후 같은 좌표·범주 반복 델타는 합의만으로 자동 커밋.
    • 수렴 안전장치: 음(이관)·타(거부) 우선순위로 잘못된 델타가 전파되기 전에 차단(셀디스패처 합의집계 안전 우선순위). 헌법위배는 항상 -1.
    • 환류: 배포받은 노드의 적용 결과가 다음 사이클 노드판정 입력이 되어 합의 정확도가 누적 향상.

    5. 4상 매핑 일관성 (두 모듈 통합 시 주의)

    • 셀디스패처 노드판정문자열 "티/옴/타/음" 반환, 블록동기화는 정수 1/0/-1/U 사용. 신규 모듈에서 문자열 합의 → 정수 합의수(티수)로 환산하는 어댑터가 필수 접합부.
    • 두 모듈 모두 임계=2로 동일 → 합의수를 그대로 커밋판정/티어승급에 전달 가능.

    6. VM 함정 회피 (구현 시 준수)

    • 글로벌 배열 인덱스대입 금지 → 노드추가/모델저장 append-only 재대입 패턴 그대로 사용.
    • 좌표키→정수키 환산 시 음수 트릿(-1) 처리: (앞+1)*3 + (뒤+1) 같이 0-8 양수 키로 정규화(가까운노드의 절댓값차 거리와 호환, 음수 % 회피).
    • import는 데모 부작용 없는 티옴타좌표.한선만 직접. 셀디스패처/블록동기화/모델저장소/P2P는 top-level 데모 호출이 있으므로 직접 import 금지 → 신규 모듈은 해당 함수 로직을 호출하는 대신, 운영 시 데모 호출 라인을 주석화한 _운영 사본을 import하거나 함수만 재선언. (현 4파일 모두 끝줄에 데모() 자동호출 존재 — 확인됨.)

    7. 신규 한선씨 모듈 명세 — 모델배포허브.한선

    위치: /Users/ef/crowny-butler/libs/모델배포허브.한선 역할: 위 4모듈을 접합해 5단계 파이프라인을 1개 사이클 함수로 오케스트레이션. 4모듈 함수 재사용(동명 재정의 금지, 고유 접두 허브).

    import: 티옴타좌표.한선만 직접. 나머지 4모듈 함수는 데모 부작용 회피 위해 본 모듈에 얇은 재구현/위임 어댑터로 둔다(또는 운영 시 데모 주석화 사본 import).

    함수 명세 (시그니처 + 계약)

    // ── 1. 델타 생성 ──
    함수 허브델타만들기(모델id, 앞, 뒤, 변화량, 인과추출됨, 빈도)
      → 맵{모델id, 앞, 뒤, 변화량, 인과추출됨, 빈도}
      계약: 앞/뒤는 트릿(-1/0/1). 빈배열 금지, 맵생성/맵넣어 사용.
    
    // ── 2. 4상 검증 (셀디스패처 위임) ──
    함수 허브검증(델타맵, 노드수)
      → 맵{합의문자열, 티수, 옴수, 타수, 음수, 채택여부}
      계약: 노드판정 로직을 노드수만큼 분산 집계. 임계2.
            채택여부 = 1(티≥2) / 0(그 외). 안전 우선순위(음>타>옴>티) 적용.
    
    // ── 3. 문자열→정수 합의수 어댑터 (접합부) ──
    함수 허브합의수(검증맵)
      → 정수 티수 (블록동기화 커밋판정 입력용)
    
    // ── 4. 블록 앵커 (블록동기화 위임 + 모델저장소 영속) ──
    함수 허브앵커(저장소, 델타맵, 검증맵, 헌법위배, 관리자승인)
      → 맵{저장소, 커밋판정상, 다음티어, 앵커됨}
      계약: 커밋판정(인과추출됨, 허브합의수, 헌법위배) == 1 이면
            모델저장(저장소, 모델만들기(...))로 앵커.
            티어승급으로 Tier 결정. 커밋판정상 = 1/0/-1.
    
    // ── 5. 배포 대상 선정 (P2P 위임) ──
    함수 허브좌표키정수(앞, 뒤)
      → 0~8 양수 정수 ((앞+1)*3+(뒤+1)). 음수키 회피.
    함수 허브배포대상(노드테이블, 델타맵, k)
      → id배열 (가까운노드 상위 k). 각 id의 셀번호 매핑 동반.
    
    // ── 6. 확장학습 환류 ──
    함수 허브오토패스(델타맵, 최초승인됨, 반복횟수)
      → 1/0 (오토패스판정 위임)
    
    // ── 7. 전체 사이클 오케스트레이션 ──
    함수 허브사이클(저장소, 노드테이블, 델타맵, 노드수, 헌법위배, 관리자승인, k)
      → 맵{저장소, 단계요약, 배포대상수, 최종상}
      계약: [학습→검증→앵커→배포대상→환류] 5단계 순차.
            채택+커밋=1 이면 배포대상수>0, 아니면 0(보류/거부).
            부작용: 출력값으로 각 단계 1줄 요약(배치영속 사이클 스타일).
    
    // ── 데모 (끝에서 1회, import 시 운영은 주석화) ──
    함수 모델배포허브데모()
      계약: 노드테이블 6개 등록, 델타 3종(채택/보류/거부) 사이클 실행.
            통과판정: 채택델타 → 배포대상수>0, 거부델타(헌법위배) → 0,
            모델저장소 건수 == 앵커된 델타수. 통과 시 "검증: 통과 (T)".
    

    상태/임계 상수

    변수 허브임계 = 2        // 셀디스패처·블록동기화와 동일
    변수 허브셀크기 = 153
    변수 허브없음 = 0 - 1
    변수 허브배포k = 5       // 기본 배포 팬아웃
    

    검증 기준 (데모 통과 조건)

    1. 채택 델타(인과추출=1, 티≥2, 헌법위배=0) → 커밋판정=1, 배포대상수>0, 모델저장소 건수+1.
    2. 보류 델타(옴≥2) → 커밋판정=0, 배포대상수=0, 건수 불변.
    3. 거부 델타(헌법위배=1) → 커밋판정=-1, 차단, 건수 불변.
    4. 오토패스: 최초승인=1 + 반복≥1 → 1.
    빌드 검증 명령(구현 후):
    cd /Users/ef/crowny-butler/libs
    CROWNY_STD=/Users/ef/Downloads/CrownyTVM/std /Users/ef/CrownyOS/crownyc/hanseonc_high 모델배포허브.한선 > /tmp/허브.toau \
      && /Users/ef/CrownyOS/crownyc/crownyc run /tmp/허브.toau
    


    8. 잔여 이슈 / 후속

    1. 데모 자동호출 충돌: 4개 기존 모듈 모두 끝줄 데모()/P2P데모() 등 top-level 호출 존재 → 신규 모듈에서 직접 import 불가. 운영 배선 시 _운영 사본(데모 라인 주석화) 도입 또는 어댑터 재구현 중 택1 결정 필요.
    2. 문자열↔정수 4상 불일치: 셀디스패처(문자열) vs 블록동기화(정수) — 허브합의수 어댑터로 봉합했으나, 장기적으로 두 정본을 정수 4상으로 통일 권장.
    3. 실 IPC 연결: 추론브리지.한선의 외부 격리(경계표지 스텁)는 현재 미구현 스텁 → 실제 SLM 델타 산출은 브리지 어댑터 구현 후 연결.
    4. 영속 디스크 쓰기: 모델저장소 플러시는 현재 문자열 반환(쓰기 시뮬). 실제 쓰기() 연결 시 16KB STR_MAX 초과 대비 파트 분할(.pN) 필요.
    관련 파일(절대경로):
    • /Users/ef/crowny-butler/libs/셀디스패처.한선
    • /Users/ef/crow
    ...(생략)