paint-brush
딥 러닝을 위한 레이크하우스인 Deep Lake: 머신 러닝 사용 사례~에 의해@dataology
197 판독값

딥 러닝을 위한 레이크하우스인 Deep Lake: 머신 러닝 사용 사례

너무 오래; 읽다

연구원들은 딥 러닝 프레임워크를 위한 복잡한 데이터 스토리지 및 스트리밍을 최적화하는 딥 러닝용 오픈 소스 레이크하우스인 Deep Lake를 소개합니다.
featured image - 딥 러닝을 위한 레이크하우스인 Deep Lake: 머신 러닝 사용 사례
Dataology: Study of Data in Computer Science HackerNoon profile picture
0-item

저자:

(1) Sasun Hambardzumyan, Activeloop, Mountain View, CA, USA;

(2) Abhinav Tuli, Activeloop, 미국 캘리포니아주 마운틴뷰;

(3) Levon Ghukasyan, Activeloop, Mountain View, CA, USA;

(4) Fariz Rahman, Activeloop, 미국 캘리포니아주 마운틴뷰;.

(5) Hrant Topchyan, Activeloop, Mountain View, CA, USA;

(6) David Isayan, Activeloop, 미국 캘리포니아주 마운틴뷰;

(7) 마크 맥퀘이드(Mark McQuade), 미국 캘리포니아주 마운틴뷰 소재 Activeloop;

(8) Mikayel Harutyunyan, Activeloop, 미국 캘리포니아주 마운틴뷰;

(9) Tatevik Hakobyan, Activeloop, 미국 캘리포니아주 마운틴뷰;

(10) Ivo Stranic, Activeloop, Mountain View, CA, USA;

(11) Davit Buniatyan, Activeloop, Mountain View, CA, USA.

링크 표

5. 기계 학습 사용 사례

이번 섹션에서는 Deep Lake의 애플리케이션을 검토합니다.


Deep Learning 애플리케이션의 일반적인 시나리오는 다음과 같이 시작됩니다.


(1) 객체 스토리지 버킷에 수집되는 원시 파일 세트입니다. 여기에는 JPEG, PNG 또는 MP4와 같은 기본 형식의 이미지, 비디오 및 기타 유형의 멀티미디어 데이터가 포함될 수 있습니다.


(2) 관계형 데이터베이스에 저장된 모든 관련 메타데이터 및 레이블. 선택적으로 CSV, JSON 또는 Parquet 형식과 같은 정규화된 표 형식의 원시 데이터와 함께 동일한 버킷에 저장할 수 있습니다.


그림 4와 같이 빈 Deep Lake 데이터세트가 생성됩니다. 그런 다음 원시 데이터와 메타데이터를 모두 저장하기 위해 빈 텐서를 정의합니다. 텐서의 수는 임의적일 수 있습니다. 이미지 분류 작업의 기본 예에는 두 개의 텐서가 있습니다.


• htype이 𝑖𝑚𝑎𝑔𝑒이고 샘플 압축이 JPEG인 이미지 텐서


• htype이 𝑐𝑙𝑎𝑠𝑠_𝑙𝑎𝑏𝑒𝑙이고 청크 압축이 LZ4인 텐서에 레이블을 지정합니다.


텐서를 선언한 후 데이터를 데이터세트에 추가할 수 있습니다. 원시 이미지 압축이 텐서 샘플 압축과 일치하면 추가 디코딩 없이 바이너리가 청크로 직접 복사됩니다. 라벨 데이터는 SQL 쿼리 또는 CSV 테이블에서 범주형 정수로 추출되어 라벨 텐서에 추가됩니다. 레이블 텐서 청크는 LZ4 압축을 사용하여 저장됩니다. 모든 Deep Lake 데이터는 버킷에 저장되며 독립적입니다. 저장 후에는 NumPy 인터페이스나 스트리밍 가능한 딥 러닝 데이터 로더로 데이터에 액세스할 수 있습니다. 그런 다음 컴퓨팅 머신에서 실행되는 모델은 이미지 텐서 스트림을 반복하고 예측이라는 새로운 텐서에 모델의 출력을 저장합니다. 또한 Deep Lake 데이터세트의 교육, 버전 제어, 쿼리 및 품질 검사 방법을 아래에서 설명합니다.

5.1 딥러닝 모델 훈련

딥 러닝 모델은 개인용 컴퓨터에서 발생하는 탐색적 훈련부터 많은 GPU가 포함된 분산 시스템에서 발생하는 대규모 훈련에 이르기까지 조직 내 여러 수준에서 훈련됩니다. 장기 저장소의 데이터를 교육 클라이언트로 가져오는 데 필요한 시간과 노력은 종종 교육 자체와 비슷합니다. Deep Lake는 다운스트림 훈련 프로세스에 병목 현상을 일으키지 않고 데이터의 신속한 스트리밍을 가능하게 하여 로컬 스토리지에 데이터를 복제하는 데 필요한 비용과 시간을 방지함으로써 이 문제를 해결합니다.

5.2 데이터 계보 및 버전 제어

딥러닝 데이터는 새로운 데이터가 추가되고 기존 데이터의 품질이 관리됨에 따라 끊임없이 진화합니다. 데이터가 변경되는 동안 분석 및 교육 워크로드가 동시에 발생합니다. 따라서 특정 워크로드에서 어떤 데이터 버전이 사용되었는지 아는 것은 데이터와 모델 성능 간의 관계를 이해하는 데 중요합니다. Deep Lake를 사용하면 딥 러닝 실무자가 분석 워크로드에 사용된 데이터 버전을 이해하고 감사가 필요한 경우 이러한 버전 간에 시간 여행을 할 수 있습니다. 모든 데이터는 변경 가능하므로 규정 준수 관련 개인 정보 보호 요구 사항을 충족하도록 편집할 수 있습니다. 코드용 Git과 마찬가지로 Deep Lake에도 데이터 분기 개념이 도입되어 동료의 작업에 영향을 주지 않고 데이터를 실험하고 편집할 수 있습니다.

5.3 데이터 쿼리 및 분석

특정 애플리케이션을 위해 조직에서 수집한 모든 데이터에 대해 딥 러닝 모델 교육이 거의 발생하지 않습니다. 훈련 데이터 세트는 모델 성능을 높이는 조건에 따라 원시 데이터를 필터링하여 구성되는 경우가 많습니다. 여기에는 종종 데이터 밸런싱, 중복 데이터 제거 또는 특정 기능이 포함된 데이터 선택이 포함됩니다. Deep Lake는 딥 러닝 엔지니어가 가장 정확한 모델을 생성하는 데이터 세트를 생성할 수 있도록 데이터를 쿼리하고 분석하는 도구를 제공합니다.

5.4 데이터 검사 및 품질 관리

비지도 학습이 실제 사용 사례에 점점 더 많이 적용되고 있지만 대부분의 딥 러닝 애플리케이션은 여전히 지도 학습에 의존하고 있습니다. 모든 지도 학습 시스템은 데이터의 품질만큼만 우수하며, 종종 데이터를 수동으로 철저하게 검사하여 달성할 수 있습니다. 이 프로세스는 시간이 많이 걸리기 때문에 루프에 있는 사람에게 방대한 양의 데이터를 매우 빠르게 검사할 수 있는 도구를 제공하는 것이 중요합니다. Deep Lake를 사용하면 설정 시간이나 데이터 다운로드 없이 브라우저에서 모든 크기의 딥 러닝 데이터 세트를 검사할 수 있습니다. 또한 모델 결과를 실제 결과와 비교하기 위해 도구를 확장할 수 있습니다. 쿼리 및 버전 제어와 결합하여 데이터의 반복적인 개선에 적용하여 가능한 최상의 모델을 달성할 수 있습니다.


이 문서는 CC 4.0 라이선스에 따라 arxiv에서 볼 수 있습니다.