본문 바로가기
Drawing (AI)/Paper review

BERT(3)

by 생각하는 이상훈 2023. 8. 20.
728x90

BERT를 Fine-tuning

이번에는 사전 학습 된 BERT에 우리가 풀고자 하는 태스크의 데이터를 추가로 학습 시켜서 테스트하는 단계인 파인 튜닝 단계에 대해서 알아보자. 실질적으로 태스크에 BERT를 사용하는 단계에 해당된다고 볼 수 있다.


하나의 텍스트에 대한 텍스트 분류 유형(Single Text Classification)

BERT를 사용하는 첫번째 유형은 하나의 문서에 대한 텍스트 분류 유형이다. 이 유형은 영화 리뷰 감성 분류, 로이터 뉴스 분류 등과 같이 입력된 문서에 대해서 분류를 하는 유형으로 문서의 시작에 [CLS] 라는 토큰을 입력하다. 앞서 사전 훈련 단계에서 다음 문장 예측을 설명할 때, [CLS] 토큰은 BERT가 분류 문제를 풀기위한 특별 토큰이다. 텍스트 분류 문제를 풀기 위해서 [CLS] 토큰의 위치의 출력층에서 밀집층(Dense layer) 또는 같은 이름으로는 완전 연결층(fully-connected layer)이라고 불리는 층들을 추가하여 분류에 대한 예측을 하게된다.

 

하나의 텍스트에 대한 태깅 작업(Tagging)

BERT를 사용하는 두번째 유형은 태깅 작업이다. 앞서 RNN 계열의 신경망들을 이용해서 풀었던 task이다. 대표적으로 문장의 각 단어에 품사를 태깅하는 품사 태깅 작업과 개체를 태깅하는 개체명 인식 작업이 있다. 출력층에서는 입력 텍스트의 각 토큰의 위치에 밀집층을 사용하여 분류에 대한 예측을 하게 된다.

 

텍스트의 쌍에 대한 분류 또는 회귀 문제(Text Pair Classification or Regression)

BERT는 텍스트의 쌍을 입력으로 받는 task도 풀 수 있다. 텍스트의 쌍을 입력으로 받는 대표적인 태스크로 자연어 추론(Natural language inference)이 있다. 자연어 추론 문제란, 두 문장이 주어졌을 때, 하나의 문장이 다른 문장과 논리적으로 어떤 관계에 있는지를 분류하는 것이다. 유형으로는 모순 관계(contradiction), 함의 관계(entailment), 중립 관계(neutral)가 있다.

텍스트의 쌍을 입력받는 이러한 태스크의 경우에는 입력 텍스트가 1개가 아니므로, 텍스트 사이에 [SEP] 토큰을 집어넣고, Sentence 0 임베딩과 Sentence 1 임베딩이라는 두 종류의 세그먼트 임베딩을 모두 사용하여 문서를 구분한다.

 

질의 응답(Question Answering)

QA(Question Answering) 작업은 질문과 본문이라는 두 텍스트를 입력으로 사용하는데, BERT 모델을 사용하여 이를 해결할 수 있다. SQuAD(Stanford Question Answering Dataset) v1.1은 이 작업을 위한 대표적인 영어 데이터셋인데, 이를 통해 질문에 따른 본문의 특정 부분을 추출하여 답변을 제공한다. 예를 들어 한국어로 "강우가 떨어지도록 영향을 주는 것은?"이라는 질문에, "기상학에서 강우는 대기 수증기가 응결되어 중력의 영향을 받고 떨어지는 것을 의미한다. 주된 강우 형태는 이슬비, 비, 진눈깨비, 눈, 싸락눈, 우박 등이다."라는 본문을 기반으로 "중력"이라는 답을 도출할 수 있다.


Attention Mask

BERT 모델에서 attention mask는 입력 시퀀스에서 실제 토큰과 패딩 토큰을 구분하기 위해 사용된다. 패딩 토큰은 일반적으로 시퀀스 길이를 일정하게 맞추기 위해 추가되는데, attention mask는 모델이 이러한 패딩 토큰을 무시하도록 도와준다. 즉, 실제 토큰에는 1을, 패딩 토큰에는 0을 할당하여 BERT의 어텐션 메커니즘이 패딩 부분에 집중하지 않게 한다.


 

728x90