RAG란? AI가 회사 문서를 찾아 답변에 활용하는 과정

RAG는 Retrieval-Augmented Generation의 약자로, 외부 자료를 검색해 생성형 AI의 답변에 활용하는 구조입니다. 한국어로는 검색 증강 생성이라고 부릅니다. 모델이 학습 과정에서 익힌 정보만으로 답하는 대신, 질문과 관련된 문서를 찾아 함께 제공하는 방식입니다.

회사 규정이나 제품 설명서처럼 일반 모델이 알기 어려운 자료를 답변에 연결할 때 사용됩니다. 다만 ‘파일을 올리면 AI가 모두 학습한다’는 설명과는 다릅니다. 검색에 이용할 자료를 준비하는 과정과 모델의 가중치를 바꾸는 학습은 별개의 작업입니다.

이 글의 목차

자료 준비와 질문 처리는 두 단계다

자료를 검색하려면 먼저 문서에서 필요한 내용을 읽어 검색 가능한 형태로 만들어야 합니다. 검색용으로 정리한 구조를 인덱스라고 부릅니다. 원본 파일과 검색 인덱스는 관련돼 있지만 같은 것은 아닙니다.

질문이 들어오면 시스템은 관련 자료를 검색하고, 그 결과 중 필요한 내용을 모델 입력에 넣습니다. 모델은 질문과 제공된 자료를 바탕으로 답변을 생성합니다. 자료 준비, 검색, 답변 생성은 서로 다른 단계입니다.

Microsoft의 RAG 설명은 여러 저장소의 연결, 질문 이해, 입력 길이 제한, 접근 통제를 구분합니다. 회사 자료가 여기저기 흩어져 있는 상황에서 검색 범위를 구성하는 일부터 시스템의 일부입니다.

왜 문서를 작은 조각으로 나눌까?

긴 문서를 나누는 작업을 청킹, 나눈 조각을 청크라고 부릅니다. 모델이 한 번에 처리할 수 있는 입력에는 한도가 있고, 한 문서에 서로 다른 주제가 섞여 있으면 필요한 부분만 검색하기 어려울 수 있습니다.

Microsoft는 일정한 길이로 나누는 방식, 문장이나 제목 같은 구조를 따라 나누는 방식, 의미 단위를 유지하는 방식 등을 설명합니다. 문서가 입력 한도보다 짧더라도 여러 소주제를 따로 표현하는 편이 검색 목적에 맞을 수 있습니다.

조각 사이에 일부 내용을 겹쳐 넣는 방식도 있습니다. 경계에서 문맥이 끊기는 것을 줄이기 위한 방법입니다. 반대로 겹치는 부분이 많으면 중복도 늘어납니다. 원문을 무조건 잘게 자르는 것이 정확도를 보장하는 것은 아닙니다.

벡터 검색은 무엇을 비교할까?

벡터는 여러 수치를 나열한 표현입니다. 임베딩 모델은 문장의 특징을 이런 수치로 바꾸고, 검색 시스템은 질문과 문서의 벡터가 얼마나 가까운지 등을 계산합니다. 단어가 완전히 같지 않아도 의미가 비슷한 자료를 찾는 데 활용됩니다.

하지만 정확한 제품 코드나 인명, 날짜 같은 조건은 글자 자체의 일치가 중요할 수 있습니다. Microsoft의 하이브리드 검색 문서는 이런 경우 키워드 검색의 장점을 설명합니다.

하이브리드 검색은 키워드 검색과 벡터 검색 결과를 함께 이용하는 방식입니다. Azure AI Search에서는 각각의 결과를 순위 결합 방식으로 합칩니다. 벡터 검색이 등장했다고 기존 키워드 검색이 모든 상황에서 불필요해진 것은 아닙니다.

관련 문서를 찾는 것과 정답 근거를 찾는 것

질문과 비슷한 주제를 다룬 문서가 반드시 답을 뒷받침하는 문서는 아닙니다. 관련성은 검색의 기준이고, 문서가 실제로 해당 주장을 말하는지는 근거 판단의 기준입니다.

또한 검색 순위가 높은 문서라도 오래된 규정이거나 다른 대상에게 적용되는 안내일 수 있습니다. 원본의 날짜와 적용 범위 같은 정보가 답변의 의미에 영향을 줍니다. 자료를 검색한 뒤에는 선택된 내용이 질문 조건에 맞는지가 별도로 남습니다.

2020년 RAG 원연구는 위키피디아의 벡터 인덱스와 언어모델을 결합해 여러 지식 중심 과제를 평가했습니다. 모든 회사 문서에서 무조건 정확한 답을 만든다는 연구가 아니라, 외부 검색을 생성에 연결하는 구조와 그 실험 결과를 제시한 연구입니다.

파일이 바뀌면 답변도 곧바로 바뀔까?

검색 인덱스를 사용하는 구조에서는 원본 변경이 검색 자료에 반영돼야 합니다. 원본 파일을 수정했어도 인덱스가 이전 상태라면 옛 내용이 검색될 수 있습니다. Microsoft의 설명에서 증분 인덱싱이 등장하는 배경입니다. 증분 인덱싱은 변경된 자료를 검색 구조에 갱신하는 방식입니다.

반면 원격 자료원에 직접 질의하는 방식도 있습니다. 모든 RAG가 파일 전체를 같은 방식으로 복사해 두는 것은 아닙니다. 어떤 자료를 어디서 읽고 언제 갱신하는지는 구현에 따라 달라집니다.

따라서 RAG는 모델의 기존 지식보다 최신 정보를 활용할 통로를 만들 수 있지만, 최신성 자체를 자동 보장하는 이름은 아닙니다. 검색 자료의 상태가 실제 답변에 제공되는 정보의 시점을 결정합니다.

원본 파일을 삭제했는데 검색에는 남을 수 있다

문서 수정과 문서 삭제는 인덱스 관리에서 다른 사건입니다. Microsoft의 Azure Storage 인덱서 문서는 수정 시각을 이용해 새 파일과 바뀐 파일을 찾아낼 수 있지만, 원본 객체가 삭제됐다는 사실을 기본적으로 같은 방식으로 추적하지는 않는다고 설명합니다.

원본이 사라져도 인덱스에 대응 문서가 남으면 검색 결과에는 옛 내용이 계속 나타날 수 있습니다. 여기서 문제는 모델이 갑자기 없는 파일을 만들어 냈다는 것보다, 검색 시스템이 가지고 있는 사본이 원본과 달라졌다는 데 있습니다.

이 문서는 삭제 표시를 먼저 남기는 소프트 삭제 정책을 설명합니다. 인덱서가 그 표시를 보고 검색 문서를 제거한 뒤 원본을 물리적으로 삭제하는 구조입니다. 삭제 감지 정책을 처음부터 적용하지 않았다면 나중에 정책을 추가하고 인덱서를 초기화하는 것만으로 이미 남은 문서가 모두 정리되는 것은 아니라고 명시합니다.

이는 Azure Storage 인덱서의 조건에 관한 설명입니다. 모든 RAG 서비스가 같은 방식으로 삭제를 처리한다는 뜻은 아닙니다. 다만 원본 파일, 검색 인덱스, 답변에 제공된 자료가 서로 다른 상태를 가질 수 있다는 실제 사례입니다.

문서의 이름을 바꾸는 일도 갱신과 연결된다

ADLS Gen2라는 저장 서비스에서는 폴더 이름을 바꿔도 파일의 수정 시각이 바뀌지 않아 재색인되지 않는 조건도 있습니다.

검색 자료를 처음 넣는 일과 이후 원본의 수정·이동·삭제를 반영하는 일이 별도인 이유입니다.

회사 문서를 모두 넣으면 권한도 자동으로 적용될까?

검색 결과에는 사용자에게 허용된 자료만 포함돼야 합니다. 자료 저장소의 접근 권한과 검색 인덱스의 접근 통제가 연결되지 않으면 원래 볼 수 없는 내용이 검색될 수 있습니다.

Microsoft의 보안 필터 문서는 사용자나 그룹 식별자를 문서와 연결하고 검색 때 필터를 적용하는 패턴을 설명합니다. 여기서 식별자 문자열을 넣는 것만으로 인증이 이루어지는 것은 아니며, 문서 제외·포함 조건으로 사용됩니다.

문서의 권한 필드를 결과에 표시하지 않는 것과 그 문서를 검색 대상에서 제외하는 것도 다릅니다. Microsoft는 필드가 반환되지 않도록 하는 설정만으로 민감한 정보를 보호할 수 없다고 명시합니다. ‘AI가 회사 문서를 읽는다’는 기능에는 검색 권한을 적용하는 별도의 설계가 포함됩니다.

검색 품질과 답변 품질은 따로 확인된다

필요한 문서를 검색하지 못하는 문제와, 맞는 문서를 주고도 잘못 답하는 문제는 원인이 다릅니다. 검색 단계의 누락을 생성 모델의 문장 다듬기만으로 해결할 수는 없습니다.

‘Lost in the Middle’ 연구는 긴 입력에 답의 단서가 존재해도 그 위치에 따라 활용 성능이 달라질 수 있음을 보여 줬습니다. 이 연구의 모델과 과제에 한정된 결과지만, 자료가 입력에 존재한다는 사실과 제대로 사용됐다는 사실이 다른 평가임을 설명합니다.

RAG는 검색과 생성을 연결하는 구조입니다. 자료의 준비·갱신, 검색 방식, 접근 권한, 모델에 전달할 분량, 최종 답변의 근거 일치가 모두 결과에 관여합니다. 문서를 많이 넣는 것 하나보다 이 과정들이 어떤 정보를 다음 단계로 전달하는지가 실제 작동을 이해하는 핵심입니다.

참고자료