본문 바로가기
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, 로컬 파일이나 디렉터리, 이름 있는 로더를 받아 Parquet·CSV·JSONL·오디오·이미지 형식을 알아내고 캐시에 내려받아. 결과는 Dataset 또는 DatasetDict야.

반환 형태부터 확인해

  • train·validation·test처럼 여러 split이 정의돼 있으면 split 이름을 키로 가진 DatasetDict가 나와.
  • split='train'처럼 하나를 지정했거나 자료원에 split이 하나뿐이면 Dataset가 나와.

스트리밍을 켜면 사용 계약이 달라져

기본 모드는 전체 자료를 디스크에 받고 임의 위치를 조회할 수 있는 테이블을 만들어. streaming=True를 쓰면 내려받으며 순서대로 읽는 IterableDataset가 되고, 디스크 저장과 임의 접근은 사라져. 디스크보다 큰 데이터셋을 다룰 때는 이 차이가 선택 사항이 아니라 생존 조건이야.

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 토큰, 풀 다운로드 안 받고
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

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

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