[리뷰] 앤드류 응 교수님의 A Chat with Andrew on MLOps: From Model-centric to Data-centric AI
다음은 지난 3월 25일 앤드류 응 교수님이 유튜브를 통해 진행한 A Chat with Andrew on MLOps: From Model-centric to Data-centric AI의 내용을 요약한 것입니다. 이 세미나는 두 가지 내용으로 진행되었습니다.
- From Model-centric to Data-centric: Model-centric AI/ML 개발을 통해 성능 개선에 한계가 있을 때 Data-centric AI/ML 개발을 통해 극복 가능하다라는 것을 설명합니다.
- The rise of MLOps: Traditional SW 개발과 AI SW 개발 방식을 비교하고 AL SW 개발에 MLOps을 적용하여 데이터의 High Quality를 보장할 것을 강조합니다.
https://www.youtube.com/watch?v=06-AZXmwHjo&t=2723s
From Model-centric to Data-centric
AI 시스템은 Code와 Data로 구성되어 있습니다. 앤드류 응 교수님은 AI Code와 Data 중에 High Quality 데이터셋을 준비하는 것이 가장 중요하다라고 강조합니다.
AI system = Code (Model/Algorithm)+ Data
이 강의에서는 강판의 결함을 데이터 수정을 통해 정확도를 개선하는 사례를 소개합니다. 강판에 다음과 같은 결함이 있는데 현재 Baseline 정확도는 76.2%이나 타겟 정확도는 90% 일때 어떻게 정확도를 올릴 수 있을까요?
앤드류 응 교수님은 Model을 수정할 때 정확도 개선 효과가 전혀 없었지만(+0.0%), Data를 수정하면 93.1%를 달성하여 정확도를 +16.9% 개선하였다고 합니다.
Data is Food for AI
AI 모델 학습은 음식을 만드는 과정과 비슷합니다. 가장 중요한 좋은 재료를 준비하는 과정에 오랜 시간이 필요합니다. AI 모델 학습 역시 좋은 데이터를 모으는 체계적인 방법이 필요합니다. AI 모델 학습에도 파레토 법칙이 지배합니다.
Preparation(80%) + Action (20%)
신선하고 품질이 좋은 재료 준비에 80%의 시간, 실제 요리에는 20%이 시간이 소요되는 것과 같이 AI 모델 학습 전 High Quality 데이터를 준비하는데 80%의 시간이 걸리는 반면 정작 AI 모델 학습에는 20%의 시간이 걸린다고 합니다.
High Quality 데이터이란?
그렇다면 High Quality 데이터란 무엇인가? 앤드류 응 교수님은 High Quality 데이터셋을 만들기 위해선 데이터 라벨링을 일관성이 중요하다라고 지적합니다. 예를 들어 Labeler들이 데이터를 라벨링할 때 Labeler마다 기준이 다르므로 데이터 라벨의 일관성이 저하되는데 이것이 데이터셋의 Quality에 큰 영향을 미친다고 설명합니다.
실제 사람의 음성을 듣고 라벨링하는 것은 Labeler들마다 기준이 달라 일관성이 없을 수 있습니다. 누군가는 의성어 “Um”을 ‘Um,’으로 표현할 수 있고 “Um…”로 표기할 수 있고 아예 “Um”을 불필요하다라고 생각하고 “Um”을 생략하는 사람도 있을 수 있습니다.
“Um, today’s weather”
“Um… today’s weather”
“Today’s weather”
또한 이구아나 그림의 bounding box를 칠 때 Labeler들마다 다른 기준으로 bounding box를 표시할 수 있습니다. 아래와 같이 꼬리까지 이구아나로 인식하는 Labeler도 있고, 두 이구아나를 분리하여 bounding box를 치는 Labeler도 있을 수 있습니다.
Data Quality를 체계적으로 유지하는 방법
앤드류 응 교수님은 이러한 Labeler간 기준이 달라 발생하는 라벨링 일관성의 불일치를 개선하기 위해 라벨링 일관성을 유지하는 체계적인 방법을 제안합니다.
- 두 독립적인 Labeler에게 이미지 샘플을 라벨링하도록 요청
- 서로 다르게 라벨링한 것을 찾기 위해 Labeler간 일관성 확인 요청
- 서로 일치하지 않는 라벨링에 대해서 그들이 일치할 때까지 라벨링 지시서를 수정
Small Data & Label Consistency
Smaller 데이터셋일수록 라벨링 일관성이 더 중요합니다. 다음 사례는 헬리콥터의 입력 Voltage와 Speed 관계를 학습한 모델을 추론하였을 때 결과입니다. Small data+Noisy Label인 데이터셋으로 학습한 경우 추론 정확도가 낮은 반면 Small data+Clean Label인 데이터셋으로 학습한 경우 추론 정확도가 높습니다.
하지만 Noisy label을 가진 데이터셋이라도 데이터셋의 규모가 크다면 추론 정확도가 높습니다. 다른 예로 Clean Labeling과 Noisy Labeling을 비교합니다. 500개의 example, 12%에 Noise가 섞여 있는 데이터 (incorrectly or inconsistently labeled)가 있다라고 가정합니다. 이 데이터셋의 정확도를 개선하는 방법은 2가지가 있습니다.
하나는 Noise를 제거하는 방법, 나머지 하나는 다른 500개의 새로운 example을 수집하여 추가하는 방법입니다.
Clean vs. Noisy data
그렇다면 Small data (w/ Clean Labeling)과 Larger data (w/ Noisy Labeling)을 비교한다면 어떠한 것이 더 정확도 개선에 효율적일까요? 다음 사례는 오토모티브 컨포넌트를 분류하는 문제로 Noisy Label을 가진 데이터셋은 Clean Label을 가진 데이터셋에 비해 훨씬 더 많은 데이터셋을 학습해야 동등한 정확도를 나타낼 수 있음을 알 수 있습니다.
앤드류 응 교수님은 Small data 문제는 Big data에서도 볼 수있는 문제로 Big data의 long tail에 위치한 데이터는 Small data 문제와 동일한 문제를 겪을 수있다라고 지적하고 있습니다.
Data-centric AI 개발 방법
만일 백그라운드의 Car Noise가 있는 Speech에 성능이 떨어지는 알고리즘이 있다면 성능을 개선하기 위해 무엇을 해야 할까요? 기존 Model-centric AI 개발 방법은 filter를 이용하여 lower frequency를 제거하는 방법과 같이 모델을 수정하여 성능 개선을 시도할 것입니다. 앤드류 응 교수님은 Data-centric AI 개발 방법에서는 다음과 같이 데이터를 수정하여 성능 개선을 시도한다라고 설명합니다.
- 새로운 example: Car noise가 있는 데이터를 추가로 수집
- 데이터 증강(Data augmentation): 백그라운드 Noise가 있는 데이터를 만들어 냄
- Clean Labeling
Data Quality를 개선하기 위해 1) 모델 학습 → 2) 어떠한 종류의 데이터에 알고리즘이 취약한지 Error Analysis(e.g., Speech with Noise) → 3) Data Augmentation, Data Generation, Data Collection을 통해 더 많은 데이터를 수집 하던지 Label의 일관성 개선 등, 이 3 단계를 반복합니다. 이러한 작업을 체계적으로 하기 위해선 MLOps의 도입이 필요합니다.
The rise of MLOps
MLOps는 DevOps 원칙을 AI/ML에 도입하여 ML 시스템 개발(Dev)과 ML 시스템 운영(Ops)을 통합하는 것을 목표로 하는 ML 엔지니어링 문화 및 방식입니다.
AI SW는 전통적인 SW 방식에 데이터 수집과 모델 학습이라는 과정이 추가되었다. 이러한 AI SW 개발 방식에 MLOps를 적용하여 High Quality Data를 일관적으로 보장하려면 각 단계에서 다음과 같은 사항을 고려해야 한다.
- Collect data: 데이터를 어떻게 정의하고 모을 것인가?
- Train model: 모델 성능을 개선하기 위해 어떻게 데이터를 수정할 것인지?
- Deploy in production: concept/data drift를 추적하기 위해 어떠한 데이터가 필요한지?
앤드류 응 교수님은 MLOps의 가장 중요한 태스크는 ML 프로젝트 Life-Cycle의 모든 단계에서 일관적으로 High Quality 데이터를 보장하는 것으로 성능 개선을 위해 Big Data (데이터의 양) 보다는 Good Data (데이터의 질)이 좀더 중요하다라고 설명합니다. 여기서 Good Data란 다음과 같이 정의될 수 있습니다.
- 일관되게 정의된 데이터 (주어진 x에 대해 Label y의 정의가 모호하지 않아야 한다.)
- 중요한 케이스를 커버함 (즉 Good Coverage와 백그라운드에 자동차 소음을 가진 충분한 음성 데이터를 확보해야한다.)
- Production Data로부터 시기적절하게 피드백을 가져야 함 (분포는 data drift 와 concept drift를 커버해야 한다)
- 적절한 크기로 변환되어함 (Sized appropriately)
시사점
Big Transfer 논문에서 알 수 있 듯 새로운 모델을 설계하지 않고 기존 Resnet 모델을 Imagenet-300M과 같은 거대한 데이터셋으로 학습한 후 downstream task로 fine-tuning 했을 때 SOTA 정확도를 달성할수 있다는 것을 확인하였습니다. 하지만 Big Transfer와 같은 방법은 거대한 데이터셋을 활용할 수 있는 Google와 같은 업체들만이 사용할 수 있는 방법입니다.
실제 많은 AI/ML 케이스는 Data 양이 부족하여 Data 추가를 통해 성능 개선이 어려운 경우가 많습니다. 이러한 경우 앤드류 응 교수님은 성능 개선을 위해 기존 데이터셋을 Label Cleaning와 라벨리의 일관성을 유지하여 High Quality 데이터로 변모시킬 것을 주문하고 있습니다.
AI 모델의 성능 개선을 위해서 모델을 새로 만든다든지 학습 시 하이퍼파라미터를 조정하는 방법으로 성능을 높여왔는데 이젠 수집된 데이터셋의 Quality를 개선하여 성능을 향상시키는 것을 고려해봐야할 것입니다.