BERT와 BART 비교하면서 간단하게 알아보기(+greedy, beam, exhaustive search)
BART는 기계 독해, 기계 번역, 요약, 대화 등 sequence to sequence 문제의 pre training을 위한 denoising autoencoder
1. BERT와 BART
BERT는 transformer의 encoder만 활용했음
각 단어의 encoder embedding을 가져와 embedding을 수치화시킨 뒤 정답의 시작과 끝의 위치를 알아맞추는 extraction에 어울림
BART는 transformer의 encoder와 decoder가 모두 존재하여 encoder에서 input의 encoding을 수행한 뒤
encoding을 바탕으로 decoder에서 decoding을 통해 실제 text를 generation할 수 있어서 generation based MRC의 기본 모델로 사용가능
2. pretraining
BERT는 pretraining 단계에서 단어를 masking하여 알아맞추는 masked language modeling을 활용
GPT는 decoder만을 활용하여 현재 주어진 sequence에서 다음 단어를 알아맞추는 autoregressive language modeling을 수행함
위 그림처럼 BART는 BERT처럼 bidirectional한 encoder와 GPT처럼 unidirectional한 decoder를 활용한 encoder, decoder 구조로 이루어짐
pretraining시 하나의 방법은 masking을 encoder input에서 하여 masking된 input으로 encoding vector를 구하고
그것을 바탕으로 decoder에서 다음 정답을 생성하는 방식을 사용할 수 있음
decoder같은 경우 attention mask를 활용하여 이전 단어를 보지 않고 다음 단어를 예측하도록 만들수 있음
실제로 논문에서는 BART의 pretraining 방법으로 input에 임의의 random noise를 주입한 뒤 noise 없는 원래 버전을 reconstruct하는 문제를 수행했음.
이래서 BART의 논문 제목에는 denoising autoencoder라고 불렀음
3. post processing in generation MRC
BART같은 generation based MRC는 decoding 방식으로 text를 generation함
이전 step의 예측 출력을 다음 step의 input으로 들어가는 decoding 방식
decoder에서 맨 처음 입력은 이전 step의 출력이라는 것이 없으므로 보통 <s>, <sos>같은 문장의 시작을 나타내는 special token을 주입
첫 input <s>은 문장의 시작을 나타내는 special token
이전 step의 출력을 다음 step의 input으로 넣어 하나씩 단어를 생성
4. greedy search
보통 단어를 생성할 때 매 순간순간 가장 likely할것 같은 단어 하나를 생성함
이 순간 가장 확률이 높은 단어 하나를 생성하고 다음 예측을 진행해나감
효율적이고 빠르게 생성할 수 있지만 초반에 예측한 단어가 나중에 알고보니 최적이 아닐 수 있음
5. exhaustive search
그러면 매 순간순간 예측할 수 있는 모든 단어를 고려한 뒤 최종 예측에서 가장 score가 높은 예측을 사용
반드시 정답을 찾을 수 있겠지만 가능한 경우의 수가 time step에 지수적으로 비례하여 증가함
조금만 vocab size가 커지면 사실상 계산이 불가능함
6. beam search
greedy와 exhaustive의 중간형
각 time step마다 가장 점수가 높은 top-k 경로들만 활용하여 예측을 진행
요즘 거의 대부분은 이 방식을 활용
최종 step에도 k개의 후보가 있을 텐데 이들 중 가장 점수가 높은 후보를 최종 예측으로 출력
'딥러닝 > Machine Reading Comprehension' 카테고리의 다른 글
query와 passage의 similarity search를 근사(approximation)시키는 법 (0) | 2024.03.21 |
---|---|
질문과 관련있는 지문을 찾는 Maximum Inner Product Search (0) | 2024.03.20 |
generation based MRC 모델링 방법 간단하게 알아보기 (0) | 2024.03.05 |
extraction based MRC 모델링 방법, 필수 용어 간단하게 알아보기 (0) | 2024.03.04 |
KorQuAD 데이터셋에 대한 개요 (0) | 2024.03.03 |