인코더-디코더 모델이란 무엇인가요?

작성자

Jacob Murel Ph.D.

Senior Technical Content Creator

Joshua Noble

Data Scientist

인코더-디코더는 데이터 처리 및 생성에 사용되는 일종의 신경망 아키텍처입니다.

딥 러닝에서 인코더-디코더 아키텍처는 트랜스포머 아키텍처와 가장 널리 연관되어 있으며 시퀀스 간 학습에 사용되는 신경망 유형입니다. 따라서 문헌에서는 때때로 인코더-디코더를 시퀀스 대 시퀀스 모델(seq2seq 모델)의 한 형태로 언급합니다. 많은 머신 러닝 연구는 대규모 언어 모델(LLM)과 관련된 자연어 처리(NLP) 작업을 위한 인코더-디코더 모델에 중점을 둡니다.

인코더-디코더 모델은 특히 신경 기계 번역, 텍스트 요약, 이미지 캡션 및 음성 인식과 같이 입력 시퀀스를 다양한 길이의 아웃풋 시퀀스에 매핑하는 등 순차 데이터를 처리하는 데 사용됩니다. 이러한 작업에서 입력의 토큰을 아웃풋의 토큰에 매핑하는 것은 종종 간접적인 방식으로 이루어집니다. 예를 들어 기계 번역을 예로 들면, 어떤 언어에서는 동사가 문장의 시작 부분에 나타나고(영어처럼), 어떤 언어에서는 동사가 끝 부분에 나타나며(독일어 등), 어떤 언어에서는 동사의 위치가 더 가변적일 수 있습니다(예: 라틴어). 인코더-디코더 네트워크는 주어진 입력 시퀀스에 대응하는 가변 길이의 컨텍스트에 적합한 아웃풋 시퀀스를 생성합니다.1

전문가가 전하는 최신 AI 트렌드

가장 중요하고 흥미로운 AI 뉴스에 대한 선별된 인사이트를 확인하세요. 주간 Think 뉴스레터를 구독하세요. IBM 개인정보 보호정책을 참조하세요.

감사합니다! 구독이 완료되었습니다.

구독은 영어로 제공됩니다. 모든 뉴스레터에는 구독 취소 링크가 있습니다. 여기에서 구독을 관리하거나 취소할 수 있습니다. 자세한 정보는 IBM 개인정보 보호정책을 참조하세요.

인코더-디코더 아키텍처

각각의 이름에서 유추할 수 있듯이 인코더는 주어진 입력을 벡터 표현으로 인코딩하고, 디코더는 이 벡터를 원래 입력 데이터 세트와 동일한 데이터 유형으로 디코딩합니다.

인코더와 디코더는 둘 다 별개의 완전히 연결된 신경망 네트워크입니다. 이러한 모델은 순환 신경망(RNN)과 그 변형인 장단기 메모리(LSTM), 게이트 순환 유닛(GRU), 컨볼루션 신경망(CNN), 트랜스포머 모델일 수 있습니다. 인코더-디코더 모델에는 일반적으로 여러 인코더와 디코더가 포함되어 있습니다.

인코더-디코더 아키텍처 다이어그램

각 인코더는 자기 주의 계층(또는 자기 주의 메커니즘)과 피드포워드 신경망의 두 가지 계층으로 구성됩니다. 첫 번째 계층은 인코더가 특정 단어 하나를 인코딩할 때 주어진 입력에서 다른 관련 단어를 조사하고 집중할 수 있도록 안내합니다. 피드포워드 신경망은 인코딩을 추가로 처리하여 후속 인코더 또는 디코더 계층에서 사용할 수 있도록 합니다.

디코더 부분은 또한 자기 주의 계층과 피드포워드 신경망, 그리고 추가적인 세 번째 계층인 인코더-디코더 주의 계층으로 구성됩니다. 이 계층은 인코더 아웃풋의 특정 부분에 네트워크의 관심을 집중시킵니다. 따라서 멀티헤드 관심 계층은 서로 다른 두 시퀀스의 토큰을 매핑합니다.2

인코더 및 디코더 스택의 일부를 보여주는 다이어그램

인코더-디코더 모델 작동 방식

문헌에서는 인코더-디코더 모델을 인코더, 컨텍스트 벡터 및 디코더의 세 가지 구성 요소로 널리 제시합니다.3

인코더

인코더의 주요 구성 요소는 자기 주의 메커니즘입니다. 자기 주의 메커니즘은 토큰 간 관계를 반영하기 위해 텍스트 입력에서 토큰 가중치를 결정합니다. 어순을 무시하는 기존의 단어 임베딩과 달리, 자기 주의는 전체 입력 텍스트 시퀀스를 처리하여 해당 토큰과 텍스트 시퀀스의 다른 모든 토큰과의 거리를 고려한 각 토큰의 가중 평균 임베딩을 계산합니다. 이 평균 임베딩은 다음 공식에 따라 입력 시퀀스에 대한 모든 임베딩의 선형 조합으로 계산됩니다.

인코더 입력을 나타내는 수학적 식은, i번째 출력값 xi′가 모든 입력값 xj에 대응하는 가중치 wji를 곱해 더한 합으로 계산됨을 보여줍니다.

여기서 xj는 입력 텍스트 문자열의 j번째 위치에 있는 주어진 입력 토큰이고, xi는 입력 텍스트 문자열의 i번째 위치에 있는 해당 아웃풋 토큰입니다. 계수 wij는 소프트맥스 함수를 사용하여 계산되는 주의 가중치로, 아웃풋 텍스트에서 해당 토큰이 해당 소스 시퀀스에 얼마나 중요한지 나타냅니다. 즉, 이 계수는 소스 텍스트에서 원본 토큰의 중요도와 관련하여 인코더가 아웃풋의 각 토큰에 얼마나 많은 주의를 기울여야 하는지를 나타냅니다.4

세 단어에 대한 시간 신호가 포함된 임베딩을 생성하기 위해 위치 인코딩과 결합된 단어 임베딩을 보여주는 다이어그램: Alas, Poor, Yorick

인코더는 이 토큰 임베딩을 피드포워드 계층에 전달하여 토큰 임베딩에 위치 인코딩(또는 위치 임베딩)을 추가합니다. 이 위치 인코딩은 텍스트의 토큰 순서, 특히 토큰 간의 거리를 설명합니다. 이 토큰 임베딩과 위치 임베딩은 함께 디코더에 전달되는 은닉 상태를 구성합니다.5

컨텍스트 벡터

문헌에서는 인코더의 최종 은닉 상태를 컨텍스트 벡터라고 널리 부릅니다. 인코더의 초기 입력 텍스트를 압축하여 숫자로 표현한 것입니다. 간단히 말해, 입력 시퀀스의 모든 단어에 대해 인코더가 생성하는 임베딩 및 위치 인코딩입니다.

문헌에서는 종종 다음 함수를 사용하여 컨텍스트 벡터를 정의하는데, 여기서 컨텍스트 벡터 X는 입력 시퀀스의 i 번째 위치에 있는 각 토큰(x)으로 정의됩니다.6

컨텍스트 벡터 함수식은 C가 x₁부터 xₙₓ까지의 x 값들의 시퀀스로 이루어져 있음을 나타냅니다.

디코더

인코더와 마찬가지로 디코더는 자기 주의 계층과 피드 포워드 네트워크로 구성됩니다. 이 사이에 디코더에는 멀티헤드 주의 마스킹 계층이 포함되어 있습니다. 이것이 인코더와 디코더의 차이를 나타냅니다. 인코더는 컨텍스트화된 토큰 임베딩을 동시에 생성하는 반면, 디코더의 멀티헤드 주의 계층은 자동 회귀 마스킹을 활용합니다.

먼저 디코더는 인코더로부터 컨텍스트 벡터를 수신합니다. 디코더는 이러한 위치 임베딩을 사용하여 각 토큰의 주의 점수를 계산합니다. 이러한 주의 점수는 입력 시퀀스의 각 토큰이 이후의 토큰에 어느 정도 영향을 미칠지 결정합니다. 즉, 점수는 아웃풋 시퀀스를 생성할 때 각 토큰이 다른 토큰의 결정에 얼마나 가중치를 주는지 결정합니다.

그러나 이 특성 중 하나는 디코더가 같은 시퀀스의 이전 토큰을 결정하기 위해 미래 토큰을 사용하지 않는다는 것입니다. 각 토큰의 생성된 아웃풋은 이전 토큰에만 의존합니다. 즉, 토큰의 아웃풋을 생성할 때 디코더는 현재 토큰 다음의 다음 단어나 토큰을 고려하지 않습니다. 많은 인공 지능 기술의 경우와 마찬가지로 이는 인간이 정보, 특히 언어를 처리하는 방식에 대한 기존의 이해를 모방하는 것을 목표로 합니다. 정보 처리에 대한 이러한 접근 방식을 자동 회귀라고 합니다.7

햄릿 인용문의 자동 회귀 마스킹 다이어그램

NLP에서 인코더-디코더 모델을 사용하는 이유는 무엇인가요?

감정 분석 또는 마스킹된 언어 모델링과 같은 다운스트림 NLP 작업을 위한 인코더-디코더 모델의 가장 큰 장점 중 하나는 상황에 맞는 임베딩을 생성한다는 것입니다. 이러한 임베딩은 Bag of Words 모델에 사용되는 고정 단어 임베딩과 다릅니다.

첫째, 고정 임베딩은 단어의 순서를 고려하지 않습니다. 따라서 텍스트 시퀀스에서 토큰 간의 관계를 무시합니다. 그러나 상황별 임베딩은 위치 인코딩을 통해 단어 순서를 설명합니다. 또한 상황별 임베딩은 임베딩을 생성할 때 주어진 시퀀스에서 토큰 간의 거리를 고려하는 주의 메커니즘을 통해 토큰 간의 관계를 캡처하려고 시도합니다.

고정 임베딩은 주어진 토큰에 대해 하나의 임베딩을 생성하여 해당 토큰의 모든 인스턴스를 통합합니다. 인코더-디코더 모델은 토큰의 각 토큰 인스턴스에 대해 상황에 맞는 임베딩을 생성합니다. 결과적으로 문맥화된 임베딩은 다의어, 즉 여러 의미를 가진 단어를 더 능숙하게 다룹니다. 예를 들어, Flies는 행동이나 곤충을 의미할 수 있습니다. 고정 단어 임베딩은 토큰 또는 단어에 대한 단일 임베딩을 만들어 이 단어의 여러 의미를 축소합니다. 그러나 인코더-디코더 모델은 'Fly'라는 단어가 발생할 때마다 상황에 맞는 개별 임베딩을 생성하므로 여러 개의 고유한 임베딩을 통해 수많은 의미를 캡처합니다.8

Mixture of Experts | 8월 28일, 에피소드 70

AI 디코딩: 주간 뉴스 요약

세계적인 수준의 엔지니어, 연구원, 제품 리더 등으로 구성된 패널과 함께 불필요한 AI 잡음을 차단하고 실질적인 AI 최신 소식과 인사이트를 확인해 보세요.

인코더-디코더 변형 유형

예상할 수 있듯이 인코더-디코더 아키텍처에는 다양한 변형이 있으며 각각 데이터 과학 및 머신 러닝에서 고유한 주요 사용 사례가 있습니다.

인코더 전용이러한 모델(자동 인코더라고도 함)은 디코더를 피하고 인코더 스택만 사용합니다. 따라서 이러한 모델에는 자동 회귀 마스킹 모델링이 없으며 초기 입력 텍스트의 모든 토큰에 액세스할 수 있습니다. 따라서 이러한 모델은 주어진 토큰에 대한 예측을 수행하기 위해 전후 모든 주변 토큰을 사용하기 때문에 양방향으로 설명됩니다. 잘 알려진 인코더 모델로는 BERT,9 RoBERTa,10 및 ELECTRA,11 등의 BERT 제품군 모델과 IBM® Slate 모델이 있습니다. 인코더 전용 모델은 텍스트 분류 또는 명명된 개체 인식과 같이 전체 텍스트 입력을 이해해야 하는 작업에 자주 사용됩니다.

디코더 전용. 이러한 모델(자동 회귀 모델이라고도 함)은 인코더를 생략하고 디코더 스택만 사용합니다. 따라서 토큰 예측을 할 때 모델의 관심 계층은 고려 중인 토큰보다 앞의 토큰에만 액세스할 수 있습니다. 디코더 전용 모델은 질문 답변, 코드 작성 또는 ChatGPT와 같은 챗봇과 같은 텍스트 생성 작업에 자주 사용됩니다. 디코더 전용 모델의 예로는 IBM Granite 기반 모델 제품군이 있습니다.12

관련 솔루션
IBM watsonx.ai

AI 빌더를 위한 차세대 엔터프라이즈 스튜디오인 IBM watsonx.ai로 생성형 AI, 파운데이션 모델 및 머신 러닝 기능을 학습, 검증, 조정 및 배포하세요. 적은 데이터로 짧은 시간 내에 AI 애플리케이션을 구축하세요.

watsonx.ai에 대해 알아보기
인공 지능 솔루션

업계 최고의 AI 전문성과 솔루션 포트폴리오를 보유한 IBM과 함께 AI를 비즈니스에 활용하세요.

AI 솔루션 살펴보기
AI 컨설팅 및 서비스

AI 추가를 통해 중요한 워크플로와 운영을 혁신함으로써 경험, 실시간 의사 결정 및 비즈니스 가치를 극대화합니다.

AI 서비스 살펴보기
다음 단계 안내

AI 개발 라이프사이클 전반에 걸친 기능에 원스톱으로 액세스하세요. 사용자 친화적인 인터페이스, 워크플로, 업계 표준 API 및 SDK에 대한 액세스를 통해 강력한 AI 솔루션을 제작할 수 있습니다.

watsonx.ai 살펴보기 라이브 데모 예약하기
각주

Jurafsky, D. 및 Martin, J.,  "Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition", 3vks, 2023년.

Telmo, P., Lopes, A. V., Assogba, Y. 및 Setiawan, H. "One Wide Feedforward Is All You Need", 2023년.
Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., Kaiser, L. 및 Polosukhin I. "Attention Is All You Need", 2017년.
Tunstall, L., Werra, L. and Wolf 및 T. "Natural Language Processing with Transformers", 개정판, O’Reilly, 2022년

3 Goodfellow, I., Bengio, Y. 및 Courville, A. "Deep Learning", MIT Press, 2016년.
Jurafsky, D. 및 Martin, J. "Speech and Language Processing", 3판, 2023년.
Tunstall, L., Werra, L. 및 Wolf 및 T. "Natural Language Processing with Transformers", 개정판, O’Reilly, 2022년.

4 Tunstall, L., Werra, L. 및 Wolf 및 T. "Natural Language Processing with Transformers", 개정판, O’Reilly, 2022년.
Goldberg, Y. "Neural network methods for Natural Language Processing", Springer, 2022년.

5 Alammar, J. 및 Grootendorst, M. "Hands-on Large Language Models", O’Reilly, 2024년.

6
Goodfellow, I., Bengio, Y. 및 Courville, A. "Deep Learning", MIT Press, 2016년.
Jurafsky, D. 및 Martin, J. "Speech and Language Processing", 3판, 2023년.

7 Foster, D. "Generative Deep Learning", 2판, O’Reilly, 2023년.
Rothman, D. "Transformers for Natural Language Processing", 2판, 2022년. 
Jurafsky, D. 및 Martin, J. "Speech and Language Processing", 3판, 2023년.

8 Tunstall, L., Werra, L. 및 Wolf 및 T. "Natural Language Processing with Transformers", Revised Edition, O’Reilly, 2022년. 

9 Devlin, J. 외. "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding", 2019년.

10 Liu, Y., Ott, M., Goyal, N., Du, J.,  Joshi, M., Chen,  D., Levy, O., Lewis, M. ,  Zettlemoyer,  L.  및 Stoyanov, V. "RoBERTa: A Robustly Optimized BERT Pretraining Approach",  2019년.

11 Clark, K. 외. "ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators",  2020년.

12 Mayank, M. 외. "Granite Code Models: A Family of Open Foundation Models for Code Intelligence" 2024년.
Ruiz, A. "IBM Granite Large Language Models Whitepaper" 2024년.