통계 실험실 차트
넘스탯 로고

넘스탯

DATA ANALYTICS & INSIGHTS

확률에서 LLM까지 – 데이터 사이언스 전문 교육 플랫폼

학습 메뉴
도움말

번역 모델 실습

Encoder-Decoder + 어텐션 — 어순 뒤집기를 스스로 배우는 모델을 브라우저 실제 학습으로
처음이라면 텍스트 생성 실습부터 보는 것을 추천합니다

원하는 개념·랩·가이드를 검색해보세요

Ctrl K
딥러닝 실습실로Transformer 상세 이론

"나는 사과를 먹는다"의 "먹는다"는 영어에서 두 번째로 갑니다 — 이 어순 뒤집기를 모델이 스스로 알아내는 장면을 봅니다

한국어는 동사가 문장 끝에 오고(S-O-V), 영어는 주어 바로 뒤에 옵니다(S-V-O). 단어를 순서대로 바꿔치기하는 방식으로는 절대 좋은 번역이 나올 수 없는 이유입니다. 이 실습에서는 장난감 한→영 병렬 말뭉치로 인코더-디코더+어텐션 모델을 브라우저에서 직접 학습시키고, 번역할 때 모델 내부에서 영어 동사를 만드는 순간 한국어 문장 끝의 동사를 쳐다보는 어텐션 가중치를 히트맵으로 확인합니다. 마지막에는 학습에 한 번도 나오지 않은 단어 조합을 번역시켜, 모델이 문장을 암기한 것인지 패턴을 배운 것인지 시험합니다.
이 페이지에서 배우고 나면
  • "번역기는 단어를 1:1로 치환한다"는 통념에 대해, 어텐션 히트맵에서 대각선을 벗어난 칸(어순 재배열)을 직접 짚어 반박할 수 있습니다.
  • 히트맵의 행(생성 중인 영어 단어)과 열(참고한 한국어 단어)을 올바르게 읽고, 번역 결과에서 동사·부사의 정렬 위치를 찾아낼 수 있습니다.
  • 학습에 없던 단어 조합을 직접 만들어 번역시키고, 그 결과를 근거로 "암기"와 "재조합 일반화"를 구분해 판단할 수 있습니다.
1. 장난감 병렬 말뭉치 — 생성 규칙 공개

주어 4 × 동사 5 × 목적어 8 × 부사 5+없음 = 960의 한→영 문장 쌍을 코드로 생성합니다. 한국어는 주어-(부사)-목적어-동사(SOV) 순서, 영어는 주어-동사-목적어-(부사)(SVO) 순서입니다. 이 중 40%만 무작위로 학습에 쓰고, 나머지는 모델이 본 적 없는 조합으로 남겨 일반화를 시험합니다.

정직한 단순화: 동사 원형을 유지하려고 3인칭 단수 주어를 뺐고, 관사가 필요 없는 영어 명사(복수/불가산)만 썼으며, 한국어 조사는 단어에 붙여 한 토큰으로 취급합니다. "물을 본다"처럼 의미가 어색한 조합도 문법 구조 학습용으로 허용합니다. 실제 언어 번역이 아니라 어순 재배열을 관찰하기 위한 실험 장치입니다.
2. 학습 — 병렬 문장 쌍만 보고 규칙을 스스로 찾기

임베딩 16 · 인코더/디코더 Elman RNN(은닉 32) · dot 어텐션 · teacher forcing · Adam(학습률 0.005) · 30 에폭

3. 문장을 만들어 번역시키기

나는 오늘 사과를 먹는다

아직 학습 전 — 무작위 가중치의 출력을 먼저 구경해 보세요
직접 해보기 — 실습 과제
  1. 학습 전과 후: 학습을 시작하기 전에 먼저 문장을 하나 번역시켜 보세요 (무작위 가중치의 출력이 나옵니다). 학습 완료 후 같은 문장을 다시 번역시키세요. 이 모델에 번역 규칙을 넣어 준 사람은 없습니다 — 병렬 예문 쌍만 보고 규칙에 해당하는 것을 스스로 찾아냈습니다.
  2. 동사가 앞으로 점프하는 순간: "나는 사과를 먹는다"(부사 없음)를 번역하고, 영어 동사 행에서 가장 진한 칸을 찾으세요. 점선 대각선(1:1 치환 기준)이 아니라 한국어 문장 끝의 "먹는다" 열 쪽으로 쏠리는 경향이 보입니다. 대각선 이탈이 곧 어순 재배열의 증거입니다.
  3. 부사를 넣어 보기: 같은 문장에 부사("오늘" 등)를 넣은 버전과 뺀 버전을 번역하고 두 히트맵을 비교하세요. 한국어에서 두 번째에 있던 부사가 영어에서는 문장 끝에서 정렬됩니다 — 재배열이 동사 하나의 특수 규칙이 아니라 품사 역할별로 일관되게 일어납니다.
  4. 한 번도 본 적 없는 문장: "학습에 없던 조합" 배지가 뜨는 조합을 골라 번역시키세요. 처음 보는 조합인데도 대부분 맞힙니다 — 문장을 통째로 외운 것이라면 불가능한 일입니다. 모델은 문장이 아니라 단어의 역할과 어순 패턴을 배웠습니다. 학습 후 표시되는 미학습 조합 정확도(실측)와 틀린 사례 목록도 확인하세요.
  5. 다시 학습해 비교하기: "다시 학습"을 눌러 새 무작위 분할·초기화로 한 번 더 학습시키고, 같은 문장의 히트맵 선명도와 정확도를 비교하세요. 실행마다 결과가 조금씩 다른 것이 정상이며, 한 번의 실험으로 단정할 수 없는 이유입니다.
개념 정리
고정 벡터의 병목과 어텐션

초기 Encoder-Decoder(Sutskever et al., 2014)는 문장 전체를 고정 길이 벡터 하나로 압축했고, 문장이 길어질수록 성능이 떨어졌습니다. Bahdanau et al.(2015)은 디코더가 매 단어를 만들 때 입력 문장의 어디를 볼지를 가중치(어텐션)로 배우게 해 이 병목을 완화했습니다 — 이 실습에서 본 히트맵이 바로 그 가중치입니다.

Bahdanau vs Luong 스코어
어텐션 점수를 계산하는 방식이 다릅니다:
  • Bahdanau (2015): 가산형 — vTtanh(W·s + U·h). 이전 디코더 상태로 계산
  • Luong (2015): 곱셈형 — dot(h_dec·h_enc), general(h_dec·W·h_enc) 등. 현재 디코더 상태로 계산
이 실습은 Luong의 dot 스코어를 단순화해 사용합니다.
여기의 어텐션 vs Self-Attention

이 실습의 어텐션은 출력(영어)이 입력(한국어)을 쳐다보는 cross-attention입니다. 반면 Self-Attention 실습에서 다루는 것은 한 문장 안의 단어들이 서로를 쳐다보는 방식입니다. "어디를 볼지 배운다"는 아이디어는 같고, 이 아이디어를 문장 내부로 돌린 것이 Transformer(2017), 그리고 GPT 계열로 이어집니다.

신경망 기계 번역 연표
  • 2014 — Cho et al. (EMNLP): RNN Encoder-Decoder. 훗날 GRU로 불리는 게이트 유닛의 기원 (당시에는 통계적 번역 시스템의 점수 재평가에 사용)
  • 2014 — Sutskever, Vinyals & Le (NIPS): LSTM 기반 seq2seq로 신경망 단독 번역을 입증
  • 2015 — Bahdanau, Cho & Bengio (ICLR): 어텐션 도입 — 고정 길이 벡터 병목을 완화하고 정렬을 함께 학습
  • 2015 — Luong, Pham & Manning (EMNLP): dot/general/concat 스코어와 global/local 어텐션 비교
  • 2016 — GNMT (Wu et al.): LSTM+어텐션 기반 신경망 번역을 구글 번역 서비스에 배포
  • 2017~ — Transformer (Vaswani et al., NeurIPS): self-attention만으로 번역 최고 성능. 이후 현대 상용 번역기는 Transformer 계열이 표준
다음: 어텐션을 문장 안으로 돌리면

모델은 번역할 때 "어디를 볼지"를 스스로 배웠습니다. 그렇다면 문장 안의 단어들끼리 서로를 보게 하면 어떨까요? 그 아이디어 하나가 Transformer, 그리고 ChatGPT로 이어집니다. 실습을 마쳤다면 모델 성능 비교 실습도 다시 방문해 보세요 — 직접 길러 본 RNN과 Attention의 비교가 다르게 보일 겁니다.

더 깊이 학습하기
  • Sutskever, Vinyals & Le (2014), NIPS: "Sequence to Sequence Learning with Neural Networks"
  • Cho et al. (2014), EMNLP: "Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation"
  • Bahdanau, Cho & Bengio (2015), ICLR: "Neural Machine Translation by Jointly Learning to Align and Translate"
  • Luong, Pham & Manning (2015), EMNLP: "Effective Approaches to Attention-based Neural Machine Translation"
  • Wu et al. (2016), arXiv: "Google's Neural Machine Translation System" — GNMT, 2016년 서비스 적용
  • Jain & Wallace (2019), NAACL: "Attention is not Explanation" — 어텐션 해석에 대한 주의