머신러닝 시스템의 구성요소는?

  • 데이터: ML 모델이 학습하는데 사용된다.
  • 데이터 전처리: 데이터를 학습에 사용하기 전에, 데이터를 정제하고 변환하는 과정. (e.g 결측치 처리, 툭성 정규화나 스케일링, 범주형 데이터 인코딩 등)
  • 피처 엔지니어링: 모델이 더 잘 학습하기 위해 기존의 Raw data 에서 유의미한 데이터를 새로 만드는 과정. 예를 들면, 날짜 데이터에서 요일을 만드는 것.
  • ML 알고리즘: 전처리된 데이터를 사용해서 학습할 모델을 선택하는 것. 각각의 알고리즘은 특정 문제에 더 강할 수 있음.
  • 모델 훈련: 선택한 알고리즘을 사용해서 주어진 데이터로 학습을 하는 단계. 모델의 가중치를 조절하는 단계이다.
  • 모델 평가: 훈련된 모델이 얼마나 예측/추론을 잘하는지 테스트하는 단계이다. 이를 위해 보통 테스트 데이터가 따로 있음. 평가 지표에는 정확도, 정밀도, 재현율, F1 점수 등의 지표가 있다.
  • 모델 배포: 평가 단계를 통과한 모델을 실제 환경에 배포하는 것
  • 예측: 모델을 사용해서 새로운 데이터에 예측을 하는 것.
  • 피드백: 예측 결과에 대한 피드백을 받아서, 모델을 지속적으로 개선할 수 있도록 하는 것.

2. MLOps 에서 Ops 의 의미는?

DevOps 를 의미한다. 프로덕션 환경에서의 모델 배포, 모니터링, 모델의 지속적인 업데이트를 제공하는 것을 말한다.

 

ML 을 사용할 때와 사용하지 않아야 할 때는?

ML 이 해결할 수 있는 문제는?

ML 이 할 수 있는 건 기존 데이터의 복잡한 패턴을 학습해서, 본 적 없는 새로운 데이터가 왔을 때 '예측' 하는 걸 잘한다.

그러니 ML 을 통해 문제를 해결하기 위해서는 다음의 조건이 모두 충되어야한다.

  • 예측할 수 있는 문제여야 한다.
    • 정확한 계산을 하지 않아도 되고, 예측을 해도 되는 경우. (정확한 계산의 비용이 크면 클수록 유리하다.)
  • 잘못된 예측으로 인한 비용이 너무 크면 안된다.
  • 복잡한 패턴을 가지고 있어야 한다.
  • 새로운 데이터는 기존 데이터와 패턴이 유사해야한다. 완전 다르면 안된다.
  • 데이터를 수집할 수 있어야 하며, 데이터가 많아야한다.
    • 인간은 퓨 샷 학습 (few-shot learning) 에 강하지만, 컴퓨터는 데이터가 많아야한다.

 

Q) 학습해서 예측 할 수 있는 문제란?

  • 예를 들면, Airbnb 에서 숙소 임대료를 예측하는 ML 이 있다고 가정해본다면 입력 데이터로 방의 넓이, 방 개수, 지역, 편의 시설, 평점 등을 넣으면 출력 값으로 숙소 임대료를 내놓는 시스템을 말한다.

 

Q) 복잡한 패턴이란?

  • 복잡한 패턴이란, 주식 가격을 예측하는 것을 말한다.
  • 단순한 패턴이라면 사람이 구현하면 되니까. 예를 들면 데이터베이스에 복잡한 쿼리를 날리는 문제를 생각해보면 됨. 그 정도의 문제는 단순한 것이다.

Q) 데이터로 학습해보기 전까지는 패턴이 존재하지 않을수도 있나요?

  • 그렇다. 가위 바위 보 데이터를 백 날 학습한다고 해도, 다음 사람이 무엇을 낼 지 예측하기 힘들 것.

 

Q) 피처 엔지니어링을 하는 이유는?

  • 기존 데이터로 학습을 하기에는 모델이 패턴을 파악하기 더 어려울 수 있으니까.

 

Q) ML 을 소프트웨어 2.0 이라고 부르는 이유는?

  • 기존의 소프트웨어는 "입력 + 알고리즘(= 패턴) => 출력" 인 방식이었다면, ML 은 "입력 + 출력 => 패턴" 인 방식으로 동작한다.

 

Q) 제로샷 학습이란?

  • 학습하지 않은 ML 을 사용하는 걸 말함.
  • 다만 이런 모델은 다른 연관된 데이터로 이미 학습이 되어있음.

 

Q) 연속 학습이란?

  • 서비스 중에 들어온 새로운 데이터로 지속적으로 학습 하는 걸 말한다. 계속해서 데이터들이 패턴이 조금씩 변경되는 경우에는 연속 학습이 중요하다.

 

Q) 연속 학습에서 주의해야 할 점은?

  • 연속 학습은 새로운 학습 데이터가 기존 데이터와 상충되는 경우에는 모델의 성능을 낮추는 문제가 발생할 수 있다.

 

Q) Concept Drift 란?

  • 새로운 데이터의 패턴이 기존 데이터와 달라져서, 예측에 실패하는 것을 말함.

 

Q) Data Noise 란?

  • 데이터가 오류나 잘못된 정보를 포함하는 걸 말함.

 

Q) Forgetting Problem 과 Catastrophic Forgetting 이란?

  • 새로운 학습을 통해서 이전에 학습했던 데이터 정보를 잊어먹는 현상을 말한다.

 

Q) 요즘 데이터 전처리 과정은 어떻게 하는가?

  • 전통적인 프로그래밍 방식 vs GPT 를 사용하는 방식 이렇게 있음.
  • GPT 만을 사용해야 하는 경우도 있는데, 주로 복잡한 작업과 같은 경우. (e.g 텍스트를 작성해내는 일)

 

ML 을 사용하면 안되는 경우는?

  • 비윤리적인 경우:
    • 잘못된 예측이 발생하면 사람에게 큰 피해를 줄 수 있는 경우. ex) 영국의 코로나 시절 자동 채점기 기능. 그걸로 영국 학생들은 잘못된 성적 평가를 받게 되었음.
  • 단순한 솔루션이 효과있는 경우:
    • 전통적인 프로그래밍 방식이 효과적임.
  • 비용 효율적이지 않는 경우:
    • 기본적으로 ML 은 비용이 많이든다. 인프라부터, 데이터 수집, 모델 학습 등

 

ML 어플리케이션의 유스 케이스는?

  • 사용자가 원할만한 컨텐츠를 추천해주는 검색 엔진과 추천 시스템
  • 사용자가 쓸 내용을 제안해주는 타이핑 예측 시스템
  • 한 언어를 다른 언어로 번역하는 기계 번역
  • 외부인이 들어오면 알려주는 스마트 보안 시스템
  • 이상 거래 행위를 발견하는 이상 거래 탐지 시스템
  • 제품이나 서비스의 가격을 정해서 회사의 매출을 올리는 가격 최적화 시스템. (e.g 인터넷 광고, 항공권, 숙박 예약, 승차 공유 등)
  • 새로운 고객을 모집하는 비용이 기존 고객을 관리하는 비용보다 훨씬 비싸므로 기존 고객이 이탈하지 않게 만들어야한다. 고객 이탈 예측 시스템 (고객의 문제를 빠르게 해결하도록, 고객의 문제 레포트를 올바른 부서에 전달하는 시스템을 말함.)
  • 피부암, 당뇨병 등을 진단해주는 헬스케어 시스템

 

기업용 ML 어플리케이션과 소비자용 ML 어플리케이션의 차이는?

기업용 ML 어플리케이션이 좀 더 정확도를 요구하고, 레이턴시에서는 관대하다. 대규모 스케일이라서 정확도가 올라갈수록 비용이 크게 줄어드는 구조임.

  • 구글 같은 경우는 0.1% 리소스 할당 효율성이 올라가기만해도, 수백만 달러가 줄어든다. (더 적은 시스템 자원을 사용해도 되니까.)

 

반면에 소비자용 ML 어플리케이션은 레이턴시가 좀 더 중요하다. 소비자 입장에서는 95% -> 95.5% 로 모델의 성능이 올라간게 체감이 되지는 않을거임.

  • 1초의 latency 만 증가해도, 소비자가 앱을 떠날 수 있음. Latency 는 소비자의 인내심을 의미하며, 이런 인내심은 점점 낮아질 거임.
  • 100ms 가 지연되면 전환율(Conversation Rate) 가 7% 감소한다는 연구와 구글에서는 페이지 로드가 3초 이상 걸리면 모바일 사용자들은 절반 이상이 페이지를 떠난다는 사실이 있음.
  • 그렇다고 정확도가 중요하지 않다는 건 당연히 아님. 

 

연구용 ML 과 프로덕션 ML 의 차이점은?

기준 연구용 ML 프로덕션용 ML
요구사항 벤치마크 데이터 셋에서 최적의 모델 성능 달성하기 안정성, 확장성, 성능, 유지 관리 용이성에 더 엄격한 요구사항 및 이해관계자마다 다름
계산 우선순위 빠른 모델 훈련과 높은 처리량 빠른 추론과 낮은 레이턴시
데이터 정적이다. 끊임없이 변동한다.
공정성 이론적 수준에서만 고려하거나, 고려하지 않는다. 사용자에게 실제 영향을 미침, 모든 사용자에게 공정한 결과 제공 필수
해석 가능성 성능 개선에 더 큰 노력을 한다. 고려하지 않는 경우도 많음. 사용자 및 이해관계자에게 모델 결정 설명 및 신뢰 구축을 위해 중요하다.

 

Q) 벤치마크란?, 벤치마크 데이터 셋이란?

  • 벤치마크:
    • 두 개 이상의 대상을 객관적으로 비교하기 위해서 사용된다. (e.g 성능 측정, 품질 평가, 효율성 평가 등)
  • 벤치마크 데이터 셋:
    • 특정 모델의 알고리즘 성능을 평가/비교하기 위해 널리 인정받는 일반적인 데이터들을 말함.

 

프로덕션 ML 은 요구사항이 더 많고, 복잡하다.

Q) 프로덕션 ML 요구사항에서 말하는 "이해관계자마다 요구사항이 다름" 은 무엇을 말하는가?

  • ML 프로젝트를 진행할 때 여러 이해관계자들이 붙는다:
    • ML 엔지니어
    • 영업팀
    • 제품팀
    • ML 플랫폼팀
    • 관리자
  • 각각의 이해관계자들은 목적이 다르다. 음식점 메뉴를 추천하는 예시를 생각해보자.
    • ML 엔지니어: 모델의 성능을 추구
    • 영업팀: 회사 매출을 위해 더 비싼 메뉴를 추천하는 걸 원함.
    • 제품팀: 더 낮은 레이턴시를 원함. (레이턴시가 높을수록 고객이 떠나니까.)
    • ML 플랫폼팀: 안정적인 ML 서비스 유지를 위해서, 간단한 모델 배포 시스템을 원하고, 모델 업데이트는 가능한 원하지 않는다.
    • 관리자: 최대 마진을 위해서, ML 팀을 내보내는 걸 언제나 생각 중이고, 대체가능성을 원한다.

 

Q) 앙상블 러닝(Ensemble Learning) 이란?

  • 여러개의 독립적인 모델을 이용해서 예측 하고, 결합을 해서 결과를 반환하는 방식.
  • 이렇게 사용하는 이유는 단일 모델보다 성능이 좋은 경우가 있으며, 여러 이해관계자들의 요구를 충족시키기 위해서임.

 

Q) 앙상블 러닝의 단점은?

  • 여러개의 모델을 관리해야 하므로 유지보수 비용 증가, 모델 학습을 위한 리소스 사용량 증가, 배포 복잡도 증가 등이 있다.

 

Q) 목적함수(Objective Function) 이란?

  • 목적함수는 모델이 최적화해야 할 목표를 말하며, 목적함수를 최적화하면 성능이 잘 나온다.

 

연구용 ML 과 프로덕션용 ML 은 데이터 조차 다르다.

실제 세상의 데이터가 훨씬 오류가 많고, 비정형 데이터이고, 데이터가 편향되었을 수 있고, 레이블이 올바르지 않을 수 있으며, 개인 정보 보호도 고려해야한다.

 

Q) 데이터에서 레이블이란?

  • 데이터의 출력값을 말한다. 예시로 스팸 메일을 구별하기 위한 ML 시스템에서 학습하려는 데이터가 있다고 가정해보자.
  • 레이블은 스팸인지 여부를 말하는 출력값이다.

 

실제 프로덕션 ML 을 구축할 때는 모델 알고리즘과 관련된 문제보다는 데이터와 관련된 문제가 더 많다.

데이터와 관련된 문제는 다음과 같다:

  • 데이터 품질
  • 데이터 준비
  • 데이터 가용성
  • 실시간 데이터 처리
  • 데이터 관리 및 모니터링

 

데이터 품질 문제:

  • 결측치나 오류를 포함한 데이터, 잘못 레이블링된 데이터.
    • 결측치는 관측되어야 할 값이 누락되어 있는 걸 말함.
  • 일관성없는 형태의 데이터들

 

데이터 준비 문제:

  • 데이터 전처리 과정이 필요하다는 걸 말함.
  • 피처 엔지니어링 과정이 필요하다는 걸 말함.

 

데이터 가용성 문제:

  • 고품질의 데이터 확보 문제
  • 개인 정보 같은 데이터는 사용할 수 없음

 

실시간 데이터 처리:

  • 실시간으로 데이터를 처리하고 모델을 지속적으로 개선하는 문제를 말함.

 

데이터 관리 및 모니터링 문제:

  • 데이터 거버넌스 구축:
    • 데이터 품질을 유지하고, 데이터 규제 같은 것도 준수하고, 데이터 보안도 강화하고 이런 것들
  • 프로덕션 환경의 모델 성능을 지속적으로 모니터링하고 필요한 경우 재학습 시켜야한다.

 

연구용 ML 에서는 공정성을 크게 다루지 않는다.

공정성:

  • 중요하지도 않은 요인 때문에 결과가 다르게 나오는 현상을 말함.
  • 예측이 모든 개인과 그룹에 대해 편견 없이, 차별 없이 이루어져야 한다는 원칙
  • 대출 심사 시스템에서 흑인이라는 이유 때문에 대출이 거절되는 것.

 

Q) 공정성 문제는 왜 일어나는걸까?

  • 과거의 기존 데이터로 학습을 하기 때문에, 학습한 데이터가 편향이 존재하는거지.

 

Q) 공정성 문제를 인식하는 방법은?

  • 모델을 평가할 때가 공정성을 평가할 수 있는 테스트 데이터 셋을 이용하는 것.

 

Q) 공정성 문제를 해결하는 방법은?

  • 데이터 전처리 단계에서 편향이 담긴 데이터를 올바로 잡는 것

 

연구용 ML 에서는 해석 가능성이 중요하게 고려되지 않지만 실제 프로덕트 ML 에서는 중요하다.

해석 가능성:

  • 모델이 어떻게 동작하는지 이해할 수 있는 것. 블랙 박스처럼 이해 못하면 안됨.

 

Q) 해석 가능성이 없으면 무슨 문제가 발생하는가?

  • 예측이 편향되는 문제가 발생할 수 있다.
  • 개발자가 디버깅을 하기 힘들다.

 

ML 과 전통 소프트웨어 차이점은?

기존 소프트웨어는 코드와, 빌드 아티팩트만 관리하면 되었다. 하지만 ML 소프트웨어는 추가로 데이터를 더 관리해야하며, 사용하는 리소스 양도 훨씬 많다.

 

데이터 관리 문제:

  • 학습에 사용되는 대규모 데이터 셋 버전 관리.
  • 연속 학습 방법이 이용되지만 변경되지 않는 코어 데이터 관리도 중요
  • 일부 데이터 샘플이 다른 데이터 샘플보다 훨씬 값질 수 있음.
  • 데이터 오염 공격 문제 방지

 

Larger ML 모델 문제:

  • 수십억개의 매개변수를 포함하는 ML 모델에게 필요한 메모리양은 GB 에 해당한다.

 

엣지 디바이스에 ML 적용 문제:

  • 엣지 디바이스는 사용 가능한 메모리 양이 한정되어 있음.

 

Reference

'Machine Learning' 카테고리의 다른 글

모델 개발과 오프라인 평가  (0) 2024.04.15
피처 엔지니어링  (0) 2024.04.11
훈련 데이터  (0) 2024.04.05
데이터 엔지니어링 기초  (0) 2024.04.03
머신러닝 시스템 설계 소개  (0) 2024.04.02

+ Recent posts