AI 해부교실 · Part 4 트랜스포머 이전 이야기
42장 번역기의 구조
Q. 순서도 길이도 다른 두 언어를, AI는 어떻게 번역할까요?
- '나는 오늘 학교에 간다'는 영어로 'I go to school today'. 순서도 단어 수도 달라서 하나씩 바꿀 수 없어요.
- 2014년 서츠케버(Sutskever) 연구팀은 RNN 두 개를 이었어요. 읽는 인코더와 쓰는 디코더, 이걸 seq2seq라고 해요.
- 인코더는 한국어를 한 단어씩 읽으며 쪽지를 고쳐 써요. 마지막 쪽지에 문장 전체의 뜻이 담겨요.
- 디코더는 그 쪽지를 받아 영어를 한 단어씩 써요. 쓴 단어는 다시 입력으로 들어가요. 2장의 자기회귀와 같아요.
- 그런데 쪽지 크기는 정해져 있어요. 네 단어든 마흔 단어든, 문장 전체를 같은 크기의 쪽지 하나에 꾹 눌러 담아야 해요.
- 이게 병목이에요. 병의 좁은 목으로 모든 뜻이 지나가야 하죠. 그래서 문장이 길수록 번역이 나빠졌어요.
- 디코더가 단어를 쓸 때마다 원문을 다시 볼 수 있다면 어떨까요? 그 아이디어가 43장의 어텐션이에요.
한 장 요약
- seq2seq(2014): 인코더 RNN이 읽고, 디코더 RNN이 한 단어씩 쓴다.
- 인코더는 문장 전체를 정해진 크기의 쪽지(벡터) 하나에 담아 넘긴다.
- 병목: 문장이 길수록 쪽지 하나에 다 못 담아서 번역이 나빠진다.