T5 모델 간단하게 알아보기

1. introduction

 

text-to-text format을 적극적으로 밀었던 사실상 첫번째 model?

 

BART랑 유사하면서도 text-to-text format을 활용하여 거의 모든 자연어처리 문제를 text-to-text format으로 해결하자고 제안했다

 

자세한 부분은 조금 다르겠지만 seq-to-seq original transformer와 유사한 구조를 사용했다

 

transformer인데 이건???

 

 

2. pre-training

 

다양한 모델 구조, 다양한 사전학습목표, 방대한 사전학습용 데이터셋, 다양한 fine tuning 방법등을 마련하여 체계적으로 실험을 수행

 

당연하지만 이들 중 가장 좋은 방식을 선택하여 방대한 규모의 모델을 학습시킴

 

T5에서 실험을 위해 생각해본 세팅?

 

 

BERT나 BART와 마찬가지로 T5같은 모델을 방대한 언어에 사전학습시켜서 fine-tuning시켜 성능이 잘 나오는 방식대로 tuning을 함

 

 

3. data size

 

데이터 사이즈도 위키피디아나 예전에 사용한 여러 데이터들보다 훨씬 더 큰 C4를 사용

 

그 C4도 원래 filtering전에는 6.1TB의 상상도 할 수 없는 크기였는데 filtering해서 겨우 745GB로 만들고 1epoch을 훈련했다고함

 

BERT같은 경우 위키피디아 약 20GB짜리 사용했다고 하는데 C4 filtering 전 데이터는 이것의 300배이고 filtering했다고 하더라도 이것의 30배나 큰 데이터를 사용함

 

 

4. model parameter

 

T5 model내에 최대한 많은 사전 언어지식을 담아야하므로 T5 model의 크기를 최대한 크게 키웠다

 

 

 

 

괴물같다던 GPT2, BERT보다도 T5-xlarge같은 경우는 30배나 더 큼

 

T5-xlarge는 웬만한 GPU로는 못돌려서 보통은 T5-base나 그나마 T5-large정도 많이 돌린다

 

 

5. closed book QA에 활용하는법

 

미리 학습된 pre-trained T5를 활용함

 

MRC데이터셋(예를 들어 TriviaQA, WebQuestions, Natural Questions 등)에서 지문을 제외한

 

question & answering pair를 input, output으로 fine-tuning을 수행함

 

T5를 활용한 closed book question answering

 

 

위 그림 보면 T5만의 pretraining을 수행하여 언어적 지식을 습득하고

 

fine-tuning 과정에서 질문을 주면 T5가 가지고 있는 지식을 바탕으로 바로 답변을 내고 있는 모습

 

 

6. dataset 활용

 

기존의 MRC set인 TriviaQA, WebQuestions, Natural Questions 등에 존재하는 supporting document를 제외하고 question과 answer만을 이용하여 fine-tuning을 수행

 

input인 question에 task-specific prefix를 추가했음

 

예를 들어 trivia question: ~, natural question:~ 같이 데이터 셋 명을 표시했나?

 

natural questions같이 답이 여러개인 질문의 경우 output에 answer1, answer2도 표시해줬음

 

T5에서 활용한 dataset 예시

 

 

7. salient span masking

 

고유명사나 날짜 등 의미를 갖는 단위에 속하는 토큰 범위를 masking한 뒤 pretraining을 했다.

 

일반적인 BERT는 완전히 랜덤하게 mask를 하여 pretraining을 함

 

이 방식은 조사나 is, are 등등 의미없는 동사가 masking되어 비효율적임

 

이런 mask prediction을 해봤자 모델이 언어의 의미 파악에 전혀 도움이 안될 수 있어

 

salient span masking을 위하여 pre-trained checkpoint에서 추가로 pretraining을 수행했다고함

 

 

8. 예시로 알아보는 T5를 활용한 closed book question answering

 

input앞에 데이터셋의 이름?인 trivia question같이 task-specific prefix를 붙여줘야함

 

closed book question answering 예시

 

 

마지막 예시같은 경우는 prediction이 target과 다르긴 한데 prediction을 보면 n으로 시작하는 island 이름을 나름대로 냈으므로

 

모델이 질문을 이해하고 있다는점이 의미있음

 

 

9. experiment result

 

closed book test를 한 T5 모델이 open book model보다 성능이 뛰어난 경우가 많음

 

모델 크기가 커질수록 성능이 증가함

 

SSM은 salient span masking으로 T5를 일반 BERT처럼 mask prediction pre-training을 수행한 뒤에 salient span masking으로 추가적인 학습을 수행하면 성능향상에 효과적임

 

 

 

10. T5의 answering 분석

 

T5가 낸 대답을 분석해보니 EM기준으로는 오답이겠지만 사람이 직접 채점해보면 오답이라고 보기 어려운 대답들이 생각보다 많았다.

 

실제로는 정답인데 다른 문구로 바꿔서 표현한 phrasing mismatch

 

복수정답이 있는데 하나만 정답처리되는 경우라서 복수정답중 운없게 정답처리가 안되는 정답을 제시해버린 incomplete annotation

 

질문을 한 시간이나 문맥에 따라서 다른 정답을 내버려서 틀려버린 unanswerable??? 이건 뭔말인데

 

“finally, some questions were unanswerable without knowing the exact time or article they referred to (e.g. “what is the latest version of microsoft office 2010” depends on when the question is being asked).”

 

그런 질문이 언급된 시간이나 문맥을 모르면 대답할수없었던 질문이 있었다 이런게 unanswerable인듯...?

 

 

 

오답중 62%는 실제로 오답이나 38%는 사람이 보면 오답이라고 보기는 어려웠다

 

 

11. closed book question answering의 한계점

 

기본적으로 많은 사전지식을 가지고 있어야하므로 모델의 크기가 커서 계산량도 많고 속도도 느림. 더욱 효율적인 모델이 필요함

 

모델이 어떤 근거를 가지고 답을 내는지 알 수 없음. 해석 가능성을 높이도록 연구해야함

 

모델이 참조하는 ‘지식’이라는 것을 추가하거나 제거하기가 어려움. 어디있는지 진짜로 있긴한건지 잘 모르니까

 

 

TAGS.

Comments