코드보다 데이터?
(1)데이터 중심 AI로의 이동
그동안 AI 발전의 스포트라이트는 주로 모델(Model)쪽에 집중되었습니다. 그동안 다른 콘텐츠에서도 언급된 바 있는 CNN, Transformer, GPT 등이 바로 모델이죠. 하지만 최근 오랫동안 이어져 온 이 거대한 흐름에 변화가 일어나기 시작했습니다.
지난 2021년 3월, 앤드류 응(Andrew NG)은 ‘머신러닝 시스템 개발: 모델 중심에서 데이터 중심으로(A Chat with Andrew on MLOps: From Model-centric to Data-centric AI)'*라는 세미나를 진행합니다. 그동안 모델 연구에 치우쳐 있던 AI 분야에 ‘데이터 중심(Data-centric) AI’라는 새로운 화두를 던진 것이죠. 언제까지나 모델만 주목할 것이 아니라, 이제는 데이터에 더 주목해야 할 때가 왔음을 알린 것입니다.
응은 얀 르쿤(Yann André LeCun), 요슈아 벤지오(Yoshua Bengio), 제프린 힌튼(Geoffrey Everest Hinton)과 함께 세계적인 AI 구루로 불립니다. 스탠퍼드대 교수이자 코세라(Coursera)의 창립자이며, 구글 브레인을 이끌며 딥러닝의 시대를 열었고, 최근에는 랜딩(Landing) AI라는 주목받는 스타트업을 창업하기도 했죠. 이런 그가 “AI는 모델 중심이 아닌 데이터 중심으로 발전해 나갈 것이다."라고 선언한 것입니다.
모델 중심 AI? 데이터 중심AI?
AI 시스템은 코드(Model/Algorithm)와 데이터로 이루어져 있습니다. 그래서 AI 연구의 접근 방법도 '모델 중심(Model-centric) AI'와 '데이터 중심(Data-centric) AI'로 나눠볼 수 있죠. 여기에는 AI는 ‘코드나 알고리즘에 의해 발전하는가’, 아니면 ‘데이터의 체계화에 의해서인가’라는 근본적인 관점의 차이가 존재합니다.
Data is food for AI
데이터는 AI의 양식이라고 합니다.
일반적으로 AI 프로젝트의 80%는 질 좋은 재료, 즉 데이터를 준비하는데 쓰이고 나머지 20%가 모델을 학습시키는데 사용됩니다. 그만큼 AI 개발에 있어 데이터가 차지하는 비중이 큰 것이죠. 하지만 아이러니하게도 99%의 AI 연구는 모델의 개선에 대해서만 이야기하고, 단지 1%의 연구만이 데이터에 관해 다룬다고 합니다.
그만큼 (실제 비중에 비해) 데이터의 중요성은 간과되어 왔습니다. 조금 과장하자면 대부분은 코드만 뜯어고치고 있었다고 볼 수 있죠. 하지만 이 세미나를 통해 앤드류 응은 ‘실질적으로 AI의 성능을 높이는 것은 코드에 대한 개선이 아닌 데이터에 대한 개선’이라며 일침을 놓습니다.
모델 개선 vs 데이터 개선, 실제 결과는?
위 도표를 보면 모델의 하이퍼 파라미터(Hyper parameter)**를 조절했을 때 기준 모델(Baseline model)***은 76.2% 정확도를 기록한 데 비해, 데이터를 개선했을 때는 무려 93.1% 정확도를 기록한 것을 확인할 수 있습니다. 그의 경험상 실제로도 이런 경우가 많았었고, (코드는 건드리지 않고) 데이터만 개선하는 방법으로 더 좋은 결과를 만들어낸 적이 꽤나 많았다고 합니다.
일관성있는 데이터 레이블의 중요성
일관성있는 레이블이란 동일한 데이터는 누가 작업하더라도 동일하게 레이블되는 것을 의미합니다. 음성인식(ARS) 시스템 개발에 사용되는 데이터를 예로 들어보죠. 아래와 같은 3가지 방식으로 레이블 된 데이터가 있다고 할 때, 과연 어떤 것이 맞는 것일까요?
1) “Um, today’s weather”
2) “Um…today’s weather”
3) “Today’s Weather”
응에 따르면 3가지 모두 괜찮다고 합니다. 다만 일관성있게(Consistently) 통일되어야만 하죠. 일관성없게 레이블 된 데이터로 학습한 모델은 성능이 떨어질 가능성이 높아지기 때문입니다.
이런 것은 상대가 인간이라면 무시할 수도 있는 사소한 부분입니다. 하지만 AI를 대상으로 하기에 완전히 다른 상황이 벌어질 수도 있죠. 어떤 데이터에는 ‘Um’이 있고, 어떤 데이터에는 없다면 (데이터 학습에 의존하는) AI 입장에서는 혼란스러울 수 밖에 없으니까요.
체계적인 데이터 일관성 향상의 방법
# 2인의 독립적인 작업자에게 샘플 데이터 라벨링을 요청한다.
# 두 작업자의 라벨링이 얼마나 일치하는지 측정한다.
# 일치하지 않는 부분의 가이드라인을 수정하고, 이를 일관된 라벨링 결과물이 나올 때 까지 반복한다.
이렇게 크라우드워커를 이용하는 데이터 수집, 가공은 실제 현장에서도 꼭 필요한 과정입니다. 실제 LETR팀도 프로젝트에 많은 크라우드워커를 투입한 경험이 있죠. 그런 만큼 실질적으로도 많은 도움이 될 수 있는 부분입니다.
데이터 양과 질의 상관관계
위 도표를 보면 데이터 양과 질의 상관관계를 확인할 수 있습니다.
# 적은 데이터(Small data)와 일관성없는 라벨링(Noisy label)은 모델이 올바른 결정 곡선(Decision curve)를 찾을 수 없게 만든다.
# 많은 데이터가 있다면, 일관성없는 라벨링이 있어도 올바른 결정 곡선을 찾을 수 있다.
# 또는 적은 데이터만 있어도, 일관성있는 라벨링을 통해 올바른 결정 곡선을 찾을 수 있다.
그렇다면 만약 500개의 데이터가 있고, 이 중 60개 데이터의 품질에 문제가 있어 성능에 안좋은 영향을 주는 경우에는 어떻게 해결해야 할까요? 그런 경우 다음 2가지의 방법을 선택할 수 있다고 합니다.
# 문제가 있는 데이터 레이블을 수정한다.
# 또는 500개의 새로운 데이터를 수집해 학습 데이터를 두 배로 늘린다.
하지만 새로운 양질의 데이터를 추가하는 것보다 문제가 있는 일부의 데이터를 개선하는 것이 훨씬 효율적인 방법입니다.
위 도표는 깨끗한 데이터와 노이즈가 있는 데이터를 갖고 모델을 학습시켰을 때의 결과를 비교한 것입니다. 노이즈가 있는 데이터로 학습해서 같은 성능을 내려면 2배 이상의 데이터가 필요하다는 것을 알 수 있죠. 즉 데이터의 양보다 질을 높이는 것이 훨씬 효율적인 방법이라는 것입니다.
그렇다면 좋은 데이터란?
# 일관성있게 라벨링된 데이터(레이블 정의가 명확한)
# 중요한 케이스가 포함된 데이터(입력값에 대한 good coverage)
# Production data로부터 제때에 피드백을 받은 데이터(Data drift****와 Concept drift*****를 포함해 분포된)
# 적절한 사이즈의 데이터
데이터 개선의 체계화 방법
응은 데이터 개선을 위해 위 도식과 같이 3가지 절차를 체계화할 것을 제안합니다.
# 모델 학습시키기
# 알고리즘에 오류가 발생하는 데이터의 타입 확인하기
# 해당 데이터를 더 많이 수집하거나, 데이터 레이블을 더 일관성있게 수정하기
즉 한번 데이터를 학습시켰다고, 시스템 개발이 끝난 것은 아니라는 것입니다. 지속적으로 데이터를 수집하고, 분석하고, 수정하는 사이클을 구축해야 하죠. 결국 양질의 데이터를 얼마나 일관성있게 확보하느냐가 관건인 것입니다.
마무리하며
앤드류 응은 최근 등장해 주목받는 개념인 MLOps(MachineLearning Operations)를 언급하며 세미나를 마무리합니다.
MLOps: 일관성있게 양질의 데이터를 유지하는 것(Ensuring consistently high quality data)
MLOps의 최우선 태스크는 고품질의 데이터를 프로젝트의 전 과정에 걸쳐 일관되게 공급해야 한다는 거죠. 이를 통해 단순 빅 데이터(Big Data)에서 좋은 데이터(Good Data)를 활용하는 것이 가능해질 수 있기 때문입니다.
이후로도 응은 계속해서 ‘데이터 중심 AI’를 강조하고 있습니다. 그동안 연구자들이 모델 개발에 엄청난 노력을 기울여왔고, 이미 공개된 모델만 갖고도 충분히 좋은 성능을 낼 수 있다고 이야기하죠. 하지만 데이터에 관해서는 아직 가야 할 길이 멀다고 보는 것 같습니다.
이번 글은 여기서 마무리하겠습니다. 다만 이론과 실제는 다르기 때문에, 응의 세미나 내용을 살펴보는 것 만으로는 조금 부족할 것 같습니다. 이어서 다음번에는 실제 AI를 도입하고(해야) 하는 현장의 상황을 들여다보고, AI 서비스를 공급하는 입장에서 데이터 중심 접근에 대한 LETR팀의 생각과 대응에 대해서도 간단히 소개해보겠습니다.
* A Chat with Andrew on MLOps: From Model-centric toData-centric AI 출처: https://youtu.be/06-AZXmwHjo
** 머신러닝에서 하이퍼파라미터는 최적의 훈련 모델을 구현하기위해 모델에 설정하는 변수로 학습률(Learning Rate), 에포크 수(훈련 반복 횟수), 가중치 초기화등을 결정할 수 있습니다. 또한 하이퍼파라미터 튜닝 기법을 적용하여 훈련 모델의최적값들을 찾을 수 있습니다. 출처: https://ittrue.tistory.com/42
*** 예측 모델을 구체적으로 만들기 전에 가장 간단하면서도 직관적이면서 최소한의 성능을 나타내는 기준이되는 모델 출처: https://velog.io/@choidb65/기준모델Baseline-Model
**** 입력 데이터(특징량, 설명변수)에서 부터 예측하려고 하는"정답 라벨(목적 변수)"의 의미/개념/통계적 특성(즉 데이터와라벨의 관계성, 데이터의 해석 방법)이 모델 훈련때와 비교하여 변화가 있음을 의미한다. 출처: https://engineer-mole.tistory.com/278
***** 모델의 훈련시 "입력 데이터(특징량, 설명변수)"의 통계적분포와 테스트 시/ 실제 배포 환경에서의 "입력 데이터"의 통계적분포가 어떠한 변화에 의해 차이가 발생하고 있는 것을 의미한다. Feature drift나 Covariate shift라고 불린다. 출처: https://engineer-mole.tistory.com/278
References
[1] Andrew Ng, "MLOps: From Model-centric AI to Data-centric AI"(영상) https://www.youtube.com/watch?v=06-AZXmwHjo&t=769s
[2] Andrew Ng, "MLOps: From Model-centric to Data-centric AI"(pdf) https://www.deeplearning.ai/wp-content/uploads/2021/06/MLOps-From-Model-centric-to-Data-centric-AI.pdf
[3] https://read.deeplearning.ai/the-batch/issue-84/
[4] [MLOps] Andrew Ng: Model-centric AI에서 Data-centric AI로 https://jaemunbro.medium.com/mlops-model-centric-ai에서-data-centric-ai로-5c8a1c389b8e
[5] 더 많은 데이터 중심으로, 더 작은 모델로! https://brunch.co.kr/@synabreu/117
함께보면 좋은 콘텐츠
[AI 이야기] 인공지능의 결정적 순간들 1[AI 이야기] 인공지능의 결정적 순간들 2[AI 이야기] 인공지능의 결정적 순간들 3