레플리
글 수 282


transformer-ber-ulmfit-elmo.png

 

https://jalammar.github.io/illustrated-bert/?fbclid=IwAR1tT0Z10N7fdAj0-PUYk-t3lylnUzjqYd_aRwPzYjCksM3Da3grXJ-sTyI

 

 

 

최근 인기를 끌고 있는 구글의 BERT는 사전훈련(pre-trained) 기반의 언어모델입니다. 사전훈련은 CNN 같은 이미지 분류에서는 오래전부터 많이 활용되어 왔습니다. 예를 들어, ImageNet으로 다양한 사진들을 분류하는 모델을 파인튜닝합니다. 그래서 좀 더 세부적인 이미지들을 구분하는 자신만의 모델을 만들 수 있습니다. 이렇게 하면 적은 데이터만 가지고도 성능이 높은 모델을 빠르게 학습시킬 수 있습니다.

 

2018년에는 자연어처리에서도 이런 사전훈련을 도입한 논문들이 많이 발표되었습니다. 이 글에서는 ELMo, OpenAI Transformer 등을 거쳐 BERT로 이어진 과정을 자세히 설명하고 있습니다.

 

 

 

물론 기존에도 Word2Vec이나 GloVe 같이 비지도학습 방식의 사전훈련 모델이 있었습니다. 하지만 단순히 단어의 임베딩을 생성하는데 그쳤습니다. 그리고 모든 단어가 동일한 벡터값을 가지기 때문에 문맥에 따라 다른 의미를 가진 단어들을 표현할 수 없었습니다. 예들 들어, "눈이 와서 너무 좋다"와 "너의 눈이 너무 예쁘다"에서 '눈'은 다른 뜻을 가지고 있습니다. 하지만 Word2Vec으로 변환하면 모두 같은 임베딩을 가집니다.

 

이런 문제점을 해결하여 단어마다 각각 다른 임베딩을 부여하는 방법이 ELMo입니다. 이를 위해 사전훈련을 사용합니다. Bidirectional LSTM을 사용하여 문장에서 단어들이 주어지면 다음 단어를 예측하도록 학습합니다. Ngam 언어모델과 유사합니다. 이렇게 학습된 모델에서 해당 단어위치의 히든레이어 벡터들을 조합하여 단어의 임베딩을 구합니다.

 

OpenAI Transformer는 단어 차원이 아니라 문장 단위로 활용하는 모델입니다. ELMo와 동일한 방법으로 다음 단어를 예측하도록 사전훈련합니다. Transformer에서 디코더 부분만 사용하는데 문장의 한쪽 방향으로만 학습이 가능하다는 한계가 있습니다.

 

 

 

BERT의 가장 큰 특징은 Bidirectional로 문장의 양쪽으로 학습하여 정확도가 더 높다는 것입니다. OpenAI가 디코더를 쓰는 것과 달리 Transformer의 인코더만 사용합니다. 하지만 다음 단어를 예측하는 방법은 Bidirectional에서는 적용하기 불가능합니다. 그래서 문장에서 일정 확률로 임의의 단어를 마스킹하여 그 단어를 예측하는 새로운 학습방법을 고안하였습니다. 그와 함께 두 문장이 서로 연결되는 의미인지 분류하는 방식도 함께 사용합니다.

 

올해에는 이런 사전훈련을 적용한 자연어처리 모델이 더욱 발전하지 않을까 예상됩니다.

엮인글 :
List of Articles
제목 글쓴이 날짜sort 조회 수
부적절한 문장을 판단해주는 딥러닝 모델 - Ask Delphi file 깊은바다 2021-11-08 399
문장을 벡터로 변환하는 방법들 깊은바다 2021-09-16 927
네이버의 초거대모델인 HyperCLOVA 논문 file 깊은바다 2021-09-13 556
챗봇의 슬롯 채우기(Slot Filling)와 DST(Dialogue State Tracking) file 깊은바다 2021-08-19 1461
죽은 약혼자를 챗봇으로 살려낸 남자 - Project December 깊은바다 2021-07-27 561
인터넷 검색을 하고 장기기억을 저장하는 페이스북의 챗봇 - Blenderbot 2 file 깊은바다 2021-07-19 653
GPT-3 데모 사이트 - gpt3demo.com 깊은바다 2021-07-13 3707
6B 파라미터의 GPT-J_6B 오픈소스 모델 깊은바다 2021-07-01 3107
GPT-3를 활용하여 주석을 코드로 바꿔주는 GitHub Copilot 깊은바다 2021-06-30 356
구글의 딥러닝 대화 모델 - LaMDA 깊은바다 2021-06-13 587
일상대화 딥러닝 모델들을 쉽게 실행할 수 있는 Openchat 깊은바다 2021-06-01 569
GPT-3를 사용하여 코딩을 하는 MS의 파워FX 깊은바다 2021-06-01 249
텍스트 스타일을 바꾸는 딥러닝 기술 깊은바다 2021-06-01 436
KoGPT2 v2.0 공개 깊은바다 2021-05-03 1589
이루다 같은 챗봇은 어떤 원리로 작동하는 걸까? 깊은바다 2021-04-03 1691