상세 컨텐츠

본문 제목

Write your training loop in PyTorch

Hugging Face Course

by Taeyoon.Kim.DS 2023. 9. 19. 20:49

본문

https://www.youtube.com/watch?v=Dh9CL8fyG80&list=PLo2EIpI_JMQvWfQndUesu0nPBAtZ9gP1o&index=30 

from datasets import load_dataset load_dataset
from transformers import AutoTokenizer, DataCollatorWithPadding

raw_datasets = load_dataset("glue", "mrpc") # 데이터셋 
checkpoint = "bert-base-cased" # 모델명 - 대소문자를 구분하는 버트 모델.
tokenizer = AutoTokenizer.from_pretrained(checkpoint) # 토크나이저 - 사전학습된 모델을 이용한 토크나이저. 그 중에서도 모델 이름을 기반으로한 적절한 토크나이저 선택.


def tokenize_function(examples): # 데이터셋 examples 안의 sentence1,2
	return tokenizer(exmamples["sentence1"], examples["sentence2"], truncation=True)
# 샘플에서의 문장 1과 2를 토크나이저를 이용해서 토큰화 하도록한다.
 
tokenized_datasets = raw_datasets.map(tokenize_function, batched=True) # map함수를 이용하여 전체 데이터셋에 적용한다. batched를 이용해서 미리 정의된 배치 사이즈를 사용한다. 이 결과 토큰화된 예제들이 포함된 새로운 데이터셋이 생성된다.


tokenized_datasets = tokenized_datasets.remove_columns(["sentence1", "sentence2", idx"])
tokenized_datasets = tokenized_datasets.rename_column("label", "labels")
tokenized_datsets.set_format("torch")

data_collator = DataCollatorWithPading(tokenizer)

Preprocess the GLUE MRPC dataset using dynamic padding.

from torch.utils.data import DataLoader

train_dataloader = DataLoader(
  tokenized_datasets["train"], shuffle=True, batch_size=8, collate_fn=data_collator
)
eval_dataloader = DataLoader(
  tokenized_datasets["validation"], batch_size=8, collate_fn=data_collator
)

https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/videos/training_loop.ipynb

 

Google Colaboratory Notebook

Run, share, and edit Python notebooks

colab.research.google.com

 

관련글 더보기