Project NEUROVERSE
목차

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

임베딩 — 단어를 숫자로 바꾸는 법

모델은 토큰을 숫자 묶음으로 바꿉니다. 비슷한 뜻의 말은 비슷한 숫자, 즉 지도에서 가까운 점이 됩니다.

2부의 뉴런은 숫자를 받아서 계산했습니다. 그런데 모델에 들어오는 건 “고양이”, “사과” 같은 토큰입니다. 글을 어떻게 숫자로 바꿀까요?

앞 장에서 토큰은 결국 번호가 된다고 했습니다. 그런데 번호만으로는 부족합니다. “고양이”가 1234번, “강아지”가 5678번이라고 해서, 1234와 5678이라는 숫자가 두 동물이 비슷하다는 걸 알려주진 않으니까요.

그래서 모델은 토큰마다 숫자 여러 개짜리 묶음을 하나씩 붙입니다. 이걸 임베딩이라고 합니다. 숫자 두 개짜리 묶음이라면 평면 위의 한 점(가로 위치, 세로 위치)으로 그릴 수 있습니다.

단어를 눌러보세요. 지도에서 가장 가까운 단어 3개를 찾아줘요.

단어를 하나 골라보세요.

위치는 설명을 위해 직접 배치한 거예요. 실제 임베딩은 숫자가 수백~수천 개인 묶음이라 평면에 그대로 그릴 수 없어요.

지도로 생각하기

이 지도에서는 뜻이 비슷한 말끼리 가까이 모여 있습니다. 과일은 과일끼리, 동물은 동물끼리요. “강아지”를 누르면 가장 가까운 게 고양이, 사자, 호랑이로 나옵니다.

실제 모델의 임베딩도 이런 성질을 가집니다. 핵심은 아무도 이렇게 배치하라고 알려주지 않았다는 것입니다. 임베딩의 숫자도 가중치처럼 처음엔 아무렇게나 정해져 있다가, 다음 토큰 맞히기를 학습하는 동안 조금씩 고쳐집니다. “고양이”와 “강아지”는 비슷한 문장 자리에 자주 나오니까(“___에게 밥을 줬다”), 다음 말을 잘 맞히려면 둘을 비슷하게 다루는 게 유리하고, 그러다 보니 숫자도 비슷해집니다.

이게 왜 쓸모 있을까

  • 모델 안에서: 비슷한 말을 비슷하게 다룰 수 있습니다. “강아지”에 대해 배운 게 “고양이”에도 어느 정도 통합니다.
  • 검색에서: 문장 전체도 숫자 묶음으로 바꿀 수 있습니다. 그러면 단어가 똑같지 않아도 뜻이 가까운 문서를 찾을 수 있습니다. “밥 먹을 곳”을 검색해도 “식당” 문서를 찾는 식입니다. 4부의 RAG에서 이걸 씁니다.
더 깊게 · 임베딩으로 하는 '단어 계산'

임베딩은 숫자 묶음이라 빼고 더할 수 있습니다. 유명한 예가 “왕 − 남자 + 여자 ≈ 여왕”입니다. 왕의 숫자에서 남자의 숫자를 빼고 여자의 숫자를 더하면, 여왕의 숫자와 가까운 점이 나온다는 것입니다. 2013년에 나온 단어 임베딩 연구에서 널리 알려진 예시입니다.

다만 이 예시는 실제보다 깔끔하게 소개되는 경우가 많습니다. 모든 단어 관계가 이렇게 딱 맞아떨어지지는 않습니다. “뜻의 차이가 일정한 방향으로 나타나는 경향이 있다” 정도로 이해하면 됩니다.

“가깝다”는 보통 두 점 사이의 거리나, 두 화살표가 같은 방향을 가리키는 정도(코사인 유사도)로 잽니다.

정리

  • 모델은 토큰마다 숫자 묶음(임베딩) 을 붙여서 계산합니다.
  • 뜻이 비슷한 말은 가까운 숫자가 되도록 학습 과정에서 저절로 정해집니다.
  • 문장도 임베딩으로 바꿔서, 뜻이 비슷한 문서를 찾는 데 씁니다.

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