개요

원하는 Dataset이 모두 있을 때
-Label된, 되지 않은 data가 모두 많은 경우
-즉, Computing 자산이 많은 경우 Transformer를 밑바닥부터 훈련
-대용량 Dataset을 수집 및 관리
-자신만의 Dataset을 위한 user defined Tokenizer 만들기
-여러 GPU에서 대규모로 모델 훈련하기
분산 Training 자체는 어렵지만 Accelerator 사용 가능

대규모 Dataset 수집하기

기존 Language Model Fine tuning하는 이유
-Corpus 크기
-Pre-trained Model와 Corpus 분야 차이
Tokenizer가 달라져야 하는 경우 생김
Pre-trained Model에서는 빈도 수가 높았던 단어가 우리가 다루는 model에서는 빈도 수가 낮음
ex. Midm vs. Llama
Midm: 한국어 많음 <-> Llama: 한국어 적음

대규모 Dataset 구축의 어려움
1.(반)자동으로 취합된 Data의 위험 요소
편향, 저품질 Data 포함 가능성
-Bert(Book Corpus), T5(C4) Dataset
C4
Corpus의 상당 부분 기계 번역
불용어 필터링 과정에서 아프리카계 영어가 과도하게 삭제
성적, 노골적 컨텐츠가 과도하게 삭제
Book Corpus
저작권 위반 내용 상당 부분 포함
로맨스 소설 장르 편향
2.대규모 말뭉치 구축의 어려움: GPT vs. GPT-2
GPT:
대부분 Book Corpus(Gpt 동시대 등장)
GPT-2:
웹페이지, 블로그, 레딧
GPT size: 116.5M parameters
GPT2 size: 124.4M paramters
=> GPT, GPT-2 Corpus가 달라서 같은 prompt 입력해도 생성 결과가 달라짐

사용자 정의 Code Dataset 만들기
Super Big Data Processing
-Github에서 직접 수집/가공
-Google Big Query (구글 빅쿼리) 등 클라우드 고려 (SQL 형식의 query, 가공, 조회, 수정 가능)
-Hugging Face Dataset
transformersbook/codeparrat (70% 중복)
codeparrot/codeparrot-clean (중복 제거)

-대용량 Dataset 다루기
Code Dataset: 200GB
-HuggingFace datasets Package
Memory mapping, streaming 지원
-Memory는 부족, 저장공간은 충분
mmap(메모리 매핑)
:파일을 memory처럼 취급, Kernel을 거치지 않은 IO
Zero-copy: Kernel space ~ User space 간의 복사 제거
Zero-overhead: IO작업시 Overhead 제거(최소화)
Page Fault 발생시 처리 O verhead 등이 발생하기는 함
저장공간마저 부족
Streaming
:IterableDataset 객체 생성: ‘load_dataset(…, streaming=True)
즉시 return됨
Cache file이 생성되지 않고, 큰 memory 필요치 않음
Random Access 불가
Shuffle()가능
Local source, remote source 둘 다 지원됨
=> 최후의 보루로 네트워크 속도만 보장된다면 HDD 용량 없다면 Datasetreaming 하면서 학습 가능

HuggingFace Hub에 Dataset 추가
장점
-Training Server에서 쉽게 다운 가능
-Hub Dataset과 함께 사용
-Community 공유
Generate repo in my hub
-‘huggingface-cli login’
-‘huggingface-cli repo create -type datset -organization XXX codeparrot-train’
로컬 Clone/Data 추가/ Push (필요시 git lfs install 및 git lfs track *.json 등)
-git clone
-로컬에 Data 추가
-git add
-git push
Hub 내 Repo에 README 카드 수정

Tokenizer 구축하기

새로운 Language Model 훈련
-기존 Tokenizer 사용시 단점
T5 Tokenizer: 불용어 필터링 (sex 키워드 인식 불가)
CamememBERT: 프랑스어만 대상으로 학습 (‘being’인식 불가)
-새 Domain의 Encoding Sequence 길이가 증가하게 됨