시퀀스 대 시퀀스(Seq2Seq) 모델은 입력 시퀀스를 출력 시퀀스로 변환하도록 설계된 딥러닝 모델의 한 종류로, 입력과 출력 시퀀스의 길이가 다를 수 있습니다. 이 기능은 특히 자연어 처리(NLP)와 같은 광범위한 작업에 매우 강력하며, 음성 인식과 같은 다른 영역이나 순차적 데이터와 관련된 특정 컴퓨터 비전 문제에도 적용할 수 있습니다. Sutskever 등의"신경망을 이용한 시퀀스 간 학습", Cho 등의"통계적 기계 번역을 위한 RNN 인코더-디코더를 이용한 구문 표현 학습" 등의 논문에서 소개된 핵심 아이디어는 기계가 가변 길이의 시퀀스 변환을 처리하는 방식을 혁신적으로 변화시켰습니다.
인코더-디코더 아키텍처
대부분의 Seq2Seq 모델의 기본 구조는 인코더-디코더 아키텍처입니다:
- 인코더: 이 부분은 전체 입력 시퀀스(예: 프랑스어 문장)를 단계별로 처리하며, 일반적으로 LSTM(장단기 메모리) 또는 GRU(게이트 순환 신경망) 와 같은 순환 신경망(RNN) 을 사용합니다. 그 목표는 입력 시퀀스의 정보를 "컨텍스트 벡터" 또는 "사고 벡터"라고 하는 고정된 크기의 내부 표현으로 압축하는 것입니다. 이 벡터는 입력 시퀀스의 본질 또는 의미를 포착하는 것을 목표로 합니다.
- 디코더: 이 부분은 인코더에서 생성된 문맥 벡터를 받아 단계별로 출력 시퀀스(예: English 번역된 문장)를 생성합니다. 또한 일반적으로 컨텍스트 벡터와 이전 단계에서 생성된 요소에 따라 각 시간 단계에서 하나의 요소(예: 단어 또는 문자)를 생성하는 RNN입니다.
이 기본 구조를 크게 개선한 것은 Bahdanau 외의 논문"정렬 및 번역 공동 학습을 통한 신경망 기계 번역"에 자세히 설명된 주의 메커니즘의 도입입니다. 주의 메커니즘은 디코더가 출력 시퀀스의 각 요소를 생성할 때 고정된 크기의 단일 컨텍스트 벡터에만 의존하지 않고 입력 시퀀스의 다른 부분에 선택적으로 집중할 수 있게 해줍니다. 특히 긴 시퀀스의 경우 성능이 크게 향상되었습니다. 이 개념은 주의 메커니즘에 전적으로 의존하는 트랜스포머와 같은 아키텍처를 위한 길을 열었으며, 재귀를 완전히 없애고 BERT 및 GPT와 같은 모델의 토대가 되었습니다.
실제 애플리케이션
Seq2Seq 모델은 입력과 출력이 순차적이지만 길이나 구조가 일대일 대응이 아닐 수 있는 작업에 탁월합니다. 주요 응용 분야는 다음과 같습니다:
- 기계 번역: 한 언어에서 다른 언어로 텍스트 번역(예: Google 번역 또는 DeepL 번역기 같은 서비스 제공). 이것은 Seq2Seq 모델의 첫 번째 주요 성공 중 하나였습니다.
- 텍스트 요약: 긴 문서나 기사에서 간결한 요약을 생성하는 기능입니다. 입력은 긴 텍스트 시퀀스이고 출력은 짧은 요약 시퀀스입니다.
- 대화형 AI / 챗봇: 대화 시스템에서 응답 생성. 입력은 사용자의 쿼리 또는 문장으로, 출력은 챗봇의 응답으로 이루어집니다. Google 다이얼로그플로우와 같은 플랫폼에서 이러한 기술을 활용합니다.
- 음성 인식: 음성 오디오(일련의 오디오 기능)를 텍스트(일련의 단어)로 변환하는 작업입니다.
- 이미지 캡션: 이미지에 대한 텍스트 설명(출력 시퀀스)을 생성하는 것(입력 시퀀스, 종종 CNN에서 추출한 특징으로 표현됨). 입력이 엄격하게 순차적이지는 않지만, 출력 생성 프로세스는 Seq2Seq 패러다임에 부합합니다.
- 코드 생성: 자연어 설명을 기반으로 프로그래밍 코드를 생성합니다.
주요 개념 및 고려 사항
Seq2Seq 모델 구축 및 훈련에는 몇 가지 중요한 개념이 포함됩니다:
- 임베딩: 입력 단어 또는 토큰은 일반적으로 인코더에 입력되기 전에 고밀도 벡터 표현으로 변환됩니다.
- 시간을 통한역전파 (BPTT): 시퀀스 길이에 따라 네트워크를 전개하여 RNN을 훈련하는 표준 방식입니다.
- 긴 시퀀스 처리하기: 기본 RNN은 소실 그라디언트 문제와 같은 문제로 인해 긴 종속성으로 인해 어려움을 겪습니다. LSTM과 GRU는 이러한 문제를 완화하기 위해 설계되었으며, 주의 메커니즘은 긴 시퀀스에 대한 성능을 더욱 향상시킵니다. 트랜스포머 모델은 여기에 탁월합니다.
- 평가 메트릭: 작업에 따라 BLEU(번역용), ROUGE(요약용) 또는 정확도/F1 점수(시퀀스 라벨링용)와 같은 메트릭이 사용됩니다. Ultralytics 성능 메트릭에 대한 지침을 제공합니다.
Seq2Seq과 다른 아키텍처 비교
RNN을 기반으로 하는 Seq2Seq 모델은 획기적이었지만, 이 분야는 진화해 왔습니다:
- 표준 RNN: 일반적으로 시퀀스를 동일한 길이의 시퀀스에 매핑하거나 전체 시퀀스를 분류하며, 가변 출력 길이에 대한 인코더-디코더 구조의 유연성이 부족합니다.
- 트랜스포머: 이제 RNN 기반 Seq2Seq 모델에서 처리하던 많은 NLP 작업의 주류를 차지하게 되었습니다. 이 모델은 반복 대신 자체 주의와 위치 인코딩을 사용하여 병렬화를 개선하고 장거리 종속성을 더 효과적으로 포착할 수 있습니다. Ultralytics 지원하는 Baidu의 RT-DETR 같은 모델에는 객체 감지를 위한 Transformer 구성 요소가 통합되어 있습니다.
- CNN: 이미지와 같은 그리드형 데이터에 주로 사용됩니다(예 Ultralytics YOLO 모델 등) 이미지와 같은 격자형 데이터에 주로 사용되지만, 시퀀스 작업에 적용되기도 합니다.
Seq2Seq은 종종 RNN 기반 인코더-디코더 구조를 의미하지만, 중간 표현을 사용하여 입력 시퀀스를 출력 시퀀스에 매핑하는 일반적인 원칙은 번역 및 요약에 사용되는 트랜스포머를 비롯한 많은 최신 아키텍처의 핵심입니다. 다음과 같은 도구 PyTorch 와 TensorFlow 와 같은 도구는 기존 및 최신 시퀀스 모델을 모두 구현하기 위한 빌딩 블록을 제공합니다. 교육 프로세스 관리는 Ultralytics HUB와 같은 플랫폼을 사용하여 간소화할 수 있습니다.