AI VIDEO BRIEFING
벡터 검색·RAG 튜토리얼: 임베딩으로 내 데이터를 LLM과 결합하는 법
벡터 임베딩과 시맨틱 검색의 개념부터 영화 검색, RAG 질의응답, 문서 기반 챗봇까지. 임베딩으로 내 데이터를 LLM과 연결하는 방법을 세 가지 프로젝트로 정리했다.

핵심 메시지
쉽게 이해하기
이 강의는 벡터 검색과 임베딩을 이용해 내 데이터를 GPT-4 같은 대규모 언어모델과 결합하는 법을 다룬다. 먼저 개념을 설명한 뒤 세 가지 프로젝트를 진행하는데, 첫째는 자연어로 영화를 찾는 시맨틱 검색, 둘째는 RAG 구조의 질의응답 앱, 셋째는 ChatGPT 클론을 고쳐 freeCodeCamp 기여 문서를 근거로 답하게 만드는 것이다. 앞 두 프로젝트는 파이썬, 마지막은 자바스크립트를 쓰며 MongoDB의 Atlas Vector Search를 활용한다.
벡터 임베딩은 항목을 숫자들의 리스트(벡터)로 표현하는 방식이고, 핵심은 비슷한 항목일수록 벡터도 가까워진다는 점이다. 덕분에 수학적으로 두 벡터가 얼마나 가까운지를 재서 항목들의 유사도를 알 수 있다. 벡터 검색은 이를 이용해, 전통적 검색처럼 정확히 일치하는 항목이 아니라 질의의 의미와 맥락에 가장 잘 맞는 결과를 찾는다. Atlas Vector Search는 임베딩을 원본 데이터·메타데이터와 함께 저장하고, 집계 파이프라인과 근사 최근접 이웃 알고리즘으로 빠른 의미 기반 검색을 수행한다.
첫 프로젝트는 2만 건이 넘는 샘플 영화 데이터(sample_mflix)에 대해 허깅페이스의 all-MiniLM-L6-v2 모델로 줄거리(plot) 임베딩을 만든다. 무료 M0 클러스터를 쓰고, 무료 허깅페이스 추론 API의 속도 제한과 시간을 고려해 영상에서는 우선 50개 문서에만 임베딩을 추가한다. 이어 차원 384, 유사도 dotProduct, knnVector 타입으로 벡터 검색 인덱스를 만들고, $vectorSearch 집계로 검색한다. 'imaginary characters from outer space at War' 같은 질의를 넣으면, 50개만 임베딩했을 때는 결과가 약하지만 전체 영화에 임베딩을 만든 경우(OpenAI API로 미리 만든 데이터셋)에는 외계·우주 관련 영화가 훨씬 정확하게 나온다.
둘째 프로젝트는 RAG(검색 증강 생성)를 다룬다. LLM은 사실과 다른 내용을 지어내는 환각, 특정 시점까지의 정적 학습 데이터, 사용자의 로컬·개인 데이터에 접근 불가, 토큰 수 제한 같은 한계가 있다. RAG는 질의에 맞는 문서를 벡터 검색으로 찾아 LLM에 맥락으로 제공함으로써, 응답을 사실에 근거하게 만들어 환각을 줄이고 최신·개인 정보를 활용하며 토큰을 더 효율적으로 쓰게 한다. 영상에서는 LangChain 프레임워크와 Gradio UI, OpenAI 임베딩·LLM을 써서 로그·채팅 대화·공기역학 텍스트 세 파일을 임베딩해 저장하고, 질의 임베딩으로 유사 문서를 찾아 RetrievalQA 체인으로 답하게 한다. 순수 벡터 검색 결과와 LangChain·OpenAI를 엮은 결과를 나란히 비교해, 후자가 훨씬 읽기 쉬운 답을 준다는 것을 보여준다.
마지막 프로젝트는 ChatGPT 형태의 앱을 고쳐 freeCodeCamp 기여 문서를 근거로 답하게 만든다. 마크다운 문서들을 RecursiveCharacterTextSplitter로 500자 청크(50자 겹침)로 나눠 OpenAI 임베딩(1536차원)을 만들고, 코사인 유사도 인덱스를 생성한다. API 라우트에 벡터 검색을 추가하고 MMR(최대 한계 관련성)로 관련 문서를 가져온 뒤, 'freeCodeCamp 대표'로서 주어진 문맥만으로 답하고 모르면 사과하라는 프롬프트 템플릿에 끼워 넣는다. 그 결과 '기여를 시작하려면 무엇이 필요한가' 같은 질문에 JavaScript, Node.js, MongoDB, react, gsap, webpack 같은 실제 문서 내용을 근거로 답하고, 풀 리퀘스트 생성 절차도 안내한다.
주요 인사이트
- 키워드가 아니라 의미로 검색하므로, 데이터에 없는 표현으로 질문해도 의도에 맞는 결과를 얻을 수 있다.
- 임베딩을 전체 데이터에 적용했는지(50개 vs 전부)가 검색 품질을 좌우하며, 비용·속도 제한이 실무적 제약이 된다.
- 임베딩을 만든 API와 검색에 쓰는 API는 같아야 하므로, 임베딩 모델의 일관성이 중요하다.
- RAG는 LLM의 토큰 한도를 늘리는 것이 아니라, 가장 관련 있는 문서만 골라 넣어 토큰을 효율적으로 쓰게 한다.
자주 묻는 질문
벡터 검색이 기존 키워드 검색과 다른 점은?
정확한 단어 일치를 찾는 대신, 질의와 데이터를 모두 벡터로 바꿔 의미와 맥락이 가장 가까운 결과를 찾는다. 그래서 데이터에 없는 표현으로도 의도에 맞는 결과를 얻을 수 있다.
RAG는 LLM의 어떤 한계를 보완하나?
환각(사실과 다른 생성), 특정 시점까지의 정적 학습 데이터, 개인·로컬 데이터 접근 불가, 토큰 제한이다. 벡터 검색으로 관련 문서를 찾아 맥락으로 넣어 응답을 사실에 근거하게 만든다.
강의에서 임베딩 생성에 어떤 모델·도구를 쓰나?
첫 프로젝트는 허깅페이스의 all-MiniLM-L6-v2 모델(무료 추론 API)을, 이후에는 OpenAI 임베딩 API를 쓴다. 저장과 검색은 MongoDB Atlas Vector Search, RAG 구성은 LangChain과 Gradio를 활용한다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗