Embedding임베딩
쉽게 이해하기
임베딩은 AI가 텍스트나 이미지를 바로 “이해”하는 대신, 비교하기 쉬운 숫자 좌표로 바꾸는 방법이다. 예를 들어 “고양이”, “강아지”, “자동차”를 벡터로 만들면 고양이와 강아지는 자동차보다 가까운 위치에 놓이도록 학습된다. 이 좌표 덕분에 검색 시스템은 단어가 정확히 같지 않아도 의미가 가까운 문서를 찾을 수 있다.
비유와 예시
- 지도 좌표: 서울과 인천은 뉴욕보다 가깝다. 임베딩 공간에서는 “환불 정책”과 “반품 규정”이 가까울 수 있다.
- 도서관 추천: 읽은 책의 주제 벡터와 가까운 책을 추천한다.
- RAG 검색: 사용자의 질문을 임베딩하고, 문서 조각 임베딩과 비교해 관련 문서를 가져온다.
한눈에 비교
| 개념 | 무엇을 비교하나 | 주 사용처 |
|---|---|---|
| Token | 텍스트를 쪼갠 단위 | LLM 입력/출력 처리 |
| Embedding | 의미를 담은 벡터 | 검색, 추천, 군집화 |
| Vector Database | 임베딩을 저장·검색 | RAG, semantic search |
| Cosine Similarity | 벡터 방향의 유사도 | nearest-neighbor 검색 |
어디서 왜 중요한가
임베딩은 “정확한 키워드가 있는 문서”가 아니라 “의미가 가까운 문서”를 찾게 해준다. 그래서 RAG에서는 질문과 문서 조각을 같은 임베딩 공간에 놓고, 가까운 조각을 LLM context로 보낸다. 추천 시스템은 사용자와 아이템을 벡터로 놓고 가까운 항목을 고르며, 분류 시스템은 라벨과 가까운 표현을 학습한다. 좋은 임베딩은 검색 품질을 올리지만, 나쁜 chunking이나 잘못된 거리 지표는 관련 없는 문서를 가져오게 만든다.
자주 하는 오해
- “임베딩은 원문을 압축 저장한다” → 원문 복사본이 아니라 의미 비교용 벡터 표현이다.
- “차원이 클수록 항상 좋다” → 정확도, 저장 비용, 검색 속도 사이 tradeoff가 있다.
- “벡터가 가까우면 항상 정답이다” → 의미상 가까울 뿐 사실 검증은 별도다.
- “임베딩 모델은 아무거나 써도 된다” → 도메인, 언어, 입력 길이, 업데이트 주기가 품질을 좌우한다.
대화에서는 이렇게
- “검색 품질이 낮으면 먼저 embedding model과 chunking을 같이 봐야 합니다.”
- “cosine score가 높아도 답변 근거로 쓰기 전에는 문서 내용을 검증합시다.”
- “한국어 질의가 많으니 multilingual embedding 성능을 따로 평가해야 합니다.”
- “dimension을 줄이면 저장비는 줄지만 recall이 떨어질 수 있습니다.”
함께 읽으면 좋은 용어
참고 자료
- Efficient Estimation of Word Representations in Vector Space
word2vec 계열 dense vector representation의 대표 고전 논문.
- Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
문장 임베딩과 semantic similarity 검색에서 자주 쓰이는 bi-encoder 접근.
- Embeddings Guide
임베딩의 의미, 검색·분류·군집화 활용, 거리 기반 비교를 설명하는 공식 문서.
- Faiss documentation
임베딩 벡터를 대규모로 검색하기 위한 vector index 라이브러리 문서.
- Vector stores
임베딩을 저장·검색하는 vector store의 애플리케이션 관점을 설명한다.