Skip to content

Latest commit

 

History

History
261 lines (184 loc) · 18.7 KB

README_KR.md

File metadata and controls

261 lines (184 loc) · 18.7 KB



Docs PyPI version PyPI version CircleCI GitHub issues codecov tweet


Hub에서 제공하는 Data 2.0을 소개합니다.
Hub는 PyTorch/TensorFlow 등의 프레임워크에서 데이터에 접근 & 관리하고 버전관리까지 할 수 있는 가장 빠른 방법이며, 로컬이나 클라우드 어디서든 사용 가능합니다.
또한 언제든 확장 가능한 데이터 파이프라인입니다.


[ English | Français | 简体中文 | Türkçe | 한글 | Bahasa Indonesia] | Русский]

Hub는 무엇인가요?

소프트웨어 2.0 시대에 맞춰, Hub는 데이터 2.0을 제공합니다. 대부분의 데이터 사이언티스트와 인공지능 연구자들은 모델을 학습시키는 것 보다 데이터 관리와 전처리에 대부분의 시간과 노력을 투자하는데, Hub를 통해 이 문제를 해결할 수 있습니다. 저희는 여러분의 데이터셋들을 petabyte 규모까지도 numpy 형태의 어레이로 클라우드에 저장하여 어떤 컴퓨터에서든 원활하게 접근하고 작업할 수 있게끔 합니다. Hub를 이용하면 이미지, 텍스트, 오디오, 비디오 등의 데이터들을 미리 다운로드하지 않고도 로컬에 저장된 것처럼 빠르게 접근하고, 또 활용할 수 있습니다. 또한 팀원들끼리 하나의 데이터셋을 동기화하여 사용할 수도 있습니다.

Hub 는 Waymo, Red Cross, World Resources Institute, Omdena 등에서 이미 사용되고 있습니다.

Hub는 이렇습니다!

  • 버전 관리가 가능한 대규모의 데이터셋을 저장하고 검색할 수 있습니다.
  • Google Docs를 쓸 때처럼 다수의 데이터 사이언티스트들이 서로 간섭받지 않으면서 동일한 데이터셋을 가지고 실시간 협업할 수 있습니다.
  • 동시에 여러 기기에서 접속할 수 있습니다.
  • Activeloop 뿐만아니라 로컬, 구글클라우드, S3, Azure 등 다양한 플랫폼에 배포할 수 있습니다. (Activeloop가 default이며, 또한 무료입니다!)
  • Numpy, Dask, Ray, PyTorch, or TensorFlow 등의 다양한 머신러닝 프레임워크들과 연동하는 것이 가능합니다.
  • 저장되는 어레이의 크기는 자유입니다. 100k by 100k짜리 이미지도 저장 가능합니다!
  • 저장되는 어레이들의 shape또한 제각각으로 할 수 있습니다.
  • 특별한 조작 없이도 빠르게 저장된 데이터들을 Visualize할 수 있습니다.



app.activeloop.ai (무료 tool)를 이용하여 Hub에 업로드된 데이터를 visualize한 결과.

시작하기

여러분의 개인 데이터나 공용 데이터를 로컬 또는 아무 클라우드에서나 사용할 수 있습니다.

빠르게 공용 데이터셋에 접근하기

공용 데이터셋을 로드하려면, 그걸 활용하기 위해 코드를 작성해야 하고, 또 그러기 위해서는 API에 접근하고 사용법을 익히는 데 많은 시간이 소요되는 것이 현실입니다. Hub를 이용하면 단 2줄의 코드만으로 단 3분 안에 필요로 하시는 데이터셋을 준비하실 수 있습니다.

pip3 install hub

여러분은 Hub를 이용하여 몇 줄의 간단한 코드만으로 구성된 절차를 거쳐서 공용 데이터셋에 접근하실 수 있습니다. 예를 들어 MNIST database의 첫 1000개의 이미지들을 numpy array 포맷으로 불러오고 싶으시다면 다음과 같은 코드를 작성하시면 됩니다:

from hub import Dataset

mnist = Dataset("activeloop/mnist")  # loading the MNIST data lazily
# saving time with *compute* to retrieve just the necessary data
mnist["image"][0:1000].compute()

app.activeloop.ai에 방문하시면 MNIST 말고도 다양한 다른 공용 데이터셋들에 접근하실 수 있는 링크도 얻으실 수 있습니다.

모델 학습시키기

데이터를 로드해서 여러분의 모델을 바로 학습시킬 수 있습니다. Hub는 Pytorch, Tensorflow와 연동이 가능하고, 데이터 형식 간의 변환 또한 쉽게 가능합니다. 다음은 Pytorch에서 hub를 이용한 예시입니다:

from hub import Dataset
import torch

mnist = Dataset("activeloop/mnist")
# converting MNIST to PyTorch format
mnist = mnist.to_pytorch(lambda x: (x["image"], x["label"]))

train_loader = torch.utils.data.DataLoader(mnist, batch_size=1, num_workers=0)

for image, label in train_loader:
    # Training loop here

로컬 데이터셋을 생성하기

만약 여러분이 기존 방식처럼 로컬에서 여러분만의 데이터셋을 사용하고 싶으시다면, 다음과 같이 데이터셋을 생성하실 수도 있습니다:

from hub import Dataset, schema
import numpy as np

ds = Dataset(
    "./data/dataset_name",  # file path to the dataset
    shape = (4,),  # follows numpy shape convention
    mode = "w+",  # reading & writing mode
    schema = {  # named blobs of data that may specify types
    # Tensor is a generic structure that can contain any type of data
        "image": schema.Tensor((512, 512), dtype="float"),
        "label": schema.Tensor((512, 512), dtype="float"),
    }
)

# filling the data containers with data (here - zeroes to initialize)
ds["image"][:] = np.zeros((4, 512, 512))
ds["label"][:] = np.zeros((4, 512, 512))
ds.flush()  # executing the creation of the dataset

로컬 데이터 뿐만 아니라 s3://bucket/path, gcs://bucket/path 또는 Azure 경로까지 정해주실 수 있습니다. 이곳에서 클라우드에 저장된 데이터를 다루는 법에 대한 추가적인 정보를 얻으실 수 있습니다.

또한, 공개된 공용 데이터셋인데 Hub에서 그 데이터셋을 찾으실 수 없는 경우에는, 저희에게 요청하실 수 있습니다. 저희가 가능한 한 모두가 사용 가능할 수 있도록 최선을 다하겠습니다.

여러분의 데이터셋을 업로드하고 어디에서든 접근할 수 있도록 하는 3단계

  1. Activeloop에 무료 계정을 생성하고 로컬에서 인증합니다:
activeloop register
activeloop login

# alternatively, add username and password as arguments (use on platforms like Kaggle)
activeloop login -u username -p password
  1. 데이터셋을 생성한 후 이름을 정하고, 당신의 계정에 업로드합니다. 예시는 다음과 같습니다:
from hub import Dataset, schema
import numpy as np

ds = Dataset(
    "username/dataset_name",
    shape = (4,),
    mode = "w+",
    schema = {
        "image": schema.Tensor((512, 512), dtype="float"),
        "label": schema.Tensor((512, 512), dtype="float"),
    }
)

ds["image"][:] = np.zeros((4, 512, 512))
ds["label"][:] = np.zeros((4, 512, 512))
ds.flush()
  1. 전 세계 어디에서나 커맨드 라인 입력이 가능한 어떤 기기로든 당신의 데이터셋에 다음과 같이 접근하실 수 있습니다:
from hub import Dataset

ds = Dataset("username/dataset_name")

공식 문서

대규모 데이터셋을 업로드하거나 다양한 변환을 적용하는 등 더 복잡한 작업을 수행하기를 원하신다면, 저희의 공식 문서를 확인해주시기 바랍니다.

튜토리얼

examples 경로에는 Hub에 대해 대략적으로 배워볼 수 있는 예제들이 주피터 노트북 형태로 제공되고 있습니다. 아래는 몇몇 유용한 노트들의 리스트입니다.

노트 설명
Uploading Images Hub에 이미지를 업로드하고 저장하는 방법에 관한 소개입니다. Open In Colab
Uploading Dataframes 데이터프레임을 Hub에 업로드하는 방법에 관한 소개입니다. Open In Colab
Uploading Audio Hub에서 음성 데이터를 다루는 방법에 관한 설명입니다. Open In Colab
Retrieving Remote Data 데이터를 검색하는 방법에 관한 설명입니다. Open In Colab
Transforming Data Hub를 이용하여 데이터를 변환하는 방법에 관한 간략한 소개입니다. Open In Colab
Dynamic Tensors 데이터의 shape이나 size를 다루는 방법에 관한 내용입니다. Open In Colab
NLP using Hub 실제로 CoLA 데이터셋을 이용해 BERT 모델을 Fine Tune하는 방법에 관한 예제입니다. Open In Colab

사용 예시

왜 Hub여야 하는가?

Hub와 유사한 기능을 제공하는 데이터셋 관리 라이브러리가 꽤 존재합니다. 실제로 상당수의 사용자들이 PyTorch나 Tensorflow Dataset들을 Hub로 마이그레이션합니다. 다음은 여러분이 Hub로 오시게 되면 겪게 되실 몇 가지 놀라운 차이점들입니다:

  • 데이터셋이 chunk의 형태로 제공되기 때문에 그것들을 한꺼번에 미리 다운로드한 후에 사용할 필요 없이 원격으로 스트리밍하실 수 있습니다.
  • 데이터의 필요한 부분만이 평가되기 때문에, 여러분은 즉각적으로 데이터를 활용하실 수 있습니다.
  • 여러분이 보유하신 메모리보다 큰 규모의 데이터셋을 저장하고 활용하실 수 있습니다.
  • 당신의 데이터셋을 다양한 기기들에 걸쳐 다수의 사용자들과 함께 협업하고 버전도 관리할 수 있습니다.
  • Visualization Tool과 같이 여러분이 데이터를 쉽게 이해하실 수 있게 돕는 장치들을 갖출 수 있게 됩니다.
  • 다수의 학습 라이브러리를 위해서 단 한번만 데이터를 준비하면 됩니다. (예를 들어, 여러분은 PyTorch와 Tensorflow 각각을 이용해서 학습을 하기 위해 동일한 데이터셋을 사용하실 수 있습니다.)

커뮤니티

데이터셋 관리 및 전처리에 관한 최신 정보를 얻고 싶으시거나 Activeloop 팀 또는 다른 사용자들로부터 도움을 받고 싶으시다면 저희 Slack 커뮤니티에 참여하세요!

tweet on Twitter.

저희 컨트리뷰터 분들께 항상 진심으로 감사드립니다!

contributors-img를 통해 만든 이미지입니다.

Hub에 기여하고 싶으시다면 CONTRIBUTING.md 문서를 참고해주세요.

예시

Activeloop의 Hub 포맷은 여러분께서 적은 리소스로 빠른 인퍼런스 속도를 달성할 수 있게끔 해드립니다. 저희는 30개가 넘는 유명한 데이터셋을 미이 보유중입니다. 대표적으로는 다음과 같습니다:

  • COCO
  • CIFAR-10
  • PASCAL VOC
  • Cars196
  • KITTI
  • EuroSAT
  • Caltech-UCSD Birds 200
  • Food101

위 리스트와 저희 visualizer web app 링크를 확인하시고 해당 데이터셋들을 여러분의 모델을 학습시키는데 바로 활용해보세요!

README 뱃지

Hub를 사용하고 계시다면 모두가 알 수 있게 README에 저희 뱃지를 추가해주세요:

hub

[![hub](https://img.shields.io/badge/powered%20by-hub%20-ff5a1f.svg)](https://github.com/activeloopai/Hub)

면책 조항

다른 데이터셋 관리 패키지들과 마찬가지로 Hub는 공용 데이터셋을 다운로드하고 준비할 수 있게 하는 유틸리티 라이브러리입니다. 당사는 이러한 데이터셋들을 호스팅 또는 배포하는 것이 아니며, 품질 또는 공정성을 보증하거나 각 데이터셋의 라이선스가 있음을 주장하지 않습니다. 데이터셋 사용 권한에 관한 라이선스를 확인하는 것은 사용자의 책임입니다.

만약 당신이 어떤 데이터셋의 소유자이고 데이터셋의 부가 설명, 인용 정보 등을 추가하고 싶거나 또는 본 라이브러리에 해당 데이터셋이 포함되는 것을 원치 않으실 경우 GitHub issue를 통해 알려주시길 바랍니다. ML 커뮤니티에 대한 당신의 기여에 깊은 감사의 말씀을 드립니다.

감사의 말

이 기술은 Princeton University에서의 경험에서 영감을 받아 시작되었으며, William Silversmith @SeungLab에게 그의 멋진 cloud-volume 툴에 대해 감사를 표하고 싶습니다. 또한 저희는 Zarr의 헤비 유저이며 그들의 커뮤니티가 이러한 기반을 마련해 준 점에 대해서도 큰 감사의 말씀 드립니다.