Data-centric AI
흔히 AI 모델의 성능을 개선하는 방법은 두 가지로 나뉩니다.
모델을 개선하거나(Model-centric) 데이터를 개선하는(Data-centric) 것입니다.
AI 연구를 하다 보면 보통은 모델을 개선하는 부분에 신경을 많이 씁니다.
보통 데이터는 벤치마크 데이터셋으로 사용하고 데이터 외적인 부분을 개선해서 다른 연구와 성능을 비교하기 위해서입니다.
반면 데이터에 관한 연구는 흔치 않습니다.
Andrew Ng 교수는 한 강연에서 MLOps 가 모델 중심에서 데이터 중심으로 변화해야 한다고 이야기합니다. 관련 내용과 더불어 개인적인 견해를 써보려 합니다.
강연 제목 : A Chat with Andrew on MLOps: From Model-centric to Data-centric AI
발표자 : ANDREW NG
강연 영상 : https://www.youtube.com/watch?v=06-AZXmwHjo
본 강연에서 AI 시스템은 모델, 알고리즘, 데이터로 구성되어 있다고 이야기합니다.
결함이 있는 철판을 찾는 문제(Anomaly Detection)에서 기존 시스템은 76% 정도의 정확도를 가지지만 목표치는 90%로 잡고 있습니다.
이때 Code에 해당하는 모델이나 알고리즘은 개선하는 게 좋을까요?
데이터를 개선하는 것이 좋을까요?
강연에서 실험한 결과는 모델 중심의 개선 방법으로는 정확도가 전혀 개선되지 않았고, 데이터 중심 방법으로 시스템을 개선했을 때는 정확도가 17% 가량 증가했다고 합니다.
실험 결과와 더불어 발표자는 머신러닝 시스템 개발 업무의 80%의 지분을 차지하는 데이터에 더 많은 관심을 가지고 이를 개선하기 위한 노력이 필요하다고 이야기합니다.
그렇다면 양질의 데이터는 무엇을 의미할까요?
강연에서는 이구아나 탐지 문제를 예시로 들어 양질의 데이터를 구성하는 중요한 요소인 Label Consistency (정답 일관성)을 설명합니다.
데이터의 label을 생성하기 위해 작업자가 수작업으로 이구아나가 보이는 곳에 네모 박스를 그리게 됩니다.
두 마리의 이구아나가 보일 때 누군가는 한 번에 이들을 묶어서 박스를 그릴 수도 있고 다른 사람은 두 마리에 따로 박스를 그릴 수도 있습니다. 작업자마다 다른 기준으로 label을 생성하게 되면 AI 모델은 마치 동일한 문제이지만 다른 정답이 있는 문제집을 풀면서 공부를 하는 것과 같습니다.
때문에 데이터를 생성할 때 정답 일관성을 유지하는 것이 굉장히 중요합니다.
특히 데이터의 양이 적을수록 노이지한 데이터의 악영향은 크게 발생하기 때문에 label 일관성을 잘 유지해야 합니다.
발표자는 예시로 speech recognition 시스템을 개선할 때 자동차 소음 때문에 모델을 아무리 개선해도 실제 성능이 개선되지 않았다고 합니다. 이때 데이터 개선에 집중하는 순간부터 성능이 개선되기 시작했다고 합니다.
Data-centric 한 방법으로 AI 시스템을 개선하기 위해서는 어떻게 해야 할까요?
강연에서는 아래와 같은 방법을 반복적으로 수행하며 데이터를 개선해야 한다고 합니다.
1) Model Training
2) Error Analysis
3) Change Input : Data augmentation, generation, collection,...
Change Output : Give more consistent definition for labels
1) Systematically Check for concept drift/data drift
2) Flow data back to retrain/update model regularly
AI 연구자에게 데이터의 중요성을 다시 한번 생각해보게 해주는 좋은 강연이라고 생각합니다.
데이터 확보가 중요한 task가 꽤 있는데 그중 대표적인 것은 이미지에서 텍스트 위치를 찾고 텍스트를 읽는 OCR입니다. 업스테이지라는 회사에서는 이 문제를 효과적으로 풀기 위해 데이터를 확보하는데만 1년의 시간을 썼다고 합니다.
데이터 확보는 단순히 labeling 만을 뜻하는 게 아니고 현재 문제를 해결하기 위해 어떤 AI 모델을 사용할 것인지, 어느 정도의 데이터가 필요한지, 합성 데이터를 생성할 것인지 등등 많은 의문점들을 해결하면서 데이터를 구축해나가는 것을 의미합니다.
때문에 데이터를 확보하기 전에 풀고자 하는 문제에 대한 충분한 서베이와 모델에 대한 이해가 필요합니다.
paper with code 웹사이트를 보면 1~2년 전 AI 모델 성능과 현재 모델 성능이 굉장히 차이가 많이 나는 task들이 많습니다. 하지만 이들은 고정된 학습 데이터셋으로 학습한 모델로 고정된 테스트 데이터셋을 테스트합니다.
하지만 실제로 AI 시스템을 만들 땐 고정된 데이터셋을 사용해야 하는 것이 아니므로 data-centric 한 여러 시도를 해볼 수 있을 것 같습니다.
정리해보면 AI 시스템 개선하기 위해서 양질의 데이터를 확보하는 것은 굉장히 중요하기 때문에 AI 개발자라면 model-centric 방법과 더불어 data-centric 한 접근 방법을 늘 유념해두는 것이 좋다고 생각합니다.