임베딩 contract
임베딩 모델 은 string 받아서 고정 길이 float 리스트, 즉 벡터 를 돌려주는 신경망이야. 학습할 때 비슷한 의미의 텍스트가 가까운 벡터를 만들도록 훈련됨. 각 차원이 뭘 의미하는지는 본인이 못 골라 — 모델이 수십억 문서로 사전학습하면서 알아서 배운 거야.
첫날부터 두 가지 박아둬:
- 같은 모델로 query 와 document 둘 다 인코딩. 모델 섞으면 유사도 자체가 무의미해 — 벡터들이 서로 다른 좌표계에 살거든.
- 벡터에는 차원이 있어. 흔한 사이즈: 384 (작고 빠름), 768 (중간), 1024–1536 (프로덕션 sweet spot), 3072 (OpenAI / Voyage 최상위). 차원 클수록 미묘한 의미를 더 잡지만 저장도 비교도 비싸져.
로컬에서 임베딩 한번 돌려봐
가장 쉬운 첫걸음은 sentence-transformers 에 작은 모델. CPU 에서 돌고, 가중치는 한 번만 받고, NumPy array 돌려줘서 바로 까볼 수 있어. 벡터 한번 print 해보고 관련된 두 문장이 무관한 두 문장보다 가깝다는 거 눈으로 보면, 이후 코스는 그냥 엔지니어링이야.