Skip to main content
Summary

임베딩은 의미를 숫자로 바꾸는 방법

RAG에서 검색의 출발점은 텍스트를 숫자로 바꾸는 일입니다. 이때 사용하는 기술이 임베딩입니다.

임베딩은 문장, 문단, 문서의 의미를 여러 개의 숫자로 이루어진 벡터로 표현합니다. 예를 들어 "비밀번호를 잊었어요"와 "로그인이 안 돼요"는 단어가 많이 다르지만, 사용자의 의도는 가깝습니다. 임베딩 모델은 이런 문장들을 비슷한 위치의 숫자 벡터로 바꿉니다.

이 벡터는 보통 수백에서 수천 개의 숫자로 구성됩니다. 사람이 직접 해석하기는 어렵지만, 컴퓨터는 이 숫자들의 거리를 계산해 "어떤 문장이 더 비슷한가"를 판단할 수 있습니다.

임베딩과 벡터 검색

의미가 비슷하다는 것

의미 기반 검색은 단어가 같은 문서를 찾는 방식이 아닙니다. 문맥, 의도, 주제가 가까운 문서를 찾는 방식입니다.

예를 들어 사용자가 이렇게 질문했다고 해봅시다.

결제를 취소하고 싶어요.

문서 후보가 다음과 같다면, 키워드 검색은 "결제", "취소"가 들어간 문서를 우선 찾습니다.

  • A. 환불은 구매 후 7일 이내에 신청할 수 있습니다.

  • B. 비밀번호는 설정 화면에서 변경할 수 있습니다.

  • C. 카드 결제 내역은 마이페이지에서 확인할 수 있습니다.

하지만 의미 기준으로 보면 A가 가장 중요합니다. "취소"라는 단어는 없지만, 사용자의 실제 의도인 환불과 연결되어 있기 때문입니다. RAG에서 임베딩이 중요한 이유가 여기에 있습니다. 질문과 문서가 같은 단어를 쓰지 않아도, 같은 문제를 다룬다면 찾을 수 있어야 합니다.

벡터 유사도 계산하기

임베딩된 텍스트는 벡터 공간 안의 점처럼 생각할 수 있습니다. 검색은 질문 벡터와 문서 벡터 사이의 가까움을 계산하는 과정입니다.

대표적인 계산 방식은 세 가지입니다.

  • 코사인 유사도: 두 벡터가 같은 방향을 바라보는지 봅니다. 문장 길이나 크기보다 의미의 방향을 비교할 때 자주 사용합니다.

  • 내적: 두 벡터의 방향과 크기를 함께 반영합니다. 일부 벡터 DB나 모델은 내적 기준에 맞춰 성능을 내도록 설계됩니다.

  • 유클리드 거리: 두 점 사이의 실제 거리를 계산합니다. 거리가 짧을수록 비슷하다고 봅니다.

실무에서는 임베딩 모델과 벡터 DB가 권장하는 방식을 따르는 것이 좋습니다. 중요한 것은 공식을 외우는 것이 아니라, "질문 벡터와 가까운 문서 벡터를 찾는다"는 원리를 이해하는 것입니다.

임베딩 모델 선택 기준

임베딩 모델은 RAG 품질에 직접적인 영향을 줍니다. 아무 모델이나 쓰면 검색 결과가 어긋날 수 있습니다.

먼저 언어 지원을 확인해야 합니다. 한국어 문서를 다룬다면 한국어 성능이 좋은 모델이 필요합니다. 다국어 문서가 섞여 있다면 영어와 한국어를 함께 잘 처리하는 모델이 유리합니다.

다음은 문서 도메인입니다. 일반 블로그 글, 법률 문서, 개발 문서, 의료 문서는 표현 방식이 다릅니다. 특정 분야 용어가 많은 지식베이스라면 해당 도메인에서 잘 동작하는 모델을 선택해야 합니다.

또한 비용과 속도도 중요합니다. 문서가 많을수록 임베딩 생성 비용이 커지고, 검색 요청이 많을수록 응답 속도가 중요해집니다. 마지막으로 최대 입력 길이를 봐야 합니다. 긴 문단을 넣을 수 없는 모델이라면 청킹 전략을 더 세밀하게 설계해야 합니다.

실습: 문장 유사도 검색하기

간단한 실습 구조는 다음과 같습니다.

  1. 검색 대상 문장을 준비합니다.

  2. 각 문장을 임베딩합니다.

  3. 사용자 질문을 임베딩합니다.

  4. 질문 벡터와 문장 벡터의 유사도를 계산합니다.

  5. 가장 가까운 문장을 반환합니다.

예시 문장은 이렇게 만들 수 있습니다.

문서 1: 환불은 구매 후 7일 이내에 신청할 수 있습니다.
문서 2: 비밀번호는 계정 설정에서 변경할 수 있습니다.
문서 3: 업로드한 노트는 검색 인덱스에 저장됩니다.
질문: 결제를 취소하려면 어떻게 하나요?

이 경우 단어만 보면 "결제"가 포함된 문서가 없어서 검색이 어려워 보입니다. 하지만 임베딩 검색은 "결제 취소"와 "환불 신청"의 의미가 가깝다는 것을 이용해 문서 1을 찾을 수 있습니다.

이것이 벡터 검색의 핵심입니다. RAG는 정답을 바로 생성하기 전에, 먼저 질문과 의미가 가까운 근거를 찾아야 합니다. 좋은 임베딩은 이 첫 단추를 정확히 끼우게 해줍니다.

책 목록

처음 만나는 RAG와 AI 지식베이스: 내 문서와 노트를 이해하는 AI 만들기

전체 목차 보기

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기