Project NEUROVERSE
목차

기초 이론 편 · 3부 ChatGPT는 어떻게 대답을 만들까? — 3.5

어텐션 — AI는 문맥을 어떻게 읽을까

같은 단어도 문맥에 따라 뜻이 다릅니다. 모델은 단어마다 다른 단어를 얼마나 참고할지 정해서 문맥을 읽습니다.

“철수가 영희에게 책을 빌려줬다. 그녀는 정말 고맙다고 했다.”

여기서 “그녀”는 누구일까요? 사람은 바로 “영희”라고 압니다. 그런데 “그녀”라는 단어만 따로 봐서는 알 수 없습니다. 문장의 다른 부분을 봐야 알 수 있죠.

앞 장의 임베딩은 토큰마다 숫자 묶음을 하나씩 붙였습니다. 하지만 “그녀”의 임베딩은 어느 문장에서나 똑같습니다. 이 문장에서 “그녀 = 영희”라는 정보를 넣으려면, 다른 단어들을 보고 숫자를 고쳐야 합니다. 그 일을 하는 게 어텐션(attention, 주목) 입니다.

밑줄 친 단어를 눌러보세요. 그 단어를 이해하려고 앞에 나온 단어들을 얼마나 참고하는지 막대로 보여줘요.

철수가
영희에게
책을
정말

막대 높이는 설명을 위해 직접 정한 예시 값이에요.

어텐션이 하는 일

어텐션은 단어마다 이렇게 합니다.

  1. 다른 단어들을 훑어보고, 지금 나를 이해하는 데 각 단어가 얼마나 중요한지 점수를 매깁니다.
  2. 점수가 높은 단어의 정보를 많이, 낮은 단어의 정보를 조금 섞어서 내 숫자 묶음을 고칩니다.

“그녀는”은 “영희에게”를 많이 참고해서, “영희를 가리키는 그녀”라는 정보가 담긴 숫자로 바뀝니다. “배”라는 단어가 “사과와 배”에 있으면 과일 쪽 정보를, “배를 타고”에 있으면 탈것 쪽 정보를 섞게 되는 것도 같은 원리입니다.

이 “얼마나 참고할지” 점수도 사람이 정하지 않습니다. 다음 토큰을 잘 맞히도록 학습하는 동안 저절로 정해지는 가중치에서 나옵니다.

트랜스포머

어텐션을 중심에 두고 층을 여러 겹 쌓은 신경망 구조를 트랜스포머(Transformer) 라고 합니다. 2017년 구글 연구자들이 발표한 논문 “Attention Is All You Need”에서 소개됐습니다. 지금의 LLM은 대부분 이 구조를 바탕으로 합니다. ChatGPT의 GPT도 “Generative Pre-trained Transformer”의 줄임말입니다.

3부에서 본 걸 이어 붙이면 LLM 안에서 일어나는 일이 이렇게 정리됩니다.

  1. 글을 토큰으로 자르고 (3.2)
  2. 토큰마다 임베딩을 붙이고 (3.4)
  3. 어텐션으로 문맥을 섞는 층을 여러 겹 지나서 (3.5)
  4. 다음 토큰의 확률을 내고, 하나를 뽑습니다 (3.1, 3.3)
더 깊게 · 어텐션이 바꾼 것

트랜스포머 전에는 글을 앞에서부터 한 단어씩 차례로 읽으면서 정보를 넘기는 구조(순환 신경망)를 많이 썼습니다. 이 방식은 문장이 길어지면 앞쪽 정보가 흐려지고, 한 단어씩 차례로 계산해야 해서 느렸습니다.

어텐션은 모든 단어가 다른 모든 단어를 한 번에 볼 수 있습니다. 멀리 떨어진 단어 사이의 관계도 바로 잡고, 계산을 동시에 많이(병렬로) 할 수 있어서 큰 모델을 많은 글로 학습시키기에 유리했습니다.

대신 단점도 있습니다. 단어가 N개면 서로 보는 짝이 N × N개라서, 글이 길어질수록 계산량이 빠르게 늘어납니다. 4부의 “한 번에 읽을 수 있는 길이 제한”과 관련 있는 이야기입니다.

정리

  • 단어의 뜻은 문맥에 따라 달라집니다. 모델은 어텐션으로 다른 단어를 참고해서 문맥을 읽습니다.
  • 어디를 얼마나 볼지도 학습으로 정해집니다.
  • 어텐션을 중심으로 쌓은 구조가 트랜스포머이고, 지금의 LLM 대부분이 이 구조입니다.

이 장을 복사합니다. ChatGPT나 Claude 같은 AI에 붙여넣고 그대로 보내면 AI가 다 읽었다고 답합니다. 그다음 궁금한 걸 물어보세요.