summ의 블로그

자연어처리 (7) GPT와 BERT 본문

자연어처리

자연어처리 (7) GPT와 BERT

summ._ 2024. 11. 11. 23:30

 

부스트코스 자연어처리 

 

https://www.boostcourse.org/ai330/lecture/1455802?isDesc=false

 

 

자연어 처리의 모든 것

부스트코스 무료 강의

www.boostcourse.org

 

 

 

transformer 구조를 바탕으로 한 여러 모델

 

 

 

GPT1 

 

pre-trained

  • text prediction 입력된 텍스트를 기반으로 다음 단어 예측 
  • task classifier 텍스트 생성에 중점을 두며 다양한 task를 활용하여 동시 학습 
    • classification [start → Text → Extract]→ transformer → linear 
    • entailment [start → premise → dellim → hypothesis → Extract] transformer → linear 
      • 문장 간 논리적 관계 판단 
    • similarity 의미적 유사도 측정 
    • masked multi self attention 텍스트 이해 

extract는 문장 간의 관계에 대한 정보를 담고 있고,   output을 linear에 넣어서 최종 결과로 만듦 

 

 

 

 

BERT 

 

 

: pre-trained 된 language modeling

 

* ELMo 

Embeddings from Language Model 언어 모델을 기반으로 하는 워드임베딩 

워드 임베딩 진행 시 문맥을 고려하여 임베딩 진행 

순방향 RNN, 역방향 RNN 모두 학습하여 활용하는 biLM (bidirectional)

 

 

이전

 

이전의 gpt1 모델: 

<sos> 에서 <eos> 까지 순차적으로 학습을 진행 (앞쪽 문맥을 보고 뒤쪽 문맥을 파악, 예측)

→ standard한 language model 

 

따라서 '전후 문맥을 보지 못한다'는 한계점이 존재 

 

이러한 한계점에서 동기부여가 되어 문장 전체를 동시에 입력으로 사용하는 BERT model 등장 

  • 앞쪽과 뒤쪽의 정보를 함께 사용
  • 문장 전체를 동시에 input으로 넣어 학습

 

 

방법 

 

  1. Masked Language Model (MLM)

문장 내의 단어를 일정한 확률의 [mask] token으로 치환 

 

input 문장 ex) 나는 [mask] 를 공부한다. 나는 수학을 [mask]한다. 

 

대략 15% 만 단어를 치환 (15%가 딱 적당한 효율)

- 15% 중 80% [mask]  10% random words 10% same words

 

왜? 

학습을 mask 토큰을 사용해서 진행해도 실제 들어오는 입력 문장에는 mask 토큰이 존재하지 않기 때문

다른 다양한 테스크에 높은 성능 

 

 

     2. Next Sentence Prediction

 

문장 간 관계 정보를 학습하기 위해 사용 

문장이 서로 이어지는지의 여부를 판단 →  문장 수준의 의미 이해

 

입력 문서에서 서로 다른 문장 2개를 골라 이어 붙임

시작에는 [CLS] 문장 사이에는 [SEP] 적용 + [MLM] 적용하여 2가지 task를 동시에 학습할 수 있도록 구성 

 

이 두 문장이 인접한 문장인지 판단하는 binary cls - IsNext / NotNext 

IsNext: 두 문장이 실제 문서에서 이어지는 문장임

NotNext: 두 문장이 실제 문서에서 이어지지 않는 문장임 

 

 

summary 

 

 

model 구조

  • L (self-attention block): 12 / H (self-attention block encoding vector dim): 768 / A (attention head): 12
  • L (self-attention block): 24 / H (self-attention block encoding vector dim): 1024 / A (attention head): 16

 

input

  • Wordpiece Embedding: word를 더 나눠서 sub word embedding 으로 넣음 
  • Learned Positional Embedding: sin cos 함수를 활용해 학습에 의해 얻은 최적화된 값으로 도출  
  • Segement Embedding: 두 문장을 구별하기 위해 문장 수준의 task 
    • 두 문장을 [SEP] token 으로 구별해서 넣었을 때 각각의 word embedding vector에positional embeddings 이 추가적으로 더해 학습에 활용 
    • 문장 level task 단어 'he' 는 E_6 6번째에 있는 단어는 맞지만, sep 이후로 보았을 때 두 번째 문장의 첫 번째 단어
    • position embedding 은 순차적으로 넣고, segment embeddings 은 문장 수준에서의 포지션을 반영한 임베딩 

 

 

 

다양한 fine tuning 방법

 

  • Sentence Pair 분류: 두 문장을 입력으로 받아 관계 예측 (문장 간 유사도, 자연어 추론)
    • 입력 형식: [CLS] 문장 1 [SEP] 문장 2 [SEP]
    • 출력: 최종 [CLS] 토큰의 벡터를 사용하여 두 문장 관계 분류
  • Single Sentence 분류: 하나의 문장을 입력으로 받아 속성을 분류 (감정 분석, 문장 분류) 
    • 입력 형식: [CLS] 문장 [SEP]
    • 출력: 최종 [CLS] 벡터를 통해 문장의 분류 결과 생성
  • Question Answering: 질문과 관련된 컨텍스트의 정답 텍스트 예측 
    • 입력 형식: [CLS] 질문 [SEP] 컨텍스트 [SEP]
    • 출력: 모델은 컨텍스트 내에서 정답이 시작되는 위치와 끝나는 위치를 예측하여 답변 생성
  • Single Sentence Tagging: 각 단어에 대해 태그를 할당 (Pos 태깅, NER)
    • 입력 형식: [CLS] 문장 [SEP]
    • 출력: 각 단어에 대한 출력을 생성하며, 공통 output layer를 통과하여 단어별 태그 할당

 

 

 

BERT vs GPT-1

 

 

  • Training Dataset: BERT > GPT-1
  • Batch Size:  BERT > GPT-1
  • Fine-Tuning Learning Rate
    • BERT: task 별 다른 학습률 
    • GPT-1: 5e-5 고정 
  • Special Tokens
    • BERT: [MASK], [CLS], [SEP]
    • GPT-1: x

 

 

MRC 

 

machine reading compregension

 

기계 독해를 기반으로 한 질의응답 task 

 

질문 + 답 함께 존재하는 문서를 제공하고 답을 찾는 것

BERT는 MRC task에서 질문과 문맥을 동시에 입력받음.

답이 시작되는 위치와 끝나는 위치를 예측하는 방식으로 답변 도출 

 

수행 과정 

 

 

SWAG Situations with Adversarial Generations

 

객관식 문제 풀이와 유사한 형식으로 구성된 task

 

 

  • 주어진 문장이나 상황에 대한 이해를 바탕으로 가장 일관성 있는 다음 문장을 선택하는 형식
  • 상황에 적합한 문장을 예측하도록 모델을 훈련하여 상황 이해 능력과 문맥 예측 능력 평가
  • 주어진 문장이 특정한 상황을 나타낼 때 나올 수 있는 여러 문장 중에서 가장 자연스럽고 논리적인 문장을 선택
  • 텍스트의 일관된 흐름을 유지

 

 

 

 

 

 

 

 

 

 

 

https://wikidocs.net/33930

https://wikidocs.net/115055

'자연어처리' 카테고리의 다른 글

자연어처리 (6) transformer  (1) 2024.11.09
자연어처리 (5) 출력값 생성기법  (1) 2024.10.29
자연어처리 (4) seq2seq with attention  (1) 2024.10.24
자연어처리 (3) RNN  (0) 2024.10.15
자연어처리 (2) w2v & glove  (2) 2024.09.30