2021년 10월 13일 수요일

트랜스포머 딥러닝 모델의 이해 및 간단한 사용방법

이 글은 자연어 처리 번역에 매우 유용한 트랜스포머 딥러닝 모델의 이해 및 간단한 사용방법을 공유한다.



트랜스포머 모델 개념
논문 'Attention Is All You Need'는 변환기와 시퀀스-투-시퀀스 아키텍처에 대해 설명한다. Sequence-to-Sequence(Seq2Seq)는 문장의 단어 시퀀스와 같은 주어진 시퀀스를 다른 시퀀스로 변환하는 신경망이다.

Seq2Seq 모델은 한 언어의 단어 시퀀스가 ​​다른 언어의 다른 단어 시퀀스로 변환되는 번역에 특히 좋다. 이 유형의 모델에 널리 사용되는 LSTM(장단기 메모리)은 시퀀스에 의미를 부여할 수 있다. 예를 들어 문장은 단어의 순서가 문장을 이해하는 데 중요하기 때문에 순서에 따른 의미를 훈련시킬 수 있다.

Seq2Seq 모델은 인코더와 디코더로 구성된다. 인코더는 입력 시퀀스를 가져와 더 높은 차원 공간(n차원 벡터)에 매핑한다. 출력 시퀀스는 다른 언어, 기호, 입력 사본 등일 수 있다.

'Attention Is All You Need'라는 논문은 Transformer라는 아키텍처를 소개한다. LSTM과 마찬가지로 Transformer는 두 부분(Encoder 및 Decoder)으로 한 시퀀스를 다른 시퀀스로 변환하는 아키텍처이지만,  RNN(Recurrent Neural Networks) 없이 어텐션(주의) 메커니즘만 있는 아키텍처로 성능을 개선할 수 있음을 증명했다. 

이 모델의 인코더는 왼쪽에 있고 디코더는 오른쪽에 있다. Encoder와 Decoder는 모두 여러 번 서로 겹쳐질 수 있는 모듈로 구성되며, Nx 로 설명된다. 모듈이 주로 Multi-Head Attention 및 Feed Forward 레이어로 구성되어 있다. 문자열을 직접 사용할 수 없기 때문에 입력과 출력(목표 문장)은 먼저 n차원 공간에 매핑된다.

시퀀스가 모델에 공급되는 방식을 기억할 수 있는 순환 네트워크가 없기 때문에 시퀀스의 모든 단어/부분에 상대적인 위치를 정의해야 한다. 이러한 위치는 각 단어의 포함된 표현(n차원 벡터)에 추가된다.

모델의 실행 순서 예는 다음과 같다. 
  • 전체 인코더 시퀀스(예. 프랑스어 문장)를 입력하고 디코더 입력으로, 첫 번째 위치에 문장 시작 토큰만 있는 빈 시퀀스를 사용한다. 
  • 해당 요소는 디코더 입력 시퀀스의 두 번째 위치에 채워지며,  문장 시작 토큰과 첫 번째 단어/문자가 들어 있다.
  • 인코더 시퀀스와 새 디코더 시퀀스를 모두 모델에 입력한다. 출력의 두 번째 요소를 가져와 디코더 입력 시퀀스에 넣는다.
  • 번역의 끝을 표시하는 문장 끝 토큰을 예측할 때까지 이 작업을 반복한다.
사용 예시
사용 예시를 간단히 확인해 본다. 이를 위해 아래 링크를 참고하도록 한다.



댓글 없음:

댓글 쓰기