LLM 서비스 만들기 전에 꼭 알아야 할 RAG 핵심 정리

2025년 12월 14일

#AI

LLM이 똑똑해지기 위해서는 단순히 모델 성능만 좋아서는 부족해요! AI가 필요한 정보를 잘 찾고, 맥락에 맞게 이해한 뒤, 적절한 행동까지 이어질 수 있도록 설계하는 것이 점점 더 중요해지고 있습니다.

이 과정에서 핵심 역할을 하는 것이 바로 벡터 스토어, 텍스트 분할과 인덱싱, 그리고 RAG(Retrieval-Augmented Generation) 입니다. 더 나아가 텍스트를 넘어 이미지까지 다루는 다중 모달 시스템, 그리고 답변을 넘어 목표를 완수하는 Agent RAG까지 등장하면서 AI 시스템의 구조는 점점 더 정교해지고 있어요.


1. 벡터스토어

벡터 스토어는 벡터화된 데이터를 효율적으로 저장하고 검색할 수 있도록 설계된 데이터 관리 시스템입니다.

LLM이나 검색시스템에서 벡터 스토어

  • 텍스트, 이미지 또는 기타 데이터 → 벡터로 변환 → 유사도 계산하여 검색, 분석하는 작업이 자주 필요해요.
  • 벡터 저장소가 없다면? 데이터가 커질수록 검색 속도가 급격히 느려질 수 있어요.

임베딩 기반 라마인덱스 답변 생성

  • 벡터 유사도를 기반으로 적절한 문서 검색이 가능해요.
  • 하지만 검색된 문서 바탕으로 자연어 형태의 답변을 생성하려면 추가적인 처리가 필요해요.
  • 라마인덱스, 크로마, 허깅페이스 임베딩 모델을 사용하여 임베딩 기반 답변 생성이 가능해요.
    • 임베딩 모델을 별도로 지정하지 않으면 라마인덱스의 ChromaVectorStore 는 기본적으로 OpenAI의 text-embedding-ada-002 모델을 사용합니다. (이는 변경될 수 있어 공식 문서 참고 해야합니다!)

2. 텍스트

라마인덱스에서 PDF, TXT, CSV, HWP … 등의 파일을 다룰 수 있어요. 전체적으로 로딩, 인덱싱, 쿼리 실행 등의 과정을 진행할 것이에요. 이를 알아보기 전, 다시 한 번 RAG 에 대해 정리해보아요.

Retrieval-Augmented Generation: AI에게 필요한 정보를 찾아오고, 찾아온 정보 기반으로 대답하게 만드는 기술

RAG은 기본적으로 아래 두 단계대로 동작해요.

  1. 검색 단계(Retrieval-Augmented)
    • 사용자의 질문과 관련된 문서를 검색하여 찾아오는 단계
  2. 생성 단계(Generation)
    • 찾아온 문서를 참고하여 답변 생성

🤔 그런데 만약 찾고자하는 문서가 너무 길거나 방대한 양이라면 AI는?

  • 문서가 너무 길면 AI는 한 번에 읽을 수 없음. 토큰 길이 제한(예: 8k, 32k, 128k…)
  • 많은 문서를 통째로 검색하면 속도가 느리고 정확도도 떨어짐
  • 필요한 일부 정보만 추출하기 어려워 할루시네이션 위험이 증가

그래서 계속계속 등장하는 개념이 텍스트 분할인덱싱 이에요.

청킹은 긴 문장을 짧게 나눠 노드에 담는 작업을 의미합니다. 잘 분할된 데이터는 RAG 답변 성능에 영향을 미치고, 답변 정확도 뿐만 아니라 속도에도 영향을 줍니다.

  1. 토큰 단위 분할
    • 하나의 청크는 단일한 의미를 담고 있어야 RAG의 성능이 좋아집니다.
    • (장점) 길이가 균일해서 처리하기 쉬움
    • (단점) 문장 중간이 잘려 의미 파악이 어려워 검색 품질이 나빠질 수 있음
  2. 의미 단위 분할
    • 임베딩 유사성을 기반으로 하나의 의미를 지닌 문장 단위를 찾아 분할하는 방식입니다.
    • 의미 분할 위치는 고정적이지 않고, 유동적으로 결정되기 때문에 상황에 따라 분할 후 노드의 길이와 노드의 총 개수가 다른 경우가 발생합니다.
    • (장점) RAG 성능이 좋다.
    • (단점) 구현이 어렵고 embedding 계산 비용이 높고 AI 판단하에 분할이기에 데이터 분할되는 부분이 항상 일치하지 않아서 노드의 길이와 갯수가 제각각
  3. 문장 단위 분할
    • 문장의 경계를 존중하면서 텍스트를 분리하는 방식입니다.
    • 단락이끊겨서 주요 문장을 놓치는 경우도 발생합니다.
    • (장점) 의미 흐름 유지
    • (단점) 어떤 문장은 너무 길거나, 너무 짧을 수 있음

2. 다중 모달 시스템

다중모달(Multi-Modality) 검색 시스템은 텍스트와 이미지 등 다양한 데이터 유형을 통합적으로 이해하고 검색할 수 있는 기술

라마인덱스를 활용하면, 텍스트와 이미지 데이터를 효과적으로 인덱싱, 이들 간의 의미적 연관성에 기반하여 정교한 검색을 수행할 수 있어요.

Multi-Modality를 어떻게 고려할 수 있을까요? 크게 살펴보면 2가지 방법이 있다고 합니다.

  1. 여러 Modality를 하나의 벡터 공간에 Embedding 하기

    • Multi-Modal 모델을 사용해서 이미지, 텍스트, 오디오 등 전부 제대로 된 의미를 갖는 벡터로 변환하여 임베딩. 사과를 먹는 그림과 ‘사과를 먹다’ 는 비슷한 벡터를 가지게 됩니다.
  2. 여러 Modality를 하나의 Modality로 통합하기

    • 일반적으로 Text로 통합이 되며, 사과를 먹는 그림이 있다면, “한 사람이 사과를 먹고 있다.” 와 같은 캡션으로 바꿔 하나의 Modality로 통합합니다.

다중 모달 시스템을 구축할 때도 데이터 수집 → 벡터 인덱싱 → RAG 시스템 구축 로 진행할 수 있어요.


3. Agent RAG

에이전트 RAG는 주어진 환경 관찰, 판단, 행동 → 특정 목표 달성하는 AI 시스템이에요. 생각, 도구 선택, 도구 입력값, 도구 사용 결과 로 이어지는 추론 과정 시스템으로 이루어져요.

챗봇과 에이전트 RAG 는 어떤 차이점이 존재할까요?

챗봇: 질문&답변으로 이루어짐.

요청 : “휴가 관련해서 도와줘.”
응답 : 규정을 설명해드릴까요? 아니면 휴가 신청 방법을 알려드릴까요?

이에 대한 답변에 대한 행동은 사용자가 직접합니다. 챗본은 물어보면 ‘대답’까지만, 실행은 사용자의 몫이에요.

AI 에이전트: 답을 넘어서 목표 달성을 위해 일을 처리

요청 : “휴가 관련해서 도와줘.”
응답 : 원하는 휴가 날짜가 언제인가요?”
    -> 사내 규정/RAG로 휴가 가능 일수 확인
    -> 캘린더에서 일정 충돌 확인
    -> 휴가 신청 폼 작성 초안 생성
    -> 휴가신청서 확인받고 제출까지 진행

에이전트는 ‘목표를 끝까지 처리’하려고 스스로 단계들을 수행합니다.

ReAct 방법론이란?

개발 방법 중의 하나로 대규모 언어 모델이 추론과 행동을 결합하여 문제 해결하는 방법론

생각(Reasoning)하면서 동시에 행동(Acting)하도록 만드는 프롬프트/설계 방식이에요. 이름 그대로 Reason + Act를 합친 방법론으로써

  1. 생각
  2. 도구사용
  3. 관찰

세가지 과정을 반복하여 문제를 해결합니다!

🎁 정리

  • 벡터 스토어는 임베딩된 데이터를 효율적으로 저장하고 유사도 기반 검색을 가능하게 하여, LLM과 검색 시스템의 성능과 확장성을 책임지는 핵심 요소입니다.

  • RAG 시스템은 검색 단계와 생성 단계를 분리하여, LLM이 신뢰할 수 있는 정보에 기반해 답변하도록 돕습니다.

  • 이때 텍스트 분할(청킹) 방식은 검색 정확도와 응답 품질에 큰 영향을 주며, 토큰 단위, 문장 단위, 의미 단위 분할은 각각의 장단점을 가집니다.

  • 다중 모달 시스템은 텍스트와 이미지 같은 다양한 데이터 타입을 통합적으로 이해하고 검색할 수 있도록 하며, 하나의 벡터 공간으로 통합하거나 텍스트로 변환하는 방식으로 구현할 수 있습니다.

  • Agent RAG는 단순히 답변을 제공하는 것을 넘어, 목표 달성을 위해 스스로 판단하고 도구를 사용하며 작업을 수행하는 AI 시스템입니다.

  • 이를 가능하게 하는 ReAct 방법론은 추론과 행동을 반복하며 문제를 해결하도록 설계된 접근 방식입니다.

결국, 좋은 AI 시스템은 “잘 찾고, 잘 이해하고, 잘 행동하는 구조” 위에서 만들어진다고 할 수 있습니다 ✨


Profile picture

주희(Joy)
가치를 고민하는 과정을 함께해요