brunch

You can make anything
by writing

C.S.Lewis

by 서진호 Mar 27. 2021

유니버설 컴퓨팅 엔진으로 사전 훈련된 트랜스포머

UC 버클리 BAIR 최신 논문

지난 주 UC 버클리 인공지능 연구실 BAIR 로 부터 받은 뉴스레터에 트랜스포머에 대해 흥미로운 내용이 담겨져 틈틈히 논문과 관련된 내용을 읽고 정리해 보았습니다. 트랜스포머는 최근에 GPT-3와 같은 인기있는 인공지능의 기술에 근간이 되는 구글의 오픈소스이자 딥러닝 논문이기도 합니다.


트랜스포머는 자연어, 비전, 단백질 모델링, 음악, 로봇 공학 등 다양한 양식에 성공적으로 적용되었습니다. 대규모 모델을 사용하는 일반적인 추세는 많은 양의 훈련 데이터에 대해 트랜스포머를 훈련시킨 다음 다운 스트림 작업에서 미세 조정하는 것입니다. 이를 통해 모델은 대규모 데이터셋에 대해 훈련된 일반화 가능한 고수준 임베딩을 활용하여 작은 작업 관련 데이터셋에 오버핏팅을 방지 할 수 있습니다.


우리는 높은 수준의 임베딩을 전송하는 대신 큰 이미지 데이터셋에 대해 사전 훈련하고 작은 이미지 데이터 세트에 대해 미세 조정하는 대신 중간 계산 모듈을 전송하는 새로운 설정을 조사하고, 대신 대규모 언어 데이터 세트에 대해 사전 훈련하고 작은 이미지 데이터 세트에서 미세 조정을 수행 할 수 있습니다. 어텐션 메커니즘이 훈련 양식에 특화되어 있음을 시사하는 기존의 아이디어와 달리, 우리는 셀프-어텐션(self-attention) 레이어가 미세 조정없이 다른 양식으로 일반화 될 수 있음을 이 논문을 통해 발견했습니다.


이를 설명하기 위해 사전 훈련된 트랜스포머 언어 모델을 사용하여 수치 계산, 비전 및 단백질 폴드 예측과 같은 다양한 분류 작업에서 미세 조정합니다. 그런 다음 레이어 표준 파라미터를 제외한 모든 셀프-어텐션 블록을 고정합니다. 마지막으로 새로운 유형의 입력을 읽을 새로운 선형 입력 레이어를 추가하고, 선형 출력 계층을 다시 초기화하여 새 작업에 대한 분류를 수행합니다. 이를 "Frozen Pretrained Transformer(줄여서, FPT라고 부름)"라고 합니다.


작업 전체에서 모델에 제공된 토큰은 소량의 정보를 나타냅니다. 예를 들어, 단일 비트 또는 4x4 이미지 패치 일 수 있습니다. 특히, 토큰은 다운 스트림 작업에서 전혀 훈련되지 않는 셀프-어텐션 메커니즘을 통해서만 서로 통신 할 수 있습니다. 자연어 데이터에서 배타적으로 배운 이러한 메커니즘이 제로 샷(Zero-Shot)의 또 다른 양식에 사용될 수 있는지 조사합니다.


아래의 다양한 작업에 대한 테스트 정확도를 보여줍니다. 우리 FPT는 트랜스포머를 처음부터 완전히 훈련하는 성능을 일치 시키거나 향상시킬 수 있습니다! 이는 어텐션 메커니즘이 상대적으로 임의의 입력을 제공하고 다운 스트림 분류를위한 유용한 임베딩을 생성 할 수있을만큼 충분히 일반적이라는 것을 나타냅니다.


[사진 1 - 멀티 모달 시퀀스 벤치마크 성능 비교표]


또한 두 비트 문자열의 요소별 XOR을 계산할 때, 최대 256 개의 길이(아래에 표시된 5 개의 길이) 임에도 불구하고, 셀프-어텐션 파라미터가 고정되어 있음에도 불구하고 입력 임베딩을 학습하여 어텐션 레이어에 공급함으로써 셀프-어텐션이 문자열에 대한 관련 비트에 어텐션를 집중하도록 할 수 있음을 발견했습니다:


[사진 2 - Confusion Matrix]


언어에 대한 사전 훈련하는 것이 어떠한 장점이 있습니까? 사전 훈련된 모델에서 트랜스포머 파라미터를 초기화하는 대신, 대신 무작위로 또는 비트 메모리 작업에 대한 사전 훈련을 통해 초기화 할 수 있습니다. 우리의 결과는 세 가지 초기화 방법이 모두 잘 작동 할 수 있지만, 언어가 여전히 최상의 성능을 발휘하며 어떻게 든 흥미로운 사전 훈련된 레이어셋을 제공함을 나타냅니다.


예를 들어, CIFAR-10에서 기본 FPT 모델은 68 %의 정확도를 달성한 반면, 비트 메모리 사전 훈련에서 63 % 또는 임의 초기화에서 62%를 달성합니다. 또한, 언어 사전 훈련된 FPT가 무작위로 초기화된 FPT보다 수렴하는 속도가 일반적으로 1 ~ 4 배 더 빠르며, 이는 언어가 다른 작업을 위한 좋은 시작점이 될 수 있음을 나타냅니다.


트랜스포머 아키텍처 자체도 매우 중요합니다. 무작위로 초기화된  FPT를 무작위로 초기화된 Frozen LSTM과 비교하면 트랜스포머가 LSTM을 훨씬 능가합니다 (예: CIFAR-10에서 62 % 대 34 %). 따라서 우리는 어테션이 이미 더 자연스럽게 앞써있는 멀티모달(multi-model) 일반화라고 생각합니다. 우리는 데이터 의존 필터를 적용함으로써 셀프-어텐션을 생각할 수 있습니다.


우리는 범용 계산 엔진의 목표를 위해 언어 모델 또는 하이브리드 방식 트랜스포머의 기능을 더 잘 이해하는 데 매우 관심이 있습니다. 우리는 이 공간에서 탐구해야 할 열린 질문이 많이 있다고 생각하며 멀티모달 훈련에서 새로운 작업을 보게 되어 기쁩니다.


전이 학습과 메타 학습, 오토ML 그리고 제로샷 러닝(Zero-Shot)에 대하여


이 논문을 읽으면서 이전의 트랜스포머 방법, 제로샷 러닝 그리고 조금 더 거슬러 올라가 전이 학습에 대해 더 궁금한 분들을 위해 조금 더 부연 설명하였습니다. 컴퓨팅 능력의 향상으로 빅데이터의 활용이 점차 높아짐에 따라, 인공지능 기술은 최근 몇년간 비약적인 성장을 이루었습니다. 일반적으로 생각했을 때, 전통적인 머신러닝과 딥러닝에서는 방대한 양의 데이터를 학습시켜 모델을 만들었으나, 현실적으로 실제 충분한 데이터를 모으는 것이 불가능한 상황이 많습니다.


이러한 문제점을 해결하기 위해 나온 방법들 중 하나가 바로 전이 학습(transfer learning)입니다. 전이 학습은 학습 데이터가 충분한 다른 태스크로부터 지식을 전이(transfer)시켜 데이터가 부족한 태스크의 학습을 돕는 기술입니다. 가장 대표적으로는 미리 대량의 데이터로 사전 훈련(pre-training)을 하고, 이 모델을 새로운 데이터에 맞게 다시 학습하는 미세조정(fine-tuning)합니다.


이를 통해 적은 데이터로도 효과적인 학습을 할 수 있지만, 이 또한 상당한 수의 데이터를 필요로 합니다. 구체적으로 어떤 태스크의 학습 데이터가 어떠한 방법으로 전이되는지 해석하기 힘들다는 단점이 존재합니다. 앞서 언급한 제한된 데이터 활용의 한계를 극복하고 까다로운 문제에서의 데이터의 패턴을 발견하려는 목적 하에 지난 몇년간 메타 학습(meta-learning)이 활발히 연구되고 있습니다.


메타학습은 기존에도 존재해 온 방법이지만 최근 딥러닝과 결합하여 다양한 분야에서 뛰어난 성능을 보이고 있으며, NeurIPS 2020에서도 많은 수의 논문이 게재되었고 관련 워크샵 또한 열릴 만큼 각광받고 있습니다.


지난 블로그에서는 GPT-3 성능 향상을 위해 컨텍스트상에서 보정 방법을 소개하면서 메타 학습과 퓨샷 러닝에 대해 설명했는 데, 이번 유니버설 컴퓨팅 엔진으로 사전 훈련된 트랜스포머에서는 제로샷 러닝을 활용했습니다.


메타 학습 방법에서 대표적으로 적용되는 분야가 바로 최근에 각광받고 있는 오토ML(AutoML) 입니다. 오토ML은 모델의 성능 최적화 관점에서 데이터의 픽처들을 추출하고, 최적의 알고리즘 아키텍처 구성하여 하이퍼 파라미터 설정을 할 수 있도록 구현하는 것을 말합니다. 아마존, 구글, 마이크로소프트 등 머신러닝 플랫폼에서도 이 오토ML 솔루션을 제공하고 있으며 기업의 수요도 빠르게 증가하고 있습니다.


따라서 제로샷 러닝(Zero-Shot Learning)이란 쉽게 말해서 머신 러닝의 학습 문제를 설정하는 것으로 테스트 때 한번도 관측되지 않는 클래스에 대한 분류를 학습하는 것을 말합니다. 예를 들어, 호랑이가 어떻게 생겼는지에 대한 보조 텍스트 설명과 함께 분류 할 동물 이미지 셋이 주어지면 호랑이를 인식하도록 훈련되었지만, 라이거를 본 적이 없는 인공지능은 라이거를 인식할 수 있도록 하는 방법이 제로샷 러닝입니다.


바로 호랑이 이미지를 학습할 때, 사자 이미지를 학습시켜 호랑이와 사자의 특징을 합친 것을 라이거라고 학습시킵니다. 그러면 이제 라이거 이미지를 입력하기만 하면 라이거를 인식시킬 수 있습니다.  이 방법은 이 문제는 컴퓨터 비전, 자연어 처리 및 기계 지각 분야에서 널리 연구되고 있습니다.


멀티모달에 대하여


멀티 모달은 머신 러닝에서 자주 쓰이는 용어로서 알아 두면 꽤 유용합니다. 먼저 멀티모달 데이터(Multimodal Data)에 대해 알아보면, 서로 다른 형태의 정보로 이루어져 뚜렷한 통계적 특성이 구분되는 데이터를 뜻합니다.  


따라서 멀티모달 러닝(Multimodal Learning)은 인간의 인지적 학습방법을 모방하여 다양한 형태의 데이터로부터 학습하는 학습 방법입니다. 변수차원이 각기 다른 데이터셋(modality)가 여럿 모여 동시에 학습하는 방법론을 일컫습니다. 예를 들어, 텍스트 데이터와 이미지 데이터를 가지고 서로 다른 형태의 데이터 관계를 학습하여 이미지에 대한 텍스트를 잘 도출할 수 있도록 하는 것 입니다.


멀티모달 러닝을 잘하기 위해서 데이터 통합을 어떻게 하는지 집중해야 하는데,  데이터 차원의 통합 뿐만 아니라 classifier 차원의 통합 그리고 학습된 표현의 통합으로 구분 할 수 있는 것이 중요합니다. 대표적인 모델로 멀티모달 RNN 이나 멀티모달 CNN 기법이 있습니다. 이 논문에서는 바로 제로샷 러닝때 데이터 분류 할 때 사용하고 있습니다.


LSTM 에 대하여


우리나라 말로 "장단기 기억" 이라고 부르며 영어로는 LSTM(Long Short-Term Memory의 준말)로 인간의 두뇌에서 기억 저장하는 방식을 머신 러닝에 유사하게 사용하는 방식을 말합니다. 특히, 딥러닝 분야에서 사용되는 순환 신경망(RNN, Recurrent Neural Network) 아키텍처입니다.

[사진 3 - LSTM 아키텍처]


LSTM (Long Short-Term Memory) 셀은 데이터를 순차적으로 처리하고 시간이 지남에 따라 숨겨진 상태를 유지할 수 있습니다. 표준 피드 포워드 신경망과 달리 LSTM에는 피드백 연결이 있습니다. 예를 들어, 이미지와 같은 단일 데이터 포인트 뿐만 아니라 음성 또는 비디오와 같은 전체 데이터 시퀀스도 처리 할 수 있습니다. 예를 들어, LSTM은 분할되지 않은 연결된 필기 인식, 음성 인식 및 네트워크 트래픽 또는 침입 감지 시스템(IDS)의 이상 감지와 같은 작업에 적용할 수 있습니다.


일반적인 LSTM 장치는 셀, 입력 게이트, 출력 게이트 및 기억 상실 게이트로 구성됩니다. 셀은 임의의 시간 간격에 대한 값을 기억하고 세 개의 게이트는 셀로 들어오고 나가는 정보의 흐름을 조절합니다. 또한 LSTM 네트워크는 시계열 데이터를 기반으로 분류, 처리 및 예측에 적합합니다. 시계열의 중요한 이벤트간에 알 수없는 기간의 지연이 있을 수 있기 때문입니다. LSTM은 기존 RNN을 학습 할 때 기울기 값이 사라지는 문제(vanishing gradient problem)를 처리하기 위해 개발되었습니다. 갭 길이에 대한 상대적 무감응(Relative insensitivity)은 수많은 애플리케이션에서 RNN, Hidden Markov 모델 및 기타 시퀀스 학습 방법에 비해 LSTM의 장점입니다.


셀프-어텐션(Self-Attention)에 대하여


논문을 읽다가 보면 트랜스포머외 셀프-어텐션(Self-Attention) 대한 개념이 언급이 많이 됩니다. 간단히 살펴 보자면, 레이어들의 관점에서, 셀프-어텐션 메커니즘은 입력이 서로 ("self") 상호 작용하고 누가  어텐션에 비중을 기울여야 하는지 어텐셥 값을 알아낼  있도록 합니다. 출력은 이러한 상호 작용  어텐션 값의 집계를 뜻합니다. 그리고 관련된 논문을 아래 레퍼런스에 놓았으니 읽어 보시면 충분히 이해하실  있는 개념입니다.


[사진 4 - Self-Attention 아키텍처]


버클리 인공지능 연구소(Berkeley AI Research, BAIR)에 대하여


버클리 AI 리서치 (BAIR)는 UC 버클리의 컴퓨터 비전, 머신 러닝, 자연어 처리, 계획 및 로봇 공학 분야의 연구원을 한데 모으고 매년 이러한 모든 분야에 대한 최첨단 연구하고 발표하는 연구소입니다. 과학적 결과를 널리 알리는 것이 BAIR 사명이며 핵심이라고 합니다.


따라서, 이 사명을 수행하기위한 전통적인 방법, 예를 들어, 학술 회의 간행물 및 발표를 계속해서 BAIR 연구의 결과를 전파하는 주요 방법이기는 하지만, 좀 더 결과에 접근 할 수 있도록 노력해야 한다고 주장합니다. 쉽게 해석 할 수 있고 모두가 사용할 수 있어야 하는 데, 이러한 노력의 일환으로 컴퓨터 비전, 딥러닝, 로봇 공학, NLP 등 최첨단 연구를 수행하는 다양한 기타 분야의 최근 결과를 발표하고 논의할 블로그인 BAIR 블로그를 통해 소통합니다. 그러므로 BAIR 블로그의 목표는 모든 수준의 전문 지식을 가진 독자들에게 유익하고 접근 가능하면서도 동시에 유익한 형식으로 최근 과학적 연구 결과를 제시하는 것입니다.


더 읽어 볼거리들


Pretrained Transformers as Universal Computation Engines 논문: https://arxiv.org/abs/2103.05247


Pretrained Transformers as Universal Computation Engines GitHub 소스: https://github.com/kzl/universal-computation

self-attention 개념 및 아키텍처 참조: https://towardsdatascience.com/illustrated-self-attention-2d627e33b20a#:~:text=In%20layman's%20terms%2C%20the%20self,these%20interactions%20and%20attention%20scores.

Multi-Model Transformer for Video Retrieval 논문: https://arxiv.org/abs/2007.10639
ViLBERT: Pretraining Task-Agnostic Visiolinguistic Representations for Vision-and-Language Tasks 논문: https://arxiv.org/abs/1908.02265
Pretrained Transformers for Simple Question Answering over Knowledge Graphs 논문: https://arxiv.org/abs/2001.11985
M6: A Chinese Multimodal Pretrainer 논문: https://arxiv.org/abs/2103.00823
Pretrained Language Model Embryology: The Birth of ALBERT 논문: https://arxiv.org/abs/2010.02480
Transformer:언어 이해를 위한 새 신경망 구조 논문 블로그(한글): https://brunch.co.kr/@synabreu/94
BAIR 블로그: https://bair.berkeley.edu/blog/


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari