Bert_fine_tuning
Last updated
Last updated
개인 study를 위한 자료입니다. 그러다보니 내용에 잘못된 점이 있습니다.
pre-trained된 model을 사용한, Fine-Tuning은 아래와 같은 장점이 있습니다.
Time
Less Data
Better Results
실제 구현 예제로, huggingface[1]에서 제공하는 pre-trained model을 바탕으로, fine-tuning을 진행해보려고 합니다. 구현하고자 하는 model은 아래와 그림과 같습니다.[2] 코드는 주로 [3]을 참조했습니다. fine-tuning을 위한 code는 크게 아래와 같이 나누어져 있습니다.
bertFineTuningWithConnectionData.py : fine-tuning을 진행합니다.
ConnectionBert.py : pre-trained 된 model을 load 합니다.
ConnectionDataset.py : fine-tuning을 위한 Dataset, DataLoader가 정의 되어 있습니다.
transformers
를 사용하여, pre-trained model를 불러오는 명령어는 매우 간단합니다. 하지만, 특별한 사정으로 미리 다운을 받아서 사용해야 할 경우, 아래 방법을 사용하면 됩니다.
huggingsface 접속 -> MODELS(우측상단) -> 원하는 model 검색 ->
List all files in model
클릭 ->config.json
,pythorch_model.bin
,vocab.txt
를 원하는 directory에 저장 -> directory load
여기서는 “transformers\bert\bert-base-uncased"에 위 3 파일을 저장해 놓고 사용했습니다.
pre-trained 된 data를 load하여 사용하는 것은 매우 간단합니다.
model에 대한 자세한 설명은 Docs»Transformers에서 확인 할 수 있습니다. 가장 기본이 되는 BertModel의 경우, embedding layer + bertEncoder + pooled layer로 되어있습니다. 자세한 내부 weight parameter는 print(model)
로 확인 할 수 있습니다.
Dataset은 __len__()
과 __getitem__()
만 구현해주면, 쉽게 구현할 수 있습니다.
[1] huggingface