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

Caching, push_to_hub, 재현성

~24 min · datasets, hub, cache

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

Datasets 캐시는 변환 결과까지 기억해

기본 위치는 ~/.cache/huggingface/datasets이고 HF_DATASETS_CACHEHF_HOME으로 바꿀 수 있어. 캐시의 Arrow 파일은 데이터셋 ID, config, 처리 fingerprint로 구분돼. fingerprint에는 mapfilter 함수 소스도 반영되므로 같은 입력과 같은 변환이면 결과를 다시 계산하지 않아.

비싼 전처리 결과는 따로 저장해

save_to_disk(path)로 처리된 데이터셋을 저장하고 다음 실행에서 load_from_disk(path)로 바로 열 수 있어. 계산 레시피만 남기는 대신 실제 산출물을 고정하는 방식이야.

Hub에 올린 뒤에도 버전을 고정해

ds.push_to_hub('yourname/my-set', commit_message='initial', private=True)는 Parquet로 올리고 Dataset Viewer를 붙여 줘. 다시 읽을 때는 모델과 마찬가지로 revision='abc123def'에 커밋 SHA를 넣어 정확한 버전을 고정해.

Code

save_to_disk + load_from_disk·python
from datasets import load_dataset

ds = load_dataset("stanfordnlp/imdb")
small = ds["train"].select(range(2000))

# 결과 굽기
small.save_to_disk("/tmp/imdb-2k")

# 재로드 — 인터넷 없이
from datasets import load_from_disk
ds2 = load_from_disk("/tmp/imdb-2k")
print(len(ds2), ds2[0])
처리된 데이터셋 push_to_hub·python
ds_processed = ds["train"].map(lambda ex: {"text_len": len(ex["text"])}, num_proc=4)

ds_processed.push_to_hub(
    "yourname/imdb-with-length",
    commit_message="add text_len",
    private=True,
)

# read 권한 있는 사람이 이제:
# load_dataset("yourname/imdb-with-length", revision="<sha>")

External links

Exercise

작은 공개 데이터셋 process (filter, map, select). save_to_disk. load_from_disk 로 검증. private 레포에 push_to_hub. 레포 viewer 가 새 컬럼 보이는지 검증. SHA 핀 박고 그 SHA 로 레포에서 load_dataset.

Progress

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

댓글 0

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

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