BERT

Gaon12 (토론 / 기여)님의 2024년 1월 15일 (월) 13:51 판 (시작)
(차이) ← 이전 판 / 최신판 (차이) / 다음 판 → (차이)

개요

BERT는 자연어 처리 분야에서 혁신적인 변화를 가져온 딥러닝 모델이다. Google Research 팀에 의해 개발되었으며, 2018년 10월에 공개되었다.

BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding라는 이름의 논문으로 공개되었으며, 깃허브 코드는 Green tickbert 에서 확인 가능하다.

BERT의 특징

양방향성(Bidirectionality)

전통적인 순차적 언어 모델과 달리 문장 내의 모든 단어가 서로 상호작용할 수 있도록 설계되어 있다. 이는 문장 내의 각 단어가 주변 단어의 맥락을 모두 고려함으로써 보다 정확한 의미 파악을 가능하게 한다.

전이 학습(Transfer Learning)

일반적인 언어 이해를 위해 대량의 데이터[1]로 사전 학습(pre-training)을 진행한 후, 특정 작업[2]에 맞게 추가 학습(fine-tuning)하는 구조를 가지고 있다. 이로 인해 다양한 NLP 작업에 높은 유연성과 성능을 보여준다.

트랜스포머 기반

트랜스포머(Transformer) 모델을 기반으로 한다. 트랜스포머는 자기 주의(self-attention) 메커니즘을 사용하여 문장 내의 각 단어 간 복잡한 관계를 학습한다.

BERT의 구조

입력 표현

BERT는 입력으로 '토큰', '세그먼트', '포지션' 임베딩을 사용한다.

  • 토큰 임베딩: 각 단어는 임베딩 벡터로 변환됨.
  • 세그먼트 임베딩: 두 개의 다른 문장을 구별하기 위해 사용.
  • 포지션 임베딩: 문장 내의 단어 순서 정보를 제공함.

트랜스포머 블록

BERT의 핵심 구성 요소로, 각 블록은 다음과 같은 요소를 포함한다.

  • 자기 주의(Self-Attention) 레이어: 문장 내의 모든 단어 사이의 관계를 학습한다.
  • 피드포워드 신경망(Feed-Forward Neural Network): 자기 주의 레이어의 출력을 처리하여 다음 레이어로 전달한다.

사전 학습 과정

마스크된 언어 모델링(Masked Language Modeling, MLM): 무작위로 일부 단어를 가리고(마스킹), 모델이 이를 예측함. 다음 문장 예측(Next Sentence Prediction, NSP): 두 문장이 실제로 연속하는지를 예측하는 작업.

추가 학습(Fine-tuning)

특정 NLP 작업을 위해 사전 학습된 BERT 모델에 추가 학습을 진행한다. 이 과정에서는 해당 작업과 관련된 데이터와 레이블을 사용하여 모델을 최적화한다.

각주

  1. 라벨링 되어 있지 않은 데이터(unlabeled data)
  2. 다운스트림 태스크(라벨링 된 데이터)(downstream task(with labeled data))