한 줄 정의

Embedding은 문장, 문서, 이미지 같은 데이터를 모델이 비교할 수 있는 숫자 벡터로 바꾼 결과야. 핵심은 원본을 그냥 숫자로 치환하는 게 아니라, 의미가 비슷한 것끼리 벡터 공간에서도 가깝게 놓이도록 만든다는 점이야.

어떻게 작동하나

임베딩 모델은 입력 데이터를 읽고 고정 길이의 숫자 배열을 만든다. 이렇게 만들어진 벡터는 벡터 간 거리나 유사도로 비교할 수 있어서, 단어가 정확히 같지 않아도 의미가 가까운 항목을 찾는 데 쓴다. 예를 들어 “환불 정책”과 “반품 규정”은 표면상 다른 표현이지만 비슷한 뜻을 가질 수 있어. 검색 시스템은 이 둘의 임베딩이 가깝게 나오면 키워드 일치가 약해도 관련 문서를 후보로 올릴 수 있고, 그 다음 단계에서 재정렬이나 생성 모델이 그 후보를 활용하게 돼.

왜 중요한가

실무에서는 답변 모델이 좋아 보여도, 앞단에서 틀린 문서를 가져오면 결과가 바로 흔들려. 그래서 RAG 품질을 볼 때는 생성 모델의 문장력보다 먼저 임베딩이 질문과 문서를 얼마나 잘 묶는지 확인해야 해. 기사나 홍보 문구에서는 종종 “모델이 똑똑해졌다”는 말만 강조하지만, 실제 체감 성능 차이는 검색 단계에서 갈리는 경우가 많아. 같은 데이터셋인데도 임베딩 모델, 청킹 방식, 벡터 검색 설정이 바뀌면 찾는 문서 후보군 자체가 달라지고, 그 차이가 최종 답변 정확도로 이어져.

주의해서 볼 점

임베딩은 만능 의미 이해 장치가 아니야. 도메인 용어가 많거나 문서가 너무 길게 뭉쳐 있거나, 질문과 문서의 언어 스타일이 크게 다르면 비슷한 뜻을 제대로 가깝게 놓지 못할 수 있어. 또 벡터가 좋다고 끝나지 않아. 청크를 어떻게 자를지, 메타데이터 필터를 어떻게 걸지, 유사도 계산과 상위 k개 후보를 어떻게 잡을지까지 함께 봐야 하고, 벡터 DB 문제와 임베딩 문제를 섞어 보면 원인을 잘못 짚기 쉬워.

관련 용어

  • RAG — RAG는 검색된 문서를 바탕으로 답을 만드는 전체 흐름이고, 임베딩은 그중 검색 후보를 고르는 데 직접 쓰이는 표현 방식이야. RAG가 흔들릴 때 생성 모델 문제인지, 애초에 엉뚱한 문서를 가져온 임베딩 문제인지 나눠서 봐야 해.
  • LlamaIndex — LlamaIndex는 문서를 쪼개고 인덱싱하고 검색 흐름을 묶는 프레임워크야. 임베딩 자체를 만드는 개념이라기보다, 임베딩을 실제 검색 파이프라인에 연결해 쓰는 도구에 가깝지.
  • Vector Database — 벡터 DB는 임베딩 벡터를 저장하고 빠르게 가까운 항목을 찾는 저장소야. 임베딩이 벡터의 내용이라면, 벡터 DB는 그 벡터를 보관하고 꺼내는 인프라라고 보면 돼.
  • Pinecone — Pinecone은 벡터 DB 제품 중 하나야. 임베딩이라는 개념 자체와는 다르게, 운영형 서비스로서 저장, 검색, 확장성을 제공하는 쪽에 초점이 있어.