본문 바로가기
C.W.K.
Stream
Lesson 06 of 08 · published

로컬 파일에서 커스텀 데이터셋

~24 min · datasets, custom

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

로컬 자료는 내장 로더부터 써

일반적인 로컬 파일에 별도 로딩 스크립트는 거의 필요 없어. json, csv, parquet, text, imagefolder, audiofolder 로더가 흔한 구조를 처리해. data_files에는 파일 하나, 파일 목록, 또는 split 이름을 키로 한 dict를 넘길 수 있어.

폴더 구조도 스키마의 일부야

imagefolder{root}/{class_name}/{file} 구조에서 폴더 이름을 label로 추론해. 같은 위치에 metadata.jsonl이나 metadata.csv를 두면 caption·bounding box·transcription 같은 열을 덧붙일 수 있어.

메모리 안의 값도 Dataset로 만들 수 있어

Dataset.from_dict()는 열별 목록을, from_list()는 행별 dict를, from_pandas()는 DataFrame을 받아. 모두 단일 Dataset를 돌려주므로 여러 split이 필요하면 DatasetDict({'train': ..., 'test': ...})로 묶어.

Code

named split 의 로컬 CSV·python
from datasets import load_dataset

# 각 path 를 split 처럼
data_files = {
    "train": "data/train.csv",
    "validation": "data/dev.csv",
    "test": "data/test.csv",
}
ds = load_dataset("csv", data_files=data_files)
print(ds)
in-memory 행에서 Dataset 빌드·python
from datasets import Dataset, DatasetDict

rows = [
    {"prompt": "Hello", "completion": "Hi there"},
    {"prompt": "How are you?", "completion": "I'm doing well"},
]
train = Dataset.from_list(rows)

# split 여러 개면 DatasetDict 로 wrap
ddict = DatasetDict({"train": train})

# 이제 Hub 데이터셋처럼 사용 가능
ddict.push_to_hub("yourname/scratch-prompts", private=True)
imagefolder 컨벤션·python
# 디스크 폴더 구조:
# imgs/train/cat/001.jpg
# imgs/train/dog/001.jpg
# imgs/val/cat/001.jpg
# imgs/val/dog/001.jpg

from datasets import load_dataset
ds = load_dataset("imagefolder", data_dir="imgs")
print(ds["train"].features)  # {'image': Image(...), 'label': ClassLabel(...)}

External links

Exercise

작은 챗 데이터셋 (10-20 prompt/completion pair) 을 JSONL 로 빌드. load_dataset('json', data_files=...) 로 로드. push_to_hub 로 private Hub 레포에 push. 데이터셋 카드의 viewer 에서 컬럼 맞는지 검증.

Progress

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

댓글 0

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

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