BERT는 왜 양방향인가: 마스크 언어모델과 다음 문장 예측으로 배우는 문맥

BERT의 양방향 트랜스포머 인코더 구조와 MLM·NSP 사전학습, 파인튜닝 응용과 RoBERTa·DistilBERT 등 후속 모델까지 정리한다.

2026-08-14 · 최초 발행 2025-05-23

ELMo와 GPT 같은 기존 모델은 왼쪽에서 오른쪽, 또는 오른쪽에서 왼쪽으로만 문장을 읽는 단방향 언어모델이었다. 구글이 2018년 발표한 BERT는 문장의 전체 컨텍스트를 동시에 고려해 단어의 의미를 파악하는 양방향 모델로 이 한계를 뛰어넘었고, 발표 이후 다양한 언어 관련 태스크에서 성능 향상을 이끌어내며 NLP 분야에 큰 영향을 미쳤다.

왼쪽에서 오른쪽만 보던 모델과 양쪽을 동시에 보는 모델

BERT는 문맥 의존적 단어 표현이 가능한 양방향(Bidirectional) 모델이다. "Attention is All You Need" 논문에서 소개된 트랜스포머(Transformer) 아키텍처를 기반으로 하되, RNN이나 CNN 없이 어텐션(Attention) 메커니즘만으로 구현된 인코더-디코더 구조 중 인코더 부분만 활용한다.

입력 텍스트토큰화임베딩 레이어트랜스포머 인코더 레이어 x12/24태스크별 출력 레이어다양한 NLP 태스크 수행

마스킹으로 배우는 문맥: MLM과 NSP

Masked Language Model(MLM)은 입력 문장에서 무작위로 15%의 토큰을 마스킹하고 이를 예측하도록 훈련한다. 마스크된 토큰의 80%는 [MASK] 토큰으로, 10%는 랜덤 단어로 대체하고 10%는 원래 단어를 유지한다 — "나는 [MASK]를 먹었다"에서 모델이 "[MASK]" 부분을 "사과"로 예측하도록 학습시키는 식이다. 이 방식으로 양방향 컨텍스트 이해 능력을 개발한다.

Next Sentence Prediction(NSP)은 두 문장이 원래 연속된 문장인지 예측하는 태스크다. 입력은 [CLS] 첫 번째 문장 [SEP] 두 번째 문장 [SEP] 형태이고, 50%는 실제 연속된 문장, 50%는 무작위로 선택된 관련 없는 문장으로 구성해 문서 간 관계 이해 능력을 키운다.

입력 문장[CLS] 나는 학교에 갔다 [SEP]그곳에서 친구를 만났다 [SEP]워드피스 토큰화토큰+위치+세그먼트 임베딩BERT 모델 처리문장 관계 예측 / 토큰 레벨예측

모델 크기와 특수 토큰들이 하는 역할

BERT-Base는 12개 트랜스포머 블록, 12개 어텐션 헤드, 768차원 은닉층, 1억 1천만 파라미터로 구성되고, BERT-Large는 24개 트랜스포머 블록, 16개 어텐션 헤드, 1024차원 은닉층, 3억 4천만 파라미터로 더 크다. 다국어 BERT(mBERT), 한국어 BERT(KoBERT) 같은 언어별 변형 모델도 있다.

특수 토큰도 각자 역할이 있다. [CLS]는 문장 첫 부분에 위치하는 분류 태스크용 토큰이고, [SEP]는 문장 구분 토큰, [MASK]는 마스킹된 단어를 표시하는 토큰, [UNK]는 어휘에 없는 단어를 표시하는 토큰이다.

사전학습된 모델을 태스크에 맞게 미세조정하기

파인튜닝은 사전 학습된 BERT 모델에 특정 태스크를 위한 출력층을 추가하는 방식으로 이뤄진다. 비교적 적은 양의 레이블링된 데이터로도 특정 태스크에 최적화할 수 있고, 전체 모델의 파라미터를 업데이트하거나 일부만 미세 조정할 수 있다.

주요 응용 분야로는 감성 분석·주제 분류·스팸 탐지 같은 문장 분류, 두 문장 간의 논리적 관계를 파악하는 자연어 추론(NLI), 텍스트에서 사람·조직·장소 등을 인식하는 개체명 인식(NER), SQuAD 같은 데이터셋에서 주어진 문맥에서 질문의 답을 찾는 질의응답(QA), 그리고 요약·기계 번역 등 다양한 자연어 처리 태스크가 있다.

감성 분석과 질의응답을 코드로 구현해보면

감성 분석은 다음과 같이 구현할 수 있다.

from transformers import BertTokenizer, BertForSequenceClassification
import torch

# 토크나이저와 모델 로드
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertForSequenceClassification.from_pretrained('bert-base-uncased', num_labels=2)

# 입력 텍스트 토큰화
text = "이 영화는 정말 재미있었습니다!"
encoded_input = tokenizer(text, padding=True, truncation=True, return_tensors='pt')

# 예측 수행
with torch.no_grad():
    outputs = model(**encoded_input)
    prediction = torch.argmax(outputs.logits).item()

print("감성:", "긍정" if prediction == 1 else "부정")

질의응답 시스템은 다음과 같은 형태다.

from transformers import BertTokenizer, BertForQuestionAnswering
import torch

tokenizer = BertTokenizer.from_pretrained('bert-large-uncased-whole-word-masking-finetuned-squad')
model = BertForQuestionAnswering.from_pretrained('bert-large-uncased-whole-word-masking-finetuned-squad')

context = "BERT는 2018년 구글에서 발표한 자연어 처리 모델입니다."
question = "BERT는 언제 발표되었나요?"

inputs = tokenizer(question, context, return_tensors='pt')
with torch.no_grad():
    outputs = model(**inputs)

answer_start = torch.argmax(outputs.start_logits)
answer_end = torch.argmax(outputs.end_logits)
answer = tokenizer.convert_tokens_to_string(
    tokenizer.convert_ids_to_tokens(inputs.input_ids[0][answer_start:answer_end+1]))

print("답변:", answer)

[MASK] 토큰의 딜레마와 후속 모델들의 대응

BERT에도 한계는 있다. 양방향 학습 과정에서 쓰는 [MASK] 토큰이 실제 추론에는 등장하지 않아 사전학습-미세조정 간 불일치가 생긴다. 문장 단위 예측에 초점을 맞춰 문서 수준의 긴 컨텍스트 이해에는 한계가 있고, 생성 태스크보다는 이해 태스크에 더 적합한 구조이며, 계산 비용이 높아 대규모 산업 적용에 어려움이 있다.

이런 한계에 후속 모델들이 각자의 방식으로 대응했다. RoBERTa는 더 많은 데이터와 더 긴 학습 시간, NSP 제거 등으로 BERT 성능을 개선했고, DistilBERT는 지식 증류(Knowledge Distillation)로 모델 크기를 줄이면서도 성능을 유지했다. ALBERT는 파라미터 공유로 메모리 효율성을 높였고, ELECTRA는 Generator-Discriminator 구조로 효율적인 학습을 구현했다. T5·GPT 시리즈는 BERT의 아이디어를 확장한 대규모 언어 모델이다.

2018BERT2019RoBERTaXLNetALBERTDistilBERT2020ELECTRAT5GPT-32021DeBERTa2022~다양한 특화 모델BERT 이후 주요 언어 모델 발전

정보관리 현장에서 BERT가 하는 일

기업 정보 관리에서는 고객 리뷰·이메일·내부 문서 같은 비정형 데이터를 자동으로 분류·분석하고, 방대한 문서에서 핵심 정보와 지식을 추출하며, 의미 기반 검색과 질의응답 시스템으로 검색 시스템을 고도화한다.

정보보안 분야에서는 텍스트 패턴 인식으로 악성 이메일·피싱을 탐지하고, 시스템 로그에서 이상 패턴을 감지하며, 문서 내 개인정보를 자동으로 탐지·마스킹한다. 데이터 품질 관리에서는 비정형 데이터를 일관성 있게 처리하는 텍스트 데이터 표준화, 문서 특성을 자동 분석해 태깅하는 메타데이터 자동 생성, 다양한 소스의 텍스트 데이터를 의미적으로 연결하는 데이터 통합이 이뤄진다. 정보시스템 인터페이스에서는 챗봇·가상 비서 같은 자연어 기반 사용자 인터페이스를 강화하고, 컨텍스트 기반 음성 인식 정확도를 높이며, 복잡한 쿼리를 이해해 정확한 결과를 제공하는 데 활용된다.

BERTTransformerMLM자연어처리파인튜닝