728x90

NLP 분야의 모델 소개와 한계점

NLP 분야에서 state-of-the-art의 방법의 하나인 텍스트-텍스트 전이 트랜스포머(Exploring Transfer Learning with T5: the Text-To-Text Transfer Transformer)에 대한 내용입니다. 최근 NLP 태스크에서 전이학습이 유용하게 쓰입니다.

전이학습은 레이블 되어 있지 않은 풍부한 텍스트 데이터에서 self-supervised 태스크(언어 모델링이나 누락된 단어 채우기)를 미리 학습하여(Pre-training) 모델을 만듭니다. 그리고 적은 레이블된 텍스트 데이터를 이용하여 모델을 튜닝(fine-tuning)합니다. NLP 기반의 전이학습 방법은 지속적으로 나오고 있는데( GPT, ULMFiT, ELMo, BERT, XLNet, RoBERTa, ALBERT, Reformer, MT-DNN) 이 분야에서는 어떤 개선 사항이 중요하고, 얼마나 효과가 있는지에 대해 평가하기가 힘듭니다.
기존 BERT 기반의 모델들은 태스크 별로 출력 형태가 다르게 되어 있습니다. 기존 데이터셋에는 퀄리티 이슈나 데이터의 다양성에 대한 이슈가 존재합니다.

통합된 텍스트 입력-텍스트 출력으로 NLP 태스크를 처리하는 T5

전이 학습 방법들의 효과에 대한 대규모의 실증적인 조사를 하고, 이 결과를 반영하여 T5(the Text-To-Text Transfer Transformer)라는 새로운 모델을 구축했습니다.

T5는 BERT 기반의 모델들(출력값이 클래스명이거나 입력값의 일부)과 달리 통합된 텍스트 입력-텍스트 출력으로 NLP 태스크를 처리됩니다. 이러한 특성으로 어떤 NLP 태스크에 대해서도 같은 모델, loss 함수, 그리고 하이퍼파라미터를 쓸 수 있습니다.
지난 NLP 전이 학습 기반의 방법들을 조사해본 결과 다음과 같은 인사이트들을 얻을 수 있었습니다.
1. 모델의 구조 방면에서, "인코더-디코더" 모델이 "디코더만" 사용하는 모델보다 결과가 좋습니다.
2. 사전 학습 목표의 방면에서, 누락된 빈칸 채우기 목표가 가장 좋은 결과를 가져왔고 계산 비용이 가장 중요한 요소였습니다.
3. 레이블되지 않은 데이터셋 방면에서, 같은 도메인 내의 데이터에서 학습하는 것은 효과가 좋지만 적은 데이터셋을 이용하여 사전 학습을 하는 것은 과적합을 초래했습니다.
4. 학습 전략 방면에서, 멀티 태스크 학습 방법이 사전 학습 후 튜닝 방법과 견주어볼만했습니다.. 하지만, 각 태스크에 대해 모델이 얼마나 자주 학습해야 할 자기가고려돼야 한다는 것입니다.

5. 그 외에도 스케일 방면에서, 고정된 계산 능력치에서 모델 쿠기, 학습 시간 등을 비교해 보았습니다.(더 자세한 사항은 페이퍼 참고)

그리고 미리 학습(pre-training) 하는 데 도움이 될 수 있도록 새로운 오픈소스형 데이터 셋 Colossal Clean Crawled Corpus (C4)를 만들었습니다. 기존 데이터 셋 이슈 해결을 위해 C4라는 퀄리티, 다양성, 방대함을 모두 만족시키는 데이터 셋을 구축하였습니다. Common Crawl 을 기반으로 데이터를 좋은 퀄리티로 정제했습니다.

Q&A와 빈칸에 텍스트 채우기 태스크에 대한 실험 결과와 궁금점

C4 데이터셋과 T5 모델을 결합한 결과 다양한 태스크에 도입될 수 있고 현재까지 나온 모델들과 비교하여도 성능이 뛰어남을 보였습니다. 이 포스팅에서는 두 가지 태스크에 대해 예시를 들었습니다.
1. 외부 참고자료없이 Q&A(Closed-Book Question Answering) - SQuAD 데이터셋 이용하기: Pre-training 때 배운 파라미터에 저장된 지식만을 가지고 답해야 하는 태스크입니다.
중간중간 단어들에 대해 마스크(M)를 씌우고 그 마스크 씌우 곳에 들어갈 단어들이 출력값으로 나오도록 Pre-training 합니다.

"President Franklin <M> born <M> January 1882." <-> T5 <-> "D. Roosevelt was <M> in"

Fine-tuning시에는 따로 지식 학습 없이 Q&A 가능합니다.

"When was Franklin D.Roosevelt born?"->T5-> 1882

결과적으로 34.5%~50.1% 정도의 정확도 결과를 보였습니다.

2. 빈칸에 텍스트 채우기 : 이 태스크에서는 사용자가 요청하는 수에 맞춰서 알맞은 단어들을 생성합니다. Pre-training은 위와 비슷하게 하고, fine-tuning시에 다음과 같이 태스크에 맞게 학습합니다. 빈칸 대신 숫자로 채웠습니다.
따라서 모델 입력값이 다음과 같다면

I like to eat peanut butter and _4_ sandwiches

출력값은

jelly, which is what makes good

이 나올 수 있도록 학습했다는 것입니다.

자세한 T5 구현 방법을 보려면 페이퍼 참고하시면 됩니다. 태스크를 넘나들어서 적용할 수 있다는 아이디어가 놀라웠고 입력과 출력의 포맷에서 자유로울 수 있는 점이 가장 장점인 것 같습니다. 어디까지 적용할 수 있을 지도 상상해 봐야겠습니다. 결국에는 Pre-training의 데이터 셋이 얼마나 잘 구성되어 있고 지식이 얼마나 많은 지에 따라 성능이 크게 차이 날 것 같습니다. 한국어로 이런 데이터 셋을 모을 수 있을지 궁금증이 생깁니다.

728x90

'NLP' 카테고리의 다른 글

PEGASUS, 추상적인 텍스트 요약 모델  (0) 2020.06.10
728x90

PEGASUS 설명

 오늘은 추상적인 텍스트 요약 모델(PEGASUS: A State-of-the-Art Model for Abstractive Text Summarization)에 대한 내용입니다. ICML 2020 논문이랍니다. 텍스트 요약 생성을 위해 RNN, Transformer encoder-decoder 등이 많이 쓰입니다. 특히, 요즘에는 semi-supervised를 동반하는 transformer 모델들이 잘 쓰임입니다. 대표적인 예시가 BERT입니다. 만약 self-supervised 목표 자체가 최종 태스크를 더 잘 반영한다면 더 성능이 좋은 모델이 될 것으로 예상됩니다.

 pre-training 시에 문서에서 어떤 문장들을 지우고, transformer의 결과를 지워진 문장들이 합쳐서 나오는 형식으로 학습합니다. 이는 실제로 현실에서 있을 수 있는 실제적인 (혹은 노이지 한) 현상들을 반영할 수도 있고, 최종 태스크인 fine-tuning 요약의 아웃풋과 유사하게 만들기 위해 문서에서 필요한 정보를 추출하는 방법으로 쓰일 수도 있습니다. 이때 문서에서 "중요한" 문장을 잘 지우는 게(mask) 중요한데, 이때 n-gram을 기반으로 하는 ROUGE 유사성 척도를 이용합니다. 디테일하게는 T5 모델을 이용하여 웹 크롤링 된 문서들로 pre-training을 하고 12개의 specific 한 태스크 기반의 데이터 셋들을 이용하여 텍스트 요약을 진행하게 됩니다. 결론적으로는 좋은 성능을 얻을 수 있게 되었습니다.

 

실험 결과 

 state-of-art 만큼의 성능을 내기 위해서 fine-tuning 용 데이터가 생각보다 많이 필요 없습니다. 1000개 이상이면 어느 정도 supervised에 수렴하고, sample이 많지 않아도 돼서 annotation 부담이 줄어드게 됩니다. ROUGE는 기계적인 평가이기 때문에 실제 유창성 등을 평가하기 위해 사람 기반의 평가도 동반하였고, 적은 데이터(1000개)로 만들어진 요약도 충분히 사람들에게 받아들여짐이 나타났습니다. 실제 요약 사례에서, 정확히 배의 종류 개수에 대해 스스로 세어서 요약됨을 알 수 있습니다. 하지만 이 종류가 어느 정도 이상이 되면 잘못 세어지는 현상이 생깁니다. 어쨌든 모델 스스로 알아낸다는 점에서는 흥미롭습니다.

 

연구에 대한 의견

 Pre-traning 시에 이미 final 태스크에 대해 어느 정도 포커싱을 하고 학습 모델을 만들면 결국 fine-tuning에서 더 좋은 결과가 나올 수 있습니다. 점점 Dataset이 적어도 충분히 그 도메인에 적용될 수 있는 방안들이 고안되고 있는 것 같습니다. 이에 따라 ML을 사용할 수 있는 도메인도 점점 늘어날 듯합니다. 이제 데이터가 없어서 할 수 없어요라는 말은 점점 사라지고 다른 데이터 간을 어떠한 연관관계를 가지는지 알아내는 게 더 중요해지는 것 같습니다.

 어제 공부한 것과 연관시켜 생각해 볼 때, 다른 나라의 문서라도 바로 내가 원하는 나라의 문서로 요약되는 효율적인 모델을 만들 수 있지 않을까 합니다. 물론 요약 모델에서 번역 모델 이렇게 하면 당연히 지금도 되겠지만 2단계로 진행해야 하니, 그냥 바로 번역된 문장으로 요약되는 하나의 모델로 할 수 있는 방안은 고안해야 할 것으로 보입니다. 이러면 블롬버그 같은 데서 나오는 기사를 바로 이해할 수 있을 지도 모르겠습니다. 확실히 BERT 이후, NLP 쪽은 이런 방향으로 많이 연구가 되고 있다는 생각이 들고, NLP도 결과가 시각적으로 볼 수 있어서 재미있는 부분이 많아진 것 같습니다.

 

 

 

 

 

728x90

'NLP' 카테고리의 다른 글

T5 , 텍스트-텍스트 전이 트래스포머  (0) 2022.06.05

+ Recent posts