C.W.K.
Stream
Lesson 06 of 06 · published

저장, 로드, push_to_hub

~25 min · transformers, hub, save

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

대칭: save_pretrained / from_pretrained

라이브러리의 모든 PreTrainedModel, PreTrainedTokenizer, processor 가 같은 pair 가져: save_pretrained(path) 가 config + 가중치 + tokenizer 파일을 디렉토리에 쓰고, from_pretrained(path or repo_id) 가 로드. 로컬 path 와 Hub repo id 가 호환 — 로더가 어느 거 넘긴지 sniff.

이 대칭이 전체 생태계가 compose 하는 이유. LoRA trainer 가 디렉토리 출력; 그걸 AutoPeftModelForCausalLM 에 넘김; merged 디렉토리를 push_to_hub() 에 넘김; 다음 사람이 너 repo id 에 from_pretrained 콜. End-to-end: 같은 두 메서드.

push_to_hub: 저평가된 절반

model.push_to_hub("yourname/your-repo")tokenizer.push_to_hub(...) 가 Hub 레포 만들거나 업데이트. 첫 콜은 디폴트 README 로 생성; 다음 콜은 업데이트. huggingface_hubcreate_repo() 가 explicit 컨트롤 (private, exist_ok, organization 등).

가중치 업로드엔 safetensors 포맷 prefer (transformers 4.34 부터 디폴트). 더 안전 (no pickle), 더 빠름 (memory-mapped), 더 작음 (Python 오버헤드 X).

Code

로컬 저장 후 Hub push·python
from transformers import AutoModelForCausalLM, AutoTokenizer

repo = "Qwen/Qwen2.5-1.5B-Instruct"
tok = AutoTokenizer.from_pretrained(repo)
model = AutoModelForCausalLM.from_pretrained(repo)

# 로컬 저장 (round-trip 가능)
local = "./qwen-1.5b-local"
tok.save_pretrained(local)
model.save_pretrained(local, safe_serialization=True)

# Round-trip
tok2 = AutoTokenizer.from_pretrained(local)
model2 = AutoModelForCausalLM.from_pretrained(local)

# Hub push (write 토큰 필요; private 레포면 private=True)
# tok.push_to_hub("yourname/qwen-mirror", private=True)
# model.push_to_hub("yourname/qwen-mirror", private=True)
explicit 레포 생성 + 선택적 업로드·python
from huggingface_hub import HfApi, create_repo

repo_id = "yourname/qwen-mirror"

# Idempotent
create_repo(repo_id, repo_type="model", private=True, exist_ok=True)

api = HfApi()
api.upload_folder(
    folder_path="./qwen-1.5b-local",
    repo_id=repo_id,
    repo_type="model",
    commit_message="Initial mirror",
    ignore_patterns=["*.bin"],  # safetensors 있으니 중복 skip
)

External links

Exercise

작은 공개 모델 가져와 로컬 저장, upload_folder 로 너 계정 private 레포에 push. 그다음 Hub 레포 id (로컬 path 아님) 에서 모델 로드해 round-trip 검증. 웹에서 레포 inspect: 어떤 파일 존재, 모델 카드에 뭐 뜨는지.

Progress

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

댓글 0

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

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