feat(prediction): Phase 1-2 detection model registry + snapshot 관찰 보강 #92
No reviewers
레이블
레이블 없음
마일스톤 없음
담당자 없음
참여자 2명
알림
마감일
마감일이 설정되지 않았습니다.
의존성
No dependencies set.
Reference: gc/kcg-ai-monitoring#92
불러오는 중...
Reference in New Issue
Block a user
No description provided.
Delete Branch "feature/phase1-2-models-core"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
변경 요약
prediction/models_core/패키지 신설BaseDetectionModel/ModelContext/ModelResultdataclassModelRegistry— ACTIVE 버전 인스턴스화, DAG 순환 검출, topological 플랜DAGExecutor— PRIMARY 실행→ctx.shared주입→SHADOW/CHALLENGER persist-only (오염 차단 불변식)params_loader— V034detection_model_versions.paramsJSONB 로드 + 5분 TTL 캐시feature_flag—PREDICTION_USE_MODEL_REGISTRY=0기본 (구 경로 유지)scheduler.py: 10단계 feature flag 분기 추가 (기존 사이클 무영향)db/partition_manager.py:detection_model_run_outputs월별 파티션 자동 생성/DROPhourly-analysis-snapshot.sh+diagnostic-snapshot.sh) 개선:spoofing_scoregt0/gt03/gt05/gt07 세분화 — silent fault vs no signal 구분gear_identity_collisions원시 테이블 섹션 (CRITICAL/OPEN 51건 포착됨)detection_model_*모니터링 섹션stats_hourlyvs events 카테고리 drift 감시커밋 전 검증
model_idVARCHAR(64) 초과 →BaseDetectionModel.__init__에서ValueErrormetric_keyVARCHAR(64) 초과 → 경고 후 drop (다른 metric 저장)ctx.connpersist 재사용 (CONCURRENT_SHADOWS=1대비)테스트
prediction/tests/test_models_core.py15/15 통과 (DAG 순환 / SHADOW 오염 차단 / PRIMARY 실패 후행 skip / SHADOW 실패 격리 / VARCHAR 초과 거부 / long metric_key drop / 캐시 TTL)hourly-analysis-snapshot.sh수동 실행 — 599 라인, 신규 10 섹션 모두 출력, 오류 0PREDICTION_USE_MODEL_REGISTRY=0기본값으로 한 사이클 회귀 확인 (운영)배포 영향
scheduler.py신 분기 +partition_manager월별 파티션 로직Phase 1-2 기반 인프라 + Phase 2 PoC 5 모델 + snapshot 스크립트 개선 + silent error 선제 방어. 30/30 테스트 + 운영 DB dry-run 통과. LGTM (via Claude Code)