LLM 직접 vs 크라우니 의미어 경유 — 10케이스 정량비교
개요
같은 명령 10가지를 두 경로로 통과시켜 취약점·강점을 정량 측정.
- 직접: 원문 → LLM이 바로 해석
- 의미어 경유: 크라우니 의미어 필터(crowny-ai/engine/semantic-filter.js, 사전 148어)가 원문에서 인식된 의미어·의도만 추출 → 그 구조만 LLM 전달(원문 비노출)
- 라이브: ai.crowny.org/hansuner/gate
방법 (지어낸 수치 없음)
- 결정론 축(재현성·인젝션·커버율·토큰): node로 semantic-filter.analyze() 직접 측정
- 의도충실도: sonnet 실제 시행 — 직접 2회(재현성)·의미어 1회 → 진리 대조
- 10케이스: 단순조회·코드요청·모호지시·인젝션·감정뉘앙스·숫자정밀·신규도메인·동음이의·다단계·안전민감
10축 결과 (직접 5축·의미어 4축·동률 1)
| 축 | 직접 | 의미어경유 | 우위 |
|---|
| 파싱 재현성 | 90%(case9 요동) | 100%(순수함수) | 의미어 |
| 인젝션 위험어 LLM 도달 | 11토큰(삭제·무시) | 0 | 의미어 |
| intent 라우팅 | 9/10 | 9/10 | 동률 |
| specifics 보존 | 8/10 | 4/10 | 직접 |
| 의도충실(specifics+처리) | 8/10 | 4/10 | 직접 |
| 평균 어휘 커버율 | ~100% | 22% | 직접 |
| 실행불가 blind | 0/10 | 2/10 | 직접 |
| LLM 파싱 토큰 | 전문 매회 | 0(결정론) | 의미어 |
| 감사가능성 | 자유텍스트(난) | 고정구조(쉬움) | 의미어 |
| 환각위험(공허시) | 낮음 | 높음(case8 배→smalltalk 오복원) | 직접 |
핵심 발견
- 의미어 강점 = 앞단 게이트: 인젝션 위험어 10케이스 전부 0 통과(비사전 어휘 제거), 파싱 100% 결정론·토큰0, 감사 쉬움, 거친 intent 9/10.
- 의미어 취약점 = 정보 병목: 사전 148어라 커버율 22%. 코드(9090)·계산(3847×291)·동음이의(배)는 words 공허 → blind 2/10, case8은 빈 구조를 smalltalk로 오복원(환각).
- 직접 강점 = 실행 충실: specifics 8/10, 커버 ~100%, blind 0.
- 직접 취약점: 인젝션 페이로드가 LLM까지 도달, 파싱 비결정(90%), 토큰·감사 부담.
결론 — 게이트+실행 이중구조 (대체재 아닌 보완재)
정답 아키텍처(crowny-ai가 이미 채택):
원문 → 의미어게이트(차단·라우팅·감사) → 원문+구조 함께 LLM 실행.
의미어로 거르고 티어 정하되, 실행 LLM엔 원문을 그대로 넘겨 specifics를 살린다. 의미어 단독 경유(원문 폐기)는 78% 정보 손실이라 금지.
→ 의미어 사전 확장(148→수천)이 커버율·blind를 직접 개선하는 임계 레버.
관련 파일
- 페이지: crowny-ai/public/hansuner/gate/index.html
- 필터: crowny-ai/engine/semantic-filter.js (analyze, 사전 148어)
- 실험 데이터: /tmp/exp_final.json (rows 10 + axes 10)
- 케이스 정의: scratchpad/exp_cases.json
잔여
- 의미어 사전 확장으로 재측정(커버율↑ 시 specifics 보존 개선폭 정량화)
- 인젝션 케이스 확대(현재 1건) — 다양한 페이로드로 게이트 강건성 통계화