C.W.K.
Stream
Lesson 01 of 08 · published

load_dataset(): 만능 로더

~26 min · datasets, load

Level 0스카우트
0 XP0/50 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

한 함수, 여러 소스

datasets.load_dataset() 가 Datasets 라이브러리 전체 진입점. Hub 데이터셋 id, 로컬 path, 파일 디렉토리, HF 의 named loader script 받아. 백단에서 포맷 (Parquet, CSV, JSONL, TSV, audio folder, image folder, …) 알아내고, HF_DATASETS_CACHE 에 다운로드, Dataset 또는 DatasetDict 돌려줘.

리턴 모양 두 가지

  • 로더 스크립트가 split (train/validation/test) 정의하면 DatasetDict — split 이름으로 keyed 된 dict-of-Datasets.
  • 특정 split 요청 (split="train") 하거나 소스에 하나만 있으면 단일 Dataset.

Streaming 이 계약을 바꿈

디폴트로 load_dataset 은 풀 데이터셋을 디스크 다운로드 후 fully indexed array-like 줘. streaming=TrueIterableDataset 돌려줌: lazy, 디스크에 안 쓰임, random access 없음. 멀티-TB 데이터셋엔 유일하게 sensible 옵션.

Code

90% 케이스 cover 하는 로드 패턴 셋·python
from datasets import load_dataset

# 1. Hub 데이터셋, 모든 split
ds = load_dataset("stanfordnlp/imdb")
print(ds)  # DatasetDict({train, test})
print(ds["train"][0])

# 2. Hub 데이터셋, 특정 split
train = load_dataset("stanfordnlp/imdb", split="train")
print(len(train), train.features)

# 3. 로컬 CSV / JSONL — 로더가 파일에 직접 가리킴
data_files = {"train": "data/train.csv", "test": "data/test.csv"}
ds_local = load_dataset("csv", data_files=data_files)
print(ds_local)
디스크 너무 큰 데이터셋 streaming·python
from datasets import load_dataset

# 1.5T 토큰, 풀 다운로드 X
ds = load_dataset("HuggingFaceFW/fineweb", streaming=True, split="train")

# IterableDataset — forward iteration 만
for i, ex in enumerate(ds):
    if i >= 3: break
    print(ex.keys(), ex["text"][:100])

External links

Exercise

stanfordnlp/imdb 로드해서 features, split 별 num_rows, 랜덤 샘플 inspect. wikipediastreaming=True 로 로드해 처음 5 examples 풀 다운로드 없이 가져와. 전후로 HF_DATASETS_CACHE 사이즈 출력.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.