< RAG 기반의 AI 검색 시스템 >
예를 들어, '입사 3년차인데 연차는 몇 개 인가요?' 라는 질문을 검색하면...?
- 키워드 검색 : '입사', '3년차', '연차', '몇 개' 같은 키워드를 추출해서 문서 내 완전 일치하는 부분을 찾음. => 해당 키워드가 직접 들어가 있지 않으면 문서를 아예 찾지 못하거나, 사용자가 일일이 파일을 열어 계산 공식을 찾아 직접 계산해야 함.
- RAG 기반 AI 검색 (Retrieval-Augmented Generation)
- 동작 방식
1. Vector Retrieval : 질문의 의미(3년차의 연차 휴가 개수)를 파악해 사내 규정 문서에서 관련 조항을 의미 기반으로 찾아냄 (Context 확보).
2. LLM Generation : 가져온 규정 문서 내용을 바탕으로 LLM이 직접 계산하여 자연스러운 답변 생성함.
=> 단순 문서 검색을 넘어 의미 이해 + 관련 문서 수집 + 정확한 계산/요약 답변을 한 번에 제시해 줌.
< RAG 시스템의 데이터 처리 및 답변 생성 전체 흐름도(Architecture) >
- 1단계 : 외부 문서 전처리 및 Vector DB 저장 과정
1. Documents (원본 문서 수집)
: 사규, 매뉴얼, 비공개 규정집 등 AI가 참조해야 할 내부 문서를 준비함.
2. Chunked Texts / 문단분리 (Chunking)
: 문서가 너무 길면 AI가 핵심을 찾기 어려우므로, 500~1,000자 등 의미 단위의 작은 문단 조각 (chunk)들로 쪼갬.
3. Generate Embeddings / Embedding Model (문서 벡터화)
: 쪼갠 텍스트 조각들을 임베딩 모델에 넣어 컴퓨터가 의미를 이해할 수 있는 수치 데이터 (벡터, 10101000...)로 변환함.
4. Vector DB (검색 창고 저장)
: 숫자로 변환된 문서 데이터들을 고속 검색이 가능한 벡터 전용 데이터베이스에 저장해 둠.
- 2단계 : 사용자 질문 수신 및 최종 답변 생성 과정
5. Prompt / 자연어 (사용자 질문 입력)
: 사용자가 "입사 3년차 연차는 몇 개 인가요?" 와 같은 질문을 입력함.
6. Prompt Embedding / Embedding Model (질문 벡터화)
: 입력된 질문 역시 동일한 임베딩 모델을 거쳐 수치 데이터(벡터)로 변환함.
7. top-K 및 Most relevant text passages / Context (관련 문서 검색)
: 질문 벡터와 Vector DB 내 문서 벡터들의 유사도를 계산하여, 가장 관련성 높은 상위 K개 (Top-K)의 문단 조각 (Context)을 발췌함.
8. Prompt + Context (프롬프트 조합)
: 사용자의 원본 질문(Prompt)과 Vector DB에서 뽑아온 핵심 규정 문단 (Context)을 하나로 묶어 LLM에 보낼 최종 입력문 으로 구성함.
9. LLM (대형 언어 모델 전달)
: 조합된 프롬프트를 LLM (Chat GPT 등)에 전달함.
10. Result (최종 답변 생성)
: LLM이 건네받은 맥락 (Context)을 바탕으로 정확하고 자연스러운 근거 기반의 최종 답변을 작성하여 사용자에게 보여줌.
※ AI (LLM) 모델 자체와 RAG 시스템이 참조하는 '데이터 접근 권한'의 차이
- 범용 AI (Chat GPT 등)의 한계
- 일반적인 AI 모델은 인터넷에 공개된 대량의 데이터만 학습했음.
- 따라서 대기업의 사규, 미공개 기획서, 보안 프로젝트 문서 등 '조직 내부/비공개 문서'는 AI가 존재 자체를 알 수도 없고 접근할 수도 없음.
- RAG (검색 증강 생성)가 필요한 진짜 이유!!
- "AI가 모르면 우리가 직접 비공개 문서 (Documents)를 벡터 DB에 넣어서 연결 (RAG)해 주어야 한다"는 점을 강조하기 위해서임!
- 즉, RAG 시스템을 구축해야만 외부로 유출되면 안 되는 사내 보안 문서나 내부 데이터베이스를 안전하게 연결해서 AI가 답변에 활용할 수 있게 됨.