해당 게시물은 ML 프로덕션 환경 속에 있는 내가 모델 개발에만 열중하고 전반적인 시스템 설계에 대한 배경지식이 없었던 와중에 옆자리 팀원한테 추천 받아서 읽게된 한빛미디어의 "머신러닝 시스템 설계"를 공부하면서 요약한 게시물로, 저작권은 한빛미디어에게 있겠습니다.
'학습' : ML 시스템이 학습하기 위한 '대상'이 있어야하고,
대부분의 경우 '데이터'로 학습함
예를 들어 지도 학습 모델이면 한 쌍으로 이뤄진 입력과 출력 데이터를 이용해 입력 데이터에서 출력 데이터를 생성하는 관계를 학습
예) 에어비엔비(aIRBNB) 숙소 임대료 예측 방법을 위한 ML 시스템 구축
: 입력값 - 관련 특성 (넓이, 방 개수, 지역, 편의 시설, 평점)
출력값 - 임대료
: 학습 완료 시 ML 시스템은 특성 값을 감안해 새 숙소의 임대료 예측
'패턴' : ML 시스템은 '학습할 패턴' 이 있을 때만 유용함
예를 들어 주사위 결과 예측은 결과가 생성되는 방식에 패턴이 없음
그러나, 주식 가격 책정 방식은 패턴이 있어서, 기업을 이를 학습하는 ML 시스템을 구축하기 위해 투자함
- 그러나, 패턴이 있는지 명확하지 않거나 패턴이 있어도 데이터셋 또는 ML 알고리즘이 이를 포착하기에 충분하지 않기도 함
예를 들어 일론 머스크의 트윗이 암호화폐 가격에 미치는 영향에 패턴이 있을 수 있지만, 그 트윗으로 ml 모델을 엄격하게 훈련하고 평가하기 전까지는 패턴 유무를 알 수 없으며, 모든 모델이 암호화폐 가격을 합리적으로 예측하지 못한다고 해서 패턴이 없는 것도 아님
- 전통적인 소프트웨어는 입력과 패턴을 넣어 출력하지만,
머신러닝(ML)은 입력과 패턴을 넣어 출력함
'데이터' : 학습 가능한 데이터가 있어야함
- 제로샷 학습(Zero-shot learning)의 맥락에서 ML 시스템은 특정 작업 관련 데이터로 훈련하지 않아도 좋은 예측을 해낼 수 있음
그러나, 이 시스템은 특정 작업과 연관된 다른 데이터로 훈련되는 것이 일반적으로 시스템이 학습을 하려면 당면한 작업에 대한 학습 데이터는 필요하지 않더라도 데이터는 필요함
- 연속 학습(continual learning) : 어떤 데이터로도 훈련하지 않은 ML 모델 배포 후 프로덕션 환경에서 들어오는 데이터로 학습
- 데이터가 없고 연속 학습도 사용할 수 없을 때, ML 모델이 있는 것처럼 작동하는 룰이나 소프트웨어를 운용하면서 데이터를 수집하여 모델이 만들어질 수 있는 여건 마련
'예측' : ML 모델은 예측을 수행해, 예측을 통한 답변이 필요한 문제를 주료 해결함
예측 : 미래 가치를 추정. 예를 들어 내일 날씨? 슈퍼볼 우승자? 사용자가 다음으로 보고 싶어 할 영화?
'본 적 없는 데이터' :
모델이 기존 데이터로 학습한 패턴이 유용한 경우는 본 적 없는 데이터에 동일한 패턴이 있는 경우
- "본 적 없는 데이터인데 어떤 분포에서 생성됐는지 어떻게 아나요?"=> 다만 미래의 사용자 행동이 오늘의 사용자 행동과 다르지 않을 것으로 가정하고 작업 진행
'반복적' :
작업이 반복되면 각 패턴이 여러 차례 반복되어 기계가 학습하기 쉬움
'잘못된 예측으로 발생하는 비용 낮음'
- ML 모델의 성능이 항상 100%가 아니라면, 모델은 어느 정도 실수가 있음.
- 그러나 추천시스템의 경우 적합하지 않더라도 큰 문제를 야기하지는 않음. ML은 이처럼 잘못된 예측으로 발생하는 비용이 낮을 때 적합함
'대규모로 수행'
- ML 솔루션은 데이터, 컴퓨팅, 인프라와 인재 등 선행 투자를 필요로 해서 대규모로 적용 가능할 때 합리적이라고 간주함
- 주어진 문제가 대규모로 수행된다는 점은 수집할 데이터가 많음을 의미하며, ML 모델을 훈련하는데 유용한 성질
'패턴이 지속적으로 변화함'
- 문제가 하나 이상의 지속적으로 변하는 패턴과 관련됐다면, 하드코딩한 솔루션은 구식이 될 수 있음.
그러나 ML은 데이터로 학습하므로, 데이터가 어떻게 변하는지 명시적으로 파악할 필요 없이 새로운 데이터를 통해 ML 모델을 업데이트함
ML 시스템 설계시 모델 개발에 집중해 배포와 유지 관리를 소홀히 하기 쉬움
모델 개발 프로세스에서는 다른 모델 여러개를 훈련하고, 각 모델은 훈련 데이터를 여러번 순회한다.
모델 개발 단계에서는 '훈련'이 병목이 되지만, 모델을 배포하면 모델의 역할은 예측을 생성하는 일로 '추론'이 병목이다.
스루풋(Throughput) 과 레이턴시(Latency)
데이터(data)
공정성
- ML 알고리즘은 과거 시점 데이터를 대량으로 분석하고 패턴을 찾아내 이를 기반으로 신규 데이터에 대한 추론을 수행함.
- 훈련 시점과 추론 시점이 일 치하지 않아 시점 차이에서 발생할 수 있는 데이터 분포 시프트 같은 편향 발생할 수 있음