본문 바로가기
AI

AI가 바꿔줄 미래에 대한 준비 [4탄]

by 쏘니~^^ 2023. 4. 13.
반응형

오늘의 목차

 

  1. BERT란?
  2. Transformer Model Architecture.
  3. Attention 메커니즘

 

1. BERT란?

 

BERT(Bidirectional Encoder Representations from Transformers)는 구글 연구원들이 2018년에 제안한 언어 모델입니다. 이 모델은 이전 언어 모델과는 달리 모든 레이어에서 좌우 양방향으로 학습하여 사전 훈련된 딥 양방향 표현을 만들어냅니다. 이를 통해 사전 훈련된 BERT 모델은 다양한 자연어 처리 작업에서 최고 성능을 발휘하며, 현재까지 150개 이상의 논문에서 기본적인 모델로 사용되고 있습니다

 

BERT(Bidirectional Encoder Representations from Transformers)는 자연어 처리(NLP) 분야에서 널리 사용되는 모델 중 하나입니다. BERT 모델의 기본 아키텍처는 트랜스포머(Transformer)라는 모델 구조를 기반으로 합니다. 트랜스포머 모델은 입력된 단어들 간의 상관 관계를 모델링하는 방식으로, 이전의 RNN과 같은 모델보다 좋은 성능을 보입니다.

 

BERT 모델에서는 트랜스포머 구조를 기반으로, 양방향(bidirectional) 인코더를 사용합니다. 이는 입력 시퀀스를 양방향으로 처리하여, 단어들 사이의 양방향 상호작용을 파악할 수 있게 됩니다. 이와 같은 양방향 인코더를 사용하여 BERT 모델은 사전학습(pre-training)을 수행하고, 이를 바탕으로 다양한 자연어 처리 태스크에 적용할 수 있게 됩니다.

 

BERT 모델에서는 사전학습(pre-training) 단계에서 양방향 인코더를 사용하여, 입력 시퀀스의 모든 단어를 모델링합니다. 이렇게 학습된 모델을 fine-tuning 단계에서 다양한 자연어 처리 태스크에 적용할 수 있습니다. 예를 들어, BERT 모델은 문장 분류, 질의 응답, 문장 유사도 측정 등 다양한 자연어 처리 태스크에서 좋은 성능을 보입니다

 

트랜스포머 모델 아키텍처는 주로 자연어 처리 분야에서 사용되는 딥러닝 모델입니다. 이 모델은 인코더와 디코더로 구성된 seq2seq 모델의 발전된 형태로, 자연어 문장을 입력받아 번역이나 요약 등의 처리를 수행할 수 있습니다. 모델의 핵심 아이디어는 self-attention 메커니즘[[1](https://en.wikipedia.org/wiki/Transformer_(machine_learning_model)][2]을 이용하여 입력 시퀀스의 모든 단어들 사이의 관계를 고려하고, 각 단어의 상대적 위치 정보를 인코딩하는 것입니다. 이를 통해 번역이나 요약 과정에서 다양한 길이의 입력 문장을 처리할 수 있으며, 최근 자연어 처리 분야에서 높은 성능을 보여주고 있습니다

 

2.Transformer Model Architecture.

트랜스포머 모델은 Seq2Seq 모델, 어텐션 이후 NLP 분야에서 나온 또 하나의 큰 도약이다. 트랜스포머 모델의 아이디어는 Seq2Seq + 어텐션 모델에서 RNN 구조를 제거하는 것이다. 즉 RNN을 사용하지 않고 오직 어텐션 연산(과 FC 연산)만 사용한 모델이 트랜스포머 모델이다.

출처 : https://heekangpark.github.io/nlp/attention

트랜스포머 모델은 Seq2Seq 모델과 마찬가지로 입력 시퀸스를 받아들이는 인코더와 출력 시퀸스를 출력하는 디코더로 이루어져 있다.

트랜스포머 인코더는 인코더 레이어(encoder layer)를 N개 쌓은 구조로 되어 있다.

 

이전 인코더 레이어의 출력은 다음 인코더 레이어의 입력으로 사용된다.

 

인코더 레이어는 다시 multi-head self attention 서브 레이어(주황색 블록)와 position-wise fully connected feed forward 서브 레이어(파란색 블록), 이렇게 두 개의 서브 레이어(sub-layer)로 구성된다. 각 서브 레이어의 출력은 residual connection으로 전달받은 입력을 더한 후 layer normalization을 거쳐(노란색 블록) 다음 서브 레이어의 입력으로 사용된다.

 

 

3. Attention 메커니즘

출처 : https://velog.io/@idj7183/Attention-TransformerSelf-Attention

 

- Attention이란?

Decoder에서 출력 단어를 예측하는 시점마다 Encoder에서의 전체 입력 문장을 다시 한 번 참고하는 것 해당 단어와 연관이 있는 단어를 좀 더 집중(Attention)하여 보게 됨

 

- Attention 특징

NMT Performance를 향상시킴

NMT : 기계 번역

 

- Bottleneck Problem 해결

  원래 존재하던 Seq2Seq Model에서는 Encoder의 마지막 Time Step의 Hidden State Vector만 활용해야 하므로,

  초기 정보가 손실될 수 있다는 문제를 해결

  Encoder의 모든 단어에 대해 Hidden State Vector를 구하고, 이렇게 구한 모든 Hidden State Vector를 Decoder 연산에

  활용하므로 생기는 장점

- Gradient Vanishing Problem 해결

   BPTT를 수행할 때, Decoder의 Output부터 Encoder의 초기 부분까지 과정을 거치며 학습을 진행하는 것이 아니라

   Attention Score 를 통해 연산한 Atttention Output을 활용한 Path를 거쳐 학습이 진행되기 때문에 어떠한 Time Step도 거치지 않고   빠르고 변형된 값을 전달해 줄 수 있음

   Encoder 3개, Decoder가 3개 Layer로 존재한다고 가정하자. 만약 Attention이 아니라면 3번째 Decoder는 첫번째 Encoder에 중간 4개(2개 Decoder, 2개 Encoder) Layer를 거쳐 오차 값을 전달해 줄 것이다. 즉, 거치는 Path가 많아진다. 하지만 Attention은    Attention Score를 구할 때 3번째 Decoder의 Hidden State Vector와 첫번째 Encoder의 Hidden State Vector 연산이 수행되므로, BPTT 때 Attention Score를 구하는 과정의 Path를 역으로 활용하여 학습이 진행될 수 있다.

-Interpretability 제공

   End-to-End 방식이므로, Alignment를 스스로 학습

   Alighment : 원래의 문장에서, 대응하는 번역된 단어와 일치시키는 것

   Attention Distribution을 제공함으로써 단어의 분포(어느 단어에 집중하였는지)를 확인할 수 있다