본문 바로가기
Others/22) 캡스톤 디자인2

Transformer 기반 자연어 처리 애플리케이션 구축 - 1부: Machine Learning in NLP

by tonyhan18 2022. 6. 6.
728x90

Attention이 Transformer 아키텍처를 구성하는 방식에 대해 알아봅니다.

 

Transformer 아키텍처는 BERT(Bidirectional Encoder Representations from Transformers) 및 Megatron과 같은 대규모 언어 모델에 대한 선구적 아키텍처로, NLP(자연어 처리) 작업의 정확도를 크게 높였으며 여러 산업 전반의 기업들이 고품질 언어 기반 서비스를 접할 수 있게 했습니다.

 

1.0 Transformer Architecture

2017년 후반에는 Translation을 포함한 광범위한 시퀀스 투 시퀀스 문제들이 콘볼루션 (Convolution) 또는 Recurrent Neural Network (순환신경망, RNN)를 통해 해결되었습니다 (그림 1 참조). 해당 시기의 모델들이 공통적으로 가지고 있는 점은 둘 다 긴 시퀀스를 처리할 수 있도록 어텐션 (Attention) 메커니즘을 광범위하게 이용했다는 사실

 

트랜스포머 (Transformer) 아키텍처는 새로운 접근 방법을 제시하였고, 논문에 따르면 컨볼루션 또는 리커런트 메커니즘의 필요성을 완전히 제거하는 어텐션 메커니즘을 활용하여 유사한 성능을 달성할 수 있음을 증명

 

트랜스포머는 탁월한 시퀀스 투 시퀀스(seq2seq) 모델입니다. 2017/2018년 이전에 광범위한 시퀀스 모델링 작업을 해결하기 위해 사용된 순환 또는 컨볼루션 뉴럴 네트워크 (RNNs / CNNs)의 대안입니다. 왜냐하면 트랜스포머는 RNN과 CNN에서의 중요한 결점인 즉 연산 비용을 설명할 수 있기 때문입니다. Translation 작업에 초점을 맞춘 원본 논문에서 저자들은 8개의 GPU를 바탕으로 3.5일의 학습만으로 당시 기준 SOTA 모델 성능을 달성했는데, 이 학습시간은 대체 모델들에서 필요한 학습 시간 대비 적은 비율이었습니다. 이러한 연산 자원에 대한 요구사항의 감소는 연구 커뮤니티가 가용한 데이터셋과 모델의 크기를 크게 증가시켜 GPT, BERT, 그리고 그 이상의 아키텍처들의 성공을 이끌 수 있도록 했습니다.

 

대부분의 seq2seq 모델은 인코더 및 디코더 구성요소로 구성됩니다. 인코더는 입력 시퀀스를 받아 중간 표현, 즉 n차원 벡터로 매핑합니다. 이 추상 벡터는 디코더로 공급되어 출력 시퀀스로 변환됩니다. 그림 2는 시퀀스 투 시퀀스 문제의 예로서 Translation을 사용하는 인코더-디코더 아키텍처를 보여줍니다.

 

트랜스포머 아키텍처도 인코더 및 디코더 파트로부터 구축되지만(그림 3 참조), 기존의 RNN 또는 CNN 기반 아키텍처와 달리 트랜스포머는 문장의 모든 단어 간의 관계를 직접 모델링하는 셀프 어텐션 (Self-Attention) 메커니즘에 완전 의존합니다.

 

리커런트 또는 컨볼루션 시퀀스 투 시퀀스 모델과 비교하여, 트랜스포머는 비교적 간단한 메커니즘으로 구축이 가능합니다. (이 모든 내용은 다음 섹션에서 자세히 설명됨).

  1. 토크나이저 - Tokenizer
  2. 임베딩 레이어 - Embedding layers
  3. 포지셔널 인코딩 - Positional Encoding
  4. 멀티 헤드 어텐션과 마스크 멀티 헤드 어텐션 - Multi-Head Attention and Masked Multi-Head Attention
  5. 피드 포워드 레이어 (Feed forward layer) 와 같은 다양한 기본 구성 요소

멀티-헤드 어텐션은 피드 포워드 메커니즘과 함께 여러번 반복할 수 있는 트랜스포머 레이어를 구성하여 아키텍처를 확장하거나 축소할 수 있습니다. 기존 트랜스포머 모델은 인코더에 있는 6개의 동일한 레이어와 모델의 디코더 단계에 있는 6개의 동일한 레이어로 구성되어 있습니다.

BERT 아키텍처로 이동하기 전에 위에서 언급한 구성요소에 대해 간략히 설명하겠습니다.

 

1. 토크나이저 - Tokenizer

토크나이저는 원본 텍스트를 토큰(하위 단어 구성 요소)으로 구성된 텍스트의 초기 숫자 표현으로 변환

2. 임베딩 레이어 - Embedding layers

토큰화된 텍스트는 임베딩 (Embedding) 메커니즘에 의해 처리됩니다. 임베딩은 원래 데이터를 뉴럴 네트워크에서 사용할 수 있는 수치 표현으로 변환하는 알고리즘에 의해 생성

이러한 수치 표현을 흔히 텍스트 임베딩. 텍스트 임베딩은 일반적으로 기계 학습 알고리즘이 텍스트의 복잡성을 처리하고 텍스트 표현을 더 간결하게 만드는 데 도움이 되는 추가 속성을 갖도록 설계.

Word2Vec, Globe, 또는 fastText 와 같은 알고리즘/라이브러리는 개별 단어의 의미를 포착하는 임베딩을 생성하여 관련되지 않은 단어가 임베딩 공간에 더 가깝게 나타나도록 합니다.

 

3. 포지셔널 인코딩 - Positional Encoding

언어 모델은 문장에서 단어의 순차적 특성을 활용할 필요가 있습니다. 트랜스포머 모델에는 순환 또는 컨볼루션 단위가 없으므로 위치 인코딩(Positional Encoding, PE)이 입력 시퀀스의 단어 순서를 설명하는 데 사용됩니다. 위치 인코딩은 임베딩과 동일한 차원, dmodel를 가지므로 둘을 합칠 수 있습니다(그림 3 참조). 이를 통해 모델은 입력 텍스트에서 각 단어의 위치를 이해할 수 있습니다.

 

4. 멀티 헤드 어텐션과 마스크 멀티 헤드 어텐션 - Multi-Head Attention and Masked Multi-Head Attention, Transformer Encoder

트랜스포머 논문에서는 각 인코더와 디코더가 𝐍=6N=6의 동일한 레이어로 구성되어 총 12개의 레이어를 구성하고 있습니다. 각 6개의 인코더 레이어는 2개의 서브 레이어를 가지고 있습니다.: 첫번째는 멀티-헤드 셀프-어텐션 메커니즘(multi-head self-attention mechanism)입니다; 주번째는 간단하고 위치기반 완전히 연결된 피드-포워드 네트워크 입니다(simple, position-wise fully connected feed-forward network).

인코더의 목표는 히든 스테이트 벡터(hidden state vectors)로 소스 문장을 인코드하는 일입니다

5. 어텐션

피드 포워드 레이어 (Feed forward layer) 와 같은 다양한 기본 구성 요소

728x90

'Others > 22) 캡스톤 디자인2' 카테고리의 다른 글

nvidia nlp test  (0) 2022.06.06
Machine Learning in NLP  (0) 2022.06.06
캡디2 - 12 실행, 모니터링  (0) 2022.05.27
캡스톤디자인2 - 10  (0) 2022.05.13
캡스톤디자인2 - 7  (0) 2022.04.14