brunch

You can make anything
by writing

C.S.Lewis

by 서진호 Jan 21. 2020

ALBERT:언어 표현의 자율지도 학습

2019년 12월 20일(금) 구글 AI 리서치 블로그

1년 전 BERT가 등장한 이래 자연어 처리(natural language processing) 연구는 데이터 주석(annotation)없이 자율지도 학습를 사용하여 모델의 파라미터를 사전 교육하기 위해 많은 양의 기존 텍스트를 활용하는 새로운 패러다임을 수용했습니다. 따라서 자연어 처리(NLP)를 위한 머신러닝 모델을 처음부터 배울 필요없이 언어에 대한 지식이 풍부한 모델에서 시작할 수 있습니다. 그러나 NLP에 대한 이 새로운 접근 방식을 개선하려면 언어의 이해 성능, 즉 네트워크의 높이(예: 레이어 수), 너비(숨겨진 레이어의 크기)에 정확히 기여하는 내용을 이해해야 합니다. 표현), 자율 지도를 위한 학습 기준, 또는 완전히 다른 것들은 무엇이 있을까요?


ICLR 2020에서 승인된 “ALBERT: 언어 표현의 자율 지도 학습을 위한 Lite BERT(A Lite BERT for Self-supervised Learning of Language Represetnation” 에서 우리는 경쟁적인 Stanford Question Answering Dataset(SQuAD v2.0)  및 SAT 형태의 RACE Reading Comprehension Dataset 벤치마크를 포함하여 12개의 NLP 작업에 대한 최첨단 성능을 향상시키는 BERT로의 업그레이드를 제시합니다. ALBERT는TensorFlow를 기반으로 오픈 소스 구현으로 출시되고 있으며, 수많은 즉시 사용할 수있는 ALBERT pre-trained language represetnation model을 포함하고 있습니다.


NLP성능에 기여하는 것은 무엇입니까?

NLP 성능의 주요 드라이버를 식별하는 것은 복잡합니다. - 일부 설정은 다른 설정보다 중요하며, 연구에 따르면 이러한 설정을 한 번에 한 번만 탐색하면 정답을 얻을 수 없습니다.


ALBERT 설계에서 캡처한 성능 최적화의 핵심은 모델 용량을 보다 효율적으로 할당하는 것입니다. 입력 수준의 임베딩(단어, 하위 토큰 등)은 예를 들어 "Bank" 라는 단어에 대한 표현과 같은 문맥 독립적 표현을 학습해야 합니다. 대조적으로 숨겨진 계층 임베딩은 이를 맥락 의존적 표현, 예를 들어 금융 거래의 맥락에서 "Bank(은행)"에 대한 표현 및 강 흐름 관리의 맥락에서 "Bank(강둑)"에 대한 다른 표현으로 세분화해야 합니다.


이는 임베딩 파라미터의 인수 분해에 의해 달성됩니다. - 임베딩 매트릭스는 비교적 낮은 차원(예: 128)의 입력 레벨 임베딩으로 분할되는 반면 숨겨진 레이어 임베딩은 더 높은 차원(BERT 경우와 같이 768)을 사용합니다. ALBERT는 이 단계만으로도 BERT와 동일한 다른 모든 조건에서 성능(SQuAD2.0: 80.4에서 떨어진 80.3점; RACE: 68.2에서 67.9점)이 약간 저하 될뿐 아니라 프로젝션 블록의 매개 변수를 80% 줄였습니다.


ALBERT의 또 다른 중요한 설계 결정은 중복성을 검사하는 다른 관찰에서 비롯됩니다. 트랜스포머 (Transformer)기반 신경망 아키텍처(예: BERT, XLNet 및 RoBERTa)는 서로 위에 쌓인 독립 레이어에 의존합니다. 그러나 네트워크의 여러 매개 변수를 사용하여 네트워크가 다양한 계층에서 유사한 작업을 수행하는 방법을 종종 배웠습니다. 이러한 가능한 중복성은 ALBERT에서 레이어들 간에 파라미터 공유에 의해 제거됩니다. 즉, 동일한 레이어들이 서로의 위에 적용됩니다. 이 접근 방식은 정확도를 약간 낮추지만 크기가 작을수록 그만한 가치가 있습니다.

파라미터 공유는 어텐션-피드포워드(attention-feedforward) 블록에 대해 90%의 매개 변수 감소(전체 70 % 감소)를 달성합니다. 임베딩 파라미터의 인수 분해와 함께 적용될 때 SQuAD2.0가 80.0점에서 -0.3점이 떨어지고 RACE 점수가 64.0점에서 -3.9점으로 크게 떨어지면서, 약간의 성능 저하가 발생하였습니다.


이 두 가지 설계 변경을 함께 구현하면 BERT기반 모델에 비해 89%의 파라미터 감소인 12M 파라미터 값만있는 ALBERT 기반 모델이 생성되지만 여전히 벤치마크 전반에 걸쳐 상당한 성능을 달성합니다. 그러나 이 파라미터 크기 축소는 모델을 다시 확장 할 수있는 기회를 제공합니다. 메모리 크기가 허용된다고 가정하면 숨겨진 레이어 임베딩의 크기를 10-20배까지 확장 할 수 있습니다. 숨겨진 크기가 4096인 ALBERT-xxlarge 구성은 BERT-large모델에 비해 전체적으로 30%의 파라미터 감소와 보다 중요한 성능 향상을 달성합니다. SQuAD2.0에서 +4.2(83.9에서 증가해서 88.1) 및 RACE에서 +8.5(73.8에서 상승해서 82.3).


이 결과는 정확한 언어 이해가 강력한 대용량 컨텍스트 표현 개발에 달려 있음을 나타냅니다. 숨겨진 레이어 임베딩으로 모델링된 컨텍스트는 단어의 의미를 포착하여 표준 벤치 마크에서 모델 성능으로 직접 측정되는 전반적인 이해를 이끌어냅니다.


RACE 데이터셋으로 최적화된 모델 성능

모델의 언어 이해 능력을 평가하기 위해 읽기 이해력 테스트(예: SAT Reading Test 와 유사)를 관리 할 수 있습니다. 이 목적을 위해 가장 큰 공개 리소스인 RACE dataset(2017)로 이를 수행 할 수 있습니다. 이 독해력 문제에 대한 컴퓨터 성능은 지난 몇 년간의 언어 모델링 발전을 잘 반영합니다. 문맥에 독립적인 단어 표현만으로 사전 훈련된 모델은 이 테스트(가장 왼쪽 막대가 45.9)에서 점수가 좋지 않은 반면 컨텍스트는 BERT입니다. - 종속적인 언어 지식, 72.0으로 비교적 점수가 높습니다. XLNet 및 RoBERTa와 같은 세련된 BERT모델은 82-83 점수 범위에서 막대를 훨씬 더 높게 설정했습니다. 위에서 언급한 ALBERT-xxlarge 구성은 기본 BERT 데이터셋(Wikipedia 및 Books)에서 학습 할 때 동일한 범위(82.3)에서 RACE 점수를 산출합니다. 그러나 XLNet 및 RoBERTa와 동일한 더 큰 데이터셋에 대해 교육을 받으면 현재까지의 다른 모든 접근 방식보다 훨씬 뛰어난 성능을 발휘하며 89.4에서 새로운 최신 점수를 얻습니다.


[그림1]

[그림1] 상세 설명 - RACE 챌린지에서의 머신 성능 (SAT와 유사한 독해). random-guess baseline 점수는 25.0입니다. 최대 점수는 95.0입니다.


ALBERT의 성공은 강력한 상황 표현을 제공하는 모델의 측면을 식별하는 것의 중요성을 보여줍니다. 모델 아키텍처의 이러한 측면에 개선 노력을 집중시킴으로써 광범위한 NLP 작업에서 모델 효율성과 성능을 크게 향상시킬 수 있습니다. NLP 분야의 발전을 촉진하기 위해 연구 커뮤니티에 ALBERT를 오픈소스를 공개하고 있습니다.


게시자 : Radu Soricut 및 Zhenzhong Lan, Google Research 연구 과학자
이 블로그는 2019년 12월 20일(금), Google AI Research Blog 기사를 영어에서 우리나라 말로 번역한 것입니다. 또한 이 번역 글은 정보 공유 목적으로만 작성했으므로 어떠한 상업용으로 사용할 수 없으며, 원본 저작물 모두 구글에게 저작권이 있음을 알려 드립니다. (First Draft Version)
원본 링크: https://ai.googleblog.com/2020/01/reformer-efficient-transformer.html
ALBERT 오픈소스: https://github.com/google-research/ALBERT


매거진의 이전글 2019년을 돌아보고 2020년을 넘어
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari