비정제 한국어 문장(ex. Korean Hate Speech Dataset, Naver Sentiment Movie Corpus)에 데이터 증강을 적용하기 위해서 KcELECTRA-base를 Masked Language Modeling 방식으로 학습하는 코드입니다. 모델을 트레이닝한 후에 새로운 문장의 일부에 마스킹을 적용하고 인퍼런스를 적용하면 아래와 같이 빈칸에 알맞은 새로운 토큰을 후보로 생성해냅니다. 대용량의 데이터를 빠르게 학습하기 위해서 deepspeed ZeRO2를 활용합니다. 프로젝트에 대해서 좀 더 자세히 알고 싶으시다면 제 velog로 놀러오세요!🤗
- pretrained model(huggingface hub)
현재 환경의 모든 GPU를 사용하여 학습하는 방법:
deepspeed --num_gpus={총 gpu의 개수} ds_main.py <ds_main.py의 args> --deepspeed_config ds_config.json
특정 GPU만을 사용하는 방법(CUDA_VISIBLE_DEVICES로 제어 불가):
deepspeed --include localhost:<GPU_NUM1> <GPU_NUM2> ds_main.py <ds_main.py의 args> --deepspeed_config ds_config.json
비정제 데이터만을 대상으로 하기 위해서 아래와 같이 3가지 데이터를 사용하여 학습을 진행했습니다.
{"scheduler_name": "linear",
"max_stop_number": 5,
"train_batch_size": 128,
"eval_batch_size": 128,
"max_seq_len": 100,
"learning_rate": 0.0002,
"num_train_epochs": 30,
"weight_decay": 0.01,
"eps": 1e-06}