[논문 리뷰 - 4] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

shanny·2025년 7월 13일

논문 리뷰

목록 보기
35/42

‼️ 개인 학습 내용으로, 오류가 있을 수 있습니다.

논문 URL - https://arxiv.org/abs/1810.04805

Experiments(fine-tuning 결과)

GLUE

  • 정의 : GLUE(General Language Understanding Evaluation) 벤치마크는 다양한 자연어 이해 과제들로 구성된 평가 세트다.

  • BERT의 GLUE 파인튜닝 절차

  1. 입력 시퀀스 구성

    • 단일 문장 또는 문장 쌍 입력을 Section 3에서 설명한 BERT 입력 포맷(예: [CLS] 문장A [SEP] 문장B [SEP])으로 변환한다.
    • 각 토큰은 토큰 임베딩, 세그먼트 임베딩, 포지션 임베딩의 합으로 표현된다.
  2. 집계 표현(aggregate representation)

    • 입력 시퀀스의 첫 번째 토큰인 [CLS]의 마지막 히든 벡터 C ∈ ℝ^H를 전체 입력의 대표 임베딩으로 사용한다.
  3. 분류 레이어 추가

    • 파인튜닝 시 새롭게 추가되는 파라미터는 분류 레이어의 가중치 W ∈ ℝ^{K×H}뿐이다.
      • K: 해당 GLUE 태스크의 레이블(클래스) 개수
      • H: 히든 벡터의 차원 수
  4. 출력 및 손실 함수

    • 분류 결과는 CW를 곱한 후 소프트맥스(softmax)를 통과시켜 확률로 변환한다.
    • 손실 함수로는 표준 분류 손실(classification loss), 즉 log(softmax(CW^T))
      를 사용한다.
  • 파인튜닝 세팅

    • 배치 크기(batch size): 32
    • 에폭(epoch): 3
    • 러닝레이트(learning rate): 각 태스크별로 Dev set에서 5e-5, 4e-5, 3e-5, 2e-5 중 최적값 선택
  • BERTLARGE 특이사항:

    • 작은 데이터셋에서는 파인튜닝이 불안정할 수 있음
    • 여러 번 랜덤 재시작(random restart) 후 Dev set에서 가장 성능이 좋은 모델을 선택
    • 랜덤 재시작 시 동일한 사전학습 체크포인트를 사용하되, 데이터 셔플링 및 분류기 레이어 초기화를 다르게 함
  • 성능 결과

    • BERT_BASE와 BERT_LARGE 모두 GLUE의 모든 태스크에서 기존 SOTA 모델(OpenAI GPT 등)을 큰 폭으로 능가
    • 평균 정확도 향상:
      • BERT_BASE: 기존 SOTA 대비 +4.5%
        • BERT_LARGE: 기존 SOTA 대비 +7.0%
    • MNLI(가장 널리 보고되는 GLUE 태스크): BERT가 기존 대비 4.6%의 절대 정확도 향상
    • GLUE 공식 리더보드 기준:
      • BERT_LARGE: 80.5점
        • OpenAI GPT: 72.8점 (작성 시점 기준)
    • 모델 구조:BERT_BASE와 OpenAI GPT는 attention masking을 제외하면 거의 동일한 구조
    • 모델 크기 효과:BERT_LARGE가 모든 태스크, 특히 학습 데이터가 적은 태스크에서 BERT_BASE보다 월등히 우수함

SQuAD v1.1

  • 정의 : SQuAD(Stanford Question Answering Dataset)은 약 10만 개의 크라우드소싱된 질문-답변 쌍으로 이루어진 데이터셋이다.
  • 특징 : 각 샘플은 위키피디아 문단과 질문이 주어졌을 때, 문단 내에서 정답 텍스트 구간(span)을 예측하는 것이 목표이다.

입력 구성

  • 입력 시퀀스:
    [CLS] + 질문(Question) + [SEP] + 문단(Passage) + [SEP]
  • 세그먼트 임베딩:
    • 질문: Segment A 임베딩
    • 문단: Segment B 임베딩

출력 및 예측 방식

  • 파인튜닝 시 시작 벡터 S ∈ ℝ^H끝 벡터 E ∈ ℝ^H를 추가로 학습한다.
  • 문단 내 각 토큰 위치 i에 대해,
    • 시작 확률:
      P_start(i) = softmax(S · T_i) = exp(S · T_i) / sum_j exp(S · T_j)
    • 끝 확률:
      P_end(i) = softmax(E · T_i) = exp(E · T_i) / sum_j exp(E · T_j)
    • 여기서 T_i는 i번째 토큰의 마지막 히든 벡터이다.
  • 정답 구간(span) 예측:
    • 후보 구간 (i, j)에 대해 점수는
      score(i, j) = S · T_i + E · T_j
    • 조건: j ≥ i (시작 위치가 끝 위치보다 앞이어야 함)
    • 점수가 가장 높은 구간을 최종 답변으로 선택한다.

학습(파인튜닝) 세팅

  • 에폭: 3
  • 러닝레이트: 5e-5
  • 배치 크기: 32
  • 목표 함수: 정답 시작/끝 위치의 로그 우도(log-likelihood) 합을 최대화한다.

SQuAD 리더보드 및 데이터 증강 전략

  • SQuAD 리더보드의 최상위 결과들은 최신 공개 시스템 설명이 제공되지 않는 경우가 많으며, 학습 시 모든 공개 데이터를 자유롭게 사용할 수 있다.
    이에 따라, 본 논문에서는 데이터 증강을 위해 TriviaQA(Joshi et al., 2017)에서 먼저 파인튜닝을 진행한 후, SQuAD에서 추가 파인튜닝을 하는 방식을 사용한다.

이러한 전략을 통해 추가적인 데이터로 BERT의 질문응답 성능을 더욱 높일 수 있다.

SQuAD v2.0

  • SQuAD 2.0은 SQuAD 1.1에서 한 단계 발전한 질문응답 데이터셋으로, 본문에 정답이 없는(unanswerable) 질문이 포함되어 있다는 점이 가장 큰 특징이다.

  • 이로 인해, SQuAD 2.0은 실제 환경과 더 유사한 문제를 다루게 되며, 모델은 답이 있을 때만이 아니라 "답이 없다"는 상황도 정확히 판별해야 한다.

  • 주요 차이점 및 BERT 적용 방식

    • 정답 없는 질문:SQuAD 2.0에는 본문에 답이 없는(정답이 존재하지 않는) 질문이 약 5만 개 추가되어 있다. 이 질문들은 실제 사람이 작성하여, 답이 있는 질문과 형태적으로 매우 유사하다. 따라서 단순 패턴 매칭으로는 구분이 어렵고, 모델의 판별 능력이 중요해졌다.
    • 모델 확장: BERT 기반 SQuAD 1.1 모델을 확장하여, 정답이 없는 경우에는 정답 구간의 시작과 끝 위치를 [CLS] 토큰 위치로 지정한다. 즉, [CLS]가 선택되면 "답이 없다"는 의미가 된다.
  • 학습 세팅:

    • TriviaQA 데이터는 사용하지 않음
    • 에폭 2, 러닝레이트 5e-5, 배치 크기 48로 파인튜닝

SWAG

  • 정의 : SWAG(Situations With Adversarial Generations)113,000개의 문장 완성 예시로 구성된 대규모 데이터셋이다.
  • 각 샘플은 상황에 대한 문장(문장 A)와, 그 다음에 올 수 있는 4개의 선택지(문장 B)로 이루어진다.

BERT 파인튜닝 방법

  • 각 문제에 대해 4개의 입력 시퀀스를 만든다:
    [CLS] + 문장 A(상황) + [SEP] + 문장 B(후보) + [SEP]
  • 각 시퀀스의 [CLS] 토큰 임베딩에 점수 벡터를 내적하여 4개 선택지의 점수를 계산한다.
  • 소프트맥스(softmax)로 확률화하여 가장 점수가 높은 선택지를 예측한다.
  • 파인튜닝 세팅:
    • 에폭: 3
    • 러닝레이트: 2e-5(0.00005)
    • 배치 크기: 16

성능

  • BERTLARGE는 SWAG 저자들의 기준 시스템(ESIM+ELMo) 대비 +27.1%, OpenAI GPT 대비 +8.3% 더 높은 정확도를 기록했다.

Ablation Studies

사전 학습 작업의 효과 실험

BERT의 핵심 강점인 깊은 양방향성이 실제로 얼마나 중요한지 검증하기 위해, 동일한 사전학습 데이터, 파인튜닝 방식, 하이퍼파라미터(BERTBASE와 동일)를 사용해 두 가지 변형 모델을 실험하였다.

1. No NSP (NSP 미적용 모델)

  • 구성:
    • 양방향성(bidirectional)은 유지하며,
    • 사전학습 시 Masked Language Model(MLM)만 사용,
    • Next Sentence Prediction(NSP) 과제는 제외한다.
  • 의의:
    • NSP가 실제로 다운스트림 성능에 얼마나 기여하는지 평가할 수 있다.

2. LTR & No NSP (단방향 + NSP 미적용 모델)

  • 구성:
    • 좌→우(Left-to-Right, LTR) 단방향 언어모델로만 사전학습한다.
    • MLM 대신 표준 LTR LM을 사용한다.
    • NSP 과제도 제외한다.
    • 파인튜닝 시에도 좌→우 제약을 유지한다. (유지하지 않으면, 사전학습/파인튜닝 불일치로 성능이 더 나빠짐)
  • 의의:
    • 이 모델은 구조적으로 OpenAI GPT와 직접적으로 비교 가능하다.
    • 단, BERT의 더 큰 학습 데이터, 입력 표현, 파인튜닝 방식을 그대로 적용한다.

결과

1. NSP(Next Sentence Prediction) 과제의 영향

  • NSP를 제거하면(QNLI, MNLI, SQuAD 1.1 등에서) 성능이 크게 하락한다.
  • 이는 NSP가 문장 간 관계 파악, 문맥 이해 등에서 중요한 역할을 한다는 것을 의미한다.
  • 실제로 최근 연구에서도 NSP가 다양한 다운스트림 태스크에서 효과적임이 보고되고 있다.

2. 깊은 양방향성(Bidirectional Representation)의 효과

  • "No NSP"(양방향+MLM) 모델과 "LTR & No NSP"(좌→우 단방향 LM) 모델을 비교하면,
    • LTR 모델은 모든 태스크에서 MLM(양방향) 모델보다 성능이 낮다.
    • 특히 MRPC, SQuAD 등에서는 성능 하락폭이 크다.
  • SQuAD와 같은 토큰 단위 예측 태스크에서는, LTR 모델이 오른쪽 문맥을 전혀 활용하지 못하므로 성능이 크게 떨어진다.
  • LTR 모델의 한계를 보완하기 위해 BiLSTM을 추가해도, 사전학습된 양방향 트랜스포머 모델보다 결과가 현저히 낮다.
    (BiLSTM은 SQuAD에서는 일부 개선 효과가 있으나, GLUE 태스크에서는 오히려 성능이 저하된다.)

3. ELMo 방식(좌→우 + 우→좌 모델 결합)과의 비교

  • 좌→우, 우→좌 모델을 따로 학습해 토큰 임베딩을 연결(concatenation)하는 방식(ELMo 스타일)은
    • 계산량이 2배로 늘어나고,
    • 질문응답(QA) 등에서는 비직관적이며,
    • 딥 양방향 트랜스포머보다 덜 강력하다(모든 계층에서 좌우 문맥을 동시에 활용하지 못함).

결론:

  • NSP 과제와 깊은 양방향성은 BERT의 다운스트림 성능 향상에 핵심적인 역할을 한다.
  • 단방향 LM이나 NSP 없는 모델은 실제 응용에서 성능이 크게 떨어진다.
  • BERT의 설계(MLM+NSP+딥 양방향성)는 다양한 자연어 이해 태스크에서 강력한 성능의 근본 원인임이 실험적으로 입증되었다.

모델 크기의 효과

  • 모델 크기가 커질수록 모든 태스크에서 정확도가 꾸준히 향상됨을 확인할 수 있음.
    • MRPC처럼 학습 데이터가 3,600개로 매우 적고, 사전학습 태스크와 성격이 다른 경우에도 마찬가지로 성능이 오른다.
  • 이미 기존 문헌에서 사용된 모델보다 BERTBASE(110M 파라미터), BERTLARGE(340M 파라미터)는 훨씬 크지만, 더 큰 모델이 더 뛰어난 성능을 보임이 실험적으로 입증됨.
    • 참고로, Vaswani et al.(2017)의 최대 트랜스포머는 1억 파라미터, Al-Rfou et al.(2018)의 최대 트랜스포머는 2.35억 파라미터 수준임.

기존 연구와의 차별점

  • 대규모 태스크(기계번역, 언어모델링 등)에서는 모델 크기 증가가 성능 향상으로 이어진다는 것이 잘 알려져 있었음.
  • 하지만, 소규모 태스크(예: MRPC)에서도, 사전학습(pre-training)이 충분히 잘 이루어진다면
    모델 크기를 극단적으로 키우는 것이 큰 성능 향상으로 이어진다는 점을 BERT가 처음으로 명확하게 보여줌.
  • 기존 연구(Peters et al., Melamud et al.)에서는 feature-based 접근법을 사용해 모델 크기 증가 효과가 제한적이었으나,
    BERT처럼 파인튜닝 방식(end-to-end fine-tuning)에서는 큰 모델의 강력한 사전학습 표현이 다운스트림 태스크에 더 큰 이점을 제공함.

결론

  • 모델 크기 확장은 대규모 태스크뿐 아니라, 소규모 데이터셋에서도 강력한 성능 향상을 가져올 수 있음
    (단, 사전학습이 충분히 잘 되어 있을 때!)
  • 파인튜닝 방식이 feature-based 방식보다 대형 사전학습 모델의 이점을 더 잘 살릴 수 있음.

Feature-based 접근

Fine-tuning 방식

  • 정의:
    사전학습된 BERT 모델에 간단한 분류 레이어를 추가하고, 모든 파라미터를 다운스트림 태스크에 맞게 전부 재학습(jointly fine-tune)하는 방식이다.
  • 장점:
    • 다양한 태스크에 대해 모델 전체가 최적화되어 높은 성능을 얻을 수 있다.
    • 파라미터가 모두 업데이트되므로, 태스크 특화 표현을 효과적으로 학습한다.
  • 적용 사례:
    CoNLL-2003 NER 태스크에서, 각 토큰의 첫 번째 서브토큰 임베딩을 NER 분류기에 입력하여 파인튜닝한다.

Feature-based 방식

  • 정의:
    사전학습된 BERT의 파라미터를 고정(freeze)한 채, 한 개 또는 여러 개 레이어의 컨텍스트 임베딩(특징 벡터)만 추출하여, 별도의 태스크 전용 모델(BiLSTM 등)에 입력하는 방식이다.
  • 장점:
    • 모든 NLP 태스크가 트랜스포머 인코더 구조에 적합하지 않을 수 있으므로, 태스크별 맞춤 네트워크를 추가해 활용할 수 있다.
    • 계산 효율성: 사전학습 표현을 미리 한 번만 추출해두고, 이후 다양한 실험을 저렴하게 반복할 수 있다.
  • 적용 사례:
    BERT의 여러 레이어 임베딩을 추출해, 2층 768차원 BiLSTM에 입력 후 분류기를 붙여 NER 태스크를 수행한다.

성능 비교 (CoNLL-2003 NER 기준)

  • Fine-tuning 전체 모델: 최고 성능 달성
  • Feature-based (마지막 4개 레이어 임베딩 연결):
    전체 파인튜닝 대비 F1 score 0.3점 차이만 발생, 거의 동등한 성능을 보임.
  • 결론:
    BERT는 fine-tuningfeature-based 두 방식 모두에서 효과적으로 사용할 수 있다.
    태스크와 상황에 따라 적절한 방식을 선택하면 된다.
profile
데이터 분석가

0개의 댓글