1비전 AI 모델 라이프사이클
비전 AI 모델은 배포 후에도 지속적인 모니터링과 개선이 필요합니다. MLOps 관점에서 모델 라이프사이클을 관리해야 합니다.
| 단계 | 주요 활동 | 핵심 지표 |
| 개발 | 데이터 수집, 레이블링, 모델 설계 | 데이터 품질, 분포 |
| 검증 | 오프라인 테스트, A/B 테스트 | Precision, Recall, F1 |
| 배포 | 모델 서빙, 엣지 배포 | Latency, Throughput |
| 모니터링 | 성능 추적, 드리프트 탐지 | 실시간 정확도, 분포 변화 |
| 재학습 | 새 데이터로 모델 업데이트 | 개선율, 회귀 여부 |
핵심 원칙: 모델 배포는 끝이 아니라 시작입니다. 제조 환경은 지속적으로 변화하므로, 모델도 함께 진화해야 합니다.
2프로덕션 성능 지표 (KPI)
비전 AI 시스템의 운영 품질을 측정하는 핵심 지표들입니다.
모델 성능 지표
Accuracy, Precision, Recall, F1-Score, AUC-ROC, False Positive Rate (FPR), False Negative Rate (FNR)
운영 성능 지표
Inference Latency (P50/P95/P99), Throughput (검사/분), 가용성, 에러율
비즈니스 지표
과검출률 (Over-Kill), 누출률 (Escape Rate), 재검사율, 품질 비용 절감액
# 성능 지표 계산 및 모니터링 (수도코드)
# === Prometheus 메트릭 정의 ===
# - inference_latency (Histogram): 추론 지연 시간
# - inference_count (Counter): 총 추론 횟수
# - model_accuracy (Gauge): 롤링 정확도
# - false_positive/negative_rate (Gauge): 과검출/누출률
# === 성능 지표 계산기 ===
class PerformanceMetrics:
# 1. 윈도우 기반 레코드 관리 (최근 1000개)
# 2. 메트릭 계산 (calculate_metrics)
# - 기본: 총 추론수, 검증수, 평균 신뢰도
# - 지연: 평균, P95, P99 latency
# - 검증된 데이터로 Confusion Matrix 계산
# TP, TN, FP, FN → accuracy, precision, recall, F1
# - 비즈니스 지표
# FPR (과검출률), FNR (누출률)
# === 모델 성능 모니터 ===
class ModelPerformanceMonitor:
# 1. 초기화
# - station_id, model_version
# - 알람 임계값 설정
# accuracy_min: 95%, FP_max: 5%, FN_max: 1%
# 2. 추론 결과 기록 (record_inference)
# - Prometheus 메트릭 업데이트
# 3. 수동 검증 결과 업데이트 (샘플링 검증)
# 4. 알람 체크 (check_alerts)
# - 정확도 하락 → CRITICAL
# - 과검출 증가 → WARNING
# - 누출 증가 → CRITICAL (가장 심각)
# - P99 지연 증가 → WARNING
# 5. 건강 상태 판정
# - HEALTHY / DEGRADED / WARNING / CRITICAL
누출률(Escape Rate) 주의: False Negative는 불량품이 양품으로 출하되는 것을 의미합니다. 고객 품질 문제로 이어지므로 가장 엄격하게 관리해야 하는 지표입니다.
3데이터 드리프트 탐지
제조 환경 변화(재료, 조명, 설비)로 인해 입력 데이터 분포가 변화하면 모델 성능이 저하됩니다. 이를 데이터 드리프트라고 합니다.
| 드리프트 유형 | 원인 | 탐지 방법 |
| Covariate Drift | 입력 데이터 분포 변화 | PSI, KL Divergence |
| Concept Drift | 입출력 관계 변화 | 성능 지표 모니터링 |
| Prior Drift | 레이블 분포 변화 | 클래스 비율 추적 |
# 데이터 드리프트 탐지 (수도코드)
# === 이미지 특징 추출기 ===
class ImageFeatureExtractor:
# ResNet18 사전학습 모델 사용
# 마지막 FC 제거 → 특징 벡터 출력
# 이미지 → 특징 벡터로 변환
# === 통계 기반 드리프트 탐지 ===
class StatisticalDriftDetector:
# 1. 참조 데이터 설정 (학습 시점 분포)
# 2. 슬라이딩 윈도우로 현재 데이터 관리
# 3. PSI (Population Stability Index) 탐지
# - 각 특징 차원별 버킷 분포 비교
# - PSI = Σ (actual - expected) * ln(actual/expected)
# - PSI > 0.1 → 드리프트 감지
# 4. KS 테스트 (Kolmogorov-Smirnov)
# - 각 차원별 분포 차이 검정
# - Bonferroni 보정 적용
# - p-value < 0.01 → 드리프트 감지
# === 예측 결과 기반 드리프트 탐지 ===
class PredictionDriftDetector:
# 1. 참조 분포 설정 (정상 운영 시점)
# 2. 레이블 드리프트 탐지
# - Pass율 변화 모니터링
# - 이항 검정으로 유의성 판단
# - 변화율 > 5% & p < 0.01 → 드리프트
# 3. 신뢰도 드리프트 탐지
# - 평균 신뢰도 변화 모니터링
# - Welch's t-test로 검정
# - 변화 > 0.05 & p < 0.01 → 드리프트
⚠️
드리프트 탐지 알람 예시
PSI Score 0.18 > 임계값 0.10 - 입력 데이터 분포 변화 감지. 조명 조건 또는 제품 표면 상태 변경 확인 필요.
4자동 재학습 파이프라인
드리프트가 감지되거나 성능이 저하되면 자동으로 모델을 재학습하는 파이프라인을 구축합니다.
# 자동 재학습 파이프라인 (수도코드)
# === 재학습 트리거 유형 ===
# SCHEDULED: 정기 재학습
# DRIFT_DETECTED: 드리프트 감지
# PERFORMANCE_DROP: 성능 저하
# NEW_DEFECT_TYPE: 새 불량 유형
# === 재학습 파이프라인 ===
class RetrainingPipeline:
# 1. 재학습 필요 여부 판단 (should_retrain)
# - 정확도 < 95% → 성능 저하
# - drift_score > 0.1 → 드리프트 감지
# - 새 불량 100건 이상 → 새 불량 유형
# 2. 학습 데이터 준비 (prepare_training_data)
# - 기존 학습 데이터 로드
# - 새로운 검증된 샘플 추가 (30일간)
# - 클래스 균형 조정 (PASS:FAIL = 3:1)
# - Train/Val 분리 (8:2)
# 3. 새 모델 학습 (train_new_model)
# - 기존 모델 기반 전이학습
# - 새 버전 생성 (v{날짜시간})
# - 모델 레지스트리에 STAGED로 등록
# 4. 모델 검증 (validate_new_model)
# - Shadow 모드: 현재 vs 새 모델 비교
# - 모든 지표에서 회귀 없음 확인
# - 정확도 1% 이상 개선 필요
# - 결과: DEPLOY 또는 REJECT
# 5. 모델 배포 (deploy_model)
# - 카나리: 10% → 25% → 50% → 75% → 100%
# - 각 단계 5분 모니터링
# - 문제 시 자동 롤백
5운영 모범 사례
비전 AI 시스템의 안정적 운영을 위한 모범 사례들입니다.
| 영역 | 모범 사례 | 효과 |
| 샘플링 검증 |
Pass 판정 제품 중 일정 비율 수동 검증 |
누출률 모니터링, GT 데이터 확보 |
| 다중 모델 |
제품/불량 유형별 전문 모델 운영 |
정확도 향상, 유지보수 분리 |
| Fallback 정책 |
모델 장애 시 수동 검사 전환 |
라인 중단 방지 |
| 버전 관리 |
모델, 데이터, 코드 버전 추적 |
재현성, 롤백 가능 |
| 점진적 배포 |
카나리/블루-그린 배포 전략 |
위험 최소화 |
# 운영 모범 사례 구현 (수도코드)
# === Fallback 모드 ===
# MANUAL_INSPECTION: 수동 검사 전환
# PASS_ALL: 전량 Pass (위험 - 품질 이슈)
# FAIL_ALL: 전량 Fail (보수적 - 생산성 저하)
# === 운영 설정 ===
# 샘플링 검증 비율
# - Pass 판정: 1% 수동 검증
# - Fail 판정: 10% 수동 검증
# - 낮은 신뢰도(<0.8): 100% 검증
# 타임아웃: 200ms
# 연속 실패 임계값: 5회
# === 비전 AI 운영자 ===
class VisionAIOperator:
# 1. 검사 실행 (inspect)
# - 타임아웃 포함 추론
# - 실패 시 Fallback 처리
# - 샘플링 검증 대상 결정
# 2. 샘플링 검증 로직
# - 낮은 신뢰도 → 항상 검증
# - 높은 신뢰도 Pass → 1% 확률
# - Fail → 10% 확률
# 3. Fallback 활성화/해제
# - 연속 5회 실패 시 활성화
# - CRITICAL 알람 발송
# - 건강 체크 통과 시 자동 해제
# 4. 건강 체크 (health_check)
# - 테스트 이미지로 추론 테스트
# - 지연 시간 확인
# - 상태: HEALTHY / DEGRADED / UNHEALTHY
# === 다중 모델 라우터 ===
class MultiModelRouter:
# 제품 코드별 전문 모델 매핑
# 기본 모델 설정
# 적합한 모델로 요청 라우팅
샘플링 검증의 중요성: 운영 중 수동 검증 데이터는 모델 성능 모니터링과 재학습의 핵심입니다. Pass 판정 제품 중 일부를 반드시 수동 확인하여 누출률을 추적하세요.
6비전 AI 품질 개선 로드맵
Chapter 4를 마무리하며, 비전 AI 시스템의 지속적 품질 개선을 위한 로드맵입니다.
| 단계 | 목표 | 핵심 활동 |
| Level 1: 기본 |
동작하는 시스템 |
모델 배포, 기본 모니터링, 수동 재학습 |
| Level 2: 관리 |
측정 가능한 품질 |
KPI 대시보드, 샘플링 검증, 버전 관리 |
| Level 3: 정의 |
표준화된 프로세스 |
드리프트 탐지, 재학습 트리거, A/B 테스트 |
| Level 4: 정량 |
예측 가능한 성능 |
자동 재학습 파이프라인, CI/CD for ML |
| Level 5: 최적화 |
지속적 개선 |
AutoML, 자가 치유 시스템, 비즈니스 연계 |
Chapter 4 요약: 컴퓨터 비전과 품질 AI는 제조업의 품질 검사를 혁신하고 있습니다. 딥러닝 기반 불량 검출, 이상 탐지, 엣지 배포, MES 연동, 그리고 지속적 모니터링과 재학습까지 - 전체 라이프사이클을 이해하고 관리하는 것이 성공의 열쇠입니다.
다음 단계: Chapter 5에서는 예측 정비(Predictive Maintenance)와 설비 AI를 다룹니다. 진동, 음향, 온도 센서 데이터를 활용한 고장 예측과 잔여 수명(RUL) 추정, CMMS 통합을 학습합니다.