검색 증강 생성(RAG)은 답변을 만들기 전에 지식 베이스에서 관련 문서를 찾아, 모델의 기억이 아닌 실제 출처에 근거를 두는 AI 기법입니다. 모델 가중치에 들어 있는 패턴에만 의존하지 않고 실제 텍스트를 가져와 답변을 작성할 때 증거로 사용합니다. 그 결과 AI는 훈련 중 본 적 없는 문서에 관해서도 질문에 답하고 인용 출처를 제시할 수 있습니다.
1단계: 청킹과 색인, 지식 베이스 준비.
이 전처리는 사용자가 질문하기 전 오프라인에서 이루어집니다. 그 결과 모든 조각을 정확한 키워드 일치가 아닌 의미적 유사도로 찾을 수 있는 색인이 만들어집니다. 청킹 품질은 검색 정밀도에 직접 영향을 줍니다. 문서를 잘못 나누면 관련 없는 주제가 한 조각에 섞이고 질의 시 잡음이 많은 결과가 반환됩니다.
사용자가 질의를 보내면 시스템은 색인에 사용한 것과 같은 임베딩 모델로 질의를 벡터화합니다. 그런 다음 질의 벡터와 색인의 모든 조각 벡터 사이의 유사도 점수를 계산하고, 의미적으로 가장 비슷한 상위 k개 조각을 다음 단계로 넘깁니다.
사서가 질문을 듣고 서가로 가서 전체 장서를 외워 말하는 대신 가장 관련성 높은 책 다섯 권을 가져오는 모습과 같습니다. 검색에는 키워드 중복이 필요하지 않고 의미를 대조합니다. “내 계약 갱신이 왜 거절됐나?”라는 질의는 공통 단어가 하나도 없어도 “계약 해지 조항”에 관한 구절을 찾을 수 있습니다.
RAG는 질의 시 지식을 검색하고, 미세 조정은 지식을 모델 가중치에 새깁니다. 같은 작업을 두고 경쟁하는 방식이 아니라 근본적으로 다른 문제를 해결하므로, 어떤 문제가 있는지를 파악한 뒤 선택해야 합니다.
가장 적합한 용도
- RAG: 동적·비공개·검증 가능 지식, 자주 바뀌는 정보, 규정 준수가 중요한 환경, 개인 문서 라이브러리
- 미세 조정: 고정된 분야에 맞춰 모델의 출력 스타일, 어조, 형식을 조정하는 일과 사실의 최신성보다 행동의 일관성이 중요한 작업
벡터 데이터베이스는 임베딩을 저장하고 유사도 검색을 지원합니다. RAG는 벡터 데이터베이스를 여러 구성 요소 중 하나로 사용하는 전체 아키텍처입니다. 둘을 혼동하는 것은 이 분야를 처음 접하는 개발자에게 가장 흔한 오해이며, 실제 시스템을 만들 때 실질적인 문제를 일으킵니다.
차이는 구체적입니다. 벡터 데이터베이스는 “이 질의와 가장 비슷한 조각은 무엇인가?”에 답합니다. 검색 증강 생성은 그 답을 중간 단계로 사용하고, 검색된 조각을 언어 모델에 전달해 자연어 답변을 합성합니다. 벡터 데이터베이스가 있으면 검색 역량을 갖춘 것이고, RAG가 있으면 그 검색 계층 위에 완전한 질의응답 파이프라인을 갖춘 것입니다.
실무적으로 제품이 ‘벡터 검색을 사용한다’거나 ‘문서를 임베딩한다’고 말하면, 검색된 맥락으로 답변까지 생성하는지 확인해야 합니다. 벡터 검색은 관련 구절 목록을 반환하고, 검색 증강 생성은 그 구절로 직접적인 답변을 작성합니다. 둘은 관련되지만 추상화 수준이 다르며 하나가 다른 하나를 보장하지 않습니다.
검색한 구절과 질문을 언어 모델에 제공해 답변 초안을 만듭니다. 중요한 주장을 해당 구절과 대조하고 원문 링크를 보관하세요. 검색은 관련 정보를 놓칠 수 있고 생성은 내용을 잘못 표현할 수 있으므로 RAG가 정확성을 보장하지는 않습니다.
