가이드

RAG란 무엇인가? 검색 증강 생성을 쉽게 설명

RAG(검색 증강 생성, retrieval-augmented generation)는 AI 모델이 여러분만의 정보를 바탕으로 질문에 답하도록 만드는 방법입니다. 누군가 질문하면 앱이 먼저 문서에서 가장 관련성 높은 부분을 검색한 뒤, 그 내용을 질문과 함께 모델에 전달합니다. 모델은 학습 중에 우연히 익힌 지식만이 아니라 이 텍스트를 바탕으로 답변을 작성합니다.

AI로 만들 때 RAG가 중요한 이유

대규모 언어 모델은 세상 일반에 대해서는 많이 알지만, 여러분의 사업에 대해서는 아무것도 모릅니다. 가격, 정책, 제품 매뉴얼, 지난주 고객 문의 같은 것들이죠. 또 학습 시점 이후의 일은 알지 못합니다. 그래도 물어보면 그럴듯하지만 틀린 답을 자신 있게 내놓을 수 있습니다.

이를 해결하는 방법은 크게 세 가지입니다.

방식하는 일적합한 경우
문서 전체를 프롬프트에 넣기질문할 때마다 모든 문서를 보냄몇 페이지 정도의 적은 텍스트
RAG문서를 검색해 관련 부분만 보냄규모가 크거나 자주 바뀌는 자료: 고객센터, 매뉴얼, 메모
파인튜닝예시로 모델을 추가 학습시킴말투, 형식, 반복 작업. 자주 바뀌는 사실에는 부적합

최신 모델은 긴 프롬프트도 받아들이므로, 짧은 FAQ라면 첫 번째 방식으로 충분한 경우가 많습니다. RAG는 매번 보내기에 텍스트가 너무 많을 때 빛을 발합니다. 보내는 단어마다 비용과 시간이 들기 때문입니다(LLM API 요금이 책정되는 방식 참고).

'문서와 대화하기' 기능, 고객지원 어시스턴트, 사내 지식 도구를 만들고 있다면 거의 확실히 어떤 형태든 RAG를 만들고 있는 것입니다.

일상적인 비유

시험 중에 교과서를 보고 답하는 오픈북 시험을 떠올려 보세요. 암기에만 의존하는 학생은 기억을 잘못하거나 얼버무릴 수 있습니다. 먼저 적절한 페이지를 찾아 읽고 답하는 학생이 훨씬 믿을 만합니다. 단, 올바른 페이지를 찾을 때만요.

  • 학생은 언어 모델입니다.
  • 교과서는 여러분의 문서입니다.
  • 올바른 페이지 찾기는 검색(retrieval)입니다.
  • 그 페이지를 바탕으로 답 쓰기는 생성(generation)입니다.

RAG는 이 오픈북 방식입니다. 그리고 시험에서처럼, 답의 품질은 올바른 페이지를 찾았는지에 크게 좌우됩니다.

RAG의 작동 방식, 단계별로

일반적인 RAG 구성은 두 단계로 이루어집니다.

문서 준비하기(미리 수행):

  1. 수집: 도움말 글, PDF, 정책, 제품 데이터 같은 원본 자료를 모읍니다.
  2. 청킹(chunking): 긴 문서를 보통 몇 단락 정도의 작은 조각으로 나눠, 검색이 관련 부분만 돌려줄 수 있게 합니다.
  3. 임베딩: 각 조각을 임베딩 모델에 보내 임베딩으로 바꿉니다. 임베딩은 텍스트의 의미를 담은 숫자 목록입니다. 비슷한 내용의 텍스트는 비슷한 숫자를 갖습니다.
  4. 저장: 조각과 임베딩을 유사도 검색이 가능한 데이터베이스(벡터 데이터베이스 또는 벡터 인덱스라고 부릅니다)에 저장합니다.

질문에 답하기(매번 수행):

  1. 같은 임베딩 모델로 질문을 임베딩합니다.
  2. 질문의 임베딩과 가장 가까운 조각들을 검색합니다. 예를 들어 상위 5개.
  3. 프롬프트를 구성합니다: 지시문, 검색된 조각, 질문.
  4. 생성: 언어 모델이 그 조각들을 바탕으로 답을 작성하며, 이상적으로는 어떤 조각을 사용했는지 인용합니다.

의미로 검색하는 것이 이 방식을 작동하게 합니다. '환불 받는 방법'이라는 질문은 단어가 하나도 겹치지 않아도 '환불 정책'이라는 제목의 조각을 찾아낼 수 있습니다.

실제 예시: 헬스장 도움말 어시스턴트

헬스장에 도움말 글 40개가 있고, 웹사이트에 채팅 어시스턴트를 달고 싶다고 해봅시다. 회원이 묻습니다. "여행 중에 회원권을 일시정지할 수 있나요?"

앱은 질문을 임베딩하고 가장 가까운 조각 3개를 검색합니다. 그중 하나는 이렇게 쓰여 있습니다.

회원권 일시정지: 월간 요금제 회원은 1년에 최대 2개월까지
회원권을 일시정지할 수 있습니다. 시작일 최소 7일 전에 데스크에서
또는 앱에서 신청해야 합니다.

모델에 보내지는 프롬프트는 대략 이런 모습입니다.

당신은 Northside Gym의 도움말 어시스턴트입니다.
아래 출처에 있는 내용으로만 답하세요. 출처에 답이 없으면
모른다고 말하고 데스크에 문의하라고 안내하세요.
사용한 출처를 함께 밝히세요.

[출처 1: 회원권 일시정지] 월간 요금제 회원은 회원권을 일시정지할 수 있으며...
[출처 2: 회원권 해지] ...
[출처 3: 게스트 이용권] ...

질문: 여행 중에 회원권을 일시정지할 수 있나요?

모델은 이렇게 답합니다. "네. 월간 요금제라면 1년에 최대 두 달까지 회원권을 일시정지할 수 있습니다. 시작 7일 전까지 데스크나 앱에서 신청하세요(출처: 회원권 일시정지)."

헬스장은 아무것도 다시 학습시키지 않았습니다. 일시정지 정책을 바꾸면 글을 수정하고, 앱이 그 조각을 다시 임베딩하면, 다음 답변부터 바로 반영됩니다.

핵심 용어

용어의미
LLM대규모 언어 모델. 답변을 작성하는 AI입니다. LLM이란 무엇인가를 참고하세요.
임베딩텍스트의 의미를 나타내는 숫자 목록.
임베딩 모델임베딩을 만드는 모델. 보통 채팅 모델과 별도이며 훨씬 저렴합니다.
청크단독으로 검색될 수 있도록 나눈 문서 조각.
벡터 데이터베이스 / 벡터 검색비슷한 임베딩을 가진 항목을 찾아주는 저장소. Postgres도 pgvector 확장으로 이를 제공합니다.
Top-k질문마다 검색하는 조각의 개수.
하이브리드 검색의미 기반 검색과 일반 키워드 검색을 결합하는 방식. 제품 코드처럼 정확한 용어를 찾는 데 도움이 됩니다.
컨텍스트 윈도우모델이 한 번의 요청에서 받을 수 있는 텍스트의 최대 분량.
근거 제시 / 인용답변을 특정 검색 출처에 연결하고 그 출처를 보여주는 것.

흔한 오해

  • "RAG는 내 데이터로 모델을 학습시킨다." 아닙니다. 모델은 바뀌지 않고, 질문 시점에 추가 텍스트를 읽을 뿐입니다.
  • "RAG를 쓰면 환각이 사라진다." 줄어드는 것이지 사라지지 않습니다. 검색이 올바른 조각을 놓치거나 답이 문서에 없으면 모델은 여전히 추측할 수 있습니다. "모른다"고 답하도록 지시하고, 답을 아는 질문으로 테스트하세요.
  • "특별한 벡터 데이터베이스가 필요하다." 대개 그렇지 않습니다. 데이터가 많지 않다면 이미 쓰고 있는 데이터베이스의 벡터 확장, 또는 일반 키워드 검색만으로도 충분할 수 있습니다.
  • "청크는 클수록 좋다." 너무 크면 관련 없는 텍스트를 많이 보내 비용과 혼란이 늘고, 너무 작으면 의미를 만들어 주는 맥락을 잃습니다. 조정이 필요합니다.
  • "무엇이든 그냥 업로드하면 된다." 오래되었거나 중복되거나 서로 모순되는 문서는 모순된 답변을 낳습니다. 원본 자료를 정리하는 것이 가장 큰 개선일 때가 많습니다.
  • "누구나 어떤 문서든 볼 수 있다." 그렇게 만들었을 때만 그렇습니다. 일부 문서가 특정 사용자에게만 공개되어야 한다면, 검색 자체가 질문하는 사람의 권한으로 걸러져야 합니다. 그렇지 않으면 어시스턴트가 한 고객의 데이터를 다른 고객에게 인용할 수 있습니다.

비용

RAG 기능에는 보통 세 가지 실행 비용이 듭니다. 문서 임베딩(작고 대부분 한 번만 발생), 질문 임베딩(매우 적음), 그리고 언어 모델 호출(주된 비용이며, 보내는 조각 수에 따라 늘어납니다). 여기에 데이터베이스의 저장 비용이 더해집니다. AI 제공업체는 이 비용을 여러분의 계정으로 청구하므로, 제공업체에서 사용 한도를 설정해 두세요.

AI 빌더에게 요청할 것

  • "RAG를 만들기 전에 확인해 주세요. 우리 콘텐츠가 충분히 작아서 그냥 프롬프트에 넣을 수 있나요?"
  • "도움말 글을 몇 단락 크기의 조각으로 나누고, 각 조각의 제목과 출처 링크를 유지하고, 임베딩을 우리 데이터베이스에 저장해 주세요."
  • "하이브리드 검색(의미 + 키워드)을 사용해서 제품 코드도 정확히 매칭되게 해 주세요."
  • "모델이 검색된 출처에서만 답하고, 모를 때는 모른다고 말하며, 각 답변 아래 출처를 보여주도록 해 주세요."
  • "로그인한 사용자가 볼 수 있는 문서만 검색하게 해 주세요."
  • "문서가 수정되면 자동으로 다시 임베딩해 주세요."
  • "AI 제공업체 키는 브라우저가 아니라 서버의 시크릿에 보관해 주세요."
  • "각 질문, 검색된 조각, 답변을 기록해서 잘못된 답변을 검토할 수 있게 해 주세요."

Mythex의 RAG

Mythex에는 기성 지식 베이스나 RAG 제품이 없습니다. 대신 여러분의 앱 안에 그 기능의 코드를 작성해 줍니다. 문서와 여러분만의 AI 제공업체 키를 가져오면, 키는 프로젝트 시크릿으로 저장되고, 에이전트가 검색과 채팅 부분을 만들며, 저장에는 프로젝트의 Postgres 데이터베이스를 사용합니다. 제공업체 사용량은 Mythex 크레딧이 아니라 제공업체 계정에 청구됩니다. 문서에서는 간단한 AI 기능 하나부터 시작해서, 그것이 작동하면 RAG를 추가하라고 권장합니다. 자세한 내용은 AI 앱 만들기 문서와 AI 챗봇 앱 만들기, 앱에 AI 기능 추가하기 가이드를 참고하세요.

자주 묻는 질문

RAG란 쉽게 말해 무엇인가요?

RAG(검색 증강 생성)는 AI 모델이 여러분만의 정보를 바탕으로 답하게 하는 방법입니다. 모델이 답하기 전에 앱이 문서에서 질문과 가장 관련 있는 부분을 찾아 프롬프트에 함께 넣으므로, 답변은 모델이 학습 중에 익힌 내용만이 아니라 그 텍스트를 근거로 하게 됩니다.

RAG는 내 데이터로 AI를 학습시키나요?

아니요. RAG는 모델 자체를 전혀 바꾸지 않습니다. 질문이 들어오는 순간 관련 텍스트를 찾아 질문과 함께 모델에 전달할 뿐입니다. 문서를 수정하면 다음 답변부터 바로 새 내용을 반영할 수 있습니다.

RAG와 파인튜닝은 같은 것인가요?

아니요. 파인튜닝은 예시로 모델을 추가 학습시켜 동작을 바꾸는 방식이라 시간이 오래 걸리고, 말투나 형식을 다듬는 데 적합합니다. RAG는 질문할 때 모델이 읽을 사실을 제공하므로, 자주 바뀌거나 정확히 인용해야 하는 정보에 더 적합합니다.

RAG가 AI 환각(hallucination)을 막아주나요?

환각을 줄여주지만 완전히 없애지는 못합니다. 검색이 잘못된 부분을 찾아오거나 답이 문서에 없으면 모델은 여전히 추측할 수 있습니다. 좋은 RAG 앱은 모르면 모른다고 말하도록 지시하고, 답변에 사용한 출처를 함께 보여줍니다.

Mythex · Pricing · AI로 무엇이든 만들기 · 웹사이트 및 앱 템플릿 · Mythex 비교 · AI 앱 개발 용어집 · 무료 AI 앱 개발 도구 · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)