IT

RAG에 에이전트 레이어 추가하기

esmile1 2024. 10. 4. 09:02

 

오늘은 단순한 RAG를 넘어서 RAG에 에이전트를 추가하는 새로운 주제에 대한 설명자료를 요약정리 하였습니다.

 

Llama Index 개요

 

Llama Index는 데이터를 언어 모델에 연결하여 애플리케이션을 구축하기 위한 프레임워크입니다. 주요 기능은 다음과 같습니다:

 

  • 데이터 로더
  • 데이터 인덱싱
  • 쿼리 오케스트레이션 (검색, 프롬프트 오케스트레이션, LLM 등)

 

이를 통해 개발자는 채팅 인터페이스, 워크플로우 자동화, 문서 인사이트 추출 등 다양한 애플리케이션을 구축할 수 있습니다.

 

RAG(Retrieval-Augmented Generation)란?

 

RAG는 문서 검색과 언어 모델 로직을 결합하여 애플리케이션을 구축하는 방법입니다. 주요 단계는 다음과 같습니다:

 

  1. 문서를 청크로 나누기
  2. 벡터 데이터베이스에 저장
  3. 검색 및 LLM 로직을 사용하여 데이터베이스에서 데이터를 가져와 애플리케이션 구축

 

RAG는 간단한 질문이나 작은 문서 집합에 대해서는 효과적이지만, 복잡한 쿼리에는 한계가 있습니다.

 

단순 RAG의 한계

 

단순 RAG는 다음과 같은 경우에 어려움을 겪습니다:

 

  • 복잡한 질문
  • 요약
  • 비교 질문
  • 구조화된 분석
  • 다중 부분 질문

 

이러한 한계를 극복하기 위해 에이전트를 RAG에 통합하는 방법을 살펴보겠습니다.

 

에이전트 소개

 

에이전트는 RAG 프레임워크에 통합되어 질문 답변 능력을 향상시키고 데이터에 대한 추론을 개선합니다. 에이전트를 사용하면 더 복잡한 처리와 동적 응답이 가능해집니다.

 

RAG에 에이전트 레이어 추가하기

 

RAG 파이프라인의 다양한 단계에 에이전트를 추가할 수 있습니다:

 

  1. 시작 단계
  2. 중간 단계
  3. 끝 단계

 

이를 통해 RAG 프로세스의 각 부분을 더 지능적으로 만들 수 있습니다.

 

에이전트의 정의

 

에이전트는 LLM을 사용하여 추론과 도구 선택을 수행합니다. RAG는 에이전트가 사용할 수 있는 하나의 도구일 뿐입니다. 에이전트는 RAG 외에도 다른 도구들을 사용하여 데이터에 접근하고 응답을 생성할 수 있습니다.

 

에이전트의 스펙트럼

 

에이전트는 단순한 것부터 고급 수준까지 다양한 스펙트럼이 있습니다:

 

단순한 에이전트

 

  • 라우팅
  • 쿼리 계획
  • 단일 파이프라인에서의 도구 사용

 

고급 에이전트

 

  • 자동화된 추론 루프 (예: ReAct)
  • 동적 쿼리 계획

 

단순한 에이전트는 비용과 지연 시간이 낮지만 표현력이 제한적입니다. 고급 에이전트는 더 강력하지만 비용과 지연 시간이 높습니다.

 

라우팅

 

라우팅은 가장 기본적인 형태의 에이전트 추론입니다. 주어진 입력 작업이나 질문에 대해 적절한 선택지를 고르는 것입니다.

 

예를 들어:

  • RAG 파이프라인
  • 요약 파이프라인

 

사용자의 질문에 따라 적절한 파이프라인을 선택할 수 있습니다.

 

쿼리 계획

 

쿼리 계획은 주어진 질문을 병렬로 처리할 수 있는 하위 쿼리로 분해하는 과정입니다.

 

예시: "2021년 우버와 리프트의 매출 성장을 비교해주세요."

이 질문은 두 개의 하위 질문으로 나눌 수 있습니다:

 

  1. 2021년 리프트의 매출은?
  2. 2021년 우버의 매출은?

 

각 하위 질문을 관련 데이터 소스에 대해 실행하고 결과를 결합하여 최종 답변을 생성합니다.

 

도구 사용

 

도구 사용은 LLM이 API를 호출하고 주어진 도구를 사용하기 위한 매개변수를 추론하는 것입니다. 이는 다음과 같은 경우에 유용합니다:

 

  • 벡터 데이터베이스 쿼리
  • SQL 데이터베이스 쿼리
  • Google 검색, Google 캘린더 등의 외부 API 사용

 

에이전트는 사용자 쿼리를 도구의 매개변수로 변환하여 더 정확한 결과를 얻을 수 있습니다.

 

 

순차적 다중 부분 문제 해결

 

더 복잡한 문제를 해결하기 위해 에이전트는 다음과 같은 기능을 갖추어야 합니다:

 

  1. 반복적인 실행을 위한 루프 추가
  2. 상태를 유지하기 위한 메모리 모듈 추가

 

Llama Index에서는 이를 "데이터 에이전트"라고 부르며, 다음과 같은 구성 요소를 포함합니다:

 

  • 실행 파이프라인 (쿼리 계획, 도구 사용, 라우팅 등)
  • 에이전트 루프 (예: ReAct)

 

ReAct 패러다임

 

ReAct는 2022년에 발표된 논문에서 소개된 인기 있는 에이전트 루프입니다. 주요 특징은 다음과 같습니다:

 

  1. 질문을 받아 생각(Thought)을 생성
  2. 행동(Action)과 그에 대한 입력을 결정
  3. 중간 결과를 대화 기록에 추가
  4. 작업이 완료될 때까지 반복

 

ReAct는 다음과 같은 기능을 포함합니다:

 

  • 도구 사용
  • 질문 분해 및 쿼리 계획
  • 라우팅

 

ReAct를 넘어서: 고급 에이전트 아키텍처

 

최근 연구에서는 ReAct를 넘어서는 고급 에이전트 아키텍처를 제안하고 있습니다:

 

  • 장기 계획 수립
  • 시뮬레이션 및 롤아웃
  • 시스템 수준 구성 요소 최적화

 

예를 들어, "LM 컴파일러" 논문에서는 컴퓨터 아키텍처와 유사한 접근 방식을 제안합니다:

 

  1. 전체 계산 그래프를 미리 계획
  2. 의존성 그래프 매핑
  3. 가능한 경우 병렬로 작업 실행
  4. 필요에 따라 재계획

 

이러한 접근 방식은 더 복잡하고 추상적인 작업을 처리할 수 있게 해줍니다.

 

에이전트 개발을 위한 추가 요구사항

 

에이전트 시스템이 발전함에 따라 다음과 같은 요구사항이 중요해질 것입니다:

 

  1. 관찰 가능성: 에이전트 실행의 전체 추적을 볼 수 있어야 함
  2. 제어: 에이전트의 중간 단계를 단계별로 안내할 수 있어야 함
  3. 사용자 정의 가능성: 연구 논문을 넘어 실제 구현과 실험이 가능해야 함

 

Llama Index에서는 이러한 요구사항을 충족하기 위한 쿼리 구문을 제공하고 있습니다. 개발자는 이를 통해 모듈을 조합하고 for 루프에서 실행할 수 있으며, 중간 사용자 입력을 주입하고 전체 실행 과정을 관찰할 수 있습니다.

 

결론

 

RAG에 에이전트 레이어를 추가함으로써 더 강력하고 유연한 언어 모델 애플리케이션을 구축할 수 있습니다. 단순한 라우팅부터 복잡한 다단계 추론까지, 에이전트는 RAG의 한계를 극복하고 더 지능적인 시스템을 만들 수 있게 해줍니다.

 

앞으로 모델이 개선되고 비용이 낮아짐에 따라 더 많은 사람들이 에이전트를 구축하게 될 것입니다. 이에 따라 관찰 가능성, 제어, 사용자 정의 가능성이 중요한 요구사항이 될 것입니다. Llama Index와 같은 프레임워크는 이러한 요구사항을 충족시키는 도구를 제공하여 개발자들이 더 쉽게 고급 에이전트 시스템을 구축할 수 있도록 지원할 것입니다.

 

 

'IT' 카테고리의 다른 글

AI 반도체  (3) 2024.10.04
부동산 투자분석 사례 (2)  (0) 2024.10.04
Modular RAG  (4) 2024.10.04
AI Bitcoin Trading System  (2) 2024.10.03
OpenAI GPT-4.5를 이용한 비트코인 자동 투자 실험  (6) 2024.10.03