ML 엔지니어링 과정에서 맞닥뜨리는 고민

HanJu Han·2024년 12월 3일

ML 엔지니어링

목록 보기
1/8
  1. 모델 품질 관리

가장 먼저 직면하게 되는 문제는 모델의 품질을 어떻게 일관되게 유지할 것인가 하는 점입니다. 예를 들어, 온라인 쇼핑몰의 상품 추천 시스템을 생각해봅시다. 매일 수백만 개의 새로운 클릭 데이터가 쌓이고 있는 상황에서:

첫째, 기존 모델이 새로운 데이터에 대해서도 잘 작동하는지 지속적으로 검증해야 합니다. 예컨대, 명절 시즌에는 평소와 다른 소비 패턴이 나타나는데, 이런 변화를 모델이 잘 반영하고 있는지 확인해야 합니다.

둘째, 노이즈 정제가 매우 중요합니다. 봇에 의한 클릭이나 테스트용 데이터가 섞여 있다면, 이를 걸러내는 전처리 파이프라인이 필요합니다.

  1. 데이터 관리

데이터 관리는 마치 도서관을 운영하는 것과 비슷합니다. 예를 들어 자율주행 모델을 개발한다고 가정해보겠습니다:

  • 수많은 주행 영상 데이터들이 언제, 어디서, 어떤 조건에서 수집되었는지 체계적으로 기록해야 합니다
  • 데이터셋의 버전 관리도 중요합니다. 예를 들어 "2023년 겨울 야간 주행 데이터 v2.1"처럼 명확한 버전 관리가 필요합니다
  • 아티팩트 분류도 필수입니다. 학습에 사용된 원본 데이터, 전처리된 데이터, 검증용 데이터 등을 체계적으로 구분해야 합니다
  1. 비용 최적화

실제 사례를 들어보겠습니다. 한 스타트업에서 이미지 분류 모델을 운영하고 있었는데, 매월 클라우드 비용이 수천만원씩 나왔습니다. 여기서 취할 수 있는 전략들은:

  • 자주 사용되는 예측 결과는 캐싱하여 재활용
  • 야간 시간대처럼 트래픽이 적은 시간에는 서버 자원을 자동으로 줄이도록 설정
  • 모델 경량화를 통해 연산 비용 절감
  1. 모델 모니터링

실제 이커머스 회사의 사례를 보겠습니다. 갑자기 추천 시스템의 정확도가 떨어졌는데, 원인을 찾아보니:

  • 특정 카테고리의 상품 데이터가 잘못 레이블링되어 있었음
  • 새로운 트렌드의 상품들이 들어왔는데 모델이 이를 제대로 반영하지 못함

이런 문제들을 조기에 발견하기 위해서는:

  • 실시간으로 모델의 예측 정확도를 모니터링
  • 데이터 드리프트(데이터 분포의 변화) 감지
  • 시스템 성능 지표(응답 시간, 메모리 사용량 등) 관찰이 필요합니다

이러한 각 단계들은 서로 긴밀하게 연결되어 있어서, 전체적인 ML 시스템의 건강성을 유지하기 위해서는 이 모든 요소들을 종합적으로 고려해야 합니다.


ML 엔지니어링에서 사용되는 각각의 세부 기술들

[모델 품질 관리 관련 도구들]

  1. Continuous Training (지속적 학습)
    실제 예시를 들어보겠습니다. 넷플릭스의 콘텐츠 추천 시스템을 생각해보세요. 매일 새로운 시청 기록이 쌓이고 새로운 콘텐츠가 추가됩니다. 이런 환경에서는 모델을 한 번 학습하고 끝내는 것이 아니라, 새로운 데이터가 들어올 때마다 자동으로 재학습이 이뤄져야 합니다.

  2. Data Acquisition Pipeline (데이터 수집 파이프라인)
    자율주행 자동차의 예를 들어보겠습니다. 차량은 매일 수백 기가바이트의 센서 데이터를 생성합니다. 이 데이터를 실시간으로 수집하고, 필터링하고, 저장하는 과정이 자동화되어야 합니다.

  3. Evaluation Pipeline (평가 파이프라인)
    금융 사기 탐지 시스템을 예로 들어보겠습니다. 새로운 사기 패턴이 계속 등장하기 때문에, 모델의 성능을 다양한 지표(정확도, 재현율, F1 점수 등)로 지속적으로 평가해야 합니다.

[데이터 관리 도구들]

  1. Data Warehouse (데이터 웨어하우스)
    예를 들어 대형 이커머스 회사에서는 구매 기록, 검색 로그, 고객 프로필 등 다양한 데이터를 중앙 집중적으로 저장하고 관리해야 합니다.

  2. Data Pipeline (데이터 파이프라인)
    수집 → 저장 → 처리 → 분석 → 활용

  3. Data Workflow (데이터 워크플로우)
    데이터 파이프라인의 단계의 데이터 워크플로우 예시:
    "처리" 단계의 워크플로우

오전 1시: 중복 데이터 제거
오전 2시: 누락값 처리
오전 3시: 데이터 형식 변환
오전 4시: 품질 검증
오전 5시: 처리 완료 보고서 생성

즉, 데이터 파이프라인이 "무엇을 할 것인가"를 정의한다면, 데이터 워크플로우는 "어떻게 할 것인가"를 정의한다고 볼 수 있습니다.

  1. Data Version Management (데이터 버전 관리)
    자연어 처리 모델을 개발한다고 가정해보죠. 텍스트 데이터의 전처리 방식이 바뀌거나, 레이블링 기준이 변경될 때마다 이력을 관리해야 합니다.

[인프라 관리 도구들]

  1. Orchestration (오케스트레이션)
    여러 개의 마이크로서비스로 구성된 추천 시스템을 예로 들어보겠습니다. 사용자 행동 분석, 상품 특성 추출, 최종 추천 생성 등 여러 서비스가 유기적으로 작동해야 합니다.

  2. Container (컨테이너)
    이미지 처리 모델을 여러 지역의 서버에 배포해야 하는 상황을 생각해보세요. Docker 같은 컨테이너를 사용하면 모델과 필요한 모든 환경을 패키징하여 어디서든 동일하게 실행할 수 있습니다.

  3. Auto Scaler (자동 확장)
    소셜 미디어 분석 서비스를 예로 들어보겠습니다. 특정 이슈가 발생하면 트래픽이 급증하는데, 이때 자동으로 서버 자원을 늘리고 줄일 수 있어야 합니다.

[모니터링 도구들]

  1. On/Offline Monitoring (온/오프라인 모니터링)
    실시간 번역 서비스를 운영한다고 가정해보죠. 서비스 지연이 발생하거나 번역 품질이 떨어지는 것을 실시간으로 감지하고 대응해야 합니다.

  2. Data Drift Detection (데이터 드리프트 감지)
    코로나19 확산 예측 모델의 예시를 들어보겠습니다. 새로운 변이 바이러스의 등장으로 기존 데이터의 패턴과 달라질 때, 이를 자동으로 감지할 수 있어야 합니다.

  3. APM (Application Performance Management)
    대규모 언어 모델 서비스를 예로 들어보겠습니다. CPU 사용률, 메모리 사용량, 응답 시간 등을 종합적으로 모니터링하여 성능 병목 현상을 파악하고 최적화할 수 있어야 합니다.

이러한 도구들은 각각 독립적으로 작동하는 것이 아니라, 하나의 ML 시스템 안에서 유기적으로 연결되어 작동합니다. 예를 들어, 데이터 드리프트가 감지되면 자동으로 모델 재학습이 트리거되고, 이 과정에서 새로운 버전의 모델이 컨테이너화되어 배포되는 식입니다.

profile
시리즈를 기반으로 작성하였습니다.

0개의 댓글