Ch.03
트랜스포머 계보: BERT는 이해, GPT는 생성
트랜스포머라는 위대한 발명품은 크게 두 갈래의 가문으로 발전했습니다. 문장 전체를 한 번에 꿰뚫어 보는 인코더 가문의 BERT(이해형 모델)와, 앞선 단어들을 바탕으로 다음 단어를 끊임없이 지어내는 디코더 가문의 GPT(생성형 모델)입니다. BERT가 '수능 국어 영역 빈칸 추론'의 달인이라면, GPT는 '끝말잇기와 소설 쓰기'의 천재입니다. 이 챕터에서는 두 모델이 어떤 방식으로 학습을 하고, 왜 실무에서 쓰임새가 완전히 다른지 초보자도 쉽게 이해할 수 있는 비유와 함께 정리합니다.
수식 쉽게 이해하기
는 입력 토큰 표현의 시작입니다. 는 단어 의미, 는 위치 정보라서 모델은 처음부터 "무슨 단어인지"와 "어디에 있는지"를 함께 받습니다.는 self-attention의 핵심 연산입니다. 로 관련도를 계산하고 로 스케일을 안정화한 뒤, softmax 가중치로 를 섞어 문맥 표현을 만듭니다.는 BERT의 MLM 학습 목표입니다. 마스크 위치 집합 의 정답 토큰 를 맞히도록 학습해, 주변 양방향 문맥을 활용하는 표현을 익힙니다.는 GPT의 다음 토큰 학습 목표입니다. 각 시점은 과거 토큰 만 보고 예측하므로 자기회귀 생성이 가능해지고, 인과 마스크( 차단)와 같은 규칙으로 미래 정보 누설을 막습니다.
BERT는 문장 전체를 동시에 참고해 표현을 만들고, GPT는 지금까지의 토큰만 보고 다음 토큰을 이어 붙입니다.
개념 구조: 인코더형(이해) vs 디코더형(생성)
I love deep learning 토큰 관계
BERT
양방향: 각 토큰이 모든 토큰을 함께 참고
왼쪽 미니 비주얼은 멀티헤드 어텐션의 핵심을 단순화해 보여줍니다. 여러 헤드가 서로 다른 관계를 병렬로 보고, 결과를 합쳐(Concat + Projection) 양방향 문맥 표현을 만듭니다.
GPT
인과적: 현재 토큰은 왼쪽(과거) 토큰만 참고
미래 X
오른쪽은 마스크 멀티헤드 어텐션입니다. 구조는 멀티헤드와 같지만, 인과 마스크를 씌워 현재 위치가 미래 토큰을 보지 못하게 제한하고 자기회귀(next-token) 학습을 가능하게 합니다.
BERT 계열
학습 흐름: 토큰화 → 마스크/목표 설정 → 층 반복 → 헤드
① 인코더(BERT): 토큰들이 서로 양방향으로 참고
GPT 계열
미래 토큰 차단
② 디코더(GPT): 왼쪽 문맥만 보고 다음 칸 예측
모델 작동: 양방향 표현 vs 자기회귀 생성
③ 학습 목표: MLM(가려 맞추기) vs 다음 토큰 로그우도
④ 추론: 분류·임베딩 vs 프롬프트로 토큰 생성
BERT 계열
학습 흐름: 토큰화 → 마스크/목표 설정 → 층 반복 → 헤드
① 인코더(BERT): 토큰들이 서로 양방향으로 참고
GPT 계열
미래 토큰 차단
② 디코더(GPT): 왼쪽 문맥만 보고 다음 칸 예측
모델 작동: 양방향 표현 vs 자기회귀 생성
③ 학습 목표: MLM(가려 맞추기) vs 다음 토큰 로그우도
④ 추론: 분류·임베딩 vs 프롬프트로 토큰 생성
트랜스포머 계보: BERT는 이해, GPT는 생성
1. BERT: 문장을 양방향으로 읽고 '이해'하는 인코더형
개념: BERT(Bidirectional Encoder Representations from Transformers)는 트랜스포머의 인코더(Encoder) 부분만 떼어내어 발전시킨 모델입니다. 핵심은 양방향(Bidirectional) 문맥 파악입니다. 왼쪽 단어와 오른쪽 단어를 동시에 참고하여 현재 단어가 문장에서 어떤 의미로 쓰였는지 가장 정확한 '표현 벡터'를 만들어냅니다.
직관적 이해: 환자를 진찰할 때 과거 병력(왼쪽)과 현재 검사 결과(오른쪽)를 동시에 펼쳐놓고 종합적으로 판단하는 명의와 같습니다. 전체적인 그림을 한 번에 보기 때문에 문맥을 파악하는 능력이 탁월합니다.
수학적 설명: BERT의 대표적인 학습 방법은 MLM(Masked Language Modeling)입니다. 문장 중간의 단어에 구멍(`[MASK]`)을 뚫어놓고, 주변 문맥을 이용해 정답 토큰()의 확률 분포 를 맞추도록 훈련합니다.
실제 적용: "이 리뷰는 긍정인가요 부정인가요?", "이 문서에서 사람 이름과 날짜를 찾아주세요" 같은 텍스트 분류, 개체명 인식, 문서 검색 등에 압도적으로 많이 쓰입니다.
2. GPT: 다음 단어를 끊임없이 '생성'하는 디코더형
개념: GPT(Generative Pre-trained Transformer)는 트랜스포머의 디코더(Decoder) 부분을 발전시킨 모델입니다. 이 모델은 문장을 처음부터 끝까지 한 번에 보지 못하게 마스크(Mask)로 미래의 단어들을 가려놓고, 오직 과거의 단어들()만 보고 다음 단어()를 예측하는 자기회귀(Autoregressive) 방식으로 작동합니다.
직관적 이해: 타자기로 소설을 쓰는 작가와 같습니다. 작가는 아직 쓰지 않은 다음 문장을 미리 볼 수 없습니다. 지금까지 써 내려간 글의 흐름을 바탕으로 가장 자연스러운 다음 단어를 상상해서 적어 나갑니다.
수학적 설명: 현재 위치보다 뒤에 있는 미래 토큰 정보가 섞이지 않도록, 어텐션 행렬에서 대각선 위쪽 영역을 로 덮어버리는 Causal Masking을 사용합니다. 학습은 이전 토큰들()이 주어졌을 때 다음 정답 토큰()이 나올 조건부 확률 을 극대화하는 방향으로 진행됩니다.
실제 적용: 챗봇의 답변 생성, 이메일 초안 작성, 코드 자동 완성 등 "무언가를 새로 만들어내는(생성)" 모든 작업에 특화되어 있습니다.
3. 학습 목표의 차이: 빈칸 채우기 vs 끝말잇기
개념: 모델의 뼈대가 다르니 훈련 방식도 다릅니다. BERT는 표현(Representation)을 깊게 이해하기 위해 빈칸을 뚫고 주변 힌트로 맞추는 훈련을 합니다. 반면 GPT는 오로지 생성(Generation) 능력을 키우기 위해 앞 단어만 보고 다음 단어를 이어 말하는 훈련에 집중합니다.
직관적 이해: BERT 훈련소는 "나는 어제 [MASK]에서 밥을 먹었다"라는 시험지를 주고 빈칸에 '식당'이 들어갈지 맞추게 합니다. GPT 훈련소는 "나는 어제 식당에서..."까지만 보여주고 그 뒤에 자연스럽게 이어질 단어들을 계속 지어내게 만듭니다.
4. 추론(Inference) 방식의 차이: 즉시 판독 vs 스트리밍 생성
개념: 서비스를 운영할 때 사용자 경험(UX)도 달라집니다. BERT는 문장이 통째로 들어오면 한 번의 연산으로 각 단어의 의미 벡터를 '짠' 하고 즉시 뽑아냅니다. 반면 GPT는 프롬프트(질문)를 받으면 한 단어를 만들고, 그 단어를 다시 입력으로 넣어 다음 단어를 만드는 과정을 반복하며 글자를 주르륵 뽑아냅니다.
직관적 이해: BERT는 스캐너처럼 문서 전체를 한 번에 훑고 결론(라벨)을 도출합니다. GPT는 실시간 번역가나 타자기가 한 글자씩 또박또박 말을 이어가는 것과 같습니다. 이 때문에 GPT 류는 출력 길이가 길어질수록 연산 시간이 늘어납니다.
왜 중요한지
적재적소: 모델의 '전공'을 알아야 실패하지 않는다
실무에서 흔히 하는 실수 중 하나가 "요즘 GPT가 유행이니까 무조건 이걸로 다 하자!"입니다. 하지만 고객 리뷰가 긍정인지 부정인지 분류만 하면 되는 간단한 업무에 거대하고 무거운 GPT를 쓰는 건 닭 잡는 데 소 잡는 칼을 쓰는 격입니다. 반대로 BERT에게 멋진 시를 지어달라고 하면 엉뚱한 결과를 냅니다. 모델의 계보를 이해해야 비용과 성능을 최적화하는 올바른 아키텍처를 설계할 수 있습니다.
마스킹 규칙이 모델의 안전성과 성격을 결정한다
미래를 보지 못하게 막는 GPT의 Causal Masking은 철저히 '생성의 규칙'을 지키기 위함입니다. 주식 가격을 예측하거나 금융 사기 로그를 분석할 때 "미래의 데이터를 미리 훔쳐보고 과거를 판단하는(Data Leakage)" 오류를 막으려면 이 시간 순서 제약이 매우 중요합니다. 반면, 이미 지나간 전체 기록을 토대로 원인을 분석할 때는 양방향을 모두 보는 BERT가 훨씬 유리합니다.
파이프라인의 입구가 다르다 (분류기 vs 프롬프트)
기존 모델을 우리 회사 데이터에 맞게 튜닝(Fine-tuning)하는 방식도 다릅니다. BERT는 모델 꼭대기에 작은 '분류기(Classifier)' 층을 하나 덧붙여서 학습을 마무리합니다. 하지만 GPT는 모델 구조를 건드리기보다, 모델이 말을 잘 알아듣도록 지시문을 예쁘게 포장하는 프롬프트 엔지니어링이나 대화 형식으로 튜닝하는 Instruction Tuning 방식을 주로 사용합니다.
환각(Hallucination) 억제를 위한 설계의 기준점
GPT 같은 생성형 모델은 모르는 것도 그럴싸하게 지어내는 '환각' 현상이라는 치명적인 단점이 있습니다. 그래서 최신 실무에서는 BERT 같은 이해형 모델로 사내 문서에서 정확한 근거를 검색(Retrieval)해 오고, 그 검색된 근거를 바탕으로 GPT가 안전하게 답변을 생성(Generation)하게 만드는 RAG(검색 증강 생성) 아키텍처를 결합하여 두 가문의 장점만을 취하고 있습니다.
어떻게 쓰이는지
실무 파이프라인 (BERT): 임베딩 뽑고 머리 붙이기
BERT는 텍스트를 숫자로 된 '임베딩 벡터'로 훌륭하게 압축해 줍니다. 예를 들어 스팸 메일 분류기를 만든다면, 메일 문장을 BERT에 넣고 튀어나온 전체 문장 대표 벡터(`[CLS]` 토큰)를 간단한 로지스틱 회귀나 선형 계층(Head)에 통과시켜 스팸 확률(0~1)을 계산합니다. 매우 빠르고 정확해서 백엔드 서버에서 대량의 데이터를 실시간으로 분류할 때 적합합니다.
실무 파이프라인 (GPT): 꼬리에 꼬리를 무는 생성 조절하기
GPT를 서비스에 올릴 때는 답변이 튀는 것을 막기 위한 '고삐'가 필요합니다. 실무 개발자들은 다음 단어를 선택할 때 얼마나 창의적으로 고를지 결정하는 온도(Temperature), 확률이 높은 상위 몇 개의 단어 안에서만 고르게 제한하는 Top-k / Top-p 같은 파라미터를 미세하게 조절합니다. 코딩 자동완성 AI라면 온도를 낮춰서 정확도를 높이고, 마케팅 문구 작성 AI라면 온도를 높여 창의성을 살립니다.
비용과 인프라(GPU) 계산의 차이
BERT 기반 모델은 보통 크기가 작아(수백MB~수GB) 저렴한 GPU 1대나 심지어 CPU에서도 잘 돌아갑니다. 하지만 GPT 기반의 거대 언어 모델(LLM)들은 수십~수백GB의 메모리를 요구하며, 특히 '출력하는 글자 수'에 비례해서 연산 비용과 응답 지연 시간(Latency)이 무자비하게 늘어납니다. 따라서 프로젝트 예산을 짤 때 이 차이를 반드시 고려해야 합니다.
디버깅 전략: 무엇이 문제인지 진단하기
AI 서비스가 이상한 결과를 낼 때 원인 분석도 갈립니다. 분류기(BERT)의 성능이 떨어진다면, 학습 데이터에 노이즈가 많거나 라벨링이 잘못되었는지, 혹은 모델의 표현력이 부족한지 의심해야 합니다. 반면 챗봇(GPT)이 엉뚱한 소리를 한다면, 프롬프트 지시가 불명확했는지, 모델이 환각을 일으켰는지, 아니면 참고할 배경 지식(Context)을 충분히 주지 않았는지를 먼저 파악해야 합니다.
요약
트랜스포머는 하나의 큰 흐름에서 인코더 가문의 BERT와 디코더 가문의 GPT로 나뉘어 왔고, 둘은 학습 목표와 추론 방식이 달라 실무에서 맡는 역할도 크게 갈립니다. BERT는 문장 전체를 양방향으로 읽으며 MLM 등으로 표현을 다지고, 분류·검색·개체명 인식처럼 이해와 판별이 중요한 자리에 자주 쓰입니다. GPT는 미래를 가린 채 앞 단어만 보고 다음 토큰을 이어 생성을 배우기 때문에 챗봇·초안·코드 완성처럼 새 텍스트를 만들어야 하는 작업과 잘 맞습니다. 마스킹 규칙은 생성의 공정성과 시간 순서를 지키는 데도 중요하고, 요즘은 검색으로 근거를 가져와 생성만 맡기는 RAG처럼 두 계열을 조합하는 설계도 흔합니다.
문제 풀이를 위한 설명
정리 — BERT는 인코더 가문으로 양방향 이해·표현을, GPT는 디코더 가문으로 왼쪽만 보는 자기회귀 생성을 핵심에 둡니다. BERT는 MLM 등으로 맥락을 담은 임베딩을 만들고, GPT는 로 다음 토큰을 이어 갑니다. 추론은 BERT가 한 번에 벡터 뽑기에 가깝고, GPT는 토큰을 길게 늘리는 스트리밍에 가깝습니다.
- 유형BERT 계열
- 풀이·예시 (키워드 → 정답)문장 전체를 앞뒤로 함께 보고 의미를 파악하는 인코더형 모델. → 선택지에서 "인코더/이해/양방향"
- 유형GPT 계열
- 풀이·예시 (키워드 → 정답)앞에서 나온 토큰만 보고 다음 토큰을 이어 쓰는 디코더형 모델. → 선택지에서 "디코더/생성/자기회귀"
- 유형MLM
- 풀이·예시 (키워드 → 정답)문장 일부를 가리고 빈칸 단어를 맞히는 학습 방식. → "가린 단어 복원"
- 유형Causal LM
- 풀이·예시 (키워드 → 정답)과거 토큰만 조건으로 다음 토큰 확률을 학습. → "", "다음 토큰 예측"
- 유형마스크
- 풀이·예시 (키워드 → 정답)미래 토큰 정보를 보지 못하게 막는 규칙. → "미래 차단", "정보 누설 방지"
- 유형전이학습
- 풀이·예시 (키워드 → 정답)사전학습 모델을 작업에 맞게 추가 학습해 재사용. → "BERT 분류 헤드", "GPT 프롬프트/지시 튜닝"
| 유형 | 풀이·예시 (키워드 → 정답) |
|---|---|
| BERT 계열 | 문장 전체를 앞뒤로 함께 보고 의미를 파악하는 인코더형 모델. → 선택지에서 "인코더/이해/양방향" |
| GPT 계열 | 앞에서 나온 토큰만 보고 다음 토큰을 이어 쓰는 디코더형 모델. → 선택지에서 "디코더/생성/자기회귀" |
| MLM | 문장 일부를 가리고 빈칸 단어를 맞히는 학습 방식. → "가린 단어 복원" |
| Causal LM | 과거 토큰만 조건으로 다음 토큰 확률을 학습. → "", "다음 토큰 예측" |
| 마스크 | 미래 토큰 정보를 보지 못하게 막는 규칙. → "미래 차단", "정보 누설 방지" |
| 전이학습 | 사전학습 모델을 작업에 맞게 추가 학습해 재사용. → "BERT 분류 헤드", "GPT 프롬프트/지시 튜닝" |
예시 (개념 이해 문제)
"전형적인 BERT 계열 구조에 가장 가까운 것은?
① 인코더 블록만 쌓은 구조
② 디코더만
③ 합성곱만"
BERT는 인코더 기반 표현 학습이 핵심입니다. → 정답 1
"원 논문형 사인·코사인 위치 인코딩에서 짝수 차원 인덱스 에는 보통 무엇이 들어가나?
①
②
③ ReLU"
전형적으로 짝수 차원에 이 들어갑니다. → 정답 1
"GPT의 핵심 학습 목표에 가장 가까운 것은?
① 이미지 분류
② 다음 토큰을 왼쪽 문맥만 보고 예측
③ 군집화"
자기회귀 언어모델링입니다. → 정답 2
", 일 때 자연스러운 는?
① 256
② 512
③ 64"
입니다. → 정답 2
"학습 가능한 위치 임베딩을 더하는 방식에 가까운 설명은?
① 토큰마다 학습된 위치 벡터를 더한다
② 항상 만 쓴다
③ 위치를 쓰지 않는다"
학습형 위치 임베딩은 가산형으로 붙이는 경우가 많습니다. → 정답 1
"긴 문서에서 앞뒤 순서가 라벨에 중요할 때, 어텐션과 함께 챙길 입력은?
① 토큰 임베딩 + 위치 정보
② 픽셀만
③ 파일 이름만"
의미와 순서를 함께 넣는 전처리가 일반적입니다. → 정답 1
예시 (O/X 문제)
"가산형 위치 인코딩은 보통 토큰 임베딩에 더해져서 모델 입력이 된다. 맞으면 1, 틀리면 0."
전형적인 add 방식입니다. → 정답 1
예시 (시나리오 기반 문제)
"의료 기록에서 투약 전후 순서가 진단에 중요하다. 우선 보강할 입력은?
① 위치 인코딩을 포함한 순서 정보
② 이미지 회전 각도
③ 배치 크기만"
순서 신호가 필요합니다. → 정답 1
예시 (투표 결과 계산 문제)
"표시 벡터 [1,1,0,1,0]에서 1의 개수는?"
. → 정답 3
예시 (모델 예측 집계 문제)
"세 블록 점수 [2,1,2]의 합은?"
. → 정답 5
예시 (모델 구성 계산 문제)
"토큰 수 10일 때 self-attention 점수 행렬 원소 수는?"
. → 정답 100
예시 (앙상블 원리 이해 문제)
"여러 층을 쌓는 목적에 가장 가까운 것은?
① 단계적 추상화
② 데이터 삭제
③ 입력 금지"
층을 쌓아 표현을 단계적으로 만듭니다. → 정답 1