MLOps & Continuous Intelligence
실험실의 AI를 실제 비즈니스 하드웨어 현장으로 배포하고, 데이터와 모델의 노후화(Drift)를 수치적으로 감시하며 안전한 거버넌스를 유지하는 운영 물리학을 다룹니다.
Article
M
Me
hyunyoun's Blog
machine-learning-aimachine-learningaimlopscontinuous-intelligenceevaluationsafety-governancelearning10 min read
1. Overview
MLOps 및 연속 지능(MLOps & Continuous Intelligence, MAD)은 데이터 과학자의 주피터 노트북(Jupyter Notebook) 안에서만 돌아가던 장난감 인공지능을, 초당 1만 명의 유저가 접속하는 실전 하드웨어 인프라에 배포하고 살려두는 '지능 공학 시스템'을 다룹니다.
전통적인 소프트웨어(DevOps)는 한 번 짜놓은 코드가 변하지 않지만, 인공지능 모델은 세상의 데이터가 변함에 따라 서서히 성능이 썩어갑니다(Model Decay). 학습자는 모델을 컨테이너로 감싸 API로 배포하는 모델 서빙(Model Serving) 물리를 배우고, 입력 데이터의 분포가 틀어지는 데이터 드리프트(Data Drift)를 실시간으로 감시하는 모니터링 체계를 세웁니다. 나아가 편향된 AI가 초래할 사회적/법적 재앙을 막기 위해 설명 가능한 AI(XAI)와 AI 거버넌스의 테두리를 둘러, 살아 숨 쉬는 인공지능의 수명 주기를 무한히 연장하는 시스템의 창조자가 됩니다.
2. Scope & Boundaries
In-Scope
- ML 파이프라인 (AI Lifecycle): 데이터 수집 검증 전처리 학습 평가의 파이프라인 자동화 (CI/CT/CD).
- 모델 서빙 (Model Serving): 추론 인프라, 실시간(Online) 예측 vs 배치(Batch) 예측, vLLM/Triton 등 추론 가속화.
- 모니터링과 섀도우 배포 (Monitoring): 컨셉 드리프트(Concept Drift), 데이터 드리프트(Data Drift), 섀도우 모드(Shadow Mode), A/B 테스트.
- AI 안전과 설명성 (Safety & XAI): 설명 가능한 AI(XAI: SHAP, LIME), 모델 편향(Bias) 완화, AI 컴플라이언스(AI Act 등).
Out-of-Scope
- LLM 프롬프트 엔지니어링 및 RAG 아키텍처: 모델에 데이터를 주입하여 답변을 만들어내는 로직 11-03. LLM & RAG Engineering 영역으로 위임.
- 단순 쿠버네티스 인프라 세팅: K8s 파드(Pod) 자체의 네트워킹 및 헬스 체크 09-05. DevOps & Reliability 영역으로 위임.
Boundaries
- MAD vs. LNO (11-01): LNO(11-01)가 알고리즘의 "정확도를 90%에서 95%로 어떻게 올릴 것인가?"라는 연구실(Lab)의 문제라면, MAD(11-04)는 "정확도 95%짜리 모델을 수억 명의 유저가 0.1초의 지연 없이 사용하게 하고, 내년에 80%로 떨어지지 않게 어떻게 감시할 것인가?"라는 공장(Factory)의 문제입니다.
3. Counterexample
- 수동 노트북 배포 (Jupyter Notebook Fallacy): 데이터 과학자가 로컬 노트북에서 피클(Pickle) 파일로 모델을 저장한 뒤, USB로 서버 개발자에게 넘겨주면서 "이거 서버에 올려주세요"라고 말하는 재앙. 서버 환경에는 파이썬 버전도 다르고, Scikit-learn 라이브러리도 설치되어 있지 않아 모델은 즉시 충돌(Crash)을 일으킵니다. 머신러닝 코드는 전체 시스템의 5%에 불과합니다. 환경을 도커(Docker)로 묶고 피처 스토어(Feature Store)와 연결하는 자동화 파이프라인(MLOps) 없이 배포하는 것은 폭탄을 던지는 것과 같습니다.
- 영구 불변의 맹신 (Model Immortality Fallacy): "정확도 99% 달성! 이제 프로젝트 끝!"이라며 모델을 서버에 올리고 1년간 모니터링을 꺼두는 행위. 코로나19가 터지자 과거의 소비자 구매 패턴을 학습한 모든 AI 모델의 예측이 완전히 박살 난 것이 좋은 예입니다. 데이터의 트렌드는 계속 변하며(Data Drift), 모델은 살아있는 유기체처럼 썩어갑니다. 실시간으로 예측 오차를 추적하고 임계치를 넘으면 자동으로 재학습(Retraining)을 돌리는 CT(Continuous Training) 없이는 AI 서비스는 불가능합니다.
4. Prerequisites
- 기계 학습과 딥러닝 기초 (Basic): 어떤 모델 파라미터를 저장하고 배포해야 하는지, 오버피팅과 일반화가 무엇인지 알아야 MLOps의 궤도를 짤 수 있습니다. (11-01, 11-02)
- 데브옵스 파이프라인 (Recommended): CI/CD의 개념과 도커 컨테이너, 배포 자동화에 대한 기본 물리 지식이 MLOps의 근간을 이룹니다. (09-05. DevOps)
5. Learning Map
6. Learning Topics
Basic
Core Topic 01: MLOps와 연속적 학습 파이프라인 (ML Lifecycle & CT)
- Why to Learn: 데이터를 가져오고 코드를 돌려 모델을 굽는 귀찮은 10단계를, 코드가 푸시되는 순간 전자동으로 끝내기 위해서입니다.
- What to Learn:
- Concepts: MLOps 3대 성숙도 모델 (Manual ML Pipeline CI/CD/CT), 지속적 학습(Continuous Training).
- Skills: 데이터 파이프라인(ETL), 피처 스토어(Feature Store), 모델 레지스트리(Model Registry), 실험 추적(Experiment Tracking).
- Tools: MLflow, Kubeflow, Apache Airflow.
- Trade-offs: 모델 버전마다 사용된 하이퍼파라미터와 정확도를 MLflow에 일일이 기록하게 셋업하는 초기 엔지니어링 피로도 vs 6개월 뒤 "그때 그 모델 설정값이 뭐였지?"라는 질문에 1초 만에 재현해 내는 압도적 통제력.
- How to Learn:
- 1단계: 모델을 10번 돌려보고 가장 성능이 좋은 것을 고를 때, 머릿속으로 기억하지 않고 MLflow 대시보드에 에포크(Epoch)별 Loss와 파라미터가 그래프로 자동 기록되도록(Tracking) 로직을 붙여봅니다.
- 2단계: 최적의 모델이 나오면 그 파일(.pkl 또는 .pt)을 아무 폴더나 던져두지 않고, 'Version 1.2, Production 상태' 꼬리표를 달아 모델 레지스트리에 저장하여 중앙 통제소의 물리를 익힙니다.
- Implement: 로컬 환경에 MLflow 서버를 띄우고, 특정 머신러닝 코드 실행 시 정확도(Accuracy) 지표와 피클 모델 파일이 버전별로 자동 아카이빙(Archiving)되는 기초 MLOps 추적 스크립트 작성.
Recommended
Core Topic 02: 모델 서빙과 추론 아키텍처 (Serving Physics)
- Why to Learn: 학습이 끝난 모델을 창고에 박아두지 않고, 사용자가 스마트폰으로 버튼을 누르면 0.1초 만에 결과를 쏴주는 살아있는 서비스로 만들기 위함입니다.
- What to Learn:
- Concepts: 실시간 추론(Online Serving) vs 일괄 추론(Batch Serving), 추론 지연 시간(Inference Latency).
- Skills: FastAPI 기반 마이크로서비스 포장, 동적 배칭(Dynamic Batching), 모델 압축(양자화 Quantization, 가지치기 Pruning).
- Tools: TensorFlow Serving, TorchServe, vLLM, Docker.
- Trade-offs: 소수점 32자리(FP32)의 정밀도를 유지하여 정확도를 높이는 것 vs 모델 가중치를 소수점 8자리(INT8)로 뭉뚱그려(양자화) 정확도는 1% 포기하는 대신 서버 비용과 지연 시간을 4배 줄여버리는 아키텍처 타협.
- How to Learn:
- 1단계: 내일 비가 올지 예측하는 AI는 유저가 버튼을 누를 때마다 계산할 필요 없이, 매일 새벽 1시에 1번만 계산해서 DB에 넣어두는 '배치 서빙'이 맞지만, 얼굴 인식 AI는 0.1초 만에 응답해야 하므로 무조건 '실시간 서빙' API를 띄워야 하는 물리적 구조의 차이를 설계합니다.
- 2단계: GPU의 메모리는 한정되어 있는데 동시에 100명의 유저가 요청을 날릴 때, 서버가 이를 0.05초 동안 모아서 한 덩어리로 GPU에 넘겨 연산 효율을 극대화하는 '동적 배칭(Dynamic Batching)'의 역학을 뜯어봅니다.
- Implement: 훈련된 PyTorch 이미지 분류 모델을 Docker 컨테이너에 담고 FastAPI로 RESTful API 엔드포인트를 열어, 이미지를 POST 요청으로 보내면 클래스 확률을 JSON으로 반환하는 추론 마이크로서비스 템플릿.
Practical
Core Topic 03: 데이터 드리프트와 프로덕션 모니터링 (Monitoring & Drift)
- Why to Learn: 출시 직후엔 천재였던 모델이 6개월 뒤 멍청이가 되는 '부패 현상'을 수학적으로 탐지하여, 서비스가 박살 나기 전에 경보를 울리기 위해서입니다.
- What to Learn:
- Concepts: 데이터 드리프트(Data Drift), 컨셉 드리프트(Concept Drift).
- Skills: 통계적 거리 검정(KL Divergence, KS Test)을 통한 분포 변화 감지, 섀도우 모드(Shadow Mode), 카나리 배포(Canary Release).
- Tools: Prometheus + Grafana (비즈니스/모델 메트릭), Evidently AI.
- Trade-offs: "어제보다 오늘 들어오는 데이터 모양이 이상하다!"라며 민감하게 반응하여 허구한 날 알람을 울려대는 모니터링 시스템의 양치기 소년 딜레마 vs 임계치를 둔감하게 설정했다가 한 달 동안 틀린 예측을 내뱉어 막대한 손실을 입는 리스크.
- How to Learn:
- 1단계: 모델이 '정상 신용카드 결제 데이터'로 학습했는데, 갑자기 신종 사기 기법이 등장하여 결제 데이터의 평균 금액 분포가 통계적으로 확 변해버리는 현상(Data Drift)을 KS 검정 등의 통계 기법으로 시뮬레이션해 봅니다.
- 2단계: 신규 버전(V2) 모델을 라이브 서버에 올릴 때 기존 V1 모델을 끄지 않고, 유저의 요청을 V1과 V2에 모두 보내되 유저에게는 V1의 결과만 보여주고 뒤에서 V2가 잘 맞추는지 조용히 지켜보는 '섀도우 모드(Shadow Mode)'의 무결성 테스트를 스케치합니다.
- Implement: Evidently AI 같은 오픈소스를 활용하여, 학습할 때 쓰였던 참조 데이터(Reference) 분포와 오늘 하루 들어온 실제 데이터(Current) 분포를 비교해 드리프트 점수를 리포트로 뽑아내는 자동 모니터링 데모.
Advanced
Core Topic 04: AI 안전, 설명 가능한 AI(XAI) 및 거버넌스 (Safety, XAI & Governance)
- Why to Learn: 대출 심사 AI가 흑인이나 여성이라는 이유로 대출을 거절했을 때 회사가 소송에 휘말리는 것을 막고, AI의 판단 근거를 법원과 고객에게 증명하기 위해서입니다.
- What to Learn:
- Concepts: 설명 가능한 AI(XAI), 블랙박스 모델, AI 윤리와 편향(Bias).
- Skills: 피처 중요도 분석, SHAP(SHapley Additive exPlanations), LIME(Local Interpretable Model-agnostic Explanations).
- Tools: SHAP 라이브러리.
- Trade-offs: "성별, 나이, 소득"만 들어간 선형 회귀의 예측은 80% 정확하지만 이유를 100% 설명할 수 있는 투명성 vs 딥러닝이 99%의 정확도를 자랑하지만 도대체 왜 그렇게 판단했는지 개발자조차 알 수 없는 끔찍한 블랙박스 딜레마.
- How to Learn:
- 1단계: 어떤 환자의 종양이 '악성'이라고 판단한 딥러닝 모델에 XAI 툴(SHAP)을 붙여봅니다. "이 환자는 나이가 많아서 악성 확률이 +20% 올랐고, 혈압이 정상이어서 -5% 내려갔다"는 식의 게임 이론 기반 기여도(Shapley Value)를 역추적해 시각화합니다.
- 2단계: 유럽 연합의 AI법(AI Act) 같은 규제를 살펴보고, 의료/금융 등 고위험(High-Risk) AI 파이프라인에서 인간의 개입(Human-in-the-loop)과 로그 추적 시스템을 구축해야만 하는 컴플라이언스(Governance) 요건을 분석합니다.
- Implement: 특정 예측 모델(예: 은행 이탈 고객 예측)을 돌린 후, SHAP 라이브러리를 사용해 왜 이 고객이 이탈할 것으로 딥러닝 모델이 예측했는지 상위 3가지 결정적 요인(Feature)을 설명하는 XAI 시각화 차트 도출.
7. Terminology
8. References
Primary References
- [CS2023: AL/Machine Learning] — 머신러닝 시스템의 생명주기 관리, 성능 저하 측정 및 재학습 루프 원리.
- [SWEBOK v3: Software Engineering Practice] — 프로덕션 환경에서의 소프트웨어 지속적 통합 및 배포(CI/CD) 기반 구조.
Secondary References
- [Google MLOps Maturity Model] — 수동 스크립트 실행(Level 0)부터 완전 자동화 파이프라인(Level 2)에 이르는 MLOps 성숙도 프레임워크.
- [Evidently AI / MLflow Docs] — 실험 추적(Experiment Tracking), 모델 레지스트리 아카이빙 및 데이터 드리프트 탐지 리포트.
Industry References
- [NVIDIA Triton Inference Server] — 실시간 모델 서빙, 동적 배칭(Dynamic Batching) 및 다중 프레임워크 추론 가속기 백서.
- [European Union AI Act] — 고위험 AI 시스템에 대한 인간 개입, 투명성 보고 및 편향(Bias) 완화 컴플라이언스 규제 가이드.
9. Final Checklist
Primary Checklist
- 데이터 추출부터 모델 평가 및 레지스트리 등록까지의 전체 과정이 주피터 노트북 스크립트가 아닌, 재현 가능한 자동화 파이프라인(DAG)으로 구성되었는가?
- 서빙되는 모델의 추론 지연 시간(Latency) 및 처리량(Throughput)이 비즈니스 요구사항을 충족하며, 트래픽 폭증 시 컨테이너 오토스케일링이 작동하는가?
Secondary Checklist
- 서비스 중인 모델에 들어오는 입력 데이터의 분포(Data Drift)를 실시간으로 감시하여, 임계치를 넘을 경우 경고를 띄우거나 CT(Continuous Training)를 촉발하는가?
- 새 버전의 모델을 배포하기 전에 섀도우 모드(Shadow Mode)나 카나리 배포(Canary Release)를 통해 실시간 트래픽에 대한 안정성 및 오차율을 먼저 검증했는가?
Industry Checklist
- 의료, 금융 등 고위험 모델의 경우, SHAP이나 LIME을 도입하여 딥러닝의 블랙박스 추론 결과를 투명하게 설명(XAI)할 수 있는 체계를 갖췄는가?
- 특정 성별이나 인종 등에 대해 모델이 편향(Bias)된 결과를 내놓지 않도록 훈련 데이터의 윤리적 밸런스를 통제하는 거버넌스 룰을 적용했는가?