BERT 와 GPT

tjdxordlsmsa·2026년 4월 20일

BERT와 GPT는 모두 Transformer 구조를 기반으로 한다. Transformer의 핵심은 RNN이나 LSTM처럼 순서대로 한 칸씩 읽는 대신, 문장 안 단어들 사이의 관계를 Self-Attention으로 한 번에 본다는 점이다.
Transformer의 기본 구성요소는 다음과 같다.

  • 입력 임베딩
  • 위치 정보 추가
  • Multi-Head Self-Attention
  • Feed Forward Network
  • Residual Connection + LayerNorm

Transformer는 Encoder와 Decoder로 이루어져 있는데, BERT는 주로 Encoder만 사용하고 GPT는 주로 Decoder만 사용한다는 차이가 있다.
BERT는 Bidirectional Encoder Representations from Transformers의 약자이다. BERT는 어떤 단어를 이해할 때, 왼쪽 문맥과 오른쪽 문맥을 동시에 보기 때문에 문장 이해에 매우 강하다.
BERT는 대표적으로 두 가지 방식으로 사전학습되었다.

  • MLM: Masked Language Modeling
    문장 일부 단어를 가리고 맞히게 한다.
    예: “나는 오늘 [MASK]에 가서 통장을 만들었다.”
    모델은 [MASK] 자리에 “은행”이 올 확률이 높다고 학습한다.
    핵심은, 이때 BERT가 [MASK]의 양옆 문맥을 모두 볼 수 있다는 점이다.
    그래서 단어 이해와 문장 표현 학습에 굉장히 유리하다.

  • NSP: Next Sentence Prediction
    두 문장이 실제로 이어지는지 맞히게 한다.
    예: 문장 A: “나는 은행에 갔다.” 문장 B: “통장을 새로 만들었다.”
    이 둘이 자연스럽게 이어지는지 분류한다.

GPT는 Generative Pre-trained Transformer의 약자이다. GPT는 Unidirectional로 왼쪽에서 오른쪽으로 순차적으로 다음에 올 단어를 예측하는 언어 모델링 방식이다. GPT의 핵심은 새로운 단어를 생성하는 Generative 모델이고, 실질적으로 masked self-attention기반 autoregressive decoder라고 할 수 있다. 입력 처리 구성은 보통 이렇다.

  • Token Embedding
  • Position Embedding
  • Masked Multi-Head Self-Attention
  • Feed Forward Network
  • Residual Connection + LayerNorm

Hugging Face Transformers라는 라이브러리는 사전학습된 자연어처리 모델을 손쉽게 불러와 사용할 수 있도록 도와주는 오픈소스 라이브러리이다. Transformer 모델들은 모델구현과 사전학습에 굉장히 많은 비용을 지불해야 하기 때문에, 이 라이브러리를 통해 코드 몇 줄로 사전학습된 모델들을 간단하게 불러와서 사용할 수 있다는 장점이 있다.
1) Tokenizer
텍스트를 모델이 이해할 수 있는 숫자로 바꾸는 역할
지원방식: BPE(GPT 계열), WordPiece(BERT), SentencePiece(T5)
모델에 따라서 Tokenizer가 자동으로 텍스트를 전처리 해준다.

2) Model
실제 Transformer 구조가 들어있는 부분
모델 종류:

  • AutoModel -> feature extractor
  • AutoModelForSequenceClassification
  • AutoModelForTokenClassification
  • AutoModelForCausalLM
  • AutoModelForeSeq2SeqLM

3) Pipeline
내부적으로 Tokenizer + Model + Postprocessing까지 전체를 포함
지원 Task:

  • Sentiment Analysis
  • Text-Generation
  • Question-Answering
  • Summarization
  • Translation
  • Fill-Mask

4) Trainer
모델 학습을 쉽게 해주는 고수준 API로 training loop 자동화, evaluation, logging, checkpoint 저장 등의 기능을 제공한다. 이를 통해 PyTorch를 직접 다루지 않아도 모델 Fine-Tuning이 가능하다.

profile

0개의 댓글