AI 시스템 배포 전략 — 카나리아가 먼저 들어가는 이유

…

한줄 요약

광산에서 카나리아가 먼저 들어가 독가스를 감지했다. AI 배포에서도 전체 사용자에게 닿기 전에 먼저 테스트하는 구조가 필요하다.

본문

2023년 의료 AI 배포 실패 사례

2023년 미국 중견 병원 네트워크에서 공개된 인시던트 보고서가 있다.

임상 의사결정 지원 AI를 새 버전으로 업그레이드했다. 사내 테스트에서 성능이 개선됐고, 스테이징 환경에서도 문제가 없었다. 전체 병원에 한 번에 배포했다.

배포 후 6시간 만에 문제가 발견됐다. 특정 유형의 케이스(고령 환자 + 다중 약물)에서 새 버전이 일관성 없는 권고를 내고 있었다. 의사들이 이상함을 느끼고 신고했다. 6시간 동안 해당 AI를 참고한 케이스가 수백 건이었다.

롤백은 1시간 만에 가능했지만, 그 사이 권고를 받은 케이스들을 수동으로 검토하는 데 며칠이 걸렸다.


AI 배포가 일반 소프트웨어보다 어려운 이유

일반 소프트웨어 버그는 대부분 명확하다. 버튼이 작동 안 하거나, 페이지가 안 열리거나, 에러 메시지가 뜬다. 즉시 알 수 있다.

AI 버그는 조용하다. 틀린 권고를 자신 있게 출력한다. 에러 로그가 없다. 의사가 AI 권고를 참고해서 처방을 내릴 때까지 문제를 모른다.

그래서 AI 시스템은 코드 배포보다 더 신중한 배포 전략이 필요하다.


카나리아 배포 (Canary Deployment)

광산에서 독가스 감지용으로 카나리아 새를 먼저 들여보내던 것에서 유래했다. 카나리아가 이상 반응을 보이면 광부들은 즉시 대피했다.

소프트웨어에서 카나리아 배포는 새 버전을 전체 사용자가 아니라 일부에게만 먼저 배포하는 방식이다.

전체 트래픽
        ↓
    [라우터]
   ↙         ↘
기존 버전 (95%)   새 버전 (5%)
     ↓                ↓
  응답             응답 + 모니터링

5%에서 문제가 없으면 10%, 25%, 50%, 100% 순으로 단계적으로 확대한다. 문제가 생기면 즉시 0%로 낮춘다.

의료 AI에서의 카나리아 배포

무작위 5%가 아니라 구조화된 방식으로 카나리아를 설계한다.

  • 낮은 위험도 케이스 먼저: 일반 건강 정보 질문, 일정 조회처럼 오류가 치명적이지 않은 케이스부터
  • 특정 시간대: 야간에는 카나리아 비율을 낮추고, 의료진이 충분한 주간에만 확대
  • 지원 인력 준비: 카나리아 기간에는 담당 엔지니어가 모니터링 대기

섀도우 테스트 (Shadow Testing)

카나리아보다 더 안전한 방법이다. 새 버전이 실제 요청을 처리하지 않고, 기존 버전과 “평행”으로 실행된다.

실제 요청
     ↓
기존 버전 → 실제 응답 → 사용자
     ↓ (복사)
새 버전  → 섀도우 응답 → 로그만 저장 (사용자에게 전달 안 됨)

사용자는 기존 버전의 응답만 받는다. 새 버전은 같은 입력을 처리하고 결과를 로그에 저장한다. 엔지니어가 두 응답을 비교해서 새 버전의 동작을 미리 검증한다.

섀도우 테스트가 유용한 경우

  • 새 모델 버전으로 교체할 때 (GPT-4o → GPT-4o-mini 등 비용 절감 시도)
  • 프롬프트를 크게 수정했을 때
  • 새 안전장치(가드레일)를 추가했을 때

의료 AI에서 섀도우 테스트는 특히 강력하다. 실제 케이스로 테스트하면서도 환자에게 영향이 없다.


블루/그린 배포 (Blue/Green Deployment)

두 개의 동일한 프로덕션 환경을 운영한다. 현재 운영 중인 것이 “블루”, 새 버전이 준비된 것이 “그린”이다.

[블루 - 현재 운영] ← 트래픽 100%
[그린 - 새 버전]   ← 준비 완료

↓ 배포

[블루 - 구 버전]   ← 트래픽 0% (즉시 롤백용으로 대기)
[그린 - 새 버전]   ← 트래픽 100%

문제 발생 시 트래픽을 블루로 즉시 전환한다. 롤백 시간이 초 단위다.

비용이 두 배 든다는 단점이 있지만, 의료처럼 다운타임이 용납되지 않는 시스템에서는 합리적인 선택이다.


세 가지 전략 비교

전략리스크비용롤백 속도적합한 상황
카나리아낮음보통분 단위점진적 검증이 필요할 때
섀도우가장 낮음높음즉시대규모 변경 전 검증
블루/그린낮음높음초 단위무중단 배포가 필요할 때

의료 AI라면 중요한 변경은 섀도우 → 카나리아 → 전체 배포 순서로 진행하는 것이 가장 안전하다.


배포 중단 기준을 미리 정해둔다

카나리아를 멈추고 롤백할 기준을 배포 전에 명시적으로 정한다.

예시:

다음 중 하나라도 발생하면 즉시 롤백:
- 에스컬레이션 거부율이 기준치 대비 20% 이상 변화
- 응답 오류율 2% 초과
- 의사 수정률이 15분 평균 대비 30% 이상 증가
- 응급 케이스 탐지 누락 1건 이상

이 기준이 없으면 문제가 생겼을 때 “이게 롤백해야 할 수준인가?”를 실시간으로 판단해야 한다. 비상 상황에서 기준 없는 판단은 늦어진다.


더 알고 싶다면

🔗 관련 글

← 하네스 엔지니어링 시리즈 전체 보기