Launch HN: Activeloop (YC S18) – 딥러닝을 위한 데이터 레이크 (Data lake)
요약
Activeloop은 딥러닝 모델 학습에 최적화된 데이터 레이크인 'Deep Lake'를 개발했습니다. 이미지, 오디오, 비디오 등 복잡한 비정형 데이터를 텐서(tensor) 형태로 저장하여 GPU 활용도를 극대화하고 데이터 처리 인프라 구축의 복잡성을 해결합니다.
핵심 포인트
- Deep Lake는 비정형 데이터를 텐서 형태로 저장하여 AI 모델이 즉시 소비할 수 있는 구조를 제공합니다.
- SQL 스타일의 쿼리 언어, 브라우저 내 시각화 엔진, 딥러닝 프레임워크로의 빠른 스트리밍을 지원합니다.
- 기존의 오브젝트 스토리지나 일반 데이터베이스 방식보다 효율적이며 비용 절감이 가능합니다.
- 데이터 스트리밍과 GPU 비동기 연산을 결합하여 모델 학습 워크플로우를 최적화합니다.
안녕하세요 HN, 저는 Activeloop (https://activeloop.ai)의 CEO인 Davit입니다. 저희는 딥러닝 (deep learning)에 최적화된 “데이터 레이크 (data lake)” (다양한 이기종 데이터를 포함하는 대규모 데이터 저장소를 뜻하는 업계 전문 용어)를 만들었습니다. 데이터를 AI에 최적화된 형식으로 유지하면 이미지, 오디오, 비디오 데이터를 위한 복잡한 데이터 인프라를 구축할 필요 없이 AI 모델을 더 빠르게 출시할 수 있습니다 (저희 GitHub는 여기서 확인하세요: [링크 미기재]).
Deep Lake는 이미지, 오디오, 비디오, 어노테이션/레이블 (annotations/labels), 그리고 테이블 형식의 데이터 (tabular data)와 같은 복잡한 데이터를 텐서 (tensors) 형태로 저장합니다. 텐서는 선형 대수학 (linear algebra)에서 사용되는 데이터 구조의 일종으로, AI 시스템이 소비하기를 선호하는 형태입니다.
그 후 저희는 데이터를 세 가지 목적지로 빠르게 스트리밍합니다: (a) 데이터를 쿼리 (query)하는 데 사용할 수 있는 SQL 스타일의 언어 (Tensor Query Language), (b) 데이터를 시각화하는 데 사용할 수 있는 브라우저 내 엔진 (in-browser engine), (c) GPU를 완전히 활용하면서 데이터로 AI 마법을 부릴 수 있게 해주는 딥러닝 프레임워크 (deep learning frameworks)입니다. 여기 10분짜리 데모 영상이 있습니다:
.지난 2016년, 저는 딥러닝 (Deep Learning) 박사 연구를 시작하며 데이터 규모가 GB에서 TB로, 그리고 페타바이트 (petabyte) 급 데이터셋으로 전환되는 과정을 목격했습니다. 모델을 대규모로 실행하기 위해서는 데이터를 처리하는 방식을 재고해야 했습니다. 워크플로우를 최적화하는 방법 중 하나는 데이터를 스트리밍하는 동시에 GPU에서 비동기적으로 (asynchronously) 연산을 실행하는 것이었습니다. 이것이 Activeloop를 만드는 영감이 되었습니다.
딥러닝 목적으로 비정형 데이터 (unstructured data)를 사용하려 할 때, 다음과 같은 옵션들을 마주하게 됩니다:
-
일반 데이터베이스에 메타데이터 (비정형 데이터에 대한 포인터)를 저장하고, 이미지들을 오브젝트 스토리지 (object storage)에 저장하는 방식. 높은 처리량 (high-throughput)이 필요한 워크로드에서 메타데이터 테이블을 쿼리한 다음 오브젝트 스토리지에서 이미지를 가져오는 것은 비효율적입니다.
-
데이터베이스 내부에 이미지를 저장하는 방식. 이는 일반적으로 메모리 비용을 폭증시키며 비용 부담을 초래합니다. 예를 들어, MongoDB에 이미지를 저장하고 이를 모델 학습에 사용하는 것은 Deep Lake 설정보다 20배 더 많은 비용이 들 것입니다 [2].
-
이미지를 저장하기 위해 Parquet 또는 Arrow를 확장합니다. 장점으로는 Spark, Kafka, 심지어 DuckDB와 같은 기존 분석 도구들을 이제 사용할 수 있다는 점입니다. 하지만 주요 자율주행 자동차 기업들조차 이 경로에서 실패했습니다.
-
사내 데이터에 맞춘 맞춤형 인프라를 직접 구축합니다. 충분한 자금과 박사급 지식을 갖춘 10명의 숙련된 데이터 엔지니어(Data engineer)를 확보했다고 가정하더라도, 이는 여전히 많은 시간(~2.5년 이상)이 소요되며, 초기 수직적 영역(Vertical)을 넘어 확장하기 어렵고, 유지보수가 까다로우며, 데이터 과학자(Data scientist)들의 집중력을 분산시킬 것입니다.
어떤 경우든, 여러분은 느린 반복 주기(Iteration cycles), 저활용되는 GPU, 그리고 머신러닝 엔지니어(ML engineer)의 과도한 잡무(따라서 높은 비용)를 겪게 될 것입니다.
여러분의 비정형 데이터(Unstructured data)는 이미 S3나 분산 파일 시스템(예: Lustre)과 같은 데이터 레이크(Data lake)에 저장되어 있을 것이며, 아마 이를 변경하고 싶지는 않을 것입니다. Deep Lake는 일반적인 데이터 레이크가 가진 모든 장점을 유지합니다. 버전 관리(Version-control), SQL 쿼리 실행, 수십억 행의 데이터를 효율적으로 수집(Ingest), 그리고 테라바이트(Terabyte) 규모의 데이터셋을 브라우저나 노트북에서 시각화하는 것을 도와줍니다. 하지만 전통적인 데이터 레이크와는 한 가지 핵심적인 차이점이 있습니다. 우리는 이미지, 오디오, 비디오, 어노테이션/라벨(Annotations/labels), 그리고 테이블형 데이터(Tabular data)와 같은 복잡한 데이터를 딥러닝 (Deep learning) 및 GPU 활용에 최적화된 텐서(Tensorial) 형태로 저장합니다.
출시 이후의 몇 가지 통계/벤치마크(Benchmarks):
-
Yale University의 제3자 벤치마크 [3]에 따르면, Deep Lake는 PyTorch를 위한 가장 빠른 데이터 로더(Data loader)를 제공했으며, 특히 네트워크 로딩(Networked loading) 측면에서 뛰어난 성능을 보였습니다.
-
Deep Lake는 규모(Scale)와 장거리 환경을 처리합니다. 우리는 LAION-400M 데이터셋을 사용하여 동일한 머신의 16xA100 GPU에서 1B(10억) 파라미터 CLIP 모델을 학습시켰으며, 이때 데이터는 US-EAST (AWS)에서 US-CENTRAL (GCP)로 스트리밍되었습니다 [4] [5].
-
단 한 줄의 코드만으로 (전통적인 방식으로는 100시간 이상 소요되는 것에 비해) 2억 개의 샘플(이미지-텍스트 쌍)에 달하는 대규모 데이터셋에 몇 초 만에 접근할 수 있습니다. [6]
무료 제공 사항과 유료 사항: 데이터 포맷 (data format), Python 데이터 로더 (Python dataloader), 버전 관리 (version control), 그리고 Python API를 통한 데이터 리니지 (data lineage, 데이터가 현재 상태에 이르게 된 과정을 기록한 로그)는 오픈 소스 (open-source)입니다 [7]. 쿼리 언어 (query language), 빠른 스트리밍 (fast streaming), 시각화 엔진 (visualization engines)은 C++로 구축되었으며 현재는 폐쇄 소스 (closed-source)이지만, Python 인터페이스를 통해 접근할 수 있습니다. 사용자는 최대 300GB의 데이터를 저희 측에 무료로 저장할 수 있습니다. 저희의 성장 플랜 (growth plan)은 월 $995이며, 최적화된 쿼리 엔진 (query engine), 빠른 데이터 로더 (fast data loader), 그리고 분석 (analytics)과 같은 기능들을 포함합니다. 학계 종사자라면 이 플랜을 무료로 이용할 수 있습니다. 마지막으로, 역할 기반 액세스 제어 (role-based access control), 보안 (security), 통합 (integrations), 그리고 10TB 이상의 관리형 데이터 (managed data)를 포함하는 엔터프라이즈 플랜 (enterprise plan)이 있습니다 [8].
Intel, Google, 그리고 MILA의 팀들이 Deep Lake를 사용하고 있습니다. 더 자세한 내용을 읽고 싶으시다면, 기업용 백서 (whitepaper)를 https://www.deeplake.ai/whitepaper 에서, 학술 논문 (academic paper)을 https://arxiv.org/abs/2209.10785 에서, 그리고 기능에 대한 심층 분석을 담은 출시 블로그 포스트를 https://www.activeloop.ai/resources/introducing-deep-lake-th.... 에서 확인하실 수 있습니다.
이에 대한 여러분의 의견을 듣고 싶습니다. 특히 딥러닝 데이터를 어떻게 관리하고 계시는지, 그리고 인프라 (infra)와 관련하여 어떤 문제들을 겪고 계시는지에 대해 무엇이든 좋습니다. 여러분의 모든 댓글을 기다리겠습니다. 정말 감사합니다!
[1] https://www.activeloop.ai/resources/introducing-deep-lake-th...
[2] https://imgur.com/a/AZtWSkA
[3] https://arxiv.org/abs/2209.13705
[4] https://imgur.com/a/POtHklM
[5] https://github.com/activeloopai/deeplake-laion-clip
[6] https://datasets.activeloop.ai/docs/ml/datasets/coco-dataset...
AI 자동 생성 콘텐츠
본 콘텐츠는 HN Chip/GPU의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기