BERT
BERT(Bidirectional Encoder Representations from Transformers)는 2018년 구글(Google) 연구팀(Jacob Devlin 등)이 발표한 자연어 처리(NLP) 사전 학습(Pre-trained) 언어 모델이다.
트랜스포머(Transformer) 아키텍처 중 인코더(Encoder)만을 사용하여 구축되었으며, 텍스트 처리 과정에서 문맥을 양방향(Bidirectional)으로 동시에 파악하여 단어의 의미를 정확하게 추출하는 데 특화되어 있다. 단어의 형태가 같더라도 문맥에 따라 의미가 달라지는 다의어 문제를 효과적으로 해결하며, 자연어 이해(NLU, Natural Language Understanding) 분야의 성능을 비약적으로 끌어올린 모델로 평가받는다.
핵심 학습 매커니즘 (Core Training Mechanisms)
BERT의 성능은 대규모 텍스트 데이터를 통해 사전 학습을 진행할 때 사용되는 두 가지 고유한 훈련 방식에서 기인한다.
- 마스크 언어 모델 (MLM, Masked Language Model): 입력된 텍스트 토큰의 약 15%를 무작위로 마스킹(Masking, 빈칸 처리)한 뒤, 모델이 양쪽 주변 문맥 정보를 모두 활용하여 빈칸에 들어갈 원래 단어를 예측하게 만든다. 기존 언어 모델들이 텍스트를 왼쪽에서 오른쪽으로만 읽어 단방향 문맥만 파악하던 한계를 극복하기 위해 도입된 기능이다.
- 다음 문장 예측 (NSP, Next Sentence Prediction): 두 개의 문장을 짝지어 입력하고, 두 번째 문장이 첫 번째 문장 다음에 이어지는 것이 논리적으로 올바른지 여부를 이진 분류로 맞히도록 훈련한다. 이를 통해 모델은 문장 단위의 논리적 연결성과 전체적인 문장 간 관계(Relationship)를 학습한다.
사전 학습 및 미세 조정 (Pre-training and Fine-tuning)
BERT는 대량의 코퍼스(Wikipedia, BookCorpus)를 이용해 상기된 두 가지 방법으로 사전 학습(Pre-training)을 완료한 범용 모델을 제공한다. 이후 사용자는 질의응답(QA), 감성 분석, 개체명 인식(NER) 등 특정 목적의 작업에 맞춰 출력층을 추가하고 비교적 소량의 도메인 특화 데이터로 가중치를 미세 조정(Fine-tuning)하여 실무에 적용한다.
대형 언어 모델 간 비교 (BERT vs. GPT)
현재 자연어 처리 생태계를 양분하는 구글의 BERT 구조와 오픈AI(OpenAI)의 GPT 구조의 기저 차이점은 다음과 같다.
| 비교 항목 | BERT 계열 (Google) | GPT 계열 (OpenAI) |
|---|---|---|
| 기반 아키텍처 (Architecture) | 트랜스포머 인코더 (Transformer Encoder) | 트랜스포머 디코더 (Transformer Decoder) |
| 문맥 참조 방향 (Directionality) | 양방향 (Bidirectional) | 단방향 (Unidirectional, Left-to-Right) |
| 핵심 훈련 목적 (Objective) | 마스크된 단어 및 다음 문장 예측 (MLM, NSP) | 자기가회귀 방식의 다음 단어 예측 (Autoregressive) |
| 최적화된 분야 (Primary Focus) | 입력된 텍스트의 분석 및 이해 (분류, 질의응답) | 새로운 텍스트의 연속적인 생성 (문장 생성, 요약) |
| 데이터 활용 최적화 | 지도 학습 기반의 미세 조정(Fine-tuning) 중심 | 프롬프트(Prompt) 기반의 제로샷/퓨샷 러닝 우선 지원 |
출처 (Sources):
- Devlin, J., Chang, M. W., Lee, K., & Toutanova, K. (2018). “BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding.” NAACL 2019. (https://arxiv.org/abs/1810.04805)
- Jay Alammar: “The Illustrated BERT, ELMo, and co. (How NLP Cracked Transfer Learning)” (https://jalammar.github.io/illustrated-bert/)
- Hugging Face Documentation: “BERT” (https://huggingface.co/docs/transformers/model_doc/bert)
- TensorFlow Core Tutorials: “Classify text with BERT” (https://www.tensorflow.org/text/tutorials/classify_text_with_bert)