AI 아틀라스: 인공지능 시대, 인간을 위한 위대한 지도. 6장
“인간은 책을 쓰고, 서고를 만들고,
도서관을 세우며 기억을 확장해왔다.
AI는 언젠가 모든 것을 기억할 줄 알았지만,
놀랍게도 금붕어처럼 쉽게 망각했다.
그 망각을 메우는 기술, 그것이 RAG다.”
LLM은 방대한 데이터를 학습했지만, 훈련 시점 이후의 사실을 알지 못한다.
새로운 사건을 모른다.
특정 문서의 세부를 기억하지 못한다.
맥락을 벗어나면 “환각(hallucination)”을 만들어낸다.
인간의 기억이 노트·도서관·인터넷으로 확장되었듯,
AI 역시 외부 기억이 필요하다.
검색(Retrieval): 벡터DB에서 관련 정보를 가져오는 단계.
생성(Generation): 가져온 정보를 바탕으로 답변을 만들어내는 단계.
이 두 가지를 결합한 구조가 바로 RAG(Retrieval-Augmented Generation)이다.
정확성: LLM이 모르는 사실을 외부 지식으로 채움.
신뢰성: 출처를 제시하며 답변의 근거 강화.
적응성: 최신 정보, 개인 데이터, 특정 도메인 지식까지 반영.
RAG는 마치 기억력이 짧은 천재에게 도서관 사서를 붙여주는 것과 같다.
천재는 여전히 창의적으로 글을 쓰지만,
사서는 필요한 책을 즉시 가져다주며,
그 글이 더 정확하고 풍성해지게 돕는다.
이제 우리는 임베딩과 벡터DB라는 기술의 뼈대를 이해해야 한다.
그 위에서 12가지 RAG 패턴이 어떻게 꽃피는지 살펴볼 차례다.
“언어는 모호하다.
‘사과’라는 단어는 과일일 수도 있고,
회사(Apple)일 수도 있다.
AI는 어떻게 이 모호한 의미를 구분할까?
그 비밀은, 언어를 수(數)로 바꾸는 임베딩에 있다.”
임베딩(Embedding)은 언어를 고차원 벡터 공간의 점으로 옮겨놓는 기술이다.
“사과(apple)”와 “배(pear)”는 가까이,
“사과(apple)”와 “자동차(car)”는 멀리.
이렇게 의미적 유사성이 수학적 거리로 표현된다.
각 단어는 수백~수천 차원의 벡터로 변환된다.
코사인 유사도(cosine similarity): 두 벡터가 얼마나 같은 방향을 가리키는지 측정.
결국 “비슷한 의미의 단어는 같은 방향에 놓인다.”
임베딩은 단어에만 국한되지 않는다.
문장, 문단, 문서 전체를 벡터로 바꿔 비교 가능.
예: “나는 사과를 좋아한다.” ↔ “사과는 내 취향이다.”
서로 다른 표현이지만, 벡터 공간에서는 가까운 점으로 나타난다.
OpenAI Embeddings (text-embedding-ada-002, 2023): 범용 검색·분류에 널리 사용.
Sentence-BERT: 문장 단위 의미 비교에 강력.
Cohere Embeddings: 다국어 의미 표현 최적화.
임베딩은 마치 별자리를 새로 그리는 천문학자와 같다.
단어와 문장은 흩어진 별처럼 제각각이지만,
AI는 그 별들을 선으로 이어 의미의 지도를 만든다.
이제 별들이 흩어져 있는 이 공간(임베딩)을 보관하고 검색할 창고가 필요하다.
그것이 바로 벡터 데이터베이스(Vector DB)다.
“책이 아무리 많아도
정리되지 않으면 단순한 종이더미일 뿐이다.
임베딩이 단어를 별처럼 찍어냈다면,
벡터DB는 그 별자리를 보관하는 하늘이다.”
전통 검색: 키워드 일치. “사과”라고 치면 단순히 ‘사과’가 들어간 문서만.
벡터 검색: 임베딩된 의미 공간에서 가장 가까운 점을 찾아냄. “사과” ↔ “과일” ↔ “배, 포도” 같은 연관 검색 가능.
즉, 벡터DB는 언어를 수치화한 좌표 공간을 저장하고,
“이 질문과 가장 비슷한 의미의 문서는 무엇인가?”를 답한다.
저장(Store): 임베딩된 벡터를 고속으로 기록.
검색(Search): 유사도 기반으로 가장 가까운 결과 반환.
확장성(Scale): 수억 건 이상의 벡터를 분산 저장.
메타데이터 관리: 벡터 + 원문 텍스트 + 태그를 함께 관리.
Pinecone: 완전 관리형, 빠른 확장성.
Weaviate: 그래프 기반 의미 검색 지원.
Milvus: 오픈소스, 대규모 데이터 처리에 강점.
FAISS (by Meta): 연구·실험용으로 널리 사용.
키워드 검색: 단순히 글자 일치. “은행(bank)”은 금융기관과 강가 모두 검색.
벡터 검색: 문맥을 고려. “강가의 bank”와 “은행 계좌 bank”를 구분.
벡터DB는 마치 우주의 천체 관측소 같다.
임베딩된 단어와 문장을 별자리로 찍어 저장하고,
원하는 순간 망원경을 들이대면
“저 별과 가장 가까운 별은 어디인가?”를 즉시 알려준다.
이제 우리는 임베딩과 벡터DB라는 뼈대를 알았다.
이제 본격적으로 검색증강(RAG)의 구조와 패턴을 탐험할 차례다.
“질문이 들어오면,
AI는 먼저 기억의 창고로 달려간다.
거기서 가장 가까운 자료를 꺼내와,
자신의 언어로 다시 써낸다.
이 단순한 과정이, 그러나 혁명적이다.”
질문 입력 → 사용자의 질문을 임베딩으로 변환.
검색 → 벡터DB에서 가장 가까운 문서 조각을 찾음.
생성 → 검색된 문서를 LLM에 함께 넣어 답변 작성.
결과: AI는 훈련 데이터가 아니라 외부에서 가져온 최신 지식으로 답변을 만든다.
LLM의 단점(망각·환각)을 단순한 검색 결합만으로 극복.
별도의 재학습 필요 없이, 데이터만 교체하면 지식 업데이트.
빠르고 유연하다.
FAQ 챗봇: 회사 문서·매뉴얼을 벡터DB에 넣고 RAG 적용.
논문 검색 요약: 질문 → 관련 논문 검색 → LLM 요약.
법률·계약서 분석: 특정 조항 검색 후 문맥과 함께 답변.
검색된 문서의 품질에 의존.
질문이 모호하면, 잘못된 문서 조각을 가져올 수 있음.
LLM은 여전히 검색 결과를 오해하거나 왜곡할 가능성.
단순 RAG는 마치 책장을 정리해둔 서재에서 필요한 책을 꺼내 읽어주는 비서와 같다.
아직은 단순하다. 필요한 책을 주지만, 그 책이 맞는지 틀리는지는 사용자가 확인해야 한다.
이제 단순 구조를 넘어서, 검색과 추론을 단계별로 연결하는 체인형 RAG로 들어가 보자.
6-4. 체인형 RAG ― 다단계 추론
“한 번의 검색으로는 부족할 때가 있다.
마치 미로를 탐험하듯,
단서를 따라가며 여러 번의 검색을 이어야
비로소 답에 도달한다.
체인형 RAG는 그 길을 연결하는 사다리다.”
단순 RAG: 질문 → 검색 → 답변 (한 번에 끝).
지금 바로 작가의 멤버십 구독자가 되어
멤버십 특별 연재 콘텐츠를 모두 만나 보세요.