[머신러닝 시스템 설계] 개요

seon·2025년 5월 25일

ML & AI

목록 보기
17/21
post-thumbnail


복잡한 머신러닝 시스템을 성공적으로 설계하려면 프레임워크를 따르는 것이 중요하다. 머신러닝 시스템에 효과적으로 대응할 수 있는 프레임워크는 다음과 같이 제안할 수 있다.
단 하나의 정답만이 존재하는 것은 아니며, 이 프레임워크는 생각을 구조화하는 데 도움을 준다.

위 단계 중 오늘은 요구사항 명확화와, 머신러닝 작업으로 문제를 구조화하는 단계에 대해 살펴볼 예정이다.


요구사항 명확화

요구사항을 명확하게 이해하려면 다음과 같은 것을 파악해야 한다.

  • 비즈니스 목표
  • 시스템이 제공해야 하는 피처
    • 머신러닝 시스템 설계에 영향을 줄 수 있는 피처는 무엇인가?
  • 데이터
    • 데이터 소스는 무엇인가?
    • 데이터세트는 얼마나 큰가?
    • 데이터에 라벨이 지정되어 있는가?
  • 제약
    • 사용할 수 있는 컴퓨팅 자원은 얼마나 되는가?
    • 클라우드 기반 시스템인가,아니면 단말에서 구동하는 시스템인가?
    • 시간이 지남에 따라 모델이 자동으로 개선되길 바라나?
  • 시스템 규모
    • 사용자 수, 콘텐츠 수, 그리고 그 증가율은 어느 정도인지
  • 성능
    • 기대 성능은 얼마인지, 실시간 솔루션이 필요한지
    • 정확도와 대기 시간 중 무엇이 더 중요한지
  • 기타
    • 개인정보 및 윤리

이러한 사항에 대해 파악하고 합의해야 한다.


머신러닝 작업으로 문제를 구조화

비즈니스 관점의 문제는 머신러닝이 작업할 수 있는 영역이 아니기 때문에 이를 머신러닝 작업으로 이를 구조화해야 한다.

우선, 주어진 문제를 해결하기 위해 머신러닝이 필요한지부터 먼저 판단해야 한다.
면접에서는 머신러닝이 도움이 된다고 당연하게 가정할 수 있으므로, 문제 해결을 위해 다음과 같이 머신러닝 작업의 틀을 잡는다.

  1. 머신러닝 목표 정의
  2. 시스템의 입력 및 출력 지정
  3. 적합한 머신러닝 유형 선택

1. 머신러닝 목표 정의
단순히 '매출 20% 증가'와 같은 목표를 설정해서는 모델을 훈련할 수 없기에, 이를 잘 정의된 머신러닝 목표로 변환해야 한다.

예)

  • 이벤트 티켓 앱 : 티켓 판매량 증가 -> 이벤트 등록 수를 극대화
  • 비디오 스트리밍 앱 : 사용자 참여 증가 -> 사용자 시청 시간 극대화
  • 광고 클릭 예측 시스템 : 사용자 클릭 수 증가 -> 클릭률(click-through rate) 극대화

2. 시스템 입력 및 출력 지정
다음으로는 시스템의 입력과 출력을 정의해야 한다.

예)

  • 입력: 게시물
  • 출력: 게시물의 유해성 여부

때에 따라 둘 이상의 머신러닝 모델로 구성할 수 있다. 이 경우 머신러닝 모델의 입력과 출력을 각각 지정해야 한다. 예를 들어 유해한 컨텐츠 감지를 위해 폭력을 예측하는 하나의 모델과 과도한 노출을 예측하는 또 다른 모델을 적용할 수 있다.


3. 적합한 머신러닝 유형 선택
머신러닝 유형은 다음 유형 중 하나로 구성될 수 있다.

  • 지도 학습
  • 비지도 학습
  • 강화학습

일반적으로 지도 학습 >> 비지도 학습, 강화학습 순으로 사용된다.
그 이유는 머신러닝 모델이 일반적으로 학습 데이터를 사용할 때 특정 작업을 더 잘 학습하기 때문이다.

지도 학습의 다양한 유형에 대해 살펴보면,

  • 회귀 모델
    • 연속적인 숫자 값을 예측 (집의 기대 가치를 예측하는 모델)
  • 분류 모델
    • 불연속 클래스 라벨을 예측 (입력 이미지를 분류하는 모델)
    • 이진 분류 모델, 다중 클래스 분류 모델로 나눌 수 있다.

이렇듯 해당 단계에서는 적합한 머신러닝 유형을 선택해야 한다.


마무리하며.. 🧐
이 책을 통해 앞으로의 머신러닝 시스템 면접뿐만 아니라 캐글 대회, AI 관련 포지션 등에서 많이 활용할 수 있을 것 같다.


Reference

[도서] 가상 면접 사례로 배우는 머신러닝 시스템 설계 기초 (알렉스 쉬, 알리 아마니안)

profile
🌻

0개의 댓글