머신러닝 전문가의 시선으로 훈련용 데이터 워크플로우 고찰하기
1. 들어가며
컴퓨팅이 등장하고 최신 데이터베이스가 보급되면서 대부분의 컴퓨팅 수요는 정형 데이터에 집중되었습니다. 그러나 시간이 흐르면서 우리는 새로운 데이터의 시대로 접어들고 있습니다. 디지털 데이터버스(digital data-verse)에서 이미지, 비디오, 텍스트, 오디오와 같은 비정형 데이터의 규모가 정형 데이터의 규모를 아득히 뛰어넘은 것이죠. 게다가 가트너(Gartner)는 기업이 보유한 데이터 중 비정형 데이터의 비율이 80%를 상회하며, 그 규모가 매년 55%~60%씩 성장하고 있는 것으로 추산합니다. 다시 말해, 비정형 데이터 속에 숨어있는 인사이트에 우리의 미래가 놓여있는 것입니다.
관계형 데이터베이스(Relational databases)와 형식화 및 범주화된 데이터, 이를테면 행과 열로 이루어진 전통적인 데이터베이스 또는 마이크로소프트 엑셀과 같은 스프레드시트에 저장될 수 있는 데이터는 여전히 그 중요도가 높습니다. 하지만 데이터가 가진 가치라는 관점에서 위와 같은 유형의 데이터가 오랜 기간 차지하고 있던 독점적인 지위는 비정형 데이터의 방대함(pervasiveness)과 높은 접근성(ubiquity)으로 인해 빠르게 약화되고 있습니다. 게다가 최근 들어 데이터의 “가치”를 측정하는 기준도 우리가 주로 사용하는 문서나 이미지, 비디오, 오디오 스트리밍, 그리고 SNS 게시물 등을 포함한 “비정형 데이터터(unstructured data)”에 근거합니다.
그러나 비정형 데이터는 그 본질적인 특성 때문에 기존의 컴퓨팅 개념으로는 해석이나 검색, 분석이 용이하지 않다는 근본적인 어려움이 존재합니다. 따라서 필연적으로 사람이 막대한 공수를 들여 머신이 인식할 수 있도록 구조화된 포맷으로 데이터를 파싱, 태깅, 해석하는 작업이 반드시 필요합니다. 수많은 기업이 최근까지도 이러한 작업을 주저하는 것은 사실 당연한 일입니다.
인터내셔널 데이터 코퍼레이션(International Data Corporation, IDC)에 따르면, 2018년 한 해 동안 스토리지 공급자들이 전 세계 모든 스토리지 미디어 타입의 인스톨드 베이스에 추가한 용량은 700 엑사바이트(exabyte)가 넘었습니다. IDC는 2018년에서 2023년까지 월드와이드 인스톨드베이스의 스토리지 용량이 2배 이상 증가해 2023년에는 11.7 제타바이트(zettabyte)에 육박할 것으로 전망하고 있습니다. 아직 경험이 적은 팀이라면 이미 수집된 비정형 데이터의 방대한 양에 압도되어 유용한 정보를 수집하거나 목적을 달성하기 위한 데이터 채굴을 시도하지 못할 수도 있습니다. 그리고 아주 최근까지도 디지털 진실(digital truth)의 모호하고 다양한 소스들 속에서 사업적 가치를 추출할 수 있는 테크놀로지가 부재했던 것도 사실입니다.
그러나 지금은 아닙니다. 다양하고 혁신적인 데이터 분석 툴들이 새롭게 등장했고, 이 툴들은 비정형 데이터 속에 숨어있는 인사이트를 발견하기 위해 특별히 설계된 인공지능(Artificial Intelligence, AI)를 활용하고 있습니다. 그리고 아직은 생소한 ML옵스(Machine Learning Operations, ML Ops)라는 개념 속에 존재하는 거대하지만 중요한 격차를 메우기 위해 탄생한 생태계도 성황입니다.
그러나 머신러닝 전문가들 사이에서는 최신 기술을 적용하는 것만으로는 비정형형 데이터가 품고있는 가능성을 100% 활용할 수 없다는 의견이 대두되고 있습니다. 실제로, 기업은 고도화된 측정이 가능한 대규모의 병렬 데이터 허브를 운영하는 방식으로 운영 상 발생하는 사일로 효과를 해결해야 합니다. 병렬 데이터 허브는 단순히 데이터 라벨링과 훈련 데이터를 저장하는 목적에 그쳐서는 안되고, 머신러닝 회사들이 함께 협업하고 공유하며 엔터프라이즈급 AI를 구축할 수 있도록 매끄럽게 실행되어야 합니다.
이것이 머신러닝 팀이 엔터프라이즈급 데이터 훈련 파이프라인을 구축할 때 임시방편 수준의 솔루션으로 만족해서는 안 되는 이유입니다. 머신러닝 기업에게 정말 필요한 것은 원활한 협업, 작업 속도, 작업 품질을 보장하여 고품질 데이터셋을 생성하고 관리할 수 있게 함으로서 프로덕션 수준의 모델을 빠르게 개발할 수 있도록 돕는 정교한 플랫폼입니다.
훌륭한 AI 구축을 위한 여정을 시작할 머신러닝 팀을 돕기 위해, 우리는 몇 가지 가장 핵심적인 질문에 대한 답변과 데이터 훈련 프로세스를 구축하는 데에 유용한 몇 가지의 최신 프레임워크를 제공하고자 합니다. 본 문서에서 설명할 몇 가지 전략과 전술을 활용함으로써, 머신러닝 팀은 현재 사용 중인 시스템을 평가해보고, 데이터 플랫폼을 ML옵스 워크플로우에 한층 더 매끄럽게 통합시키는 방법에 대해 이해할 수 있을 것입니다. 이상적인 머신러닝 데이터 플랫폼이 반드시 갖춰야 하는 네 가지 주요 사항에 대해 알아보기 전에, 머신러닝 라이프사이클(Machine Learning Life Cycle)의 기초적인 내용에 대해 알아보고, 프로덕션급 머신러닝 시스템을 성공적으로 활용하기 위해 반드시 확인해봐야 하는 주요 질문에 대해 다뤄보겠습니다.
2. 머신러닝 라이프사이클
과거의 머신러닝 시스템은 개발 과정도 단순했고, 활용도 상대적으로 쉬웠습니다. 하지만 요즘의 머신러닝 라이프사이클은 훨씬 더 복잡합니다. 데이터셋을 관리할 때는 데이터도 지속적으로 업데이트되어야 하고 서로 다른 여러 페르소나가 함께 기여해야 하기 때문에 최신 머신러닝 데이터 플랫폼은 이러한 워크플로우를 지원할 수 있어야 합니다.
머신러닝의 개발 : 데이터 라이프사이클
- 과거의 머신러닝 시스템 개발 방법
기업들은 오랜 기간동안 데이터를 기록하고 저장해왔지만, 문서 스캔본부터 고객 활동 로그와 같은 파일들은 머신러닝 모델의 훈련용으로 쓰일 것을 상정하고 저장되었던 것은 아닙니다. 하지만 딥러닝의 빠른 발전을 목격한 많은 기업이 이러한 데이터의 활용을 시도했습니다. 개중에는 “우리 데이터가 너무 많은데 어떻게 사용할 수 없을까?” 또는 “우리 데이터 좀 있는데 머신러닝으로 뭔가 해보자!” 같은, 진정성은 있지만 애매한 질문으로부터 출발해 머신러닝 시스템을 구축하려는 시도들도 많았습니다.
결과적으로 머신러닝 시스템을 구축하려는 최초의 시도들은 선형적이고 단계적으로 이루어진 단순한 형태였고, 다음 일련의 과정에서 크게 벗어나지 않았습니다.
- 기존의 로우 데이터(이미지, 비디오, 텍스트 등)를 정리하고 청소(clean)하기
- 로우 데이터에 어노테이션을 추가하고 훈련용 데이터셋 생성하기
- 머신러닝 모델 훈련하기
- 훈련된 모델 활용하기
머신러닝 라이프사이클 : 현재의 머신러닝 라이프사이클
앞서 말했듯 과거의 단순했던 머신러닝 라이프사이클에 비해 최근의 머신러닝 라이프사이클은 훨씬 더 복잡합니다. 사실, 단지 데이터 콜렉션을 보유하고 있는 것 만으로도 ML 프로젝트를 시작할 수 있던 시절은 지난 거죠.
머신러닝 프로젝트를 살펴보기 전에 우리가 주기적으로 물어봐야하는 질문들이 있습니다. 그리고 AI 생태계가 갈 수록 복잡해지고 많은 혁신들이 일어나고 있다는 점을 고려하면, 이 질문의 가짓수도 점점 늘어날 것입니다. 어떤 질문은 대답하는 데에 너무 많은 디테일이 필요할 수도 있지만, 가능성의 범위를 파악하는 것은 매우 중요합니다. 다음은 머신러닝 전문가들이 프로젝트를 시작하기 전에 확인하는 가장 의미있는 질문을 모은 짧은 목록입니다.
다음 머신러닝 프로젝트를 시작하기 전에
꼭 물어봐야 할 17가지 질문
- 사업 이해하기
- 머신러닝 시스템을 통해 얻고자 하는 것은 무엇인가?
- 구체적인 적용 시나리오와 이에 따라 예상되는 사업적 영향은?
- 머신러닝 활용에 따라 기대되는 성과와 한계에 대해 이해하고 있는가?
머신러닝 모델의 퍼포먼스를 모니터링하고 측정할 방법은?
- 모델링
- 사용할 머신러닝 모델은?
- 컴퓨팅(인퍼런스) 속도, 정확도, 정밀도, 재현율 등 기대하는 성능의 기준은 어느 정도인지?
- 훈련에 필요한 사양은? 클라우드 컴퓨팅 서버의 활용 여부는? 모델은 지속적으로 업데이트할 계획인지?
- 데이터 획득 및 이해하기
- 모델을 훈련시키기에 충분한 양의 데이터가 있는가? 그렇지 않다면, 추가적으로 필요한 데이터를 수집할 방법은? 크라우드소스를 활용할지, 웹에서 크롤링할지, 이미 만들어진 데이터셋을 구매할지?
- 데이터 소스를 활용할 때 고려해야 할 법적인 사항은? 사용할 데이터가 저작권이 있는지?
- 데이터 증강(data augmentation) 테크닉을 적용할 계획인가?
- 나의 유즈 케이스에 합성 데이터를 활용할 수 있는지?
데이터 라벨링
데이터 라벨링을 진행하는 주체는? 인하우스 라벨링팀이 있는가? 아니면 라벨링 에이전시에 아웃소싱을 진행할 예정인지?
사용할 데이터 라벨링 툴은? 시각화, 통계, 버전 관리, 다인원 협업 등 필요한 기능은 모두 포함되어 있는가?
신속한 라벨링을 위해 사전 훈련된(pre-trained) 머신러닝 모델을 활용할 계획인지? 만약 그렇다면 이 모델을 훈련시킬 수 있는 권한이 있는지? 모델을 재훈련시키는 주기는?
모델 훈련시키기
데이터셋 구축 이후 모델을 훈련시키기 위해 활용할 인프라는? 인하우스 GPU 서버인지 클라우드 서버인지?
TPU와 같은 고급 하드웨어가 필요한지?
모델 훈련은 내부적으로 진행되는 것인지 아니면 써드파티 모델 트레이닝 서비스를 활용할 예정인지? 하이퍼파라미터 튜닝과 아키텍처 서치(오토 ML)의 자동화 여부는?
이 질문들은 프로덕션급의 머신러닝 시스템을 훈련하고 활용하기 위해 던져야 하는 수많은 질문 중 일부일 뿐입니다. 그리고 가장 중요한 것은, 이것이 끝이 아니라는 것입니다.
첫 머신러닝 모델의 프로토타입이 완성되고 나면, 모델의 퍼포먼스가 좋지 않았던 부분을 분석헤 디버깅을 진행해야하며, 지속적으로 머신러닝 개발 사이클을 반복해서 실행해야 합니다.
마치며
대규모의 AI 솔루션을 적용하는 것이 몹시 어려운 일이라는 것은 널리 알려져있습니다. 딥러닝.AI(Deeplearning.ai)에 따르면 “머신러닝을 활용한 기업 중 단 22%만이 머신러닝 모델을 성공적으로 활용”했다고 합니다.
파편화된 머신러닝 워크플로우, 사일로화되어 팀 간 협업이 복잡한 환경은 산출물의 퀄리티와 속도 개선을 저해해 AI 솔루션 도입을 주저하게 만드는 원인의 큰 부분을 차지합니다. 이러한 문제를 다루는 것은 골치 아픈 일일뿐더러 팀이 지속적으로 고품질의 데이터를 유지 및 업데이트하고, 프로덕션급 머신러닝 모델을 훈련 및 활용하는 것을 지연 또는 완전히 방해할 수 있습니다.
또한, 팀 내 리소스에 민감한 대다수의 머신러닝 팀에게 테크니컬하면서도 헷갈리는 소프트웨어 솔루션이라는 망망대해를 누벼야한다는 것은 매우 부담되는 일입니다. ML옵스 인프라 구축을 위한 학습곡선(learning curve)을 경험해야 하는 점도 마찬가지입니다. 그래서 슈퍼브에이아이는 수십년 간의 머신러닝 경험을 통해 축적한 최고의 인사이트와 각종 사례를 바탕으로 머신러닝 팀의 든든한 아군이 되어줄 솔루션을 개발했습니다.
이 솔루션을 통해 머신러닝 팀은 머신러닝 개발 사이클을 재창조해, 워크플로우 툴 개발에 집중하던 것에서 벗어나 놀랄만한 AI 테크놀로지 개발에 다시금 포커스를 옮겨올 수 있을 것입니다.
훈련용 데이터, 더 나아가 궁극적으로는 머신러닝 개발을 민주화하는(democratize) 것이 우리의 근본적인 미션이며, 이것이 바로 슈퍼브에이아이 플랫폼의 핵심입니다.