데이터 준비 5단계, 실리콘밸리에서는 어떤 플랫폼을 사용할까?
*본 포스팅의 원문은 Arize AI의 기술 블로그에서 볼 수 있습니다.
전 산업군에서 인공지능(AI)과 머신러닝(ML)을 도입하고 있습니다. 많은 기업이 자사의 비즈니스에 인공지능 기술을 접목하기 위해, 적절한 머신러닝 인프라 플랫폼을 탐색하고 있기도 합니다. 머신러닝 인프라 환경은 혼란스럽고 복잡해서 시장의 다양한 플랫폼과 도구들을 이해하는 건 쉽지 않습니다. 본 포스팅에서는 데이터 준비 워크플로우 전반에 걸쳐 사용할 수 있는 플랫폼과 도구들을 소개합니다.
머신러닝 / 인공지능 인프라 생태계
머신러닝 인프라 생태계에 대한 이해를 돕기 위해, 머신러닝 워크플로우를 데이터 준비와 모델 구축, 그리고 상품화 세 가지 단계로 구분해 보겠습니다. 각 단계별 목표와 과제를 이해하면 자사의 비즈니스 모델에 맞는 머신러닝 플랫폼을 결정하는 데에 도움이 될 것입니다.
머신러닝 워크플로우의 각 세 단계(데이터 준비, 모델 구축, 상품화 단계)에는 몇 가지 특화된 기능들이 있습니다. 어떤 기능은 워크플로우 전체를 아우르는 End-to-End 플랫폼의 일부가 될 수도 있고, 어떤 기능은 하나의 플랫폼을 대표하는 기능이 되기도 합니다.
모델 구축의 시작이 데이터 준비인 이유는, 모델을 학습시키고 구축할 때 데이터가 필요하기 때문입니다. 데이터 준비 단계에서는 데이터에서 모델이 학습할 수 있는 입력(inputs)을 추출해야 합니다. 데이터 사이언티스트가 데이터를 수집·변환·가공하는 작업을 돕는 여러 도구들이 있습니다. 이 포스팅에서는 데이터 준비 단계의 목표와 조직이 직면하는 과제, 그리고 데이터 사이언티스트가 다음 단계로 넘어갈 때가 되었다고 결정하는 시기 등에 대해 깊이 있게 다뤄볼 것입니다.
데이터를 준비하는 데까지 시간이 오래 소요된다는 것은 어느 데이터 사이언티스트에게 물어봐도 알 수 있는 사실입니다. 전체 파이프라인 중 데이터 준비는 원본 데이터를 모델이 학습할 수 있는 입력 피쳐(input features)로 전환하는 단계입니다. 이때 피쳐란 정제된 데이터를 변환한 것으로, 실제로 모델에 입력되는 정보입니다.
파이프라인의 시작 지점에서는 조직 내에 흩어져있는 여러 데이터 저장소에서 원본 데이터를 모으는 작업이 필요합니다. 이 작업을 마치면, 일관된 입력을 생성하기 위해 피쳐를 정리·변환·추출하는 데이터 처리 단계를 거치게 됩니다. 머신러닝 인프라를 가장 먼저 사용하는 대규모의 기술 기업들(Google, Facebook, Uber 등)은 보통 중앙 데이터 저장소를 갖고 있기 때문에, 대부분의 팀이 중복 작업 없이 데이터를 다룰 수 있습니다.
데이터 준비 단계에는 데이터 수집, 완성도 확인, 라벨링과 피쳐 생성을 위한 데이터 포맷 변환 등 여러 과정이 포함됩니다.
데이터 스토리지
데이터 수집은 데이터 준비의 첫 걸음이며, 머신러닝 팀이 넘어야 할 첫 관문이기도 합니다. 보통 데이터는 조직 내에서 여러 명의 관리자에 의해 다양한 데이터 스토리지에서 산발적으로 관리되고 있거나, 개인정보가 포함되어 있는 등 정제되어있지 않을 가능성이 높습니다.
따라서 적절한 곳에서 데이터를 수집하고, 조직 내에 흩어져있는 데이터를 하나의 데이터 레이크로 모으는 작업이 필요합니다. 하지만 조직 내 기존 모델의 입력·예측·실제값이 서로 다른 시점에, 다른 데이터 스토리지에 저장되는 경우에는 이 작업을 수행하기가 매우 어렵습니다. 이런 경우에는 조직 내에서 공용으로 사용할 수 있는 예측/트랜잭션 ID를 만들면, 실제값과 예측값을 연결하기 더 수월합니다.
어떤 데이터 소스를 사용할 수 있을지 결정하는 단계에서는 데이터 관리, 데이터 거버넌스 또는 법률적인 검토가 필요합니다. 때문에 데이터 스토리지 관리 방법을 논의할 때는 보통 데이터 엔지니어, 데이터 사이언티스트와 법무팀, IT팀 등 다양한 사내 이해관계자가 관여하게 됩니다.
- 데이터 스토리지를 제공하는 머신러닝 인프라 기업들 : Elastic Search, Hive, Qubole
데이터 완성도와 데이터 라벨링
데이터 수집을 완료한 후에는, 수집된 데이터를 유의미한 피쳐로 전환시킬 수 있는지 여부, 즉 데이터 완성도에 대한 점검이 필요합니다. 사용 가능한 데이터가 언제부터, 얼마나 축적되어 있는지 확인해야 하는데, 이를 통해 모델 개발자는 모델 학습을 위한 충분한 데이터(연간 데이터 등)가 있는지 파악할 수 있습니다. 주기적인 패턴을 가지거나, 알려진 불규칙성(anomaly)을 포함한 데이터가 있다면 보다 더 탄력적인 모델을 학습시킬 수 있습니다.
데이터 완성도 점검에는 데이터 라벨링이 정확하게 되어있는지 확인하는 작업도 포함됩니다. 하나의 객체에 중복된 라벨이 있거나, 아예 라벨링이 되지 않았거나, 엉뚱한 곳에 라벨링이 된 경우 등 다양한 오류가 발생합니다. 대부분의 기업에서 이 데이터 정리 측면에서 원본데이터를 다루는 작업을 가장 어려워합니다. 이 문제를 해결하기 위해 기술과 인력을 함께 활용해 데이터 라벨링 서비스를 제공하는 회사도 많이 생기고 있습니다.
데이터가 적절히 분포되어 있는지 검토하는 것도 중요합니다. 특히 데이터를 수집했던 시점과 기간이 중요한데, 특정 기간 동안 수집된 데이터는 분포가 고르지 못할 가능성이 높기 때문입니다. 데이터 수집은 비즈니스 조건과 밀접하게 관련되어 있고, 데이터도 시간에 따라 계속 변하기 때문에 정확하게 다루기 어려운 부분입니다.
- 데이터 라벨링 기능을 제공하는 머신러닝 인프라 기업들 : Superb AI, Scale AI, Figure Eight, LabelBox, Amazon Sagemaker
데이터 처리와 데이터 랭글링(Data Wrangling)
* 데이터 랭글링(Daata Wrangling) : 원본데이터(raw data)를 분석하기 좋은 형태로 전환하거나 매핑하는 과정
라벨링이 완료된 충분한 데이터가 수집되면, 원본데이터는 모델이 이해할 수 있는 피쳐로 전환되는 일련의 과정을 거치게 됩니다. 이 단계는 기업이 다루는 데이터의 유형에 따라 달라질 수 있습니다. 범주형 변수(categorical values)의 경우, 원핫(one-hot) 인코딩을 사용하는 것이 일반적입니다. 수치형 변수(numeric values)의 경우에는 데이터 분포를 기반으로 데이터를 정규화하기 위한 몇 가지 방식이 있을 수 있습니다. 이 과정의 핵심은 데이터 분포를 비롯해서, 회사의 데이터를 전체적으로 이해하는 것입니다.
데이터 처리에는 추가 수집된 데이터의 정리와 품질 검사가 포함됩니다. 모델은 어떤 데이터를 학습하느냐에 따라 달라지므로, 데이터 중복·인덱싱 오류 및 기타 데이터 품질 문제를 해결하여 확실한 데이터를 확보해야 합니다.
데이터 랭글링 전문 회사에서는 데이터 사이언티스트, 비즈니스 분석가, 데이터 엔지니어들이 데이터를 정리하고 준비하기 위한 변환 규칙을 정의할 수 있습니다. 이런 회사는 노코드, 로우코드에서부터 개발자 중심 플랫폼까지 다양할 수 있습니다.
마지막으로, 데이터에 오류가 없게끔 학습용 데이터셋에 대한 품질 검수는 지속적으로 이뤄져야 합니다.
- 데이터 랭글링 기능을 제공하는 머신러닝 인프라 기업들 : Trifacta, Paxata, Alteryx
- 데이터 처리 기능을 제공하는 머신러닝 인프라 기업들 : Superb AI, Spark, DataBricks, Qubole, Hive
데이터 버전 관리와 피쳐 스토어
데이터 준비는 곧 모델 성능과 직결되지만, 완성도 높고 정제된 데이터를 준비하기까지는 많은 어려움이 있습니다. 데이터 수집부터 변환에 이르기까지, 학습용 데이터셋을 구축하는 작업에서 모델 성능에 영향을 미칠 수 있는 데이터 버전의 변화를 일일이 추적하는 것도 어렵습니다. 조직이 성장함에 따라 일관된 데이터 변환 기능을 갖춘 피쳐 스토어를 구축한다면, 중복작업과 컴퓨팅 비용을 절감할 수 있을 것입니다.
- 데이터 버저닝, 피쳐스토어·특성 추출 기능을 제공하는 머신러닝 인프라 기업들 : Pachyderm, Alteryx, Stealth Startups
노트북 관리
데이터 사이언티스트가 사용할 수 있는 데이터가 준비되면, 데이터 준비에서 모델 구축 단계로 데이터를 전달할 때는, 파일 형태 혹은 피쳐 스토어를 통해 전달하게 됩니다. 큰 조직에서는 데이터 엔지니어링팀이 데이터 사이언티스트가 모델 구축에 활용할 수 있는 형태로 데이터를 변환하는 작업을 전담하기도 합니다.
Databricks의 Notebooks·Cloudera의 Data Science Workbench·Domino Data Labs의 Notebooks와 같은 관리형 노트북 제품들을 보면, 데이터 준비 워크플로우는 모델 구축과 분리될 수 없음을 알 수 있습니다. 데이터에서 유용한 피처를 어떻게 선택할지(Feature Selection)는 다루는 데이터에 따라 달라지므로, 관리형 노트북은 데이터 준비와 모델 구축 사이의 간극을 없애는 역할을 합니다.
- 노트북 관리 기능을 제공하는 머신러닝 인프라 기업들 : Databricks, Cloudera, Workbench, Domino Data Lab, Stealth Startups
본 글이 유용하셨나요? 머신러닝 개발에서 데이터 작업의 어려움과 중요성을 인지한 머신러닝팀들이 지속 반복이 가능한 데이터 사이클을 구축하기 위해 도입하는 솔루션인 머신러닝 데이터 플랫폼을 설명하는 머신러닝 데이터 플랫폼이란? 포스팅도 확인해보세요!