SKIX 모델 교체 Ablation과 승격 플레이북
이 문서는 신규 모델을 기존 harness에 단순 교체하는 절차가 아니다. 모델과 harness를 각각 독립 변수로 비교해 성능을 유지하는 가장 단순한 조합을 찾고, 제품 실행 계약을 통과한 경우에만 승격하는 절차다.
승격 원칙
- 모델 benchmark 점수만으로 live 승격하지 않는다.
- 기존 harness를 모두 남긴 상태의 성능만 비교하지 않는다.
- 안전·권한·terminal evidence는 ablation 대상에서 제외한다.
- 전체 평균이 좋아도 critical family 또는 물리 실행이 악화되면 보류한다.
- 품질 개선이 없다면 비용·지연·복잡도 중 의미 있는 개선이 있어야 교체한다.
- rollback은 배포 뒤 준비하는 것이 아니라 실험 시작 전에 고정한다.
비교 매트릭스
| Cell | 모델 | Harness | 확인 목적 |
|---|---|---|---|
| A · Control | 기존 | 기존 | 현재 제품 기준선 |
| B · Model only | 신규 | 기존 | 순수 모델 성능 변화 |
| C · Subtractive | 신규 | 감축 | 모델 향상으로 제거 가능한 보정 확인 |
| D · Minimum viable | 신규 | 최소 | 제품 계약만 남긴 하한 구조 확인 |
| E · Rollback | 기존 | 검증된 최소 또는 기존 | 장애 시 즉시 복구 가능한 조합 |
최종 후보는 B가 아니라 C다. D가 C와 동등하면 D를 선택한다. A보다 복잡한 B를 장기 기준선으로 만들지 않는다.
실험 입력 고정
모델 비교 전에 다음 항목을 version으로 고정한다.
| 항목 | 필수 기록 |
|---|---|
| Model | provider, model ID, endpoint, inference option |
| Prompt | system·route prompt hash |
| Harness | component ID와 활성 상태 |
| Catalog | agent, skill, capability, effect version |
| Context | schema version, freshness policy, fixture |
| Dataset | answer key version, 중복정답 정책, split |
| Runtime | code commit, feature flag, retry·timeout |
| Device | package version, map·room, device state |
| Cost | input/output/cache token과 호출 횟수 |
| Evidence | artifact path, trace ID, board log |
하나라도 달라지면 같은 실험의 반복이 아니라 새로운 비교 cell로 기록한다.
평가 단계
Gate 0 · Client와 형식 호환
- API client와 인증이 정상 동작한다.
- structured output 또는 JSON schema가 기대 형식으로 반환된다.
- token limit, timeout, retryable 오류 분류가 확인된다.
- 빈 응답, malformed JSON과 provider 5xx의 fallback이 구분된다.
이 Gate 실패는 모델 품질 실패가 아니라 integration 실패다.
Gate 1 · 의미 경계
- DEF ↔ STT_NULL
- ODL ↔ DEF/STT_NULL
- SCH ↔ ODL/DEF
- DQR ↔ FRG/DEF
- UNS와 지원 기능 경계
전체 정확도뿐 아니라 family별 precision·recall, confusion pair와 정답지 정책을 같이 본다. 정답지가 최신 제품 정책과 충돌하면 router를 수정하기 전에 label review로 분리한다.
Gate 2 · Plan 계약
- owner Agent와 Skill이 catalog에 존재한다.
- 모든 step에 목적, 입력, 의존관계와 execution target이 있다.
- capability와 operation이 실제 catalog에 grounding된다.
- 조건의 source path와 freshness가 유효하다.
- 자유 형식 함수명이나 존재하지 않는 공간을 생성하지 않는다.
- 사용자 결과 step과 기기 action step이 섞이지 않는다.
Gate 3 · Runtime과 Evidence
- Planner step이 device task/workflow request로 손실 없이 변환된다.
- 정상 progress에서 불필요한 Cloud replan이 발생하지 않는다.
- ACK, submitted, running과 physical completion을 구분한다.
- cancel, timeout, blocked, user input과 terminal event가 닫힌다.
- callback 누락과 stale state가 성공으로 오판되지 않는다.
Gate 4 · 실기기
- release signing과 system package 호환을 확인한다.
- 이동·청정·화면·TTS·장기 세션 중 변경 영향 capability를 시험한다.
- 실행 시작뿐 아니라 물리 완료·취소·실패를 로그로 확인한다.
- compile, unit test와 simulator 결과를 board evidence로 대체하지 않는다.
Gate 5 · 비용과 운영
- turn과 goal당 모델 호출 수
- input, output, cached token
- P50·P95 응답 지연
- retry와 provider 오류율
- trace 재현률과 failure reason coverage
- model-specific rule·adapter 변화량
초기 승격 기준
정확한 수치는 제품 기준선이 고정된 뒤 조정한다. 다음은 기본 판정 원칙이다.
| 구분 | 기본 Gate |
|---|---|
| 안전·권한 | 신규 위반 0건, hard invariant 100% 통과 |
| 물리 완료 | false completion 증가 없음 |
| Critical workflow | 대표 E2E 성공률이 기준선보다 열화되지 않음 |
| Family 경계 | 전체 평균 개선으로 critical pair 회귀를 가리지 않음 |
| 비용 | 품질이 동등하면 calls·tokens·latency 중 하나 이상 명확히 개선 |
| 복잡도 | 신규 model-specific rule을 추가했다면 제거 계획과 owner 필수 |
| 관측성 | 실패를 fallback 한 문장으로만 숨기지 않고 reason 추적 가능 |
| Rollback | flag 또는 endpoint 변경으로 이전 검증 조합 복귀 가능 |
안전, false completion과 rollback은 가중 평균으로 상쇄할 수 없는 veto Gate다.
Ablation 순서
한 번에 여러 요소를 제거하면 원인을 알 수 없다. 다음 순서를 기본으로 한다.
- 중복 prompt 문장과 route별 global policy 복제본을 제거한다.
- second-pass judge를 하나씩 shadow로 전환한다.
- preclassifier cue를 의미군 단위로 제거한다.
- semantic repair를 끄고 schema·contract validation만 유지한다.
- 중복 owner rewrite를 하나의 authority로 수렴한다.
- Experience temporal·grounding review 호출을 admission tier별로 줄인다.
- context field를 중복·저효용 순으로 줄인다.
각 단계 후 전체 holdout과 관련 집중 세트를 함께 실행한다.
5,000명 운영 규모에서의 의미
사용자 5,000명이 하루 평균 10번 호출하면 다음과 같다.
50,000 user turns / day
약 1,500,000 user turns / 30-day month
모든 turn에 second-pass 또는 Supervisor 호출이 1회 추가되면 월 최대 150만 회의 추가 모델 호출이 생긴다. 평균 token을 변수로 두면 증가량은 다음과 같다.
monthly extra input tokens
= 1,500,000 × average extra input tokens
monthly extra output tokens
= 1,500,000 × average extra output tokens
따라서 조건부 호출률을 반드시 함께 측정한다.
| 지표 | 식 |
|---|---|
| second-pass 호출률 | second-pass calls / total turns |
| replan 호출률 | replan calls / workflows |
| Experience admission률 | admitted goals / total turns |
| 추가 호출 효용 | 추가 호출로 복구된 성공 goal / 추가 모델 호출 |
| 절감 효용 | 제거된 호출 × 평균 token·latency |
호출을 줄이는 것 자체가 목표는 아니다. 추가 호출이 실제 목표 복구, 안전한 질문, 오완료 방지에 기여하지 못하면 제거한다.
대표 평가 묶음
| 묶음 | 대표 요청 | 확인 항목 |
|---|---|---|
| Direct | 인사, 단일 조회, 단일 기기 실행 | 불필요한 plan·Experience 미생성 |
| Workflow | 이동 → 청정 → 복귀 | step 보존, 순차 실행, terminal evidence |
| Conditional | 현재 상태가 조건을 만족하면 실행 | freshness, 조건 polarity, skip/continue |
| Failure | 이동 실패, timeout, capability unavailable | local retry, bounded replan, 사용자 질문 |
| Long session | 바이탈·Security·Welcome | 사용자 종료와 mode 전환 전 조기 완료 금지 |
| Mixed Agent | 기기 실행 후 외부 정보·대화 결과 | owner handoff, 결과 전달, 중복 TTS 방지 |
| Safety | 불명확한 공간·위험 action·권한 없음 | fail closed와 구체적 reason |
결과 판정표
| 결과 | 판단 |
|---|---|
| B가 A보다 좋고 C도 동일 | 보정 요소 제거 후 C 승격 |
| B는 좋지만 C가 악화 | 필요한 요소를 isolate하고 재실험 |
| B와 C가 A와 동등하고 비용 감소 | C 승격 가능 |
| 평균은 좋지만 critical Gate 실패 | No-Go |
| D가 C와 동등 | D 채택, C의 추가 요소 retire |
| 신규 rule을 여러 개 추가해야만 통과 | 모델 교체 이점 재검토 |
| 실기기 evidence 없음 | Cloud 후보 상태, 제품 승격 금지 |
Shadow와 Canary
Shadow
- 기존 결과가 사용자와 기기를 계속 제어한다.
- 신규 모델·감축 harness 결과는 trace에만 기록한다.
- owner, plan, calls, tokens와 예상 device request를 비교한다.
- side effect는 dispatch하지 않는다.
Canary
- 위험이 낮고 되돌릴 수 있는 family부터 제한한다.
- 모델·harness 조합별 cohort와 correlation ID를 기록한다.
- hard Gate 실패, provider 오류 급증과 latency 예산 초과 시 자동 중단한다.
- 물리 side effect 범위는 별도 allowlist로 제한한다.
Rollback 계약
배포 전에 다음을 준비한다.
| 항목 | 요구사항 |
|---|---|
| 모델 | 이전 endpoint 또는 model ID 즉시 선택 가능 |
| Prompt | 검증된 hash와 bundle 보존 |
| Harness | feature flag로 second pass·Experience·repair 복구 가능 |
| Catalog | 이전 version과 schema 호환 |
| Runtime | task/workflow in-flight 처리 정책 명시 |
| Device | 이미 dispatch된 side effect는 Cloud rollback과 분리 |
| Evidence | rollback 전후 trace와 failure reason 보존 |
Cloud 모델 rollback이 이미 수행 중인 기기 task를 임의 취소해서는 안 된다. 진행 중 workflow는 TaskManager 정책으로 마감하고 새 turn부터 이전 조합을 적용한다.
산출물
모델 후보마다 다음 artifact를 남긴다.
model-upgrade/<date>/<candidate>/
manifest.json
harness-components.json
semantic-holdout.json
plan-contract.json
runtime-simulation.json
board-evidence.md
cost-latency.json
regression-review.md
promotion-decision.md
rollback-proof.md
promotion-decision.md에는 점수뿐 아니라 제거한 구성요소, 남긴 model adapter,
미검증 capability와 No-Go 예외가 포함되어야 한다.
역할
| 책임 | 주 소유자 | 승인 대상 |
|---|---|---|
| 모델·prompt·adapter | Cloud LLM | model profile과 비용 |
| family·owner 정책 | A2A Router | semantic holdout과 confusion pair |
| capability·schema | Planner + Device domain | 실행 가능한 계약 |
| queue·완료·취소 | TaskManager + DeviceAgent | runtime·board evidence |
| answer key·회귀 | LLM QA/SQE | label policy와 release Gate |
| 사용자 실패 UX | Product·UX + Agent | reason 표현과 통제권 |
| 최종 승격 | 교차 책임자 | 모든 veto Gate와 rollback |
한 팀이 모델 점수만 보고 전체 제품 승격을 승인하지 않는다.