최신글

CloudNet MLOps 스터디 1주차

반응형

이 글은 CloudNet MLOps 스터디 1주차 내용을 정리했습니다.

 

1. MLOps와 우리가 알고 있는 소프트웨어 개발·운영의 차이

책에서는 MLOps와 DevOps의 차이라고 설명하지만, 저는 DevOps보다 소프트웨어 개발·운영이 더 맞는 표현이라고 생각해 주제를 바꿨습니다. MLOps에도 Claude Code 같은 일반 소프트웨어처럼 코드 개발이 필요하고, 코드 외에 데이터와 AI 모델이 더해집니다. 그래서 저는 MLOps가 기존 소프트웨어 개발·운영에 데이터와 AI 모델의 개발·운영을 더한 형태라고 생각합니다.

 

데이터와 모델도 소프트웨어처럼 저장소, 버전 관리, 파이프라인이 필요합니다. 구현이 다를 뿐 과정은 크게 다르지 않습니다. MLOps에서 추가된 내용이 있다면,

 

첫번째는 실험입니다. 어떤 데이터와 어떤 코드, 어떤 파라미터로 모델을 학습했을 때 어떤 성능을 얻었는지 기록하는 일을 실험이라고 합니다. 실험 이력을 관리해야 모델 성능이 왜 좋아졌는지, 왜 나빠졌는지 추적할 수 있습니다.** 소프트웨어 개발·운영에는 이런 과정이 없었습니다. 실험 이력에 맞는 데이터 버전도 관리해야 합니다. 그래서 git, svn 같은 코드 저장소와 별도로 데이터 버전을 관리하는 데이터 저장소가 필요하고, 이 저장소도 MLOps가 소프트웨어 개발·운영과 다른 점입니다.

 

실험 이력은 AWS SageMaker 화면으로 보면 이해하기 쉽습니다. SageMaker Experiments는 학습 1번을 run으로 기록하고, run마다 입력·파라미터·설정·결과를 자동으로 남깁니다. run 여러 개를 experiment 하나로 묶고, 화면에서 run끼리 성능 지표를 비교해 가장 좋은 모델을 고릅니다.

SageMaker Experiments에서 experiment 하나에 속한 run 목록

출처: AWS 문서 - View experiments and runs

 

두번째는 리니지(Lineage)입니다. 리니지는 한국말로 계보라고 하며 특정 모델이나 데이터가 만들어지기까지 거쳐온 전체 파이프라인의 '인과관계 및 추적 경로'를 의미합니다.

실험 이력과 리니지 용어는 헷갈릴 수 있지만 목적이 다릅니다. 운영 중인 모델에 문제가 생겼을 때 그 모델을 학습한 데이터셋과 파라미터를 거꾸로 찾아갈 때 리지니를 사용합니다. 소프트웨어로 비유하면 git commit, CI 빌드, 컨테이너 이미지 digest, 배포 기록을 이어 붙인 기록과 비슷합니다. 다만 소프트웨어는 코드가 같으면 같은 결과물을 빌드하지만, 모델은 데이터와 파라미터까지 같아야 같은 모델을 재현할 수 있습니다. 그래서 리니지는 코드뿐 아니라 데이터셋과 파라미터까지 연결합니다.

구분 실험 리니지
목적 어떤 조합이 성능이 가장 좋은가 이 모델은 무엇으로 만들어졌는가
단위 run과 지표 데이터셋, 학습 job, 모델, endpoint 사이의 연결
주로 쓰는 때 모델을 고를 때 운영 중 문제를 추적하거나 감사할 때

 

아래 그림은 SageMaker가 학습부터 배포까지 자동으로 만드는 리니지 그래프 예시입니다.

SageMaker가 ML 워크플로를 추적하려고 만든 리니지 그래프 예시

출처: AWS 문서 - Amazon SageMaker ML Lineage Tracking

 

세번째는 GPU활용입니다. MLOps에서는 소프트웨어 개발/운영보다 GPU 활용도가 높습니다. 알고리즘에 따라 GPU가 필요하지 않을 수 있지만 높은 확률로 GPU가 필요합니다.

 

2. ML이 정말 이 기능에 필요한지 먼저 묻는다

이 책은 ML이 필요하지 않은 기능에 억지로 ML을 넣지 않도록 경계하라고 합니다. ML은 컴퓨팅 자원을 많이 쓰기 때문에 필요하지 않은 곳에 ML을 쓰면 비용이 낭비되고 유지보수도 어려워집니다.

 

Google의 Rules of Machine Learning도 Rule #1로 "ML 없이 제품을 출시하길 두려워하지 말라"를 둡니다. 문서는 ML이 100% 개선을 준다면 단순한 휴리스틱으로도 50%는 얻는다고 설명하고, 아래 예시를 듭니다.

  • 앱 마켓 순위: 모델로 순위를 예측하지 않고 설치율이나 설치 수로 정렬합니다.
  • 스팸 필터: 모델로 스팸을 분류하지 않고 이전에 스팸을 보낸 발신자를 차단합니다.
  • 연락처 정렬: 모델로 추천하지 않고 최근에 쓴 순서나 이름순으로 정렬합니다.

 

예시 3개 모두 규칙 한두 줄로 끝나고, 학습 데이터도 실험 이력도 리니지도 필요 없습니다. 앞에서 정리한 데이터 저장소, 실험 관리, 리니지는 ML을 쓰기로 했을 때 함께 운영해야 하는 비용입니다.

 

참고자료

반응형