AI VIDEO BRIEFING

RAG 동작 원리 쉽게 이해하기: 문서 로드·청크 분할·임베딩·벡터 검색

RAG는 왜 쓸까? 일반 챗봇과 비교해 참고 정보를 주는 검색 증강 생성의 원리를, 문서 로드·텍스트 분할·임베딩·벡터 저장·유사도 검색의 전처리 단계로 차근차근 풀어낸다.

RAG가 환각을 줄이는 원리: 문서 분할·임베딩·벡터 검색을 그림처럼 이해하기 영상 대표 이미지

핵심 메시지

  • RAG(검색 증강 생성)의 핵심은 LLM에게 질문에 답할 ‘참고 정보(컨텍스트)’를 함께 넣어 주는 것이다.
  • 참고 정보 없이 묻는 일반 챗봇은 사전 학습된 지식에만 의존해 오래된 정보일 경우 환각(할루시네이션)을 일으키지만, 최신 문서를 참고로 주면 정확한 답을 낼 수 있다.
  • 문서를 통째로 넣으면 비용이 크고 ‘로스트 인 더 미들’처럼 정보를 못 찾으므로, 답변에 필요한 단락만 골라 넣는 것이 효율적이다.
  • 전처리 과정은 문서 로드 → 텍스트 분할(청크 사이즈·오버랩) → 임베딩(텍스트를 숫자 벡터로 변환) → 벡터 스토어 저장 순으로 진행된다.
  • 질문도 같은 방식으로 임베딩한 뒤 코사인 유사도 등으로 거리가 가까운 단락(상위 K개)을 골라 프롬프트의 참고 정보로 넣어 답변을 생성한다.

쉽게 이해하기

영상은 RAG(Retrieval-Augmented Generation, 검색 증강 생성)를 ‘왜 쓰는가’부터 그림으로 설명한다. 일반적인 챗봇 사용은 시스템 프롬프트와 사용자 질문만 LLM에 넣는 방식인데, 이때 모델은 사전 학습된 지식만으로 답하기 때문에 정보가 오래됐으면 잘못된 답, 즉 환각을 내놓기 쉽다. 예로 ‘삼성전자가 자체 개발한 AI 이름’을 물으면 엉뚱한 답이 나오는 상황을 든다.

RAG는 같은 질문에 ‘참고할 정보’를 함께 넣어 주는 점이 다르다. 프롬프트도 ‘주어진 정보를 참고해 답하라’로 바뀌고, 모델은 사전 지식 대신 주어진 컨텍스트 안의 내용을 검색해 답한다. 관련 문서를 넣어 주면 그 안의 힌트를 보고 정확히 답할 수 있다는 것이 RAG의 큰 그림이며, ‘참고할 정보를 주는 것’이 바로 핵심이다.

그렇다면 참고 정보는 어떻게 가져올까. 23페이지짜리 PDF를 통째로 매 질문마다 프롬프트에 넣으면 두 가지 문제가 생긴다. 첫째, 토큰이 많아 비용이 크게 든다. 둘째, 정보가 너무 많으면 모델이 어디서 답을 찾을지 몰라 헤매는 ‘로스트 인 더 미들’ 현상이 생긴다. 그래서 질문에 답하기 위한 단락만 골라 넣는 것이 가장 효율적이다.

이를 위한 전처리는 먼저 PDF·워드·엑셀 등 문서를 로드해 텍스트를 긁어오는 것에서 시작한다. 이어 텍스트를 청크 사이즈(토큰 수 기준)로 잘게 나누는 텍스트 분할을 한다. 이때 문장이 중간에 끊기지 않도록 청크끼리 일부를 겹치게 하는 ‘청크 오버랩’을 둔다. 한 페이지에 약 3,000토큰, 페이지당 단락 3개씩이면 23페이지에서 약 66개 단락이 만들어지는 식이다.

나뉜 각 단락은 임베딩 과정을 거쳐 숫자 벡터로 변환된다. 임베딩은 문자·문장을 좌표계 같은 수학적 표현으로 바꾸는 것으로, 예컨대 OpenAI 임베딩은 1,536개의 숫자(차원)로 표현한다. 이렇게 변환한 벡터는 매번 다시 계산하면 비용이 들기 때문에 벡터 스토어(벡터 DB)에 한 번 저장해 두고 재사용한다. 여기까지가 LLM에 입력하기 전의 ‘사전 준비(전처리)’ 단계이며, 이후 검색·생성 단계는 다음 영상에서 다룬다.

주요 인사이트

  • RAG의 본질은 모델을 더 똑똑하게 만드는 게 아니라 ‘답에 필요한 최신 정보를 골라 컨텍스트로 넣어 주는 것’이다.
  • 문서를 통째로 넣는 것은 비용과 ‘로스트 인 더 미들’ 두 측면에서 비효율적이라, 필요한 단락만 추리는 검색 단계가 중요하다.
  • 텍스트 분할에서 청크 오버랩을 두는 이유는 문장이 청크 경계에서 잘려 의미가 끊기는 것을 막기 위해서다.
  • 임베딩은 어렵게 느껴지지만 ‘텍스트를 유사도 계산이 가능한 숫자 벡터로 바꾸는 과정’ 그 이상도 이하도 아니다.
  • 임베딩에는 비용이 들기 때문에 한 번 변환한 벡터를 벡터 스토어에 저장해 두고 질문이 올 때마다 재사용하는 설계가 중요하다.

자주 묻는 질문

RAG를 쓰는 가장 큰 이유는 무엇인가?

일반 챗봇은 사전 학습된 지식만으로 답해 정보가 오래되면 환각을 내지만, RAG는 질문에 답할 최신 참고 정보(컨텍스트)를 함께 넣어 주어 정확한 답을 낼 수 있기 때문이다.

문서를 통째로 프롬프트에 넣으면 어떤 문제가 생기나?

토큰 수가 많아 비용이 크게 늘고, 정보가 너무 많으면 모델이 어디서 답을 찾아야 할지 몰라 헤매는 ‘로스트 인 더 미들’ 현상이 생긴다.

임베딩이란 무엇이며 왜 벡터 스토어에 저장하는가?

임베딩은 텍스트를 유사도 계산이 가능한 숫자 벡터(예: OpenAI는 1,536차원)로 바꾸는 과정이다. 임베딩에는 비용이 들기 때문에 한 번 변환한 벡터를 벡터 스토어에 저장해 두고 질문마다 재사용한다.

원문과 출처

이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.

YouTube 원본 영상 보기 ↗

관련 AI 소식