Encoder–decoder architecture — 인코더–디코더 아키텍처

From Systems analysis Wiki
Jump to navigation Jump to search

인코더-디코더 모델 (영. Encoder-Decoder Models) — 이는 시퀀스-투-시퀀스(sequence-to-sequence, seq2seq) 변환 문제를 해결하기 위해 설계된 신경망 아키텍처의 한 종류입니다. 이 아키텍처는 두 가지 주요 구성 요소로 이루어져 있습니다:

  • 인코더(Encoder): 입력 시퀀스를 처리하여 이를 압축된 수치 표현(컨텍스트 벡터 또는 은닉 상태 시퀀스)으로 변환합니다.
  • 디코더(Decoder): 해당 표현을 받아 이를 기반으로 출력 시퀀스를 생성합니다.

이 아키텍처는 기계 번역, 텍스트 요약, 이미지 캡셔닝 등 자연어 처리(NLP) 및 컴퓨터 비전의 다양한 작업에서 핵심적인 기반이 됩니다.

개념

인코더-디코더 아키텍처의 핵심 아이디어는 이해생성 작업을 분리하는 것입니다. 인코더는 입력 시퀀스에서 필요한 모든 의미 정보를 추출함으로써 이해를 담당합니다. 디코더는 인코더가 제공한 정보를 바탕으로 새로운 시퀀스를 생성하는 역할을 담당합니다.

이를 통해 모델은 입력과 출력의 시퀀스 길이가 서로 다른 경우에도 효과적으로 처리할 수 있으며, 이는 초기 아키텍처에서는 구현하기 어려웠던 부분입니다.

아키텍처의 발전

RNN/LSTM 기반 초기 모델

초기에는 인코더-디코더 아키텍처가 순환 신경망(RNN) 또는 그 개선된 형태인 LSTM을 사용하여 구현되었습니다.

  • 인코더: RNN 인코더는 입력 시퀀스를 토큰 단위로 처리하고, 마지막 토큰 처리 후의 은닉 상태인 하나의 컨텍스트 벡터를 출력으로 생성했습니다. 이 벡터는 전체 시퀀스의 정보를 담아야 했습니다.
  • 디코더: RNN 디코더는 이 컨텍스트 벡터로 초기화되어 자기회귀(autoregressive) 방식으로 출력 시퀀스를 생성했습니다.

이 접근 방식의 주요 단점은 이른바 '병목(bottleneck)' 문제였습니다. 입력 시퀀스의 모든 정보를 고정 길이의 단일 벡터로 압축해야 했기 때문에, 특히 긴 시퀀스에서 정보 손실이 발생했습니다.

attention mechanism 도입

attention mechanism (Bahdanau et al., 2014)의 도입으로 획기적인 발전이 이루어졌습니다.

  • 작동 원리: 단일 컨텍스트 벡터에만 의존하는 대신, 디코더는 생성의 매 단계마다 인코더의 모든 은닉 상태에 '주목(attention)'합니다. 디코더는 현재 출력 토큰을 생성하는 데 입력 시퀀스의 어느 부분이 가장 관련성이 높은지를 나타내는 attention 가중치를 계산합니다.
  • 장점: 이는 병목 문제를 해결하고 모델이 긴 시퀀스를 효과적으로 처리할 수 있게 하였으며, 특히 기계 번역에서 품질을 크게 향상시켰습니다.

Transformer 아키텍처

2017년 "Attention Is All You Need" 논문에서 순환성을 완전히 배제하고 attention mechanism만을 사용하는 Transformer 아키텍처가 소개되었습니다.

  • Transformer 인코더: 각 레이어가 입력 토큰마다 문맥화된 표현을 생성하기 위해 self-attention을 사용하는 레이어 스택으로 구성됩니다.
  • Transformer 디코더: 두 가지 유형의 attention mechanism을 가진 레이어 스택으로 구성됩니다:
    • 마스킹된 self-attention: 이미 생성된 출력 시퀀스 부분을 처리하기 위한 것입니다.
    • Cross-Attention (교차 주의): 인코더의 출력 표현에 '주목'하기 위한 것입니다.

이 아키텍처는 높은 성능과 병렬 연산 가능성 덕분에 seq2seq 작업의 표준으로 자리잡았습니다.

활용 분야

인코더-디코더 아키텍처는 다양한 작업에서 표준으로 사용됩니다:

  • 기계 번역: 한 언어의 문장을 다른 언어로 변환합니다.
  • 자동 텍스트 요약: 긴 문서의 핵심 내용을 압축하여 작성합니다.
  • 대화 시스템: 사용자의 발화에 대한 응답을 생성합니다.
  • 이미지 캡셔닝(Image Captioning): 인코더(주로 합성곱 신경망 기반)가 이미지를 처리하고, 디코더(주로 RNN 또는 Transformer)가 해당 이미지의 텍스트 설명을 생성합니다.
  • 음성 인식: 오디오 신호를 텍스트 전사(transcription)로 변환합니다.

주요 모델

  • 오리지널 Transformer (Vaswani et al., 2017): 이 아키텍처를 소개한 모델입니다.
  • BART (Bidirectional and Auto-Regressive Transformers): Facebook이 개발한 모델로, '손상된' 텍스트를 복원하는 작업으로 사전 학습됩니다. 인코더는 양방향(BERT와 유사)이고, 디코더는 자기회귀 방식(GPT와 유사)입니다.
  • T5 (Text-to-Text Transfer Transformer): Google이 개발한 모델로, 모든 NLP 작업을 텍스트-투-텍스트 변환 문제로 통합합니다. T5는 다양한 benchmark에서 뛰어난 성과를 보여주었습니다.

다른 아키텍처와의 비교

Transformer 기반 주요 아키텍처 비교
아키텍처 주요 작업 구성 요소 대표적인 모델
인코더-디코더 시퀀스-투-시퀀스 변환 인코더 + 디코더 T5, BART, 오리지널 Transformer
인코더 전용 텍스트 이해 인코더만 BERT, RoBERTa
디코더 전용 텍스트 생성 디코더만

참고 문헌

  • Bahdanau, D. et al. (2014). Neural Machine Translation by Jointly Learning to Align and Translate. arXiv:1409.0473.
  • Sutskever, I. et al. (2014). Sequence to Sequence Learning with Neural Networks. arXiv:1409.3215.
  • Luong, M.-T. et al. (2015). Effective Approaches to Attention-based Neural Machine Translation. arXiv:1508.04025.
  • Wu, Y. et al. (2016). Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation. arXiv:1609.08144.
  • Vaswani, A. et al. (2017). Attention Is All You Need. arXiv:1706.03762.
  • Britz, D. et al. (2017). Massive Exploration of Neural Machine Translation Architectures. arXiv:1703.03906.
  • Lewis, M. et al. (2020). BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation. arXiv:1910.13461.
  • Raffel, C. et al. (2020). Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. arXiv:1910.10683.
  • Dong, L. et al. (2019). Unified Language Model Pre-training for Natural Language Understanding and Generation. arXiv:1905.03197.
  • Zhang, J. et al. (2020). PEGASUS: Pre-training with Extracted Gap-Sentences for Abstractive Summarization. arXiv:1912.08777.