elevne's Study Note

KoBART 전이학습 (Colab) 본문

Machine Learning/NLP

KoBART 전이학습 (Colab)

elevne 2022. 11. 20. 12:40

개인 프로젝트를 진행하며 KoBART 모델을 사용하기로 하였는데, 이를 조금 Fine Tune 시킬 필요성을 느꼈다. 다행히도 KoBART 모델은 Fine Tuning 시키기 수월하게끔 Github에 코드가 잘 정리되어 있었다. (아래 모든 코드는 Colab에서 진행되었다.)

 

 

 

우선 Colab에서 Drive Mount를 해준 이후 Git Clone을 할 위치로 cd 해준다. 

 

 

 

!git clone https://github.com/seujung/KoBART-summarization.git

cd KoBART-summarization

 

 

 

!git clone 명령어 뒤 KoBART Github repository 링크를 넣어준다. 위 명령어가 수행되면 cd 한 위치에 Github Repo가 잘 설치되어 있는 것을 확인할 수 있을 것이다. 

 

 

 

그럼 이제 Repository에 들어있는 학습 데이터를 압축해제 해주는 과정이 필요하다. cd data 를 해준 이후 압축해제 명령어를 입력해준다.

 

 

 

!tar -zxvf train.tar.gz
!tar -zxvf test.tar.gz
#Linux 명령어 기반이기에 !cat train.tsv 하여 압축해제 결과 확인 가능

 

 

 

압축을 해제하게 되면 Train, Test data 둘 다 tsv 형태를 띄는 것을 확인할 수 있다. 여기 Train data에 Fine Tune에 사용할 데이터를 tsv 형식으로 변환하여 추가해주고 학습을 진행하면 될 것이다. 

 

 

 

이제 데이터도 준비되었으니 학습시킬 준비가 되었다. 필요한 라이브러리들을 설치해준다. 

 

 

 

!pip uninstall -y torchtext
!pip install -r requirements.txt
!pip install torchmetrics==0.6.0
!pip install torch==1.12.1+cu102 torchvision==0.13.1+cu102 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu102
!pip install pytorch_lightning==1.5.2

 

 

 

처음에 !pip install -r requirements.txt 만 하고 학습을 시키려고 하니까 ImportException이 계속 떠서... 계속 시도해보면서 최종적으로는 위처럼 진행하였을 때 학습이 잘 실행되는 것을 확인할 수 있었다. 

 

 

 

학습은 아래와 같은 코드로 진행할 수 있다.

 

 

 

!python train.py --gradient_clip_val 1.0 --max_epochs 1 --default_root_dir logs --gpus 1 --batch_size 10 --num_workers 4

 

 

training

 

 

 

13% 진행률에 약 14분이 걸린 것을 확인할 수 있다. 기본 데이터만 사용하였을 때 1 Epoch에 약 100분쯤 생각하면 될 것 같다. 

 

 

 

마지막으로, 학습이 완료된 후에는 학습한 Model Binary 추출 작업이 필요하다고 한다. Pytorch-lightning binary에서 Huggingface Binary 형식으로 추출을 해주는 것이다. 아래와 같은 형식으로 get_model_binary.py 파일을 실행시켜준다.

 

 

 

 python get_model_binary.py --hparams hparam_path --model_binary model_binary_path

 

 

 

위의 hparam_path는 hparams.yaml 파일을 사용하면되고, model_binary_path는 .ckpt 파일을 사용한다. 위 명령을 실행하면 ./kobart_summary 디렉토리에 model binary가 추출될 것이다.

 

 

 

위 모든 코드는 처음 Git Clone 해온 Github Repository에서 찾을 수 있다!

'Machine Learning > NLP' 카테고리의 다른 글

KoBART 분석해보기 (1)  (1) 2022.11.24
GPT에 대해서~  (0) 2022.11.21
BERT - KorQuAD (2)  (0) 2022.11.19
BERT - KorQuAD (1)  (0) 2022.11.18
BART: Bidirectional and Auto-Regressive Transformer  (0) 2022.11.12