시퀀스-투-시퀀스(종종 seq2seq로 약칭)는 자연어 처리 및 기타 시퀀스 변환 작업에 사용되는 머신 러닝 접근 방식의 한 계열이다. 이 프레임워크는 하나의 시퀀스를 다른 시퀀스로 변환하며, 예를 들어 영어 문장을 프랑스어로 변환하거나, 이미지에서 캡션을 생성하거나, 더 긴 텍스트에서 요약을 생성하는 작업을 수행한다. 원래 베트남계 컴퓨터 과학자이자 Google Brain의 머신 러닝 선구자인 Lê Viết Quốc에 의해 개발된 seq2seq는 대규모 언어 모델과 대화형 에이전트를 포함한 많은 현대 AI 시스템의 기초가 되었다.
seq2seq의 핵심 아이디어는 두 개의 신경망을 사용하는 것이다. 입력 시퀀스를 처리하고 그 정보를 고정 길이 벡터(또는 일련의 컨텍스트 벡터)로 압축하는 인코더와, 해당 표현에서 출력 시퀀스를 단계별로 생성하는 디코더가 그것이다. 이 아키텍처는 2014년에 처음 제안되었으며, 이후 어텐션 메커니즘과 트랜스포머 모델의 도입으로 병목 문제와 병렬화 부족과 같은 한계를 해결하면서 진화해 왔다.
역사적 기원
seq2seq의 개념적 기원은 정보 이론과 기계 번역의 잡음 채널 모델에 있다. 1947년에 이미 기계 번역의 선구자인 Warren Weaver는 다음과 같이 언급했다. "번역 문제가 암호학의 문제로 취급될 수 있을지 자연스럽게 궁금해진다. 러시아어 기사를 볼 때 나는 이렇게 말한다. '이것은 실제로 영어로 쓰여 있지만, 이상한 기호로 코딩되어 있다. 이제 나는 그것을 해독할 것이다.'" 이 관점은 번역을 인코딩-전송-디코딩 과정으로 보았으며, 이는 인코더-디코더 구조에 직접적인 영감을 주었다.
2010년대 초반, 연구자들은 시퀀스 변환 작업을 위한 신경망 기반 인코더-디코더 모델을 개발하기 시작했다. seq2seq의 창시자로 가장 흔히 인용되는 두 논문은 모두 2014년에 발표되었다. 하나는 Google Brain에서 근무한 Ilya Sutskever, Oriol Vinyals, Quoc V. Le의 논문이었고, 다른 하나는 몬트리올 대학교와 Jacobs University의 Kyunghyun Cho, Bart van Merriënboer, Dzmitry Bahdanau, Yoshua Bengio의 논문이었다. 이 논문들은 인코더와 디코더 모두에 순환 신경망(RNN), 특히 장단기 메모리(LSTM) 네트워크를 사용할 것을 제안했다.
병목 문제와 어텐션
원래의 seq2seq 모델은 고정 길이 인코딩 벡터를 사용했으며, 이는 '병목' 문제를 만들었다. 긴 입력 시퀀스의 경우 모든 필요한 세부 정보를 단일 벡터로 압축하기 어렵기 때문에 정보가 손실되는 경향이 있었다. 이를 해결하기 위해 Bahdanau 등은 2014년에 어텐션 메커니즘을 도입했다. RNNsearch라고 불리는 그들의 모델은 디코더가 디코딩 중에 소스 문장을 '검색'할 수 있게 했으며, 이는 입력의 관련 부분을 다시 참조하는 과정을 효과적으로 모방했다. 어텐션은 인코더의 은닉 상태의 가중 합을 계산하여 각 디코딩 단계에 대한 컨텍스트 벡터를 생성했으며, 이를 통해 디코더가 모든 입력 위치에 직접 접근할 수 있게 되어 병목 문제를 해결했다.
트랜스포머 혁명
RNN 기반 seq2seq 모델의 중요한 한계는 병렬화의 어려움이었는데, 순환 처리는 본질적으로 순차적이기 때문이다. 2017년 Vaswani 등(Jakob Uszkoreit과 Lukasz Kaiser를 포함한 주요 기여자)에 의한 트랜스포머 아키텍처의 발표는 순환 인코더를 셀프 어텐션 트랜스포머 블록('인코더 블록'이라고 함)으로 대체하고 순환 디코더를 크로스 어텐션 인과 마스킹 트랜스포머 블록('디코더 블록'이라고 함)으로 대체함으로써 이 문제를 해결했다. 이는 병렬 하드웨어에서 훨씬 더 빠른 훈련을 가능하게 했으며, 대규모 언어 모델 및 생성형 AI 시스템과 같은 대규모 모델의 개발로 이어졌다.
아키텍처
seq2seq 아키텍처는 인코더와 디코더라는 두 가지 주요 구성 요소로 이루어져 있다.
인코더
인코더는 입력 시퀀스(일반적으로 토큰 또는 단어의 시퀀스)를 처리하고 그 필수 정보를 포착한다. RNN 기반 인코더에서 이 정보는 네트워크의 은닉 상태에 저장된다. 어텐션이 있는 경우 인코더는 각 입력 위치에 대한 일련의 은닉 상태도 생성하며, 이는 컨텍스트 벡터를 계산하는 데 사용된다. 인코더는 양방향일 수 있으며, 이는 문맥을 더 잘 포착하기 위해 양방향으로 입력을 읽는 것을 의미한다.
디코더
디코더는 인코더의 컨텍스트 벡터와 은닉 상태를 가져와 출력 시퀀스를 자동 회귀 방식으로 생성하며, 한 번에 하나의 요소를 생성한다. 각 단계에서 이전에 생성된 요소, 컨텍스트 벡터 및 입력 정보를 고려하여 다음 요소를 예측한다. 어텐션이 있는 모델에서 컨텍스트 벡터와 디코더의 은닉 상태는 연결되어 어텐션 은닉 벡터를 형성하며, 이는 다음 단계의 입력으로 사용된다. 디코더는 훈련 중에 미래 토큰을 미리 보지 못하도록 인과 마스킹되는 경우가 많다.
훈련과 예측
seq2seq 모델에는 훈련과 예측 사이에 미묘한 차이가 있다. 훈련 중에는 입력 및 출력 시퀀스가 모두 알려져 있으므로 '교사 강제'라는 기술을 사용할 수 있다. 교사 강제에서 디코더의 각 단계 입력은 모델이 예측한 것과 관계없이 훈련 데이터의 참조 출력 토큰이다. 이는 수렴을 가속화하고 훈련을 안정화한다.
예측(추론) 중에는 참조 출력을 사용할 수 없으므로 디코더는 자체적으로 이전에 생성된 토큰을 다음 단계의 입력으로 사용해야 한다. 이는 오류 누적으로 이어질 수 있으며, 시퀀스 초반의 실수가 전파될 수 있다. 이를 완화하기 위해 빔 검색과 같은 기술이 여러 후보 시퀀스를 탐색하고 가장 가능성 높은 것을 선택하는 데 자주 사용된다.
응용 분야
seq2seq 모델은 다양한 작업에 적용되어 왔다. 기계 번역에서는 2016년 Google 번역을 Google 신경망 기계 번역으로 개편하는 데 기여했다. 다른 응용 분야로는 이미지 캡셔닝(인코더가 합성곱 신경망을 통해 이미지를 처리하고 디코더가 텍스트 설명을 생성), 챗봇과 같은 대화형 모델, 음성 인식(오디오 시퀀스를 텍스트로 매핑), 텍스트 요약(긴 문서를 간결한 요약으로 압축)이 있다. 이 아키텍처는 또한 인공지능 시스템에서 사용되는 많은 현대 트랜스포머 기반 모델의 기반이 된다.
우선권 분쟁
seq2seq의 발명을 둘러싸고 주목할 만한 우선권 분쟁이 있다. word2vec과 RNNLM 개발로 알려진 Tomáš Mikolov는 문장 쌍에 신경 언어 모델을 사용하고 첫 번째 문장을 본 후 번역을 생성하는 아이디어를 구상했으며, 이를 seq2seq 기계 번역과 동일시한다고 주장한다. 그는 Google Brain에서 Ilya Sutskever와 Quoc Le에게 이 아이디어를 언급했지만, 그들이 2014년 논문에서 그를 인정하지 않았다고 밝혔다. Sutskever 등의 논문은 핵심 창시자로 널리 인정받지만, Mikolov의 기여는 연구 커뮤니티에서 여전히 논쟁의 대상이다.
유산과 영향
seq2seq는 머신 러닝 분야에 깊은 영향을 미쳤다. 이는 시퀀스 변환 작업에서 이제 표준이 된 인코더-디코더 패러다임을 도입했다. 원래 seq2seq를 위해 개발된 어텐션 메커니즘은 OpenAI, Anthropic, Google DeepMind가 개발한 것과 같은 현대 대규모 언어 모델을 구동하는 트랜스포머 아키텍처의 기본 구성 요소가 되었다. seq2seq의 원리는 또한 AWS Trainium 및 Azure와 같은 특수 하드웨어 및 클라우드 서비스에 적용되며, 이러한 모델의 훈련 및 추론에 최적화되어 있다. 2020년대 초반 현재 seq2seq는 딥 러닝 교육 과정과 연구의 핵심 개념으로 남아 있지만, 많은 프로덕션 시스템은 그 기반 위에 구축된 트랜스포머 기반 아키텍처로 전환되었다.