3. Encoder-decoder architecture 정리

Encoder-decoder architecture Overview

인코더-디코더 아키텍처 역할

  • 인코더-디코더 아키텍처는 시퀀스 to 시퀀스 아키텍처
  • 예를 들어
  • "The cat ate the mouse" 라는 영어 문장과 같이 연속적인 단어를 입력값으로 받아
  • 다른 언어(여기서는 프랑스어)로 번역된 결과를 내놓는 것
  • 인코더-디코더 아키텍처는 시퀀스들을 사용하고 시퀀스들을 분리하는 기계이다.
  • 다른 입력 예로
  • 프롬프트를 형성하는 연속적인 단어들이 LLM에 전송되며
  • 결과는 이 프롬프트에 대한 LLM의 응답값

인코더-디코더 아키텍처 작동원리

  • 통상적으로, 인코더-디코더 아키텍처는 2개의 스테이지를 갖는다.
  • 인코더 스테이지: 입력 문장의 벡터 표현(vector representation)을 생성
  • 디코더 스테이지: 시퀀스 출력을 생성
  • 인코더 및 디코더 모두 상이한 내부 아키텍처로 구현될 수 있다.
  • 내부 메커니즘은 반복 신경망(recurrent neural network)일 수 있고, 초강력 언어 모델의 경우와 같이 더 복잡한 트랜스포머 블록일 수 있다.

  • 반복 신경망 인코더는 입력 시퀀스의 각 토큰을 한 번에 하나씩 가져가고 이 토큰에 해당하는 상태(state)를 생성한다.
  • 이 토큰에 해당하는 상태는 다음 토큰과 함께 그 다음 인코딩 단계에서 입력으로 사용되며, 새로운 상태를 생성한다.
  • 모든 입력 토큰을 RNN(Recurrent Neural Network)에 사용하고 나면 전체 입력 문장을 나타내는 벡터를 출력한다.

  • 디코더는 인코더 단계에서 출력한 벡터를 가지고 출력 문장을 생성한다.
  • RNN 디코더의 경우 출력된 토큰을 하나씩 디코딩하며, 이때 현재 상태(state)와 이전까지 디코딩된 결과를 사용한다.
  • RNN 디코더는 위 작업을 단계적으로 수행한다.

인코더-디코더 아키텍처 훈련방법

  • 인코더-디코더 아키텍처 아키텍처의 경우 일반적인 예측 모델(predictive model)들보다 복잡하다
  • 먼저 인코더-디코더를 훈련시키기 위해 입력과 출력 텍스트 모음(collection)이 필요하다.
  • 번역의 경우 이는 문장 쌍(sentence pair)으로 소스 언어의 문장과 번역된 문장이다.
  • 소스 언어의 문장을 인코더에 넣고 디코더가 생성한 것과 실제 번역 사이의 오류를 비교하는 것만으로는 부족하다
  • 디코더의 각 단계별로 이전 단계에서 디코딩한 결과가 아닌 사전에 준비한 정확한 결과를 주어야 한다.
  • 이는 정확한 이전 토큰으로부터 다음 토큰을 생성하도록 강제하기 때문에 교사 강제(teacher forcing)라 불린다.

  • 또 다른 미묘한 점은 디코더가 각 단계에서 각 토큰이 다음에 나올 확률만을 생성한다는 것이다.
  • 이러한 확률을 사용하려면 단어를 선택해야 하며, 이에 대한 접근법은 여러 가지가 있다.
  • greedy search: 가장 높은 확률을 가진 토큰을 생성하는 것, 가장 간단한다
  • beam search: 개별 단어보다는 문장 청크의 확률을 평가하기 위해 디코더에 의해 생성된 확률을 사용, 더 나은 결과를 낸다.

인코더-디코더 아키텍처 사용

  1. 인코더 단계의 벡터와 함께 슬라이드에서의 'Go'와 같이 특별한 토큰을 디코더에 공급한다. 'Go'는 디코더가 첫 번째 단어를 생성하도록 한다.
  2. 우선, 시작 토큰은 임베딩 레이어(embedding layer)를 이용한 벡터로 표현될 필요가 있다.
  3. 그런 다음, 반복 계층(recurrent layer)은 인코더에 의해 생성된 이전 상태를 새로운 상태로 업데이트할 것이다.
  4. 이 상태는 단어 확률(word probabilities)을 생성하기 위해 다운 소프트맥스 계층(down softmax layer)으로 전달될 것이다.
  5. 단어는 그리디 검색으로 최고 확률 단어를 취하거나, 빔 검색으로 최고 확률 청크를 취함으로써 생성된다.

  • 위에서 설명한 과정을 모든 토큰에 적용한다.

links

social