monologg/KoELECTRA
GitHub
<BERT보다 가벼운 ELECTRA> 자연어(NLP) 분야에서 뛰어난 성과를 보여준 모델은 어떤 게 있을까요? BERT, GPT-2, XLNET 등 다양한 모델들을 들어는 봤는데, 정작 주변에서 사용하는 사람들을 쉽게 보지 못했을까요? 자연어 모델은 대부분 뛰어난 성능 때문에 학습시키는데 엄청난 비용이 들어가기 때문입니다. BERT, GPT-2, XLNET 순서대로 약 850만 원, 5,100만 원, 7,300만 원이 들어간다고 합니다. (*DEAVIEW 2019 발표 중 Clova AI의 발표 자료 참고) '내 돈 내산'이 유행이라지만 이렇게 큰 비용을 개인이 지불하기엔 조금 힘든데요, 오늘 소개 드릴 모델은 이런 고민을 싹 없애주는 Google의 ELECTRA라는 모델입니다. 내용이 길기 때문에 아래 3줄 요약부터 보셔도 됩니다!!! <INTRO> 오늘은 BERT보다 가볍지만, BERT만큼 뛰어난 성능을 보여주는 모델을 만드는 게 목적입니다. 그렇기에 ELECTRA의 주 비교 대상은 BERT이며, 학습 방법은 BERT의 방법과 최대한 동일한 조건하에 실험을 진행했습니다. "ELECTRA의 핵심은 가볍다"입니다. 적어도 클라우드가 아닌 개인용 GPU로 학습이 가능할 정도의 사이즈여야 가볍다고 말할 수 있을 텐데요, 이를 위해 BERT의 큰 문제점이었던 학습 효율을 개선했습니다. BERT는 train 데이터를 15%만 사용합니다. 이 효율을 100%까지 올릴 수 있다면 적은 학습량으로 빠르게 모델을 완성할 수 있고, ELECTRA는 해냈습니다. <HOW> 1. 학습 효율 개선 - 주어진 문장중 [MASK]에 들어갈 단어를 문맥에 맞게 학습 ( 배가, 고픈, 철수는, 밥을, [MASK] ) - 학습이 마친 모델은 [MASK]에 들어갈 단어를 생성 (Generator 모델) 기존 언어 모델들이 학습하는 방법은 한 문장 속 [MASK]가 15% 밖에 없어서 효율이 낮습니다. 이를 개선하기 위해 Replace Token Detection이라는 방법을 사용합니다. 생성 모델의 모든 Output Token을 [original] 혹은 [replaced]라고 분류하는 Discriminator(ELECTRA)를 추가로 학습한다면, ELECTRA는 모든 TOKEN에 대해서 학습하는 효과가 있습니다. --> 효율 개선 2. Generator & Discriminator BERT보다 가벼워야 하는데 모델을 두 개나 만들면 무슨 소용일까요? 그렇기 때문에 Weight Sharing을 고려하게 되었고 가장 효과가 좋았던 결과는 Transformer의 Embedding 층을 공유하는 것이었다고 합니다. 마지막으로 Generator를 Discriminator보다 적은 모델 사이즈를 갖게 했습니다. 3줄 요약 1. BERT는 뛰어난 성능을 보이지만 학습 효율이 낮다 2. ELECTRA는 이를 개선하여 BERT와 비슷한 성능을 보이지만 훨씬 저렴 3. 덕분에 개인 PC에서 학습할 만큼 가벼워졌다 새로운 방법론을 제시한 논문은 아니지만, 학습 효율을 개선한 덕분에 실용적으로 사용할 수 있게 되었습니다. 개인적으로는 적당한 fine-tunning을 한 뒤, 감성분석을 ELECTRA를 이용해 진행해보려 합니다. 영어가 아닌 한국어 데이터 세트를 학습한 ELECTRA를 소개하며 글을 마칩니다.
2021년 1월 8일 오후 3:05