성공적인 머신러닝 프로젝트를 위한 17가지 핵심 질문
효율적인 훈련 데이터 구축의 필요성 대두
컴퓨터의 출현, 특히 현대의 데이터베이스 확산 이후로는 대부분의 컴퓨팅 니즈는 정형화된 데이터에 의존했습니다. 디지털 시대가 도래함에 따라, 이미지, 비디오, 텍스트 그리고 오디오 같은 비정형 데이터의 양이 정형 데이터보다 많아졌습니다. Gartner에 따르면, 엔터프라이즈 데이터(enterprise data)의 80%가 비정형 데이터이며, 이 규모가 매년 55~60%씩 커지고 있다고 합니다. 언제 어디서든 무한하게 쌓이는 비정형 데이터의 폭발적인 증가는 이런 정형 데이터의 독식시대를 변화시키고 있으며 비정형 데이터의 활용을 중심으로 미래 AI 산업은 재편성된다고 해도 과언은 아닐 것입니다.
이렇게 인공지능 개발에 활용될 수 있는 비정형 데이터의 양은 폭발하고 있는데, 이 비정형 데이터라는 것을 인공지능 개발에 활용할 수 있는 형태로 만드는 작업에는 사람의 손길이 너무 많이 필요합니다. 이런 비정형 데이터를 활용하려면 사람들이 직접 손으로 데이터를 분류하고 정보를 태깅해서 기계가 이해할 수 있는 방식으로 바꿔주는 작업이 필요합니다.
IDC에 따르면, 2018년 한 해 동안만 데이터 저장 서비스를 통해 700 엑사바이트(exabyte, 10^18 bytes)의 데이터가 추가적으로 쌓였다고 합니다. 또한 IDC는 2018년에서 2023년까지 전세계적으로 쌓이는 데이터 스토리지가 2배 넘게 늘어나고, 총량은 11.7 제타 바이트(10^21 bytes)가 될 거라 예상하고 있습니다. 하지만 이렇게 일상적으로 수집된 비정형 데이터의 엄청난 양은 경험이 부족한 팀들이 데이터 안에서 가치있는 정보를 추출하는 데이터 마이닝 조차 시작하기 어렵게 만들곤 했습니다.
MLOps를 가능하게 하는 통합된 머신러닝 워크플로우 설계의 중요성
아주 최근까지만해도 비정형 데이터를 통해 비즈니스 가치를 추출할 수 있는 기술들이 충분하지 않았지만 이제 시장에는 이를 가능하게 하는 다양한 도구가 존재합니다. 그러나 머신러닝 전문가들은 비정형 데이터의 잠재력을 완전히 활용하기 위해서는 최신 기술을 사용하는 것만으로는 충분하지 않다고 말합니다. 그보다 더 본질적인 변화가 필요한 것인데요. 훈련 데이터를 라벨링하고 저장할 뿐 아니라 머신러닝 조직 내의 협업과 공유 그리고 가장 중요하게는 원활한 반복 작업이 가능하도록 설계된, 확장성이 뛰어난 대규모 데이터 허브 플랫폼의 필요성을 이해하는 것이며, 이러한 통합된 워크플로우 설계를 통해 조직은 운영상의 단절을 의미하는 사일로를 허물 필요가 있다는 것입니다.
저희는 이러한 일관성 있는 워크플로우 위에서, 머신러닝 팀이 훌륭한 AI 구축을 위한 보람 있는 여정에 착수할 수 있도록, 머신러닝 라이프 사이클을 구축하는 데 있어 던져야 할 가장 중요한 질문들을 모아봤습니다.
이 글에 담긴 머신러닝 라이프 사이클의 기본 사항과 상용화 수준의 머신러닝 시스템을 성공적으로 배포하기 위한 핵심 질문을 고려해보신 후, 슈퍼브에이아이가 제공하는 이상적 머신러닝 데이터 플랫폼이 해결해야 하는 4가지 핵심 요소도 꼭 살펴보실 것을 권장드립니다. 이를 통해, 현재의 시스템을 평가하고 데이터 플랫폼에 대한 이해를 높여, 어떻게 전체 MLOps 워크플로우를 통합적으로 설계하여 효율과 속도를 높여 기술적 마찰을 줄일 수 있는지에 대한 해답을 얻어가실 수 있을 것입니다.
과거에는 비교적 간단한 과정을 통해 머신러닝 시스템이 설계되고 배포되었습니다. 기업이 수년에 걸쳐 점점 더 많은 데이터를 쌓아왔지만, 특별히 머신러닝 모델을 염두해두지 않은 채 쌓은 데이터도 상당했습니다. 하지만 딥러닝의 진보가 가속화되면서 많은 기업이 이를 사용해보려고 시도하며 현실적이지만 모호한 “우리가 쌓아온 데이터가 정말 많은데 어떻게 쓰지? 머신러닝으로 뭔가를 해보자” 라는 단순한 질문에서 머신러닝 시스템을 만들려는 시도도 목격했습니다. 그래서 초기에 대부분의 머신러닝 시스템을 만드는 과정은 일방향적이고 순차적인 경향이 짙었습니다. 대부분 아래와 같은 순서에서 크게 벗어나지 않았습니다.
1. 현존하는 원시데이터를 정리하고 정제하기
2. 원시데이터를 라벨링해서 학습용 데이터셋을 만들기
3. 머신러닝 모델을 훈련시키기
4. 훈련된 모델을 배포하기
하지만 지금의 머신러닝 사이클은 훨씬 더 복잡해졌습니다. 아래 소개드릴 리스트는 우리가 그 어떤 머신러닝 프로젝트를 설계해보기 전 반드시 물어야 하는 질문들로 이루어져 있습니다. 그리고 이 리스트는 AI 산업이 더욱 커지고 복잡해짐에 따라 더 풍부해질 것입니다. 머신러닝 프로젝트로 뛰어들기 전 머신러닝 전문가들이 일반적으로 고려하는 가장 중요하고 의미있는 질문 리스트를 함께 살펴보겠습니다.
당신이 머신러닝 프로젝트를 시작하기 전 꼭 던져보아야 할 17개의 핵심 질문들
사업에 대한 이해 Business Understanding
1. 머신러닝 시스템으로 얻고자 하는 것은 무엇인가요?
2. 개발하고자 하는 어플리케이션의 정확한 시나리오는 무엇이며, 어떤 비즈니스 임팩트를 기대하나요?
3. 머신러닝을 활용했을 때 예상되는 성능과 한계를 제대로 이해하고 있나요?
4. 머신러닝 모델의 성능을 어떻게 모니터링하고 측정할 계획인가요?
모델링 Modeling
5. 어떤 머신러닝 모델을 활용할 계획인가요?
6. 컴퓨팅 속도(inference speed), 정확도(accuracy), 정밀도(precision), 재현율(recall) 면에서 성능을 담보할 수 있는 필수 조건(requirements)은 무엇인가요?
7. 학습을 위한 필수 조건은 무엇인가요? 클라우드 컴퓨팅 서버에 의존할 계획인가요? 모델은 지속적으로 업데이트 되어야 하나요?
데이터 확보 & 이해 Data Acquisition & Understanding
8. 모델을 훈련시키기 위한 충분한 데이터를 확보하였나요? 그렇지 않다면, 추가적인 데이터를 어떻게 수집할 것인가요? 크라우드 소싱? 웹 크롤링? 또는 미리 만들어진 데이터를 구매할 예정이신가요?
9. 데이터 소스를 법적으로 어디까지 활용할 수 있나요? 데이터에 대한 권리를 보유했나요?
10. 데이터증강 기술을 사용할 예정인가요?
11. 서비스 유저들이 만들어 내는 데이터를 활용할 수 있나요?
데이터 라벨링 Data Labeling
12. 누가 데이터 라벨링 작업을 진행하나요? 회사 내부에 인하우스(in-house) 데이터 라벨링 팀이 있나요? 외부의 데이터 라벨링 업체를 용역으로 활용하나요?
13. 어떤 데이터 라벨링 도구를 사용할 예정인가요? 활용하고자 하는 라벨링 도구나 시각화, 통계, 버전 관리, 팀 협업 등 원하는 기능을 제공하고 있나요?
14. 라벨링 속도를 높여줄 수 있는 이미 학습된 모델을 사용할 예정인가요? 그렇다면, 그 모델을 계속 더 훈련시킬 수 있나요? 얼마나 자주 이 모델을 추가적으로 훈련 시킬 수 있나요?
모델 학습 Model Training
15. 데이터 세트를 구축한 다음에, 모델을 학습시키기 위해서는 어떤 인프라를 사용하나요? 내부에 GPU 서버를 사용하나요? Cloud를 서버를 사용하나요?
16. TPU와 같은 더 고도의 하드웨어도 필요한가요?
17. 내부에서 모델을 훈련시킬 예정인가요, 아니면 외부의 모델 학습 서비스를 활용할 예정인가요? 하이퍼 파라미터 튜닝(hyper-parameter tuning)과 신경 구조 검색(architecture search) 등을 자동화 할 예정인가요? (Auto-ML을 활용하나요?)
저희는 이 글에서 상용화 수준의 머신러닝 시스템을 개발하는 데 있어 사전에 반드시 답해보아야하는 핵심 리스트를 소개해드렸습니다. 사실 가장 중요한 것은, 일단 프로토타입이 나온 후라도 모델의 성능이 좀처럼 나오지 않을 때마다 이런 질문들을 던지며, 어느 단계에서든 지속적으로 반복하고 배포하여 개선할 수 있는 머신러닝 사이클을 구축할 수 있는가 하는 것입니다.
AI 연구개발진이 직접 만든 데이터 플랫폼, Suite
Deeplearning.ai의 연구에 따르면, “머신러닝을 활용하는 회사 중 오직 22%만이 머신러닝 모델을 배포하는 데 성공한다”고 합니다. 슈퍼브에이아이는 이런 상용화의 어려움이 머신러닝 워크플로우의 파편화에서 온다고 생각하며, 팀 간의 사일로는 워크플로우 사이에 벽을 느끼게 하여 협업의 복잡함을 증가시킬 수 있습니다. 이는 결과적으로 고품질 데이터를 지속적으로 업데이트하거나 유지 관리하는 것 뿐 아니라 머신러닝 모델을 훈련시키거나 배포하는 것도 심각하게 지연시키거나 완전히 방해할 수 있습니다. 이러한 MLOps 인프라를 직접 구축한다고 하더라도 리소스에 민감한 머신러닝 팀은 기술적이고 혼란스러운 소프트웨어 솔루션들을 직접 학습하며 러닝커브를 겪어야 하는 게 큰 부담으로 작용할 것입니다.
실제 AI를 연구하고 개발하던 인력들로 이루어진 저희 슈퍼브에이아이는 이러한 문제를 너무나 잘 통감하고 있으며, 수십년 간의 머신러닝 경험에서 터득한 통찰력과 노하우를 바탕으로 Suite를 개발했습니다.
Suite는 머신러닝 조직 내에서 대규모 데이터 운영에 어려움을 겪는 고객을 위한 솔루션으로, 새로운 데이터셋을 빠르게 구축하고, 기존의 데이터를 효율적으로 관리할 수 있는 데이터 플랫폼입니다. 데이터 구축, 가공, 관리, 분석 과정에서의 시각화와 자동화를 지원하고 반복되는 모델 훈련 단계까지 여러 팀에서 다루는 데이터를 매끄럽게 연결하실 수 있도록 도와드립니다. 효율적이고 통합적인 머신러닝 개발과 운영은 물론, 고객의 AI 비즈니스 상용화 속도를 높이는 데 기여할 것이며, 슈퍼브에이아이의 기술을 통해 여러분의 머신러닝 팀은 비로소 AI 기술 개발에만 온전히 집중하실 수 있습니다.
이를 통해 어떤 조직에서든 빠르고 쉽게 AI를 개발 할 수 있도록 하는 것이 슈퍼브에이아이의 궁극적인 미션입니다.