map()이 전처리의 중심인 이유
ds.map(fn)은 각 행이나 배치에 함수를 적용하고 새 데이터셋을 돌려줘. pandas의 apply()와 닮았지만 함수 소스를 반영한 fingerprint로 결과를 캐시하고, num_proc=N으로 여러 프로세스를 쓸 수 있다는 차이가 있어.
무거운 변환은 배치로 묶어
기본값은 행 단위지만 tokenizer나 NLP 전처리는 대개 batched=True에서 훨씬 빨라. 함수는 열별 값 목록을 담은 dict를 받고 같은 구조로 결과를 돌려주며, 라이브러리가 배치를 나누는 일은 맡아 줘.
학습기에 넘길 열만 남겨
텍스트를 input_ids와 attention_mask로 바꾼 뒤 원본 문자열 열을 그대로 두면 Trainer가 예상하지 못한 값을 받아 실패할 수 있어. 변환이 끝난 열은 remove_columns=['text']처럼 명시적으로 제거해 입력 계약을 분명하게 만들어.