프로그래밍 기초 · 대규모 모델 속의 자료구조

벡터: RAG 검색은 「가장 가까운 이웃 찾기」예요

RAG를 배울 때 말했죠. Embedding은 한 구절을 숫자 나열로 바꿉니다. 그 숫자는 대체 뭘까요? 답이 놀라울 만큼 단순해요—좌표예요. 문장마다 「시맨틱 지도」 위 자리를 주고주고, 뜻이 가까울수록 위치도 가까워집니다. 그래서 「자료 검색」은 초등학생도 아는 게임이 돼요: 지도에서 가장 가까운 이웃을 찾기.

먼저 지도 놀기 · 의미가 가까우면 = 좌표도 가깝다

아래는 미니 시맨틱 지도예요. 12개 단어가 Embedding으로 자리를 받아 자연스럽게 세 「구역」으로 모입니다. 검은 ❓ 쿼리 점을 끌어 보세요(또는 지도 아무 데나 클릭해 놓기). 눈여겨보세요: 선은 언제나 가장 가까운 단어 3개를 가리키고, 거리는 실시간으로 바뀌며, 제일 가까운 쪽은 👑를 씁니다. ❓를 두 구역 사이로 끌어 이웃이 어떻게 바뀌는지 보세요.

❓를 「미식 구역」으로 끌어 본 다음, 「테크 구역」으로도 끌어 보세요.
이게 RAG 검색의 전부예요. 지식 베이스의 자료마다 Embedding이 좌표를 주고(실제로는 1536차원이지 2차원이 아니지만 원리는 같아요); 질문할 때도 질문에 좌표가 생기고; 그다음 질문과 가장 가까운 자료 몇 단락을 찾아 컨텍스트에 넣어 LLM에 넘깁니다. 「시맨틱 검색이 키워드 검색보다 똑똑한」 비밀은, 「밀크티」와 「양지감로」가 글자는 하나도 안 겹쳐도 좌표는 아주 가깝다는 점이에요.
이어서 속도 · 하나씩 계산 vs 고속도로 깔기

가장 가까운 이웃을 찾는 제일 둔한 방법은 점마다 거리를 재는 거예요. 60개면 괜찮지만, RAG 지식 베이스는 흔히 백만 단락, 추천 시스템은 십억 건이에요. 아래 같은 지도에 점 60개를 뿌렸고, 🌟이 쿼리예요. 먼저 「하나씩 계산」을 눌러 몇 번인지 세고, 이어서 「HNSW 계층 점프」로 비교하세요—파란 점프 선이 「먼저 크게, 그다음 작게」 뛰는 방식을 눈여겨보세요.

🐢 하나씩 계산(브루트포스)
거리 계산 횟수
🚀 HNSW 계층 점프
거리 계산 횟수
HNSW 직관: 먼저 고속도로를 깔아요. 맨 아래 전체 지도 외에, 점점 더 성긴 「지름길 지도」를 몇 층 더 저장합니다—쿼리는 가장 성긴 윗층에서 시작해 큰 점프 몇 번으로 구역을 잡고, 층을 내려가며 점점 촘촘히 뜁니다. 또 한 번의 공간으로 시간을 사다예요.
점 60개면 60번 vs 8번이고, 억 단위면 「몇 분 기다리기」와 「밀리초」의 차이예요. 브루트포스 횟수는 데이터량과 1:1로 늘고; HNSW는 층마다 몇 점프로 큰 검색 범위를 잘라, 억 단위 벡터도 수십 걸이면 됩니다. 벡터 데이터베이스(Milvus, Pinecone, FAISS—언젠가 만나게 될 이름들)가 파는 핵심 실력은 이 「지름길 지도」를 잘 만들고 유지하는 거예요.
이게 AI랑 무슨 상관인가요?
📚

RAG 검색

질문과 자료가 모두 좌표가 되고, 가장 가까운 자료 몇 단락을 LLM에 넣습니다—매일 쓰는 「지식 베이스 기반 답변」의 밑바닥이 바로 이 페이지의 두 애니메이션이에요.

🖼

이미지로 이미지 찾기

이미지도 Embedding으로 좌표가 됩니다. 소파 사진을 찍어 같은 제품을 찾는 건, 수억 장 이미지의 시맨틱 지도에서 당신 사진의 이웃을 찾는 일이에요.

🎯

취향 추천

당신 취향도 좌표, 노래와 드라마도 좌표예요. 추천 시스템이 매일 하는 일: 당신과 가장 가까운 콘텐츠를 찾아 내놓는 거죠.

✅ 이 강의가 전하고 싶은 것