BertForSequenceClassification on Transformers v4.0.0

Huggingface Transformers v4.0.0!

Huggingface에서 Transformers 패키지 4버전을 릴리즈했다.

Huggingface Transformers v4.0.0 깃헙 릴리즈 페이지

많은 변화가 있지만, 이 변화를 체감하게 된 것은 KcBERT 레포에 한 이슈가 달리게 되어서이다.

“KcBERT-Large NSMC Finetune 코드가 동작하지 않아요.”

Colab에서 TPU로 BERT 처음부터 학습시키기 - Tensorflow/Google ver.

2018년말부터 현재까지 NLP 연구에서 BERT는 여전히 압도적인 위치를 차지하고 있다.

한편, BERT모델을 사용하는 이유 중 가장 큰 것 하나가 바로 한국어로 Pretrained된 모델이 있다는 점이다. Google에서 논문을 처음 공개했을 때 Multilingual pretrained model을 공개해 Fine-tuning만으로도 우리가 필요한 데이터셋에 맞춰 분류기를 만드는 등의 여러 응용이 가능하고, 동시에 높은 성능을 보여주었기 때문에 BERT 자체를 학습시키는 것에 대해서는 크게 신경쓰지 않은 것이 사실이다.

한편 작년 ETRI의 한국어 BERT 언어모델, 그리고 SKTBrain의 KoBERT 등 한국어 데이터셋으로 학습시킨 모델들이 등장했고, 이런 모델들을 Fine-tuning할 경우 기존 구글의 다국어 모델을 사용한 것보다 성능이 조금이라도 더 잘 나오기도 한다. (특히 정제되지 않은 글에 대해 좀 더 나은 성능을 보여줬다. OOV문제가 덜한 편이었다.)

다만 이런 모델들 역시 굉장히 ‘보편적’ 글로 학습된 것이라 도메인 특화된 분야에 있어서는 성능이 잘 나오지 않을 수도 있다. 따라서 특수한 경우의 특수한 도메인에 최적화된 Pretrained model을 만든다면 우리의 NLP 모델도 좀 더 성능이 좋아질 수 있다!

이번 글에서는 BERT 모델을 TPU와 Tensorflow를 이용해 처음부터 학습시켜보는 과정을 다뤄본다.

이번 글은 Colab Notebook: Pre-training BERT from scratch with cloud TPU를 기반으로 작성되었습니다.

NLP 튜토리얼: 라벨링 없이 트위터 유저들을 자동으로 나누어보기

트위터에는 굉장히 다양한 유저들이 있다.

그리고 트위터 유저들은 “BIO”라고 부르는 자기소개 페이지에 자신에 대한 정보를 적어둔다.

Github 트위터 공식 계정

위 스크린샷과 같이, 자신의 계정이 어떤 계정인지를 간단한 160자 내로 드러내는 것이 바로 BIO다.

그렇다면, 이런 계정들이 ‘어떤’ 계정인지 BIO를 이용해 분류해 볼 수 있지 않을까?

하지만 모든 유저를 우리가 손으로 라벨을 붙여 학습시키는 것은 힘들다.

그렇다면 알아서 분류하려면 어떻게 해야할까?

간단한 자연어 처리를 통해 라벨링 없이 유저를 클러스터링해보자.

🌟 바로바로 실행하면서 따라올 수 있는 Google Colab 👨🏻‍💻👩🏻‍💻👇

https://colab.research.google.com/drive/1bgv3CHZDp2smIWXQwAUD3j5z8LAYbLVz

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×