KT에이블스쿨 7기

[KT AIVLE School 7기] CI/CD

CodeForWelfare 2025. 7. 29. 03:02

1. 소프트웨어 개발과 AI 개발, 뭐가 다를까?

항목일반 소프트웨어AI/ML 개발
주 대상 비즈니스 로직 데이터 기반 모델
검증 방법 테스트 코드로 검증 정확도/재현율 등 수치로 검증
주된 변화 코드 변경 데이터 변경
배포 기준 코드 머지 기준 모델 성능 기준
 

AI는 코드를 짜는 것보다, 데이터와 모델 변경이 핵심입니다. 이 때문에 일반적인 CI/CD로는 한계가 존재합니다.


2.  AI 모델은 왜 배포가 어려울까?

  • 데이터 변화가 잦음 → 재학습 필요
  • 성능 평가지표 기준으로 배포 판단
  • 테스트 케이스로만 검증이 어려움
  • 코드 + 모델 + 데이터 모두 관리 대상

이러한 특성 때문에 모델 성능 기반 자동화 배포 파이프라인이 필요합니다.


3.  DevOps vs MLOps

항목DevOpsMLOps
대상 코드 모델, 데이터
핵심 도구 GitHub Actions, Jenkins 등 MLflow, DVC, Kubeflow 등
빌드 기준 코드 변경 데이터/모델 변경
아티팩트 Docker Image 모델 + 메타데이터
 

MLOps는 단순히 "모델을 배포"하는 게 아니라,
데이터 수집 → 학습 → 검증 → 배포 → 모니터링까지 자동화하는 전 과정입니다.


4.  단계별로 보는 AI CI/CD 전략

 Step 1: 버전 관리

  • 코드: Git
  • 모델: MLflow, DVC, Weights & Biases
  • 데이터: S3 / DVC

 Step 2: 모델 테스트

  • 스모크 테스트: API 형태로 모델 호출 테스트
  • 모델 성능 테스트: 이전 모델 대비 성능 향상 여부

 Step 3: 빌드 & 컨테이너화

  • 모델 + API 서버를 Docker로 래핑
  • FastAPI, Flask 등으로 REST API 구성
FROM python:3.10 COPY ./model.pkl . COPY ./main.py . RUN pip install -r requirements.txt CMD ["uvicorn", "main:app"]

 Step 4: CI 자동화

  • GitHub Actions 사용
  • 커밋 → 테스트 → Docker 이미지 빌드 → ECR 푸시

 Step 5: CD 자동화

  • AWS ECS, EKS 등으로 자동 배포
  • 예: main 브랜치에 merge 시 자동 배포

5.  예시: GitHub Actions 기반 파이프라인

name: AI Model CI/CD

on:
  push:
    branches: [ main ]

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Install dependencies
        run: pip install -r requirements.txt
      - name: Test model
        run: python test_model.py
      - name: Build Docker
        run: docker build -t mymodel-api .
      - name: Push to ECR
        ...
      - name: Deploy to ECS
        ...

6.  모델 재학습 자동화까지?

CI/CD만으로는 충분하지 않습니다.
다음 단계는 MLOps입니다.

  • 데이터 변경 감지 → 재학습 트리거
  • MLflow로 학습 이력 기록
  • Seldon / KServe로 배포 자동화
  • Prometheus / Grafana로 성능 모니터링

 마무리

AI 모델을 잘 만들기만 하면 끝일까요? 실제 서비스에 적용되기 위해선 빠르고 안정적인 배포 전략이 필요합니다.

CI/CD는 DevOps의 영역이지만, AI 개발에서는 데이터와 모델을 위한 CI/CD가 별도로 필요합니다.

앞에서 마이크로서비스 모델링은 실습해보셨다면 CICD도 적극 추천드립니다.