본문 바로가기

시험/기본개념

llm (Bert, RoBERTa, ALBERT,T5,BART)

출제됬던 개념.

LLM 모델들의 각 전문 분야 🧑‍⚕️

 

더보기

 

제가 지금까지 설명해 드린 모델들을 크게 세 가지 유형의 전문가로 나눌 수 있습니다.


1. '이해' 전문가 (The Analyzer): BERT, RoBERTa, ALBERT

이 모델들은 **'문장의 의미를 깊이 있게 파악하는 것'**이 주특기입니다.

  • 해결하려는 문제: "주어진 문장이 긍정이야, 부정이야?", "이 문장에서 사람 이름은 어디에 있어?", "이 질문에 대한 답이 본문 어디에 숨어있어?"
  • 핵심 역할: 텍스트를 읽고 그 속성을 **분류(Classification)**하거나 중요한 부분을 찾아내는(Extraction) 역할. 새로운 문장을 만들어내는 데는 소질이 없습니다.
  • 의사 비유: '진단 전문의' 👨‍⚕️
    • 환자(텍스트)의 상태를 꼼꼼히 분석하고 X-ray 사진(문장 구조)을 판독해서 "이건 감기(긍정)입니다", "여기에 염증(사람 이름)이 있네요" 라고 정확히 진단(분류)을 내립니다. 직접 수술(새로운 문장 생성)을 하지는 않습니다.
  • 대표 과제: 감성 분석, 스팸 분류, 개체명 인식(NER), 질의응답(QA)

2. '창작' 전문가 (The Creator): GPT 계열

이 모델들은 **'다음에 이어질 말을 자연스럽게 만들어내는 것'**이 주특기입니다.

  • 해결하려는 문제: "내가 '옛날 옛적에' 라고 시작하면, 그 뒤에 이어질 동화를 써줘.", "사용자가 말을 걸면 그에 맞는 대답을 생성해줘."
  • 핵심 역할: 주어진 문맥을 바탕으로 그럴듯한 다음 내용을 **생성(Generation)**합니다.
  • 의사 비유: '상담 전문의' 💬
    • 환자(사용자)의 이야기를 듣고, 그에 맞춰 공감과 조언이 담긴 새로운 말(텍스트)을 만들어 대화를 이끌어갑니다. 문장을 분석하기보다는 대화를 이어나가는 데 초점을 맞춥니다.
  • 대표 과제: 챗봇, 스토리 생성, 코드 작성, 창의적인 글쓰기

3. '변환' 전문가 (The Transformer/Editor): T5, BART

이 모델들은 **'하나의 텍스트를 다른 형태의 텍스트로 바꾸는 것'**이 주특기입니다.

  • 해결하려는 문제: "이 영어 문장을 한국어로 번역해줘.", "이 긴 뉴스 기사를 세 문장으로 요약해줘.", "문법이 틀린 이 문장을 고쳐줘."
  • 핵심 역할: 입력 텍스트를 특정 규칙에 따라 다른 출력 텍스트로 변환(Transformation) 또는 **재가공(Rewriting)**합니다.
  • 의사 비유: '해외 학회 발표자' 🧑‍🏫
    • 복잡한 한국어 논문(입력 텍스트)을 이해하고(인코더), 그것을 간결한 영어 발표 자료(출력 텍스트)로 완벽하게 바꾸어(디코더) 전달합니다. 이해와 생성을 모두 잘해야 하는 멀티플레이어입니다.
  • 대표 과제: 기계 번역, 문서 요약, 문법 교정

 

 

 

 

토큰은  =  단어 인코딩 + 위치 인코딩으로 구성됨!

더보기

영화관 좌석표 같은 '위치 인코딩'

트랜스포머 모델을 하나의 큰 영화관이라고 상상해 보세요. 각 단어는 영화를 보러 온 관객입니다.

  1. 단어 임베딩 (티켓 발권): 먼저 "Super", "Bowl", "[MASK]" 등 각 단어는 '단어 임베딩'을 통해 고유한 의미를 가진 숫자 벡터(티켓)를 받습니다. 이 티켓에는 단어의 의미 정보만 담겨 있습니다.
  2. 위치 인코딩 (좌석 번호 부여): 하지만 이 티켓만으로는 누가 어디에 앉아야 할지 알 수 없습니다. 그래서 모델은 각 단어가 들어온 **순서(위치)**에 따라 고유한 '좌석 번호'를 부여합니다. 이것이 바로 위치 인코딩입니다.
    • 첫 번째 단어 "Super"에게는 '1번 자리' 정보 벡터
    • 두 번째 단어 "Bowl"에게는 '2번 자리' 정보 벡터
    • ...
    • 일곱 번째 [MASK]에게는 '7번 자리' 정보 벡터
  3. 정보 합치기 (좌석 착석): 마지막으로, 모델은 각 단어의 '의미 정보(단어 임베딩)'와 '좌석 번호(위치 인코딩)'를 하나로 합칩니다. 보통 두 벡터를 더하는 방식을 사용합니다.

최종 입력값 = 단어의 의미 (Word Embedding) + 단어의 위치 (Positional Encoding)

이렇게 합쳐진 벡터가 트랜스포머 인코더의 최종 입력이 됩니다.

x₇에 자리 정보가 담겨 있는 이유

따라서 트랜스포머 인코더에 들어갈 때부터, 일곱 번째 [MASK] 토큰은 자신의 의미 정보뿐만 아니라 **'나는 7번 자리에 있다'**는 고유한 위치 정보를 이미 품고 있습니다.

인코더가 여러 층의 복잡한 계산을 거쳐 최종 결과물인 x₇을 만들어낼 때, 이 초기 위치 정보가 계산 과정 내내 계속 영향을 미칩니다. 그렇기 때문에 최종 결과물인 x₇은 일곱 번째 자리의 문맥적 의미를 풍부하게 담고 있는 벡터가 되는 것입니다.

결론적으로, 모델은 예측 시점에 자리 정보를 따로 받는 것이 아니라, 맨 처음부터 각 단어에 위치 정보를 주입하여 계산 과정 전체에 그 정보를 활용합니다.

 
 
 
 

 

 

1. gpt(Generative Pre-trained Transformer)

더보기
  • 핵심 개념: **'다음에 올 단어 예측'**을 통해 문맥을 학습하는 생성 모델입니다.
  • 반드시 알아야 할 내용:
    • 아키텍처: 트랜스포머의 디코더(Decoder) 블록만을 사용합니다.
    • 학습 방식 (언어 모델링, Language Modeling): 문장이 주어졌을 때, 이전 단어들을 바탕으로 다음 단어가 무엇일지 예측하는 방식으로 학습합니다. 이는 한쪽 방향(왼쪽에서 오른쪽)으로만 정보를 참고하기 때문에 '단방향(Uni-directional)' 모델이라고 불립니다.
    • 수식으로 표현하면, 단어 시퀀스 $W = {w_1, w_2, ..., w_n}$가 주어졌을 때, 다음과 같은 조건부 확률의 곱을 최대화하는 것을 목표로 합니다.
  • 헷갈리기 쉬운 내용 (문제 보기 분석):
    • 문제의 보기에서는 GPT가 '두 문장이 연속된 관계인지 예측(Next Sentence Prediction, NSP)'하는 작업을 한다고 설명했지만, 이는 BERT의 학습 방식 중 하나입니다. GPT의 핵심은 다음 단어 예측입니다.

 

2. bert (Bidirectional Encoder Representations from Transformers)

더보기
  • 핵심 개념: **'문장 중간의 가려진 단어 맞추기'**를 통해 문맥을 양방향으로 학습하는 모델입니다.
  • 반드시 알아야 할 내용:
    • 아키텍처: 트랜스포머의 인코더(Encoder) 블록만을 사용합니다.
    • 학습 방식:
      1. Masked Language Model (MLM): 문장의 일부 토큰을 [MASK] 토큰으로 무작위로 가린 뒤, 주변 문맥을 양방향으로 참고하여 원래 단어가 무엇이었는지 예측합니다.
      2. Next Sentence Prediction (NSP): 두 문장을 주고, 두 번째 문장이 첫 번째 문장 바로 다음에 오는 문장인지 아닌지를 맞추는 이진 분류 문제를 풉니다.
  • 헷갈리기 쉬운 내용:
    • BERT는 GPT와 달리 왼쪽과 오른쪽 문맥을 모두 활용하여 가려진 단어를 예측하기 때문에 '양방향(Bi-directional)' 모델입니다. 이것이 BERT가 문맥 이해 과제에서 강력한 성능을 보이는 이유 중 하나입니다.

 

사전학습은 1번만 수행하고, 실제 과제를 수행하기 위해 전용도구 붙인다.

실제 특정 과제를 수행하려면, 그 과제에 맞는 **'전용 도구(Task-specific Head)'**를 끝에 새로 붙여줘야 합니다.

  • 감성 분석: '긍정/부정 판단기'라는 도구를 붙임
  • 질문-답변: '정답 찾기'라는 도구를 붙임
  • 개체명 인식: '이름표 붙이기'라는 도구를 붙임

즉, BERT는 풀고 싶은 문제에 따라 마지막 부품을 계속 교체하는 방식입니다.

 

이 prediction layer (마지막 부품에 대해서bert, bart 비교)

 

## 예측 레이어의 연결 지점

BERT: 인코더에 바로 연결

BERT는 인코더만 있는 모델입니다. 따라서 문장 전체의 정보를 요약한 [CLS] 토큰의 최종 결과물에 분류기(예측 레이어)를 바로 연결합니다.

정보 흐름: 문장 → 인코더 → [CLS] 결과 → 분류기

BART: 디코더를 거쳐서 연결

BART는 인코더디코더가 모두 있습니다. BART는 디코더를 '정보를 종합하는 전문가'로 활용합니다.

  1. 문장이 인코더를 통과합니다.
  2. 인코더의 모든 결과가 디코더로 전달됩니다.
  3. 디코더가 이 정보를 종합하여 마지막 토큰(</s>)의 결과물을 만듭니다.
  4. 디코더의 최종 결과물분류기(예측 레이어)를 연결합니다.

정보 흐름: 문장 → 인코더디코더 → </s> 결과 → 분류기

 

 

 

3. span bert
https://cartinoe5930.tistory.com/entry/SpanBERT-Improving-Pre-training-by-Representing-and-Predicting-Spans-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0

더보기

 

  • 핵심 개념: BERT의 MLM 방식을 개선하여, **'연속된 단어 덩어리(Span)'**를 통째로 가리고 예측하는 모델입니다.
  • 반드시 알아야 할 내용:
    • 학습 방식:
      1. 단일 토큰이 아닌, **연속된 단어들의 덩어리(Span)**를 마스킹합니다.
      2. 모델은 마스킹된 덩어리의 **경계에 있는 단어들(boundary tokens)**의 정보를 활용하여, 덩어리 안에 있던 모든 단어를 예측해야 합니다. 이를 **Span Boundary Objective (SBO)**라고 합니다.
  • 헷갈리기 쉬운 내용 (문제 보기 분석):
    • 문제 보기에서는 '누락된 토큰의 를 예측한다'고 설명했지만, 이는 BART 모델의 Text Infilling과 유사한 설명입니다. SpanBERT는 누락된 토큰의 '개수'가 아니라, '실제 단어들' 자체를 예측합니다.

 

*SBO 예시로 이해하기 🔎

1단계: 원본 문장 준비

여기 아주 평범한 문장이 하나 있습니다.

"오늘 점심은 맛있는 파스타를 먹었다."

2단계: '덩어리(Span)' 단위로 마스킹

SpanBERT는 BERT처럼 [MASK]를 한 단어씩 띄엄띄엄 놓는 게 아니라, 연속된 단어 덩어리를 통째로 가립니다. 여기서 '맛있는 파스타를' 이라는 덩어리를 가려보겠습니다.

"오늘 점심은 [MASK] [MASK] [MASK] 먹었다."

3단계: '경계 단어(Boundary Tokens)' 찾기

이제 SBO의 핵심인 경계 단어를 찾아봅시다. 경계 단어는 이름 그대로, 가려진 덩어리의 **경계(양쪽 끝)**에 위치한 단어들을 말합니다.

  • 마스킹된 덩어리 바로 앞 단어: "은"
  • 마스킹된 덩어리 바로 뒷 단어: "먹었다"

"오늘 점심은 [MASK] [MASK] [MASK] 먹었다."

4단계: SBO 목표 설정 및 예측 🎯

이제 모델의 목표가 정해졌습니다.

모델은 [MASK] 처리된 문장 전체와, 특히 경계 단어인 "은"과 "먹었다"의 정보를 집중적으로 활용해야 합니다. 그리고 이 정보를 바탕으로 [MASK] 3개에 들어갈 단어 덩어리가 "맛있는 파스타를" 이라는 것을 순서대로 예측해내야 합니다.

SBO의 핵심 아이디어: "은" 이라는 조사와 "먹었다" 라는 동사 사이에 올 수 있는 자연스러운 단어들의 조합과 순서를 학습하라는 것입니다. 단순히 각 [MASK]에 들어갈 단어를 독립적으로 맞추는 것이 아니라, "맛있는" 다음에는 "파스타를"이 올 확률이 높다는 식의 덩어리 내부의 관계까지 학습하게 됩니다.


BERT의 MLM과 무엇이 다른가요?

  • BERT (MLM): "오늘 [MASK]은 맛있는 [MASK]를 먹었다." 와 같이 띄엄띄엄 마스킹하고, 각 [MASK]를 주변 단어를 이용해 개별적으로 예측합니다.
  • SpanBERT (SBO): "오늘 점심은 [MASK] [MASK] [MASK] 먹었다." 처럼 덩어리를 통째로 가리고, **덩어리의 양 끝 정보(경계 단어)**를 이용해 덩어리 전체를 한 번에 예측하도록 합니다.

이러한 SBO 방식 덕분에 SpanBERT는 단어들 간의 관계나 숙어처럼 여러 단어로 이루어진 개념을 더 잘 학습할 수 있습니다.

4. RoBERTa

더보기
  • 핵심 개념: BERT의 아키텍처를 바꾸지 않고, 학습 방법과 데이터를 최적화하여 성능을 극대화한 모델입니다.
  • 반드시 알아야 할 내용:
    • 주요 개선점:
      1. Dynamic Masking (동적 마스킹): BERT는 데이터 전처리 과정에서 마스킹을 한 번만 수행하여 전체 학습 동안 고정된 마스크를 사용합니다 (정적 마스킹). 반면 RoBERTa는 데이터를 모델에 입력할 때마다 매번 새로운 위치에 마스킹을 적용하여 모델이 더 다양한 패턴을 학습하게 합니다.
      2. NSP 제거: Next Sentence Prediction (NSP) 태스크가 성능 향상에 별로 도움이 되지 않음을 발견하고, 이 학습 과정을 제거했습니다.
      3. 더 많은 데이터와 더 큰 배치 사이즈로 더 오래 학습시켰습니다.
  • 헷갈리기 쉬운 내용 (문제 보기 분석):
    • 문제 보기에서는 '특정 기준을 통해 선택적으로 마스킹한다'고 했는데, 이는 사실이 아닙니다. RoBERTa 마스킹의 핵심은 '선택'이 아니라, 학습 과정 동안 마스킹 위치를 **'지속적으로 변경(동적)'**하는 것입니다.

5. ELECTRA

더보기

 

  • 핵심 개념: **'가짜 토큰 탐지'**라는 새로운 방식으로 학습 효율을 극대화한 모델입니다.
  • 반드시 알아야 할 내용:
    • 아키텍처: **생성자(Generator)**와 **판별자(Discriminator)**라는 두 개의 모델을 사용합니다.
    • 학습 방식 (Replaced Token Detection, RTD):
      1. 생성자: 입력 문장의 일부 토큰을 마스킹한 뒤, 그 자리에 들어갈 만한 그럴듯한 가짜(plausible but fake) 토큰을 생성하여 원래 문장을 훼손시킵니다. (이 생성자는 보통 작은 BERT 모델입니다.)
      2. 판별자: 생성자가 만든 문장을 통째로 입력받아, 각 토큰 위치마다 이 토큰이 원래 문장에 있던 '진짜(original)'인지 아니면 생성자에 의해 대체된 '가짜(replaced)'인지를 판별합니다.
    • 장점: MLM은 전체 토큰의 15% 정도만 학습에 사용하지만, ELECTRA는 모든 토큰에 대해 진짜/가짜를 판별하므로 학습이 훨씬 효율적(sample-efficient)입니다.
  • 헷갈리기 쉬운 내용 (문제 보기 분석):
    • 문제 보기에서는 판별자가 '진짜 문장과 가짜 문장을 구별한다'고 했는데, 이는 GAN의 판별자와 유사한 설명입니다. ELECTRA의 판별자는 문장 단위가 아니라, **각 '토큰'**이 진짜인지 가짜인지를 판별합니다. 이것이 핵심적인 차이점입니다.

 

 

 

1. T5 

더보기

T5: NLP계의 스위스 아미 나이프 swiss army knife 🔪

T5는 **"Text-to-Text Transfer Transformer"**의 약자입니다. 이름이 좀 길지만, 하나씩 뜯어보면 T5의 모든 것을 이해할 수 있습니다.

  • Text-to-Text (텍스트에서 텍스트로): T5의 가장 핵심적인 철학입니다.
  • Transfer (전이 학습): 거대한 데이터로 미리 학습한 후, 특정 과제에 그 지식을 **'전이'**시켜 사용합니다.
  • Transformer (트랜스포머): 이 모든 것을 구현하는 기반 아키텍처입니다.

이것을 한 문장으로 합치면, **"모든 자연어처리(NLP) 문제를 '입력 텍스트를 출력 텍스트로 변환'하는 단 하나의 방식으로 풀어내는 트랜스포머 모델"**이라고 할 수 있습니다.


무엇이 T5를 특별하게 만들까요? 🤔

이전까지의 모델들(BERT, GPT 등)은 각자 잘하는 분야가 있고, 풀고 싶은 문제(Task)에 따라 모델의 구조를 약간씩 바꿔야 했습니다.

  • 감성 분석: 문장을 입력받아 '긍정' 또는 '부정' 이라는 **라벨(label)**을 출력
  • 기계 번역: 영어 문장을 입력받아 한국어 문장을 생성
  • 문서 요약: 긴 글을 입력받아 짧은 요약문을 생성

이처럼 과제마다 출력의 형태가 제각각이었죠. 개발자들은 과제에 맞춰 모델의 마지막 단(output layer)을 새로 설계하고 붙여주는 과정이 필요했습니다.

T5는 이 모든 과정을 하나로 통일했습니다. "어떤 문제가 들어오든, 그냥 텍스트로 질문하고 텍스트로 대답하게 만들자!" 라는 아주 단순하지만 강력한 아이디어를 적용한 것입니다.

"접두사(Prefix)"를 이용한 마법

T5는 **"접두사(Prefix)"**라는 간단한 명령어를 텍스트 앞에 붙여서 어떤 과제를 수행해야 하는지 구분합니다. 마치 사람에게 "이거 번역해줘", "이거 요약해줘" 라고 말하는 것과 같습니다.


  • 번역 (Translation)
    • 입력: translate English to German: That is good.
    • 출력: Das ist gut.
  • 요약 (Summarization)
    • 입력: summarize: [아주 긴 뉴스 기사 원문]...
    • 출력: [핵심 내용만 담긴 요약문]
  • 문장 유사도 측정 (Similarity)
    • 입력: stsb sentence1: The cat sat on the mat. sentence2: The cat was sitting on the mat. (STS-B는 유사도 측정 벤치마크 이름)
    • 출력: 3.8 (유사도 점수를 텍스트로 생성)
  • 감성 분석 (Sentiment Analysis)
    • 입력: cola sentence: This movie is awesome! (CoLA는 문법성 판단 벤치마크 이름)
    • 출력: acceptable ('긍정'을 의미하는 단어를 텍스트로 생성)

이처럼 하나의 모델, 하나의 학습 방식으로 수많은 종류의 과제를 수행할 수 있다는 것이 T5의 혁신적인 점입니다.


T5의 아키텍처와 사전학습 🏗️

  • 아키텍처: T5는 BERT의 인코더와 GPT의 디코더를 모두 사용하는 표준적인 인코더-디코더(Encoder-Decoder) 구조를 가지고 있습니다.
    • 인코더: "번역해줘: 이 사과는 맛있다." 와 같은 입력 텍스트(접두사 포함)를 받아 그 의미를 완벽하게 이해하고 압축합니다.
    • 디코더: 인코더가 압축한 의미 정보를 바탕으로, "This apple is delicious." 라는 정답 텍스트를 한 단어씩 순차적으로 생성합니다.
  • 사전학습: T5는 어떻게 이렇게 똑똑해졌을까요? 사전 학습 방법도 "텍스트-투-텍스트" 컨셉에 맞춰져 있습니다.
    1. 아주 깨끗하고 긴 문장을 준비합니다.
    2. Thanks for inviting me to your party last week.
    3. 문장의 일부를 무작위로 지우고, 그 자리를 <X>, <Y> 같은 특수 토큰으로 표시합니다.
    4. 입력: Thanks <X> me to your party <Y> week.
    5. 모델에게 지워진 부분을 맞추게 합니다.
    6. 정답(출력): <X> for inviting <Y> last
    이 학습 방식조차 '손상된 텍스트'를 입력받아 '복원된 텍스트'를 출력하는 텍스트-투-텍스트 문제입니다. 이 과정을 수많은 데이터로 반복하면서 T5는 언어의 문법, 의미, 문맥을 깊이 있게 학습하게 됩니다.

핵심 정리 및 헷갈리기 쉬운 점 🎯

  • T5는 만능 도구: T5는 특정 과제 전용 모델이 아니라, 접두사(명령어)에 따라 번역기, 요약기, 분류기 등으로 변신하는 만능 프레임워크입니다.
  • BERT와의 결정적 차이: BERT는 문장의 '의미적 표현'을 출력하는 인코더 모델입니다. 반면 T5는 실제 **'결과 텍스트'**를 출력하는 인코더-디코더 모델입니다.
  • GPT와의 차이점: GPT는 다음에 올 내용을 예측하며 글을 이어 쓰는 디코더 모델에 가깝습니다. T5는 입력과 출력의 관계를 학습하여 입력된 내용을 특정 형식의 텍스트로 **변환(transform)**하는 데 더 특화되어 있습니다.

 

추가 정리

T5의 작동 방식을 **'주어진 내용을 지시에 따라 변환하고 가공(rewriting)하는 것'**이라고 생각하시면 아주 훌륭한 이해입니다. 그게 바로 T5의 핵심 철학입니다.


T5: 궁극의 텍스트 편집기(Rewriter) ✍️

다른 모델들과의 역할에 비유하면 그 차이가 더 명확해집니다.

  • BERT는 '분석가(Analyzer)'에 가깝습니다. 문장을 읽고 그 의미를 분석해서 숫자 벡터(임베딩)로 만들거나, '긍정/부정', '참/거짓' 같은 간단한 라벨을 붙이는 역할을 합니다. 원본 텍스트를 새로운 문장으로 바꾸지는 않죠.
  • GPT는 '이야기꾼(Storyteller)'에 가깝습니다. 주어진 문맥 다음에 이어질 이야기를 상상해서 새로운 내용을 계속 생성해내는 데 특화되어 있습니다. 원본을 '변환'한다기보다는 '확장'하는 느낌이 강합니다.
  • T5는 '능숙한 편집자(Rewriter/Processor)'에 가깝습니다. summarize:, translate: 같은 명확한 **편집 지시(접두사)**를 받아서, 원본 텍스트를 그 지시에 맞게 완전히 새로운 형태의 텍스트로 재가공합니다.

T5의 'Rewriting' 작업 예시

  • 번역: '영어'라는 텍스트를 '독일어'라는 텍스트로 재작성(rewrite)합니다.
  • 요약: '긴 글'이라는 텍스트를 '짧은 글'이라는 텍스트로 재작성(rewrite)합니다.
  • 문법 교정: '문법이 틀린 문장'을 '문법이 맞는 문장'으로 재작성(rewrite)합니다.
    • 입력: cola sentence: I has two apple.
    • 출력: I have two apples.
  • 질의응답: '질문과 긴 지문'이라는 텍스트를 '정답'이라는 짧은 텍스트로 재작성(rewrite)합니다.

이처럼 T5의 모든 작업은 결국 입력 텍스트를 특정 규칙에 따라 다른 출력 텍스트로 변환하는 'Rewriting' 과정으로 귀결됩니다. 그렇게 이해하고 계시면 시험 문제를 풀 때 개념이 헷갈리지 않고 중심을 잡는 데 큰 도움이 될 겁니다. 아주 잘 파악하셨어요!

2. BART (Bidirectional and Auto-Regressive Transformers)

더보기
  • 핵심 개념: 손상된 텍스트를 원본으로 복원하는 '노이즈 제거(Denoising)' 방식으로 사전 학습을 수행하는, BERT와 GPT의 장점을 결합한 모델입니다.
  • 반드시 알아야 할 내용:
    • 아키텍처: BERT처럼 양방향으로 문맥을 이해하는 인코더와, GPT처럼 순차적으로 텍스트를 생성하는 디코더를 결합한 표준적인 인코더-디코더 구조입니다.
    • 사전 학습 (Denoising Objective): 원본 텍스트에 다양한 방식으로 노이즈를 추가하고(훼손하고), 모델이 이를 원본 텍스트로 복원하도록 학습합니다.
      • Token Masking: BERT처럼 토큰을 마스킹합니다.
      • Token Deletion: 무작위로 토큰을 삭제합니다.
      • Text Infilling: SpanBERT처럼 여러 토큰으로 구성된 텍스트 덩어리(span)를 하나의 [MASK] 토큰으로 바꾸고, 모델이 누락된 덩어리를 생성하도록 합니다.
      • Sentence Permutation: 문서 내 문장들의 순서를 섞습니다.
      • Document Rotation: 특정 문장을 문서의 시작으로 옮깁니다.
  • 헷갈리기 쉬운 내용:
    • T5와의 차이점: 두 모델 모두 인코더-디코더 구조이지만, 사전 학습 방식에 차이가 있습니다. BART는 원본을 복원하는 '노이즈 제거'에, T5는 마스킹된 부분을 채우는 '빈칸 채우기'에 더 가깝습니다. 특히 BART는 텍스트 생성(요약, 번역) 과제에서 매우 강력한 성능을 보입니다.
    • SpanBERT와의 차이점: 문제 해설에서 SpanBERT의 오답 보기로 '누락된 토큰 수를 예측'하는 것이 BART와 유사하다고 했는데, 정확히는 BART의 Text Infilling이 SpanBERT의 Span Masking과 유사합니다. 차이점은 BART가 훨씬 더 다양한 종류의 노이즈를 사용한다는 점입니다.

 

bart 디코더 역할 🤔

 

이 부분이 BART의 핵심입니다. BERT처럼 인코더만으로도 분류가 가능한데, 왜 굳이 디코더까지 사용할까요?

결론적으로, BART에서 디코더는 인코더가 생성한 문맥 정보를 효과적으로 종합하여 최종 결정을 내리는 '정리 전문가' 역할을 합니다.

작동 방식

  1. 인코더 (정보 분석가): 입력 문장 (예: "이 영화 정말 최고예요")이 인코더로 들어갑니다. 인코더는 문장 전체를 양방향으로 읽으며 각 단어의 풍부한 문맥적 의미를 파악합니다. 여기까지는 BERT의 역할과 유사합니다.
  2. 디코더 (결정권자): 이제 디코더 차례입니다. 기계 번역처럼 새로운 문장을 생성하는 것이 아니므로, 디코더에는 문장의 마지막을 나타내는 특수 토큰(</s>) 딱 하나만 입력으로 넣어줍니다.
  3. 디코더의 핵심 임무 (Cross-Attention): 디코더는 </s> 토큰 하나만 받았지만, 인코더가 분석한 모든 결과물Cross-Attention 메커니즘을 통해 참조할 수 있습니다. 즉, 디코더는 인코더의 모든 단어 정보를 샅샅이 훑어보며 "이 문장 전체를 '긍정'으로 분류하기에 가장 중요한 단서는 무엇인가?"를 종합적으로 판단합니다.
  4. 최종 결정: 이 과정을 통해 모든 정보가 집약된 </s> 토큰의 최종 결과 벡터가 나옵니다. 이 벡터를 마지막 분류기(Linear Layer)에 넣어 최종적으로 '긍정' 또는 '부정' 확률을 계산합니다.

위원회 비유

  • 인코더: 여러 명의 **'실무 위원'**입니다. 각자 문서를 꼼꼼히 읽고 상세한 분석 보고서(각 단어의 결과 벡터)를 작성합니다.
  • 디코더: 최종 결정을 내리는 **'위원장'**입니다. 위원장은 모든 실무 위원의 상세 보고서를 전부 취합하고 검토하여(Cross-Attention), 단 하나의 최종 결정문(</s>의 결과 벡터)을 작성합니다.

이처럼 BART는 디코더라는 강력한 장치를 정보 종합 및 최종 판단에 활용함으로써, 단순히 인코더의 특정 토큰 하나만 사용하는 BERT 방식보다 더 정교한 분류를 수행할 수 있습니다.

3.ALBERT (A Lite BERT)

더보기

 

  • 핵심 개념: BERT의 성능은 유지하면서 모델의 파라미터 수를 획기적으로 줄여 경량화한 모델입니다.
  • 반드시 알아야 할 내용:
    • 주요 경량화 기술:
      1. Cross-layer Parameter Sharing (레이어 간 파라미터 공유): BERT는 12개(Base 모델 기준)의 인코더 레이어가 각각 다른 파라미터를 갖지만, ALBERT는 모든 레이어가 하나의 파라미터 셋을 공유합니다. 이로 인해 파라미터 수가 크게 줄어듭니다.
      2. Factorized Embedding Parameterization: 단어 임베딩(WordPiece embedding)의 차원(E)과 인코더 레이어의 은닉 상태(hidden state) 차원(H)을 분리합니다. 보통 H가 E보다 훨씬 큰데, 이 둘을 분리하여 임베딩 행렬의 크기를 크게 줄입니다.
    • 학습 방식 변경:
      • Sentence-Order Prediction (SOP): BERT의 NSP가 너무 쉬운 문제라고 판단하고, 이를 '문장 순서 예측(SOP)'으로 대체했습니다. SOP는 한 문서에서 추출한 두 문단이 올바른 순서인지, 아니면 순서가 뒤바뀌었는지를 맞추는 더 어려운 과제입니다.
  • 헷갈리기 쉬운 내용:
    • RoBERTa와의 차이점: RoBERTa는 BERT의 학습 **'방식'**을 최적화하여 성능을 끌어올린 모델인 반면, ALBERT는 BERT의 **'구조'**를 변경하여 모델을 경량화하는 데 초점을 맞춘 모델입니다.
    • NSP vs SOP: BERT의 NSP는 서로 다른 문서에서 가져온 문장을 부정 예시(negative sample)로 사용하기도 해서 주제 예측만으로도 풀릴 수 있습니다. 반면, ALBERT의 SOP는 항상 같은 문서 내에서 문단 순서만 바꾸므로, 문장 간의 논리적 흐름(coherence)을 더 깊이 이해해야 풀 수 있습니다.

 

'시험 > 기본개념' 카테고리의 다른 글

XAI , cam, grad cam, lime, shap  (0) 2025.09.01
AI 시스템 설계  (1) 2025.09.01
MoE  (0) 2025.08.31
cross-entropy  (0) 2025.08.29
infoNCE loss  (1) 2025.08.29