brunch

You can make anything
by writing

C.S.Lewis

by 서진호 Mar 09. 2020

T5로 전이학습:텍스트-대-텍스트를 트랜스포머로 변환

2020년 2월 24일(월) 구글 AI 리서치 블로그

지난 몇 년 동안 전이 학습(Transfer Learning)자연어 처리(NLP)에서 최첨단 결과를 가져왔습니다. 전이 학습의 효과는 언어 모델링 또는 누락된 단어 채우기와 같은 자기 주도 지도(self-supervised) 태스크를 통해 풍부하게 사용할 수 있는 레이블이 없는 텍스트 데이터에 대한 모델을 사전 훈련함으로써 얻을 수 있습니다. 그 후, 레이블이 있는 더 작은 데이터셋에서 모델을 미세하게 조정할 수 있으며, 레이블이 있는 데이터만 학습하는 것보다 성능이 훨씬 우수합니다. 2018 년에 GPT(Generative Pre-Training), ULMFiT, ELMo 및 BERT가 전이 학습의 성공을 시작했으며 2019년에는 XLNet, RoBERTa, ALBERT, Reformer 및 MT-DNN과 같은 다양한 새로운 방법이 개발되었습니다. 이 분야의 발전 속도로 인해 어떤 개선이 가장 의미가 있고 개선이 얼마나 효과적인지 평가하기가 어려워졌습니다.


“통합 텍스트-텍스트 트랜스포머로 전송 학습의 한계를 탐구(Exploring the Limits of Transfer Learning with a Unified Text-To-Text Transformer)” 논문에서, 우리는 어떤 전이 학습 기술이 가장 효과적인지를 결정하고 이러한 통찰력을 대규모로 적용하여 T5(Text-to-Text Transfer Transformer)라고 하는 새로운 모델을 만들기 위해 대규모 경험적 조사를 제공합니다. 또한 Colossal Clean Crawled Corpus (C4)라는 새로운 오픈소스 사전 훈련 데이터셋을 소개합니다. C4에 대해 사전 훈련을 받은 T5 모델은 여러 가지 중요한 다운스트림 작업에 맞게 미세 조정될 수 있을 정도로 유연하면서 많은 NLP 벤치 마크에서 최첨단 결과를 달성합니다. 결과를 확장하고 재현하기 위해 사용하기 쉬운 Colab Notebook과 함께 코드 및 사전 훈련된 모델을 제공하여 시작하는 데 도움을 줍니다.


공유된 텍스트-대-텍스트의 프레임워크

T5에서는 클래스 레이블 또는 입력 범위만 출력할 수 있는 BERT 스타일 모델과 달리 모든 NLP 작업을 입력 및 출력이 항상 텍스트 문자열인 통합 텍스트-대-텍스트 형식으로 재구성할 것을 제안합니다. 텍스트-텍스트 프레임 워크를 사용하면 기계 번역, 문서 요약, 질문 응답 및 분류 작업 (예: 감정 분석)을 포함한 모든 NLP 작업에서 동일한 모델, 손실(loss) 함수 및 하이퍼 파라미터(Hyper parameter)를 사용할 수 있습니다. 숫자 자체 대신 숫자의 문자열 표현을 예측하도록 T5를 훈련시켜 회귀(linear) 작업에 적용할 수도 있습니다.

[그림 1]

[그림 1] 상세 설명 - 텍스트-대-텍스트 프레임워크 다이어그램. 우리가 고려하는 모든 작업은 텍스트를 모델에 대한 입력으로 사용하며 일부 대상 텍스트를 생성하도록 훈련되었습니다. 이를 통해 번역(녹색), 언어 수용(빨간색), 문장 유사성(노란색) 및 문서 요약(파란색)을 포함한 다양한 작업 세트에서 동일한 모델, 손실 함수 및 하이퍼 파라미터를 사용할 수 있습니다. 또한 경험적인 조사에 포함된 방법에 대한 표준 테스트 베드를 제공합니다.


대규모 사전 훈련 데이터셋(C4)

전이 학습을 위한 중요한 요소는 사전 훈련에 사용되는 레이블이 없는 데이터셋입니다. 사전 훈련된 양을 늘리는 효과를 정확하게 측정하려면 고품질뿐만 아니라 다양한 데이터셋들이 필요합니다. 기존의 사전 훈련된 데이터셋은 이러한 세 가지 기준을 모두 충족하지 못합니다. 예를 들어 Wikipedia의 텍스트는 품질은 우수하지만 스타일이 균일하고 목적에 따라 상대적으로 작지만, Common Crawl 웹 스크랩은 엄청나고 다양하지만 품질은 매우 낮습니다. 


이러한 요구 사항을 충족시키기 위해 Wikipedia보다 2배 큰 Common Crawl 버전인 C4 (Colossal Clean Crawled Corpus)를 개발했습니다. 우리의 데이터 클리닝 과정에는 중복 제거, 불완전한 문장 폐기, 불쾌하거나 시끄러운 내용 제거가 포함되었습니다. 이 필터링을 통해 다운스트림 작업에서 더 나은 결과를 얻을 수 있었으며 추가 크기로 인해 사전 훈련 중 과적합(overfitting) 없이 모델 크기가 증가할 수 있었습니다. C4는 TensorFlow Datasets를 통해 제공됩니다.


전이 학습 방법론에 대한 체계적인 연구

T5 TTS(Text-to-Text) 프레임워크와 새로운 사전 훈련 데이터셋(C4)을 사용하여 지난 몇 년 동안 NLP 전이 학습에 도입된 방대한 아이디어와 방법을 조사했습니다. 조사에 대한 자세한 내용은 다음과 같은 실험을 포함하여 본 논문에서 확인할 수 있습니다.


모델 아키텍처들: 엔코더 디코더 모델이 일반적으로 "디코더 전용"언어 모델보다 성능이 우수함. 

사전 훈련한 객체들:  여기서 빈칸 채우기 스타일의 노이즈 제거 목표(모델이 입력에서 누락된 단어를 복구하도록 훈련된 경우)가 가장 효과적이며 가장 중요한 요소는 계산 비용이라는 것을 확인했습니다.

레이블이 지정되지 않은 데이터셋: 여기서는 도메인 내 데이터에 대한 훈련이 도움이 될 수 있지만 더 작은 데이터셋에 대한 사전 훈련은 과도한 과적합(overfitting)을 초래할 수 있음을 보여 주었습니다.

훈련 전략: 우리는 멀티태스킹 학습이 사전 훈련 후 정밀 조정 접근 방식으로 경쟁에 가까울 수 있지만 모델이 각 작업에 얼마나 자주 훈련되는지 주의 깊게 선택해야 합니다.

모델 확장성: 학습 시간 및 앙상블 모델 수의 스케일 업을 비교하여 고정 계산 능력을 최대한 활용하는 방법을 결정하는 스케일입니다.


통찰력 + 규모 = 최고 수준

NLP에 대한 현재 전이 학습의 한계를 탐색하기 위해 체계적인 연구의 모든 최상의 방법을 결합하고 Google Cloud TPU 액셀러레이터들로 접근 방식을 확장한 최종 실험 세트를 실행했습니다. 가장 큰 모델은 110억 개의 파라미터를 가지고 있으며 GLUE, SuperGLUE, SQuAD 및 CNN/ DailyMail 벤치마크에서 최고 수준을 달성했습니다. 특히 흥미로운 결과 중 하나는 SuperGLUE 자연 언어 이해의 벤치마크에서 인간과 거의 비슷한 점수를 얻었으며, 이는 머신러닝 모델에는 어렵지만 인간에게는 쉬운 것입니다. 


확장

T5는 본 백서에서 고려된 것 이상의 많은 작업에 적용하기 위해 쉽게 수정될 수 있을 정도로 유연하며 종종 큰 성공을 거두었습니다. 아래에서는 T5를 폐쇄형 질문 답변 및 변수 크기(variable-sized)의 빈칸 들로 빈칸 채우기(fill-in-the-blank)와 같은 두 가지 새로운 작업에 적용합니다. 


비공개 도서 질문 답변

텍스트-대-텍스트 프레임워크를 사용하는 한 가지 방법은 이해력 문제를 읽는 것입니다. 여기서 모델에는 질문과 함께 일부 콘텍스트가 제공되고 콘텍스트에서 질문의 답을 찾도록 훈련됩니다. 예를 들어, 허리케인 코니에 대한 위키피디아 기사의 텍스트를 "허리케인 코니는 어떤 날짜에 일어났습니까?"라는 질문과 함께 모델에 피드를 제공할 수 있습니다. 모델은 기사에서 "1955년 8월 3 일" 날짜를 찾도록 훈련됩니다. 실제로 이 접근 방식을 통해 Stanford Question Answering Dataset(SQuAD)에 대한 최신 결과를 얻었습니다.


Colab 데모 및 후속 논문에서 T5는 외부 지식에 접근하지 않고도 보다 어려운 "closed-book"환경에서 사소한 질문에 답변하도록 T5를 훈련했습니다. 다시 말해, 질문에 답하기 위해 T5는 비지도의 사전 훈련(unsupervised pre-training) 중에 얻은 파라미터에 저장된 지식만 사용할 수 있습니다. 이것은 제한된 형태의 공개 도메인 질문 답변(open-domain question answering)으로 간주될 수 있습니다.


[그림 2]

[그림 2] 상세 설명 - 사전 훈련 중 T5는 C4의 문서에서 누락된 텍스트 범위 (<M>로 표시)를 채우는 방법을 배웁니다. 비공개 예약 질문 답변에 T5를 적용하기 위해 추가 정보나 콘텍스트를 입력하지 않고 질문에 답변하도록 T5를 미세 조정했습니다. 이를 통해 T5는 사전 훈련 과정에서 내재화 한 “지식”을 바탕으로 질문에 대답합니다.


T5는 놀랍게도 이 작업에 능숙합니다. 110억 개의 전체 파라미터 모델은 각각 TriviaQA, WebQuestions 및 Natural Questions에 대해 50.1%, 37.4% 및 34.5%의 정확한 텍스트를 생성합니다. 이러한 결과를 한눈에 파악하기 위해 T5 팀은 POP 퀴즈 도전에서 모델과 일대일로 패배했습니다! 아래 애니메이션을 클릭하여 직접 해보십시오.


빈칸 채우기 텍스트 생성

GPT-2와 같은 큰 언어 모델은 입력 프롬프트 다음에 나오는 단어를 예측하도록 훈련되었기 때문에 매우 사실적인 텍스트를 생성하는 데 탁월합니다. 이로 인해 Talk To Transformer 및 텍스트 기반 게임 AI Dungeon과 같은 수많은 창의적인 응용 프로그램이 만들어졌습니다. T5에서 사용하는 사전 훈련 목표는 빈 텍스트 채우기 작업과 더 밀접하게 일치하여 모델이 손상된 텍스트 내에서 누락된 단어를 예측합니다. 이 목표는 연속 작업의 일반화입니다. "공백"은 텍스트 끝에 표시될 수 있기 때문입니다.


이 목표를 사용하기 위해 크기가 채워진 빈칸이라는 새로운 다운 스트림 작업을 만들었습니다. 여기서 빈칸은 지정된 단어 수로 교체해야 합니다. 예를 들어, 모델에 “땅콩버터와 _4_ 샌드 샌드위치를 좋아합니다”라는 입력을 하면 약 4 단어로 빈칸을 채우도록 훈련시킬 것입니다.


C4를 사용하여이 작업에서 T5를 미세 조정하고 결과 출력이 매우 사실적이라는 것을 알았습니다. 누락된 텍스트에 대해 요청된 크기를 기반으로 모델이 예측을 조정하는 방법을 보는 것이 특히 재미있습니다. 예를 들어 "땅콩버터와 _N_ 샌드위치를 좋아합니다"라는 입력을 사용하면 다음과 같이 출력됩니다.


N=1 : I love peanut butter and jelly sandwiches.

N=2: I love peanut butter and jelly on my sandwiches.

N=4: I love peanut butter and jelly, which is what makes good sandwiches. 

N=8: I love peanut butter and jelly, Yum! You can’t beat peanut butter and jelly sandwiches. 

N=16: I love peanut butter and bread. Thanks!! This looks delicious. I love all types of peanut butter, but especially peanut butter/jam sandwiches.

N=32: I love peanut butter and banana sandwiches and the Peanut Butter Chocolate Chip Cookie Bites are now very easy to prepare. The best part is that the PB&J Cookie Bites are the perfect size for kid lunch boxes and everyone will enjoy them. Kids love these sandwiches.

N=64: I love peanut butter and jelly! It's like an incredible childhood love now that I'm in my 30s. I'm obsessed with peanut butter and jelly sandwiches. I have made this recipe many times with great success. I'm guessing you could probably find that it's from a 1950s cookbook. I haven't seen it listed in a current one but it is in a 1930 version (they seem to have retired it). Hope you enjoy it ;) I hope you'll post what you do with your sandwiches.

N=512: I love peanut butter and banana sandwiches. Peanut butter and bananas were the original sandwich spread (also known as PB&J or Peanut Butter and Jelly), so they are probably my favorite. When I was a kid, I knew what peanut butter and bananas tasted like, but I didn't really think of them as one flavor. I did recognize PB & J's as just a sandwich spread, and not really two separate flavours. When I was in graduate school researching food allergies and intolerances, PB&B is one of the main themes that came up. PB&B was and still is the favorite sandwich spread on my school cafeteria tray, and it's still on my personal board in the kitchen. I've seen PB&B on more than one occasion over the years. I can always find one of the other types of peanut butter spread at the school cafeteria and I find it's the perfect spread for PB&B. You have several options for making your own peanut butter (I love this recipe from Cookie and Kate) or buying it at stores like Trader Joes, Publix, and Safeway. The flavor of PB&B varies, but I've found that white chocolate is my favorite to use. This simple sandwich is perfect for lunch or an afternoon snack. When you're on the go, you can use a store bought product, but it just wouldn't taste as good. These peanut butter n' banana sandwich spreads (as well as other peanut butter spreads) are great for on the go eating, but they can also be refrigerated for a few hours and then served at your next party. Preheat oven to 350 degrees. Using a kitchen timer, or using a microwave, heat butter in a saucepan and melt over low heat. Add vanilla extract and milk and heat until nearly boiling. Add peanut butter, bananas, sugar, salt, and pepper, mixing well to combine all ingredients. Spread peanut butter mixture on both sides of your bread. Top with banana slices and a slice of cheese. Toast the bread until both sides are golden brown. Remove from toast and sprinkle a little more sugar and peanut butter on the top. Enjoy while the bread is warm. Store in an airtight container up to one day. Assemble peanut butter and banana sandwich spread by spreading the peanut butter mixture on each slice of bread. Add a banana slice on top and then a PB & J sandwich. Enjoy while the bread is still warm. P.S. You might also like these peanut butter and jelly sandwiches.


결론

우리는 사람들이 우리의 연구 결과, 코드 및 사전 훈련된 모델을 사용하여 프로젝트를 시작하는 방법을 알게 되어 기쁩니다. 시작하기 위해 Colab Notebook을 확인하고 사용 방법을 Twitter에서 공유하십시오!


감사의 말

이 작업은 Colin Raffel, Noam Shazeer, Adam Roberts, Katherine Lee, Sharan Narang, Michael Matena, Yanqi Zhou, Wei Li, Peter J. Liu, Karishma Malkan, Noah Fiedel 및 Monica Dinculescu와 관련된 공동 작업이었습니다.


원본 제목: T5로 전이 학습: 텍스트-대-텍스트를 트랜스포머로 변환(https://ai.googleblog.com/2020/02/exploring-transfer-learning-with-t5.html)
게시자 : Adam Roberts, 직원 소프트웨어 엔지니어, Colin Raffel, Google Research 수석 연구원
원본 링크: https://ai.googleblog.com/2020/02/exploring-transfer-learning-with-t5.html
text-to-text transfer transformer 오픈소스: https://github.com/google-research/text-to-text-transfer-transformer
T5 CoLab Examples: https://colab.research.google.com/github/google-research/text-to-text-transfer-transformer/blob/master/notebooks/t5-trivia.ipynb
CNN DailyMail DataSet: https://github.com/abisee/cnn-dailymail
구글 머신러닝 용어집: https://developers.google.com/machine-learning/glossary#o
이 블로그는 2020년 2월 24일(월), Google AI Research Blog 기사를 영어에서 우리나라 말로 번역한 것입니다. 또한 이 번역 글은 정보 공유 목적으로만 작성했으므로 어떠한 상업용으로 사용할 수 없으며, 원본 저작물 모두 구글에게 저작권이 있음을 알려 드립니다. (First Draft Version)
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari