[효율적인 프로젝션 기반 모델 아키텍처를 이용해 NLP 개선하기 📲] 아시다시피 우주는 방사선이나 태양풍 같은 것이 판치는 무시무시한 공간입니다. 그런 곳에서 정밀한 기계를 동작하게 만들려면 상상 이상의 노력을 기해야 하겠죠. 프로세서만 해도 고성능 대신 내구성 높은 걸 선택할 수밖에 없습니다. 이런 이유로 NASA는 보이저 호를 만들 때 8비트 컴퓨터를 사용했답니다. 그러면서 각종 궤도 계산을 최단 시간 내에 소화해내야 하는데... 이런 괴물 같은 난이도의 최적화 작업을 완수했던 20세기 무명 엔지니어들에게 박수를 보냅니다. 응답 시간 최소화, 개인 정보 보호 등의 이유로 디바이스에 임베디드 딥러닝 모델을 고려해야 하는 경우가 있습니다. 하드웨어의 제약 때문에 파라미터 개수가 억 단위를 넘어가는 굇수(...) 모델은 선택할 수 없겠죠. 작년 Google은 PRADO라는, NLP 용도의 소형 뉴럴 아키텍처를 발표했습니다. 겨우 20만 개의 파라미터로 수준급 성능을 이끌어냈는데요. (가진 건 집 한 채지만 저는 부자입니다... 같은 느낌이랄까. 😔) 어떻게 이런 일이 가능한 걸까요? 사실 몇몇 NLP 작업, 즉 언어 모델이나 기계 번역을 제외하고 대부분의 경우 모든 단어들을 명확히 식별할 필요가 없습니다. 예컨대 감성 분류 문제라면 '행복'이라는 레이블을 맞히기 위해 모든 단어를 고유 식별해야 할 필요가 없죠. '따뜻, 안정, 소고기, 트와이스' 등 극히 일부 단어만 알아도 높은 정확도를 달성할 수 있을 겁니다. 모델이 관심 있는 단어 집합에만 집중하게 하면서 모델 용량을 크게 절약하는 것. 이게 비결입니다. 이를 위해 PRADO는 토큰 입력을 일반적인 임베딩 층이 아닌, 프로젝션 층을 통해 처리합니다. (학습 파라미터를 갖지 않는) 일종의 해시 함수를 통해 토큰을 압축, 변형하여 제한된 표현을 갖게 만듭니다. 원래 이 위에 CNN과 어텐션을 쌓는 구조였지만 이번 9월에 발표한 개선 버전(a.k.a. pQRNN)은 이 위에 병목 층과 QRNN을 쌓네요. QRNN은 컨볼루션 층과 순차성을 갖는 풀링 층을 갖춘 아키텍처로, CNN과 RNN을 혼합한 모델로 볼 수 있습니다. RNN보다 속도 면에서 우수하죠. 이번 개선 버전으로 분류 문제(civil_comments 데이터셋)에서 BERT에 준하는 성능을 달성했다고 합니다. 물론 모델 크기는 비교할 수 없이 작죠. GPT-3 같은 초대형 모델 반대편에서 디바이스 용도의 경량화 모델 연구 또한 활발히 이뤄지고 있습니다. 저는 이런 걸 보면 43년 전 보이저 호를 목성으로, 토성으로 보내기 위해 로켓 추진제부터 로우 레벨 프로그래밍까지 다방면으로 노력했던 과학자와 엔지니어들이 왠지 떠오르더라고요. (이것이 이과 갬성... 😔) 각 분야에서 일하시는 분들 모두 응원하고, 존경합니다.

Advancing NLP with Efficient Projection-Based Model Architectures

Googleblog

Advancing NLP with Efficient Projection-Based Model Architectures

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2020년 9월 28일 오전 10:56

댓글 0