텍스트를 숫자 좌표로 바꾸는 약속
임베딩 모델은 문자열을 받아 길이가 정해진 실수 목록, 곧 벡터를 내놓는 신경망이야. 학습할 때 뜻이 비슷한 텍스트끼리 가까운 벡터가 되도록 익혀. 각 차원이 무엇을 뜻할지는 우리가 정하지 않아. 모델이 수십억 개 문서를 보며 스스로 좌표계를 만든 거야.
처음부터 두 가지를 단단히 기억해:
- 쿼리와 문서는 반드시 같은 모델로 인코딩해. 모델을 섞으면 서로 다른 좌표계의 점을 비교하게 되니 유사도에 의미가 없어.
- 벡터에는 차원 수가 있어. 흔히 384차원은 작고 빠르고, 768차원은 중간, 1024–1536차원은 실전에서 많이 쓰며, OpenAI와 Voyage의 최상위 모델은 3072차원까지 가. 차원이 커지면 미묘한 의미를 더 담을 수 있지만 저장과 비교 비용도 늘어.
로컬에서 첫 벡터를 뽑아봐
가장 쉬운 시작은 sentence-transformers와 작은 모델이야. CPU에서도 돌고 가중치는 한 번만 받으면 돼. 결과가 NumPy 배열이라 바로 들여다볼 수도 있지. 직접 벡터를 출력하고, 관련된 두 문장이 무관한 문장보다 더 가깝다는 걸 눈으로 확인해봐. 그 순간부터 나머지는 신비가 아니라 엔지니어링이 돼.