다음 코드는 GPTDatasetV1을 사용하여 파이토치 DataLoader를 통해 입력을 배치로 로드합니다.
코드 2-6 입력-타깃 쌍의 배치를 생성하기 위한 데이터 로더
def create_dataloader_v1(txt, batch_size=4, max_length=256,
stride=128, shuffle=True, drop_last=True,
num_workers=0):
tokenizer = tiktoken.get_encoding("gpt2") ----- 토크나이저를 초기화합니다.
dataset = GPTDatasetV1(txt, tokenizer, max_length, stride) ----- 데이터셋을 만듭니다.
dataloader = DataLoader(
dataset,
batch_size=batch_size,
shuffle=shuffle,
drop_last=drop_last, ----- drop_last=True로 지정하면 batch_size보다 작을 경우 훈련 손실이 갑자기 높아지는 것을 피하기 위해 마지막 배치를 삭제합니다.
num_workers=num_workers ----- 전처리에 사용할 CPU 프로세서 개수
)
return dataloader