트랜스포머Transformer
문장 속 단어들이 서로를 동시에 참고해 뜻을 잡는 AI 구조
- 트랜스포머는 문장 속 단어들을 한 줄로 세우는 대신 한자리에 모아 동시에 서로를 보게 만든 구조예요. 오늘날 대화형 인공지능 대부분이 이 구조 위에 올라가 있어요.
- 단어마다 질문과 명찰과 서류를 하나씩 들고 있어요. 질문과 명찰이 잘 맞는 상대의 서류를 더 많이 가져오는 일이 어텐션이에요.
- 단어들이 모인 이 회의를 여러 판 동시에 열고, 층층이 수십 번 반복해요. 아래층은 가까운 관계를, 위층은 글 전체의 흐름을 잡아요.
- 모두가 동시에 마주 보면 순서를 알 수 없어서 단어마다 자리 번호를 따로 붙여 줘요.
- 꼭대기 층에서 하는 일은 다음에 올 단어 하나를 고르는 것뿐이에요. 이 고르기를 수백 번 반복해 긴 답이 나와요.
목차
1비유로 이해하기
"배가 고파서 배를 먹었다." 이 문장을 원탁 회의에 올려 볼게요. 단어들이 한 줄로 서서 차례를 기다리는 대신, 네 단어가 동그란 탁자에 둘러앉아 서로를 마주 봐요. 옆자리든 건너편이든 눈만 들면 바로 보여요.
안건은 하나예요. "내 뜻을 정하려면 누구 말을 들어야 하지?" 두 번째 "배"는 옆에 앉은 "먹었다"를 유심히 보고 자기가 과일이라는 걸 알아채요. 첫 번째 "배"는 "고파서"를 보고 신체 부위로 자리를 잡아요. 누구를 얼마나 볼지 정하는 이 눈길이 어텐션이에요. 눈길은 한 방향으로만 가지 않아요. 네 단어가 동시에 서로를 보고, 회의 한 판이 끝나면 저마다 뜻이 조금씩 또렷해져요.
2자세히 알아보기
줄을 세우지 않아요
예전 방식은 단어를 한 줄로 세우고 앞에서부터 하나씩 넘기며 읽었어요. 첫 단어가 읽은 내용을 다음 단어에게 넘기고, 그 단어가 또 다음으로 넘기는 식이에요. 문장이 길어지면 앞쪽 이야기가 뒤로 갈수록 흐려졌어요. 스무 번쯤 손을 거치고 나면 처음 말은 거의 남지 않아요. 앞 차례가 끝나야 다음 차례가 시작되니 속도도 느렸고요.
원탁은 이 두 가지를 한 번에 풀어요. 맨 뒤 단어도 맨 앞 단어를 곧바로 보니 거리가 멀어도 흐려지지 않아요. "어제 산 우산을 오늘 지하철에 두고 내렸다"에서 "두고 내렸다"가 저만치 앞의 "우산"을 곧장 붙잡아요. 게다가 모든 단어가 동시에 점수를 매기니 계산을 잘게 쪼개 그래픽 카드 수천 개에 나눠 맡길 수 있어요. 엄청난 양의 글로 학습시키는 일이 가능해진 건 이 자리 배치 덕분이에요.
질문과 명찰을 맞춰 봐요
원탁에 앉은 단어는 저마다 세 가지를 들고 있어요. 손에 든 질문 쪽지, 가슴에 단 명찰, 그리고 자기 앞에 놓인 서류철이에요. 질문 쪽지에는 "나는 무엇을 찾는가"가, 명찰에는 "나는 무엇을 가진 쪽인가"가, 서류철에는 "내가 실제로 건넬 내용"이 담겨 있어요.
두 번째 "배"의 질문 쪽지에는 "나를 설명해 줄 서술어"가 적혀 있어요. 이 쪽지를 들고 탁자를 한 바퀴 돌며 모든 명찰과 맞춰 봐요. "먹었다"의 명찰과는 잘 맞아 점수가 높고, "고파서"의 명찰과는 덜 맞아 점수가 낮아요. 점수는 한 명만 뽑는 투표가 아니라 나눠 갖는 비율이에요. "먹었다"에 일흔, "고파서"에 스물, 나머지에 열 이런 식이에요.
비율이 정해지면 그대로 서류를 걷어 와요. 점수 높은 쪽 서류는 듬뿍, 낮은 쪽 서류는 조금만 섞어 자기 뜻을 새로 적어요. 회의를 마친 "배"는 들어올 때의 "배"와 다른 단어가 돼요. 문맥이 배어든 "배"예요. 질문이 쿼리, 명찰이 키, 서류가 값이에요.
이 일을 두 번째 "배"만 하는 게 아니에요. 네 단어가 동시에 자기 질문 쪽지를 돌려요. 서로의 차례를 기다릴 일이 없으니 네 번의 계산이 한꺼번에 끝나요. 단어가 천 개여도 마찬가지예요.
회의는 한 판이 아니에요
같은 자리에 앉은 채로 회의가 여러 판 동시에 열려요. 판마다 관심사가 달라요. 어떤 판은 "누가 누구의 짝인가"만 보고, 어떤 판은 "어느 말이 어느 말을 꾸미는가"만 봐요. 앞 문장에 나온 이름만 계속 좇는 판도 있어요.
한 판만 열면 시야가 좁아요. 문법을 보느라 뜻을 놓치거나, 뜻을 보느라 문법을 놓쳐요. 여덟 판, 열두 판이 각자 다른 곳을 보고 결과를 한자리에 모으면 한 단어가 여러 관계를 한꺼번에 챙길 수 있어요. 한 판이 엉뚱한 곳을 봐도 다른 판들이 메워 줘요. 이렇게 나뉜 회의 하나하나를 헤드라고 불러요.
자리 번호가 없으면 뒤죽박죽
동시에 마주 본다는 건 순서를 모른다는 뜻이기도 해요. 원탁에는 앞자리도 뒷자리도 없으니까요. "개가 사람을 물었다"와 "사람이 개를 물었다"는 같은 단어 묶음이지만 뜻은 정반대예요. 순서를 모르면 이 둘이 똑같아 보여요.
그래서 단어를 자리에 앉히기 전에 자리 번호를 함께 붙여 줘요. 번호는 이름표처럼 겉에 붙는 게 아니라 단어의 뜻에 살짝 섞여 들어가요. 같은 단어라도 몇 번째 자리인지에 따라 조금씩 다르게 보이는 이유예요. 이 번호 붙이기를 위치 인코딩이라고 해요.
층을 쌓고, 마지막에 한 단어
한 판의 회의로는 어림도 없어요. 회의를 마친 단어들은 새로 적은 뜻을 들고 위층으로 올라가 똑같은 회의를 다시 열어요. 이 과정을 수십 층 반복해요. 아래층에서는 옆 단어와의 관계처럼 가까운 것을, 위층으로 갈수록 문단 전체의 뜻과 글의 말투처럼 넓은 것을 잡아요. 층마다 무엇을 볼지 사람이 정해 주지는 않아요. 학습을 거치며 저절로 그렇게 나뉘어요.
꼭대기 층에서 나오는 결론은 뜻밖에 단순해요. 다음에 올 단어 후보를 죽 늘어놓고 각각에 가능성 점수를 매기는 일이에요. "배가 고파서 배를" 다음에는 "먹었다"가 높은 점수를, "달렸다"가 낮은 점수를 받아요. 그중 하나를 뽑아 문장 끝에 붙이고, 길어진 문장으로 회의를 처음부터 다시 열어요. 이 반복이 수백 번 이어지며 긴 답변 한 편이 만들어져요.
대화가 길어져도 앞에서 말한 이름을 다시 꺼내 쓸 수 있는 것도 이 구조 덕분이에요. 새 단어를 하나 고를 때마다 그때까지의 문장 전체가 다시 원탁에 오르니까요. 앞부분을 기억해 두는 게 아니라, 매번 처음부터 같이 읽는 셈이에요.
3조금 더 정확하게
원탁도 서류철도 실제로는 없어요. 단어는 먼저 임베딩이라는 숫자 목록으로 바뀌고, 어텐션은 그 숫자들끼리의 곱셈과 덧셈으로 계산돼요. 질문과 명찰과 서류는 각각 쿼리, 키, 값이라는 이름의 숫자 묶음이에요. 남의 문장이 아니라 자기 문장 안에서 서로를 참고하기 때문에 셀프 어텐션이라고 불러요. 한 층에 어텐션만 있는 것도 아니에요. 걷어 온 정보를 각 단어가 혼자 곱씹는 작은 계산 층이 뒤에 따라붙어요.
이전 구조인 RNN (Recurrent Neural Network, 순환 신경망)은 토큰을 순서대로 처리해 계산을 나눠 맡기기 어려웠고 먼 거리의 관계도 약했어요. 트랜스포머는 그 두 가지를 풀었지만 공짜는 아니에요. 모든 단어 쌍의 점수를 계산하니 문장이 2배 길어지면 계산량은 4배가 돼요. 한 번에 다룰 수 있는 길이에 한계가 있는 이유예요.
원래 이 구조는 번역을 위해 인코더와 디코더가 짝을 이룬 형태였어요. 입력을 읽는 쪽이 인코더, 답을 써 내려가는 쪽이 디코더예요. 인코더는 문장 전체를 앞뒤로 다 보지만, 디코더는 아직 쓰지 않은 뒷부분을 미리 볼 수 없어요. 오늘날 대화형 모델 다수는 디코더만 층층이 쌓아 앞의 단어들만 보고 다음 토큰을 예측해요.
4직접 해보기
5흔한 오해
문장을 앞에서부터 한 단어씩 읽는다고 생각하기 쉽지만, 실제로는 들어온 문장 전체를 한꺼번에 펼쳐 놓고 관계를 계산해요. 한 단어씩 나오는 건 답을 쓸 때이지 읽을 때가 아니에요.
트랜스포머가 어떤 회사의 챗봇 이름이라고 생각하기 쉽지만, 실제로는 여러 인공지능이 함께 쓰는 설계 도면이에요. 번역기와 대화형 서비스가 서로 달라도 같은 도면 위에 서 있을 수 있어요.
언어에만 쓰는 구조라고 생각하기 쉽지만, 실제로는 이미지 조각이나 소리 조각도 토큰으로 바꿔 같은 방식으로 처리해요. 그림을 그려 주고 목소리를 알아듣는 도구에도 같은 원탁이 들어 있어요.
7한 줄 요약
그러니까트랜스포머는 단어들을 원탁에 앉혀 서로를 얼마나 볼지 점수 매기게 하고, 그 회의를 수십 층 반복해 다음 한 단어를 고르는 구조예요.
잘못된 내용이나 더 좋은 비유가 있나요? 수정 제안 보내기 · 마지막 수정2026-09-02