학습용 데이터 관리로부터 시작하는 MLOps

학습용 데이터 관리로부터 시작하는 MLOps

‍Superb AI CRO 김계현님이 말하는
학습용 데이터 관리가 MLOps에 필수인 이유

Superb AI는 2020년 8월, 오토라벨링 (Auto-Labeling) 기술과 관련하여 미국에서 5개의 특허를 출원했습니다. 머신러닝 데이터 플랫폼 Suite의 Superb Auto-labeling™ 기술은 데이터 가공 생산성을 최대 약 10배 향상시킬 수 있습니다.

이 기술의 중심에는 Superb AI의 김계현 CRO가 있는데요, 김계현님은 딥러닝 중에서도 특히 컴퓨터 비전 분야의 손꼽히는 전문가입니다. 이번 포스팅에서는 김계현님의 엔지니어 시절 이야기, 머신러닝/인공지능 개발 경험, 그리고 MLOps 로 확장된 그의 통찰을 담아보았습니다.

About 김계현 CRO

김계현(Kye-hyeon, Kim) 박사는 Superb AI의 최고 연구책임자(Chief Research Officer, CRO)입니다.  Superb AI는 머신러닝 데이터 플랫폼을 개발하는 스타트업으로, 인공지능 개발 워크플로우를 획기적으로 개선하겠다는 미션을 가지고 있습니다. 실리콘밸리의 와이컴비네이터(Y Combinator)를 졸업한 국내 7번째 기업이기도 하죠. 현재 김계현 CRO는 Superb AI의 오토라벨링 기술을 베이지언 딥러닝(Bayesian Deep Learning)이나 딥러닝 모델의 불확실성을 추정하는 기법(Uncertainty Estimation) 등과 같은 기술과 결합시키는 연구를 진행 중입니다.

김계현 CRO는 POSTECH에서 컴퓨터공학과 전공으로 박사과정을 마친 뒤 마이크로소프트, 인텔, 삼성에서 산학계의 이목을 끄는 다양한 연구를 진행했습니다. Superb AI에 합류하기 전에는 자율주행차량의 컴퓨터 비전 소프트웨어로 시장의 주목을 받고 있는 스트라드비전에서 알고리즘 엔지니어팀 리더로 있었죠. 그는 Object Detection, Semi-supervised Learning과 Metric Learning 등의 주제에 대한 연구 논문을 발표했고, 컴퓨터비전 분야의 출원 특허만 100개가 넘습니다.

Q1. 안녕하세요 계현님. 시간 내주셔서 감사합니다.

A1. 네, 안녕하세요. 반갑습니다.

Q2. 잘 모르는 분들을 위해, 계현님에 대한 소개와 예전에 참여하셨던 프로젝트, 그리고 지금 하고 계신 일에 대해 설명해주실 수 있을까요?

A2. 당연하죠. 저는 김계현이라고 합니다. Superb AI에서 최고 연구책임자(CRO, Chief Research Officer)로 일하고 있어요. 지금은 주로 Superb AI Suite의  오토라벨링 시스템을 업그레이드 하면서 회사의 여러 딥러닝 모델 아키텍처와 시스템 인프라를 최적화하는 데 집중하고 있습니다.

Superb AI에 조인하기 전에는, 빠르게 성장 중인 스타트업 ‘스트라드비전’의 알고리즘 엔지니어로 있었어요. 스트라드비전은 자율주행 시스템의 비전 소프트웨어를 만드는 회사인데, 저는 그 중에서도 Lightweight Neural Networks과 인공지능 기반 데이터 수집 시스템 구축 업무를 맡았었죠.

Q3. 스트라드비전에 있을 때 출원하신 특허가 100개가 넘는다고 하던데, 정말인가요?

A3. 네 맞아요. 대부분 딥러닝 알고리즘이나 자율주행 관련 카메라 기반의 컴퓨터 비전 기법에 대한 특허였어요. 더 정확하게는 저전력 환경에서 실시간으로 동작할 수 있는 효율적인 모델 구조, 환경 변화와 adversarial attack에 영향을 받지 않는 컴퓨터비전 알고리즘, 그리고 Continual Learning, Semi-supervised Learning, GAN (Generative Adversarial Networks)와 같은 고급 학습방법론을 연구했습니다.

Q4. 흥미롭네요! 그럼 Superb AI에서는 이러한 경험과 전문성을 어떻게 적용 중이신가요?

A4. 제 박사 논문의 대주제가 Semi-supervised Learning이었는데요. Transfer Learning, Active Learning을 포함한 다양한 딥러닝 학습 기법을 제품 개발에 녹여내려고 적용중이고, Bayesian Deep Learning 기법을 포함한 모델의 불확실성을 평가하는 방식들도 우리 제품에 잘 적용하려고 노력 중입니다.

Q5. 와, 라벨링 도구 치고는 좀 과하게 들리는데요?

A5. 하하하. 글쎄요, 사람들이 Superb AI Suite를 라벨링 도구로 인식하는 이유는 알고 있지만, 라벨링 기능은 우리 플랫폼의 일부일 뿐이에요. 라벨링은 매우 중요하고 시중에 라벨링 오픈소스 솔루션이 있긴 하죠. 하지만 대규모로 스케일업 가능하고 지속적으로 반복가능한 AI 개발 프로세스를 도입하려는 머신러닝 팀이라면, 단순한 오픈소스 도구를 넘어 잘 다듬어진 플랫폼을 도입하고 싶을 겁니다. 바닥에서 부터 새롭게 개발할 필요 없이, 바로 사용 가능한 더 효율적이고 고도화된 플랫폼 말이죠. 그리고 이게 바로 제가 Superb AI와 함께하는 이유입니다. 데이터 학습 관리부터 시작해서, 머신러닝 팀이 MLOps에 접근하는 방법을 혁신하는 거죠.

Q6. 알겠습니다. 제가 알아본 바로는, 머신러닝 팀이 성공하기 위해서는 적절한 MLOps를 수행하는 것이 중요하지만 아직 널리 쓰이고 있지는 않다고 들었어요. 사실인가요?

A6. 제 경험으로는 맞습니다. 인공지능 기업들이 DevOps가 어떻게 기존 소프트웨어 개발 필드에서 변화를 이끌었는지를 이해할 수 있다면, MLOps의 실행 및 구현 방법을 이해하기 쉬울 거에요. 간단하게 설명하자면, DevOps의 핵심은 소프트웨어 개발과 IT 운영을 하나의 반복가능한 프로세스로 결합해서, 개발팀이더 나은 소프트웨어를 고객에게 더 신속하게 제공할 수 있게 하는 것이었죠. 이러한 업무 방식은 누구나 쉽게 도입하여 사용할 수 있는 든든한 DevOps 생태계가 뒷받침 하고 있습니다. 개발팀은 언제든지 DevOps 솔루션 생태계에서 적합한 솔루션을 채택해서 이를 자신들의 업무 방식에 빠르게 통합시키죠. 이 과정 덕분에 궁극적으로 조직이 빠르게 코드를 쌓고, 발전시키고, 시험하고 배포, 관리할 수 있습니다.

Q7. 그렇다면, MLOps는 DevOps에 비해 생태계 조성이 잘 되어 있지 않다는 의미인가요?

A7. 여러 의미로 맞는 말입니다. 지난 1~2년 간 MLOps 각각의 세부 영역에서 솔루션들이 탄생하는 것을 봤지만, MLOps 솔루션의 채택과 MLOps 업무 방식의 도입에는 아직 DevOps에 비해서 따라 잡아야 하는 부분들이 많이 있다고 생각해요.

Q8. MLOps팀들이 버티컬 솔루션을 채택하는게 더딘 이유는 무엇인가요? 자체 도구를 제작하려는 건가요?

A8. 좋은 질문이네요. 이 분야를 대표해서 말할 수는 없지만, 제가 보고 듣고 경험한 바로는, 머신러닝 팀은 외부 솔루션을 ‘구매’하기 보다는 자체적으로 ‘구축’하려는 경향이 있습니다. 패러다임이 바뀌기 시작했다고들 하지만, 현실적으로 대부분의 머신러닝 팀들이 인공지능 어플리케이션을 만드는 방식은 많이 파편화 되어 있을 거에요. 머신러닝 모델 개발을 하는 역할, 데이터를 수집하고 정제하는 역할, 인프라를 구축하는 작업 등이 모두 따로 진행되는 것이지요. 이 때문에 여러 이슈들을 경험하고 있는 것 같습니다.

Q9. 그렇다면 애초에 이런 것들을 왜 내부에서 구축하려고만 하는 건가요? 왜 Superb AI Suite와 같은 솔루션을 구입하지 않는 건가요?

A9. 여러가지 이유가 있는 것 같아요. 일반적으로 머신러닝 팀은 딥러닝 알고리즘을 개발하고, 그 모델을 전처리된 오픈소스 데이터로 학습시켜보고, 시험해보고, 검수합니다. 이 과정은 많은 도구를 필요로하진 않아요.

그런데 모델 성능이 일정 수준에 도달하면, 목적에 들어맞는 더 큰  데이터셋이 요구됩니다. 특히 자율주행 같은 산업에선 더더욱이요. 이 때, 대부분의 머신러닝 팀은 규모가 커지는 신규 데이터셋의 라벨링과 관리를 위해 자체적으로 구축하거나, 오픈소스를 채택하거나, 외부 솔루션을 구입하는 방안을 검토할겁니다. 개인적으로 대부분은 자체적으로 구축하거나 오픈소스 라벨링 도구를 사용할 거라고 생각합니다. 오해하진 마세요. 오픈소스는 모든 새로운 기술에 매우 중요한 요소입니다. 오픈소스를 통해서 그 기술이 더 많이 채택되고, 그것이 기술의 성숙과 확산을 가능하게 하기 때문이죠.

학습용 데이터셋을 준비할 때, 처음에는 오픈소스 라벨링 도구에 별다른 문제가 없다고 느낄 수도 있습니다. 특히 데이터셋이 작고 소수의 라벨러들이 작업하는 경우에는요. 하지만, 이 두 가지 변수의 수가 증가하고, 스케일업이 중요해지면, 제가 그랬던 것처럼 빠른 속도로 벽에 부딪히게 될 겁니다.

‍Q10. 보통 어떤 어려움을 겪나요?

A10. 솔직히 셀 수 없을만큼 많습니다. 저는 보통 대규모 데이터셋을 가지고 일했는데, 전처리 작업은 매우 고통스러웠습니다. 끝끝내는 데이터 분포나 통계를 시각화하는 도구 같은 것들을 직접 만들게 되죠.

또 협업의 효율성이 굉장이 중요해졌습니다. 모델이 잘 동작하지 않으면 어떻게 되는가? 새로운 엣지 케이스의 데이터 수집, 모델 업그레이드 성능 검사는 누가 책임질 것인가? 새로운 데이터셋 요청은 어떻게 처리할 것인가? 데이터 라벨링에 오류가 있는 경우 이를 수정하기 위한 워크플로우는 무엇인가? 이런 문제들을 이메일과 파워포인트로 소통해야 했습니다.

다른 커뮤니케이션  도구를 새로 만드는 건 말도 안 되는 일이었지만, 이런 기존 솔루션들을 데이터와 머신러닝 모델 관리의 목적으로 사용하기에는 큰 편의를 주진 못했습니다. 이미 데이터를 다루는데에 상당한 시간 소모가 있었으나 원활한 소통이 가능한 플랫폼이 없는 것 때문에 결국 불필요하게 시간을 더 써야만 했던 겁니다.

Q11. 계현님의 경험을 토대로 보면, 보통 머신러닝 팀이 하나의 상품을 만드는 데 어느 정도가 걸리나요?

A11. 음, 특히 새롭게 시작하는 프로젝트에서는 첫 모델을 상용화 수준으로 배포하는데 보통 6개월 정도가 걸립니다. 그리고 그 시간의 거의 절반이 학습용 데이터셋을 만들고 관리하는데 쓰인다고 해도 과언이 아니죠. 만약 팀이 자체 인력이나 전문성을 갖고 있지 않다면 더 길어질 수도 있습니다.

머신러닝 개발에 들어가는 시간 중 80%는 데이터와 관련한 작업입니다.
Data Engineering, Preparation, and Labeling for 2020 AI, Cognilytica

Q12. 와, 6개월이나요? 초기 단계에서 그렇게나 오래 걸리면 위험요소가 많을 것 같은데, 맞나요?

A12. 맞습니다. 3개월 동안 대규모의 데이터셋을 수집하고, 라벨링과 전처리 작업을 거쳐 미리 구상해놓은 모델 설계에 적용하고, 또 다른 2~3개월 동안에는 모델을 여러 방면으로 최적화하며 재학습시키게 됩니다. 그런데 그렇게 정제한 PoC가 6개월 뒤에 설계한대로 작동하지 않는다고 상상해보세요. 자본이 많은 대기업이나 대규모 팀의 경우, 수십억원 정도의 엔지니어링 리소스와 귀한 시간을 날리긴 했겠지만 다시 전열을 가다듬을 수는 있을 겁니다. 하지만 소규모 팀에게 이런 상황은 매우 치명적이죠.

Q13. 그럼, 머신러닝 팀이 이러한 위험을 대폭 줄이기 위해서는 어떻게 해야하나요?

A13. 음, 개발 속도를 높여서 더 빠르게, 많은 시행착오를 겪고, 초기에 에러를 포착하는 것이 유일한 방법입니다. MLOps를 수행함으로써 달성하고자 하는 목표 중 가장 큰 것이죠.

Q14. 어떻게 그렇게 할 수 있을지, 독자들에게 건네는 조언이 있다면요?

A14. 네, 이게 바로 제가 Superb AI에 조인한 이유인데요. 코드를 바로 생산에 투입할 수 있게 해주는 DevOps와 마찬가지로, 기업이 모델 생산에 투입하는 시간을 획기적으로 단축할 수 있게 하기 위해서 할 일이 많다고 느꼈습니다. 전통적인 소프트웨어 개발과 머신러닝의 가장 큰 차이점은, 머신러닝 팀이 다루는 것이 코드 뿐 만이 아니라는 겁니다. 더 간단히 말하자면 머신러닝 개발에는 코드 기반 모델 뿐만 아니라 이 모델들이 학습하는데에 사용되는 데이터도 있습니다. 학습 데이터, 테스트 데이터, 실제 데이터 같은 것들이요.

또 앞에서 언급했던 대부분의 데이터 파이프라인에 필연적으로 존재하는 병목현상(데이터셋 구축)을 해결하기 위해서는, MLOps 구축 초기부터 학습 데이터 관리에 대한 고민을 시작해야 합니다. 일단 이게 되면, 모델 관리, 데이터 및 모델 버저닝(Versioning), 관리, 거버넌스 및 궁극적인 배포를 포함한 나머지 워크플로우 구축을 시작할 수 있게 됩니다.

‍Q15. 마지막으로, 계현님과 Superb AI는 학습데이터 관리 외 다른 기능이나 제품을 만들 계획이 있으신가요?

A15. 우리 제품이 확장해 나아갈 수 있는 방향은 여러가지라고 생각합니다. 솔직히 말하면 이미 다양한 방면으로 확장되어 가고 있습니다. 현재로서는 자세한 내용을 밝힐 수는 없지만, 머신러닝 팀이 데이터 관리와 모델학습 단계 사이의 간극을 줄일 수 있도록 플랫폼을 고도화 하는 것이 우리의 목표입니다. 그리고 여기에는 일관된 데이터/모델/하이퍼 파라미터 버전 관리, 데이터 및 모델 검증, 모니터링과 널리 쓰이는 딥러닝 프레임워크 및 학습 환경과의 연결 기능 등이 포함될 수 있어요.

저는 이 플랫폼을 통해 머신러닝 팀들이 데이터와 모델 학습을 통합하여 접근할 수 있게 된다면 많은 것을 바꿀 수 있다고 생각합니다. 우리는 MLOps를 도입하고, 고도화 될 수 있도록 기여하고 싶습니다. 그래서 궁극적으로는 엔지니어들이 자체적으로 다양한 업무 도구를 개발하는데에 시간을 쓰기 보다는, 수준 높은 AI 기술을 연구개발하는 본업에 초점을 맞출 수 있게 돕고 싶습니다.

Q16. 인터뷰에 응해주셔서 고맙습니다. 정말 즐거운 시간이었어요. Superb AI가 MLOps 세계에 더 많은 기여를 할 수 있기를 바랍니다.

A16. 감사합니다!

참고 문헌

‍K.-H. Kim and S. Choi (2007). Neighbor search with global geometry: A minimax message passing algorithm. ICML-2007.

(https://dl.acm.org/doi/abs/10.1145/1273496.1273547)

K.-H. Kim and S. Choi (2013). Walking on minimax paths for k-NN search. AAAI-2013.

(https://www.aaai.org/ocs/index.php/AAAI/AAAI13/paper/viewFile/6287/7201)

K.-H. Kim, S. Hong, B. Roh, Y. Cheon, and M. Park (2016). PVANET: Deep but lightweight neural networks for real-time object detection. arXiv preprint arXiv:1608.08021.

(https://arxiv.org/abs/1608.08021)