도서관에서 원하는 책을 찾는 상황
여러분은 도서관에 왔습니다. 오늘 찾고 싶은 것은 “트랜스포머를 처음 배우는 사람을 위한 책”입니다.
프로그래밍 기초와 문법을 다루는 책
행렬과 미분을 중심으로 설명하는 책
Attention부터 Transformer까지 쉽게 설명하는 책
여러 나라의 요리법을 소개하는 책
우리는 모든 책을 처음부터 끝까지 읽지 않았습니다. 먼저 찾고 싶은 내용을 정하고, 책들의 표지와 제목을 비교한 뒤, 가장 알맞은 책에서 실제 내용을 읽었습니다.
세 가지 역할을 아주 쉽게 나누어 보자
지금 내가 찾고 있는 것이 무엇인지 나타냅니다.
각 책이 어떤 책인지 알아보기 위한 표지와 제목 같은 정보입니다.
“나는 트랜스포머 책이야.”
책을 선택한 뒤 실제로 읽고 가져올 내용입니다.
왜 Key와 Value를 따로 나눌까?
도서관에서 책을 찾을 때를 다시 생각해 봅시다. 책을 찾기 위해 처음부터 모든 페이지를 읽으면 너무 오래 걸립니다.
책을 고르기도 전에 수천 권의 내용을 모두 읽어야 합니다.
너무 느리고 비효율적입니다.
먼저 제목과 표지로 관련 있는 책을 찾습니다.
선택한 뒤 실제 내용을 읽습니다.
이제 문장으로 돌아가 보자
다음 문장에서 He가 누구인지 이해하려고 합니다.
컴퓨터는 He가 찾고 있는 관계를 기준으로 문장 속 여러 단어를 하나씩 살펴봅니다.
한 단어에서 Query, Key, Value가 모두 만들어진다
Self-Attention에서는 문장 속 모든 단어가 다른 단어를 찾아보기도 하고, 다른 단어에게 선택되기도 하며, 자신의 정보를 내어주기도 합니다.
이 단어가 지금 어떤 정보를 찾고 있는지 나타냅니다.
다른 단어가 나를 찾을 수 있도록 내 특징을 보여줍니다.
다른 단어가 나를 참고할 때 실제로 전달할 내용입니다.
현재 단어가 바뀌면 찾는 정보도 달라진다
아래에서 현재 이해하려는 단어를 선택해 보세요. Query가 달라지면 잘 맞는 Key와 가져올 Value도 달라집니다.
문장
세 가지 역할
아직 남은 질문이 있다
이제 Query, Key, Value가 각각 무슨 역할을 하는지는 이해했습니다. 하지만 컴퓨터는 여전히 한 가지 계산을 해야 합니다.
사람은 Tom이 He와 관련 있다는 것을 자연스럽게 알지만, 컴퓨터는 그 관련성을 숫자로 계산해야 합니다.
핵심 정리
- Query는 현재 찾고 있는 정보가 무엇인지 나타냅니다.
- Key는 각 단어가 어떤 단어인지 비교할 수 있게 보여주는 단서입니다.
- Value는 해당 단어가 선택되었을 때 실제로 가져올 정보입니다.
- Key는 검색용 단서이고, Value는 실제 내용이므로 역할이 다릅니다.
- Self-Attention에서는 모든 단어에서 Query, Key, Value가 각각 만들어집니다.
- 다음 단계는 Query와 Key가 얼마나 잘 맞는지 숫자로 계산하는 것입니다.