Superb AI CTO가 전하는 Data-centric MLOps

Superb AI CTO가 전하는 Data-centric MLOps

Superb AI는 데이터, 개발, 운영의 분리로 인해 생기는 사일로가 머신러닝의 상용화를 늦추고 있다는 데 일찍이 문제의식을 느끼고 머신러닝 파이프라인의 각 단계가 유기적으로 순환할 수 있도록 돕는, MLOps를 위한 머신러닝 데이터 플랫폼을 구축하고 있습니다.

아시는 분들도 계시겠지만, 저희는 실리콘밸리 산마테오에 현지 법인을 두고 국내 시장 뿐만 아니라 북미 시장을 대상으로 활발한 비즈니스 활동을 진행하고 있는데요. 글로벌 인공지능 기업 컨소시엄인 ‘AI Infrastructure Alliance(AIIA)’에 합류하여 기업이 규모에 맞는 머신러닝 모델을 어떻게 개발·설계해야 하는지에 대한 표준을 제시하고 있음을 인정받기도 했습니다.

저는 Community Growth Manager로서 Superb AI가 글로벌 MLOps 시장에서 겪는 경험과 노하우를 함께 나누고 국내의 MLOps 시장 활성화에 기여하기 위해, MLOps KR 커뮤니티 의 운영진으로 합류하였습니다. 그리고 지난 6월 5일, 커뮤니티가 생긴지 2년 만에 진행된 ‘첫 MLOps KR 커뮤니티 행사’를 직접 제안하여 기획 및 운영했습니다. 머신러닝 엔지니어 뿐 아니라 MLOps 에 관심있는 다양한 실무자 총 470 여명이 등록하면서 MLOps의 열기를 느껴볼 수 있는 귀중한 시간이었습니다. 데이터 관리부터 모델 배포까지 다양한 주제로 구성된 6개의 세션 후에는 함께 네트워킹하는 소셜라운지 세션도 진행되었는데 날씨가 화창했던 주말임에도 많은 분들이 끝까지 남아 참석해주셨습니다.

이 날 이정권 CTO는 <Data-centric MLOps : MLOps 를 돕기 위한 작은 장치들> 이란 주제로, Superb AI가 해온 고민들과 Superb AI의 Suite를 만드는 과정에서 그 고민들에 대한 해답을 어떻게 찾아가고 있는지에 대한 여정을 공유했습니다.


30분의 짧은 발표의 아쉬움을 달랠 수 있도록 본 글에서는 MLOps KR 발표에서 진행한 Superb AI의 Data-centric MLOps 이야기를 좀 더 자세히 전달드리려 합니다.

Data-centric의 의미

AI나 머신러닝은 모델과 데이터의 결합이라고 볼 수 있습니다. 한 참석자는 ‘머신러닝이라는 말에 이미 데이터가 들어가있는데 Data-centric이라는 것이 무슨 의미죠?’ 라는 사전 질문을 남겨주셨는데요. Andrew Ng의 최근 강의였던 “From Model-centric to Data-centric AI” 을 인용하여 그에 대한 답을 전했습니다.


"Anderw Ng가 강의 당시, ‘ML task의 결과를 개선하고자 한다면 데이터와 코드 중 무엇을 개선해야할까?’ 란 질문의 응답이 화제가 되었습니다. 강의를 듣고 있던 사람들의 응답의 80%가 데이터의 개선이라고 꼽은 것이죠. Andrew의 주장을 과감하게 비약해서 설명해 보자면, AI를 개선시키는 업무는 데이터의 질을 개선시키는 일로 환원할 수 있습니다. 그리고 이렇게 문제 해결을 위해 개선해야할 가장 우선적인 대상을 데이터로 생각하는 것, 이것이 data-centric 인 것이죠.”


Andrew는 강의에서 좋은 데이터를 만드는 것은 라벨링의 일관성이라고 말했습니다. 일반적으로 모델은 점점 커지고 있고 그에 따라서 과적합 등의 문제를 막기 위해 데이터도 그만큼 커야한다는 것이 통용되는 상식입니다. 하지만 현실적으로 모든 문제에 대해서 충분한 양의 데이터를 가지고 있기는 어려우며, 머신러닝 파이프라인의 사이클이 반복되는 과정에서 속도를 위해 데이터의 크기를 희생하는 경우도 허다합니다. 작더라도 일관성있는 데이터에 주목해야 할 이유가 여기에 있습니다. 일관성을 가진 데이터를 확보한다는 것은, 반복되는 머신러닝 파이프라인 속에서 속도와 퀄리티 모두를 추구하는 방법이며 이는 Data-centric ML의 핵심과제로 볼 수 있습니다.


일반적인 머신러닝 프로젝트의 진행과정

일반적인 머신러닝 프로젝트의 진행과정


현업의 실무자에게 Data-centric 작업은 사실 새로운 것은 아닙니다. 위의 사진은 머신러닝 엔지니어들이 흔하게 겪는 머신러닝 프로젝트를 보여줍니다. 처음 한 달 정도는 여러 안정적인 좋은 모델을 가지다가 여러 종류의 데이터를 학습시켜 모델을 구축하고 시간이 더 지나면 원하는 목적에 맞게 데이터 스펙을 디자인하여 데이터를 구축하는 길고 지루한 여정이 시작되는 것입니다. 그리고 이렇게 만들어진 데이터는 학습에 활용됩니다.

이 대목에서 ‘’PhD를 하는 동안 잠을 이루지 못한 이유가 모델과 알고리즘이었던 반면, Tesla에서는 데이터 작업 때문이었다' 는 Tesla의 Andrej Karpathy의 말을 인용하기도 했습니다.


Superb AI가 해결하고 있는 문제

데이터를 어떤 형식으로 구축하고 어떤 모델을 적용시켜 결과를 예측하는 지에 대한 선험적 지식은 충분히 쌓였습니다. 하지만  비즈니스에서 구체적인 문제가 주어졌을때, 데이터와 모델을 제어하며 원하는 결과를 얻어내는 일은 여전히 쉽지 않습니다. Superb AI가 Data-centric MLOps를 중심에 두고 문제를 해결하는 이유이죠. 통제 가능한 크기의 데이터를 체계적이고 반복적으로 구축해나가는 프로세스 속에서 답을 찾아내는 실험을 계속하는 것입니다.


“단순히 데이터 라벨링 작업을 자동화하여 반복적이고 노동집약적인 부분을 AI 등을 활용하여 개선한다는 관점이 아니라, Data-centric MLOps 관점으로 플랫폼의 기능을 확장하여 다른 MLOps 컴포넌트로부터 피드백을 받아, 더 올바르게 문제를 해결할 수 있도록 데이터 구축 과정을 수행해보는 것이죠. 궁극적인 MLOps를 실현하도록 하는 머신러닝 데이터 플랫폼 Suite를 그리고 있는 것입니다.”



일련의 머신러닝 개발 과정

일련의 머신러닝 개발 과정

데이터 스펙을 디자인하여 데이터를 만든 후, 이를 모델 학습에 활용하고 서비스를 배포하게 되는 일련의 일반적인 머신러닝 개발 과정에서는 수 많은 피드백이 발생합니다. 이 중 서비스를 배포한 후 다시 모델을 학습시키는 과정에서 일어나는 피드백을 제외하면(삽화 내 회색 화살표 참조), 다른 모든 과정에서의 발생하는 피드백을 (삽화 내 파란 화살표 참조) 데이터의 개선을 통해 해결할 수 있다고 보는 것이 Data-centric 관점이라고 말할 수 있습니다. 즉, 데이터 스펙 자체를 변경하거나, 이미 구축한 데이터의 일부를 수정 혹은 새로운 데이터를 추가하는 방식 등으로 이슈들을 해결하는 것이죠.

‍Suite는 위와 같은 머신러닝 개발과정에서 빈번하게 일어나는 데이터와 관련한 문제들을 해결하는 머신러닝 데이터 플랫폼입니다. Data-centric관점에서 문제에 접근할 때 Suite를 통해 쉽게 데이터가 관여하는 여러 작업들을 수월하게 해낼 수 있습니다. MLOps KR 커뮤니티 이벤트에서, 이정권 CTO는 이러한 고민 속에서 탄생한 Suite의 여러 기능을 스토리로 풀어 공유했습니다.


도구에서 플랫폼이 되기까지

개별적 도구에서 하나의 머신러닝 데이터 플랫폼으로 발전한 Suite

개별적 도구에서 하나의 머신러닝 데이터 플랫폼으로 발전한 Suite

“저희는 처음에는 플랫폼이라기보다는 도구에 가까운 형태였어요. 컴퓨터 비전에 전문성을 기반으로 이 산업에서 반복되는 문제인 지난한 데이터 구축 과정을 개선해 보겠다는 목표로 시작했죠. 라벨링 도구, 그리고 원본데이터, 그에 해당하는 라벨. 이런 도구들을 하나씩 따로 만드는 과정을 거쳤고 시간이 지나면서 도구에서 플랫폼, 시스템으로 발전해가면서 다음과 같은 기능들을 갖추게 되었습니다”

1. 재사용이 가능한 데이터 스펙

Suite는 데이터 구축 프로젝트에서 필연적으로 생기는 반복적인 데이터 스펙 수정이 용이하도록 설계되었습니다.
새로 머신러닝을 도입하거나 새로운 문제를 받아 해결해야하는 경우에는 잦은 프로젝트 스펙 변경이 요구됩니다. 간단한 예로, 처음에는 박스로 라벨링하는 것이 충분하다고 생각했다가 추후에 폴리곤 라벨링이 필요해진 경우 등이 해당합니다. 하지만 이러한 문제는 실제로 모델을 학습해보는 수준의 작업이 진행되기 전까지는 예측하기 어렵기 때문에, 실제 환경에서도  잦은 변경 과정 때문에 시스템이 멈추는 일이 없는 환경을 만드는 일이 중요했습니다. 그래서 Suite에서는 이름, 색깔, 종류, 조건, 옵션 등을 제공하고 가능하면 이것들을 재활용 할 수 있고, 또 쉽게 설정할 수 있는 인터페이스를 만들고 있습니다.

2. 생산성을 높이는 워크플로우

DevOps에서 특정 상태를 트리거로 활용해서 CI/CD 파이프라인을 구축하는 것처럼 머신러닝 데이터 구축 과정에서도 이를 가능케하는 유연한 워크플로우를 설계하고 있습니다. 비즈니스 사례에서는 표준적인 머신러닝 설계를 돕는 것 이상의 지원이 필요한 경우가 많았고, 예상하지 못한 여러 상황에서 발생하는 데이터와 관련한 일들을 추적하고 대비할 수 있도록 Tag 기능을 추가했습니다. 이 기능을 통해 언제든지 의도한 작업 단계로 돌아갈 수 있으며 데이터 구축 과정 내의 복잡한 의사소통 비용도 줄일 수 있습니다.


3. 데이터 버전관리

Data-centric MLOps 에서는 하나의 가설을 따르는 데이터 스펙을 가지고 데이터 구축 과정 내내 어떻게 작동하는지 분석하는 일이 중요합니다. 이를 통해 방향의 옳고 그름을 판단할 수 있고, 향후 데이터 구축 작업을 설계하고 수행할 수 있기 때문입니다. 데이터 작업을 끝내고 내보내기를 한 후의 데이터셋들을 하나의 단위로 묶어 관리할 수 있게 하거나 한 번의 실험에서 쓰이는 데이터들을 묶어 버전별로 관리할 수 있도록 했습니다. 이는, MLOps를 지향하는 데이터 플랫폼이 가져야 할 필수적인 조건이며 Suite도 데이터의 버전관리를 좀 더 정교화하게 할 수 있도록 지속적인 업데이트 작업을 진행하고 있습니다.


4. 데이터 분석 도구 제공

머신러닝 엔지니어에게 구축된 데이터에 대한 가시성을 제공할 목적으로 만들어졌지만 이러한 데이터 분석에 대한 정보는 데이터 구축 과정에 참여한 라벨작업자들에 대한 보상 및 데이터 구축 작업의 진척 상황 등을  예측하는 데에도 활발히 활용되고 있습니다.


5. 라벨의 일관성 유지를 위한 도구

데이터의 질을 판단하는 데이터의 일관성을 확보하기 위한 기능입니다. 예를 들면, Occlusion(폐색 : 대상이 다른 물체에 의해 가려지거나 일부분만 보이는 경우) 이 심한 데이터를 다룰 때, 이를 어떻게 처리해야 하는지에 대한 일관성 있는 라벨링 기준을 찾도록 도와줄 수 있습니다.




Human in the loop ² 를 통한 MLOps

Human in loop² 의 도식화

Human in loop² 의 도식화



사람이 결정에 관여하며, 모델을 지속적으로 발전시켜 나가는 과정의 원형인 Human in the loop 는 흔히 모델의 결과물에 사람의 도움을 더해 데이터를 구축하고 이를 다시 모델에 넣어 모델의 성능을 개선하는 반복설계를 의미합니다. 이상적이지만 현실적으로는 모델의 결과물에서 모델의 성능을 개선시키는 피드백을 얻는 경우는 흔하지 않았습니다.

“제가 가칭으로 Human in the loop ² 이라고 표현하는 저희만의 설계를 통해 MLOps 에 가까운 과정을 만들어가고 있는데요. 쉽게 말해, 사람의 도움이 필요한 부분에서 또 한번의 Human in the loop 과정이 반복되는 것입니다. Human Labeling 단계를 통해 라벨의 일관성을 확보하도록 하는 과정을 추가하여 설계함으로써 데이터 구축 과정에서 생기는 문제를 최소화할 수 있는 것이지요”

Superb AI는 이렇게 내부에서 자체 구축한 모델을 활용하여 집중적으로 구축해야 할 데이터의 서브셋을 알 수 있도록 하는 등의 머신러닝 개발 과정 내에서 피드백을 받을 수 있는 구조를 설계했습니다. Data-centric MLOps를 한다고 했을 때, 전체적인 MLOps 과정을 구성하는 컴포넌트로부터 피드백을 받고 이 루프를 계속 개선할 수 있는 시스템을 만드는 것은 아주 중요합니다.


다양한 실무자의 협업을 기반으로 하는 MLOps

“한 가지 중요하게 짚고 넘어가고자 하는 부분은 MLOps에 참여하는 모든 실무자들이 머신러닝의 전문성을 가지는 것은 아니라는 점입니다. 결국 사용자들이 복잡하게 느끼기 시작하면 원하는 파이프라인을 만들고 그것을 활용하는 일은 더욱 어려워집니다. 특히, 데이터 구축 측면에서는 더더욱 그렇습니다.”


머신러닝의 근간인 데이터를 다루고 복잡한 시스템 위에서 일어나는 의사결정을 효율적으로 하기 위해서는 MLOps에 참여하는 여러 유형의 실무자 모두가 머신러닝 데이터 플랫폼을 사용하는 데 어려움이 없어야 합니다. 누구라도 도구를 직관적으로 이해할 수 있도록 친근한 UX와 인터페이스를 제공하는 일은 실무자들 간의 마찰을 줄이고 궁극적인 목표에 효과적으로 도달하는 데 지대한 영향을 끼칠 수 있다는 것을 경험으로 배웠기 때문에 Suite를 만드는 과정에 있어 이러한 부분에도 노력을 기울이고 있습니다.  

MLOps KR 이벤트에서 공유한 전체 내용은 아래 영상을 참고해주시고 자료는 영상 내 상세정보 및 여기에서 보실 수 있습니다.



앞으로도 저희가 고민을 해결해나가는 과정을 공유하고 인사이트를 나누면서 MLOps 시장의 발전에 도움이 되는 활동들을 지속적으로 해나갈 것을 약속하며 글을 마치겠습니다.