본문 바로가기

자연어처리

(33)
GPT-1(Improving Language Understanding by Generative Pre-Training) Improving language understanding with unsupervised learning | OpenAI 1. Introduction■ 대부분의 딥러닝 방법론들은 대량의 레이블된 데이터(labeled data) 를 사용해 지도 학습을 수행한다. 즉, 레이블된 데이터가 부족하다면 해당 방법론들을 다양한 도메인에 적용하기 어렵다는 한계가 있다. ■ 어떤 도메인의 데이터가 레이블이 없는 데이터라면, 시간과 비용이 많이 소모되는 데이터 레이블링 작업을 통해 지도 학습을 위한 레이블 데이터를 만들어야 한다. ■ 그러므로 레이블이 없는 데이터(unlabeled data)로부터 언어적 정보(linguistic information)를 활용할 수 있는 모델은 시간과 비용이 많이 드는 데이터 레이블..
RoBERTa: A Robustly Optimized BERT Pretraining Approach (1) 1. Abstract■ 언어 모델(LM) 사전 훈련(pre-training) 방식은 상당한 성능 향상을 이끌었지만, 다양한 방식들을 서로 비교하기는 어렵다.■ 그 이유는, ① 학습 과정에서 계산 비용이 많이 들고 ② 모델마다 다른 크기의 비공개 데이터셋을 사용한 경우가 있으며 ③ 하이퍼파라미터 선택이 최종 결과(모델 성능)에 큰 영향을 미치기 때문이다. ■ 저자들은 BERT 사전 훈련에 대한 재현 연구(replication study)를 통해, 여러 "주요 하이퍼파라미(key hyperparameter)"와 "훈련 데이터의 크기"가 미치는 영향을 측정했으며 ■ 그 결과, BERT가 충분히 훈련되지 않았다(undertrained)는 점을 발견했다. BERT를 제대로 최적화된 방식으로 훈련시키니, 그 이후에..
BERT(Bidirectional Encoder Representations from Transformers) (2) [1810.04805] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding BERT: Pre-training of Deep Bidirectional Transformers for Language UnderstandingWe introduce a new language representation model called BERT, which stands for Bidirectional Encoder Representations from Transformers. Unlike recent language representation models, BERT is designed to pre-train deep bidirec..
BERT(Bidirectional Encoder Representations from Transformers) (1) [1810.04805] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding BERT: Pre-training of Deep Bidirectional Transformers for Language UnderstandingWe introduce a new language representation model called BERT, which stands for Bidirectional Encoder Representations from Transformers. Unlike recent language representation models, BERT is designed to pre-train deep bidire..
트랜스포머(Transformer) (4) 1. Token Embedding + Positional Encoding ■ 트랜스포머는 다음 그림과 같이 input과 output은 각각 Input/Output Embedding + Positional Encoding을 거쳐 인코더와 디코더의 입력으로 들어간다.■ 트랜스포머 모델에 사용할 파라미터는 다음과 같으며, # model parameterbatch_size = 128max_len = 256d_model = 512n_layers = 6n_heads = 8d_ff = 2048drop_prob = 0.1■ 영어-독일어 단어 집합(vocabulary)의 크기와, 토큰의 정수 인덱스(또는 아이디)는 다음과 같다.len(en_vocab), len(de_vocab)```#결과#```(5893, 7853)`..
트랜스포머(Transformer) (3) 2. 트랜스포머 아키텍처■ 트랜스포머 아키텍처는 다음 그림과 같다. 2.5 디코더(Decoder) 구조 ■ 트랜스포머 디코더도 \( N = num layers \)개의 동일한 디코더 계층 스택을 쌓을 수 있다.- 논문에서 사용한 \( N = 6 \)■ 또한, 인코더처럼 디코더 계층의 sub layer 주위에는 잔차 연결을 사용하고, 그 뒤에 계층 정규화를 적용한다. - 논문에서 적용한 층 정규화 방식은 사후 정규화■ 그리고 sub layer로 멀티 헤드 셀프 어텐션을 가지고 있는데, 인코더의 멀티 헤드 셀프 어텐션과 다른 점은 현재 위치가 다음 위치들을 참조하지 못하도록 마스킹한 "Masked Multi-head Self-Attention"이라는 점이다. ■ 이외에도, 인코더 연산이 끝난 다음, 디코더가..
트랜스포머(Transformer) (2) 2. 트랜스포머 아키텍처■ 트랜스포머 아키텍처는 다음 그림과 같다. 2.2 어텐션(Attention)■ 트랜스포머에서 사용되는 세 가지의 어텐션은 Encoder에서 수행되는 셀프 어텐션(Self-Attention)과 Decoder에서 수행되는 Masked Self-Attention 그리고 Encoder와 Decoder를 연결하는 부분에서의 Attention이다. ■ 이때, 각 어텐션 앞에 "Multi-head"라는 이름이 붙어있는데, 이는 한 번에 하나의 어텐션 연산만 수행하는 게 아니라 여러 어텐션 연산을 병렬적으로 동시에 수행하는 것을 의미한다. ■ 논문에는 아래의 그림과 같이 Scaled Dot-Product Attention과 Multi-Head Attention이 소개되는데, 왼쪽의 Scaled..
트랜스포머(Transformer) (1) 1. 기존 Seq2Seq 모델의 한계■ 기존의 Seq2Seq 모델은 Encoder-Decoder 구조로 구성되어져 있었다. 여기서 Encoder는 입력 시퀀스를 하나의 고정 길이 벡터(context vector)로 압축하였고, Decoder는 이 벡터를 받아 출력 시퀀스를 생성했다.■ 하지만, 이러한 구조는 Encoder에서 입력 시퀀스를 고정 길이 벡터로 압축하기 때문에, 입력 시퀀스의 길이가 길어지면, 입력 시퀀스의 정보가 일부 손실된다는 단점이 있었다.■ 이 단점을 보완하기 위해 어텐션(Attention)을 RNN 계층의 보정을 위한 용도로 사용하였다.■ 어텐션을 사용해도 단점이 남아 있는데, 그것은 바로 RNN은 "병렬 처리가 불가능"하다는 것이다. ■ Encoder와 Decoder에 RNN을 사..