데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      OpenLab 2기 - TGO, RAG 한계를 극복하기 위한 Agentic RAG 소개

      sysmoon 24.09.24
      296 7 0
      DEVOTEE 요약
      LLM(대형 언어 모델) 및 RAG 기반의 AI 솔루션은 현재 많은 한계를 가지고 있지만 여전히 매력적이고 중요한 기술입니다. LLM 기반 AI 에이전트는 다양한 태스크를 수행하며, 복잡한 문제를 해결하기 위해 Reasoning과 Action 과정을 반복합니다. Adaptive RAG와 같은 고도화된 검색 및 생성 방법은 이러한 한계를 보완하고 복잡한 사용자 질문에 보다 정확하게 대응할 수 있도록 돕습니다.
      DEVOTEE 추천 블로그

      소개

      LLM, RAG 가 기본적으로 가지는 한계가 있습니다. 이를 근본적으로 100% 해결하는 방법은 아직까지는 없는 것 같습니다. 그럼에도 불구하고 NLU 기반의 고전적인 자연어 처리 기술들이 비해 LLM 기반의 AI 솔루션은 너무나 매력적이고, 향후 미래에 우리가 준비해야 할 새로운 기술임에는 틀림 없습니다.

      이미 훌룡하신 분들이 ARAG(Advanced RAG) 를 위해 29가지 RAG Technique 을 정리해놨습니다.

      이 중에 본 글에서는 LangChain 의 Adaptive RAG 를 소개하고자 합니다. 29가지 ARAG 항목중 아마 CRAG(Corrective RAG) 컨셉과 가장 비슷할 것 같습니다.

      우리가 가진 다양한 데이터 종류에 따라 RAG 문제를 푸는 방법이 달라집니다.

      이를 해결하기 위한 여러가지 Advanced RAG 방법에 대해 인사이트를 얻기를 희망합니다.

      AI Agent 의 기본 개념은

      image.png

      LLM 기반의 AI Agent 는 주어진 어려운 문제를 해결하기 위해 Reasoning 과정을 통해 해야 할 일들을 순서대로 정의하고,

      각 해야 할 일들을 행동(Action) 으로 옮기고, 이를 통해 가져온 맥락 데이터가 답변 생성에 필요한 적절한 데이터 여부를 관찰합니다.

      AI Agent 전체 워크플로우를 이해하기 위한 각 주요 컴포넌트 기능들에 대해 소개합니다.

      1. Agent

      Agent는 특정 환경 내에서 자율적으로 동작하며 목표를 달성하기 위해 행동을 선택하는 시스템을 의미합니다.

      LLM(대형 언어 모델) 기반의 AI Agent는 자연어 처리 기술을 활용하여 상호작용하고, 복잡한 문제를 해결하며, 의사결정을 내립니다.

      이 AI Agent는 주어진 텍스트 데이터를 이해하고 생성하는 능력을 바탕으로 다양한 작업을 수행합니다. 예를 들어 챗봇, 자동 문서 요약 시스템, 번역기 등에서 사용될 수 있습니다.

      2. Action

      Action은 에이전트가 환경 내에서 취하는 구체적인 행위를 의미합니다. LLM 기반 AI 에이전트의 경우, 이러한 액션은 주로 텍스트 생성이나 명령 수행 형태로 나타납니다.

      예를 들어 질문에 대한 답변 생성, 사용자 명령에 따른 데이터 검색 및 제공, 또는 특정 작업 수행을 위한 코드 작성 등이 포함될 수 있습니다.

      액션은 에이전트의 목표 달성을 위한 도구로서 필수적인 요소입니다.

      3. Environment

      Environment는 에이전트가 상호작용하는 외부 세계 또는 컨텍스트입니다.

      LLM 기반 AI 에이전트의 환경은 주로 텍스트 데이터와 관련된 응용 프로그램 내지 인터넷 상의 정보들로 구성됩니다.

      이 환경은 동적일 수 있으며, 사용자 입력이나 외부 데이터 소스에 따라 실시간으로 변화할 수 있습니다.

      환경은 에이전트가 목표를 달성하기 위해 필요한 정보를 제공하거나 제한하는 역할을 합니다.

      4. Observations

      Observations(관찰) 은 에이전트가 환경으로부터 얻는 정보입니다. LLM 기반 AI 에이전트의 경우 관찰은 주로 텍스트 형식의 입력 데이터로 이루어집니다.

      이는 사용자가 입력한 질문이나 명령일 수도 있고, 웹 페이지나 데이터베이스에서 가져온 정보일 수도 있습니다.

      관찰된 정보를 바탕으로 에이전트는 현재 상황을 판단하고 적절한 행동(Action)을 결정하게 됩니다.

      가져온 데이터를 기반으로 컨텍스트로 LLM 을 통해 추론하고, 생성된 답변이 사용자가 원하는 답변이 맞는지를 관찰합니다.

      만약 맞지 않다면 이러한 추론 과정을 반복하여 원하는 답변이 생성될 때까지 Reasoning & Action 과정을 반복합니다.

      6. 과거 경험 (Past Experience)

      과거 경험은 일반적으로 AI 에이전트가 이전 상호작용에서 수집한 데이터와 그로부터 학습한 정보를 의미합니다.

      이를 통해 에이전트는 다음과 같은 여러 가지 목표를 달성할 수 있습니다:

      학습 및 적응

      • 강화 학습 (Reinforcement Learning): 에이전트는 환경과 상호작용하면서 보상 신호를 통해 행동의 가치를 평가합니다. 과거의 행동과 그 결과를 기반으로 미래의 결정을 최적화합니다.

      • 지도 학습 (Supervised Learning): 과거 데이터를 이용해 모델을 훈련시켜 새로운 입력 데이터에 대해 정확한 예측을 할 수 있도록 합니다.

      • 비지도 학습 (Unsupervised Learning): 구조화되지 않은 데이터를 분석하여 패턴이나 군집을 발견합니다.

      경험 리플레이 (Experience Replay)

      • 강화 학습에서 흔히 사용되는 기법으로, 에이전트는 과거의 경험을 저장해 두었다가 이를 반복적으로 재사용하여 신경망을 훈련시킵니다.

        이를 통해 데이터 효율성을 높이고, 훈련 과정의 안정성을 증대시킬 수 있습니다.

      기억 및 검색

      • 에이전트는 특정 상황에서 어떤 행동이 효과적이었는지를 기억할 수 있으며, 유사한 상황 발생 시 이를 참고하여 더 나은 결정을 내릴 수 있습니다.

      • 메모리 네트워크(Memory Network)나 장단기 기억(Long Short-Term Memory, LSTM)와 같은 구조를 이용하여 이러한 기능을 구현합니다.

      일반화

      • 과거 경험으로부터 배운 내용을 바탕으로 새로운 상황에서도 적절하게 대응할 수 있는 능력을 갖추게 됩니다.

      • 이는 모델의 일반화 능력(generalization capability)과 관련되며, 다양한 상황에서도 일관된 성능을 발휘하게 합니다.

      AI 챗봇 vs AI 에이전트 무엇이 다를까?

      AI Chatbot vs AI Agent

      AI 챗봇

      챗봇의 경우 대부분 멀티턴 대화형 챗봇에 특화되어 있습니다.

      사용자의 다양한 범용적인 질문에 대응하기에는 유리하지만 높은 수준의 결과물을 도출하기 위해서는 여러번의 질문-답변을 통해 사용자가 원하는 답변을 찾아가는 노력의 과정이 필요합니다.

      또한 이를 위해 특정 도메인 지식에 대한 원하는 형태의 포멧으로 답변을 받기 위해 Custom Instruction 형태의 프롬프트 엔지니어링의 영향을 많이 받습니다.

      AI Agent

      AI Agent는 사용자의 어려운 질문에 대해 정확한 답변을 생성하기 위해 Reasoning & Action 을 반복하는 AI 시스템 입니다.

      문제 해결을 위해 계획(Planning)을 세우고, 이 과정을 통해 해야 할 일(Task)의 우선순위를 정하고, 각 단계별로 행동(Action)을 수행하는 과정에서 다양한 도구를 활용합니다.

      도구 실행을 통해 가져온 답변 생성에 필요한 맥락 데이터에 대해 스스로 관찰하고, 적절하지 못한 결과물이라고 판단하면, 올바른 결과물을 도출하기 위해 Reasoning & Action 과정을 반복합니다.

      결국 AI Agent의 AI 챗봇과의 가장 큰 차이점은 스스로 문제 해결을 위해 원하는 답변을 생성합니다.


      특히 단일 에이전트 기반의 챗봇과 다르게, 멀티 에이전트는 사용자의 더 복잡하고 어려운 질문에 대해 효율적으로 해결할 수 있는 방법을 제공합니다.

      멀티 에이전트 간의 R&R 을 정의하고, Supervisor 에이전트가 사용자의 복잡하고 어려운 질문을 각각의 작업(Task)으로 나누어 하위 에이전트들에게 분배합니다.


      아래 그림의 예시와 같이 AI 에세이를 작성하는 사용자의 요청에 대해 특정 에이전트로 라우팅하기 위한 Supervisor 에이전트,

      웹 검색을 담당하는 "Researcher" 에이전트, 웹 검색을 기반으로 에세이를 작성하는 "Writer" 에이전트 각각의 R&R을 분리함으로써

      에세이 작성을 잘 수행할 수 있는 하나의 에이전트 그룹을 생성할 수 있습니다.

      RAG를 보완하는 에이전트

      LLM의 한계

      대형 언어 모델(Large Language Models, LLM)은 자연어 처리와 생성에서 많은 혁신을 이루었지만, 여전히 몇 가지 핵심적인 한계가 존재합니다.

      이 문서에서는 이러한 한계 중 세 가지인 환각 현상, 기억 불가, 그리고 토큰 제한에 대해 기술적으로 설명하겠습니다.

      1. 환각 현상 (Hallucination)

      환각 현상은 LLM이 실제로 존재하지 않는 정보나 허위 사실을 생성하는 문제를 의미합니다.

      이는 주로 모델의 학습 과정에서 발생하는 불확실성이나 데이터 편향으로 인해 나타납니다.

      • 기술적 원인: LLM은 대규모 텍스트 데이터셋을 기반으로 학습되며, 이 과정에서 문맥과 패턴을 학습합니다.

        하지만 훈련 데이터에 포함된 잘못된 정보나 불완전한 패턴 때문에 모델이 잘못된 출력을 생성할 수 있습니다.

      • 영향: 환각 현상은 특히 신뢰성과 정확성이 중요한 분야(예: 의료, 법률)에서 큰 문제가 될 수 있습니다.

      • 해결 방안: 이를 완화하기 위해서는 모델의 훈련 데이터 품질을 높이고, 후처리 단계에서 인간 검토를 추가하는 등의 방법이 사용될 수 있습니다.

        또한, 피드백 루프를 통해 모델의 출력을 지속적으로 모니터링하고 수정하는 것도 중요한 방법입니다.

      2. 기억 불가 (Lack of Long-term Memory)

      대부분의 LLM은 긴 맥락이나 이전 대화 내용을 효과적으로 기억하고 활용하는 데 한계를 보입니다.

      • 기술적 원인: 기존의 트랜스포머 기반 모델은 고정된 크기의 입력 시퀀스를 처리합니다. 이는 긴 텍스트나 복잡한 대화에서 전체 문맥을 유지하는 데 어려움을 초래합니다.

      • 영향: 이는 특히 연속적인 상호작용이 필요한 애플리케이션(예: 챗봇)에서 사용자의 의도나 이전 대화 내용을 제대로 이해하지 못하게 하여 사용자 경험을 저하시킬 수 있습니다.

      • 해결 방안: 메모리 네트워크(memory networks)나 지속적인 상태 추적

      3. 토큰 제한

      토큰 제한은 LLM이 한 번에 처리할 수 있는 최대 토큰 수를 의미합니다.

      이는 일반적으로 모델의 아키텍처와 저장 공간 및 계산 자원의 제약에 의해 결정됩니다.


      예를 들어, GPT-3 같은 대규모 언어 모델은 최대 4096개의 토큰을 처리할 수 있습니다.

      토큰 제한의 영향

      1. 입력 데이터 크기 제한:

        • 긴 문서나 복잡한 질의를 처리할 때 문제가 될 수 있습니다.

        • 예를 들어 법률 문서나 연구 논문처럼 길이가 긴 텍스트는 잘라내거나 요약해야 합니다.

      2. 맥락 유지 어려움:

        • 긴 대화나 스토리텔링에서 맥락을 유지하는 것이 어려울 수 있습니다.

        • 이전에 발생한 사건이나 대화를 기억하지 못해 일관성이 떨어질 수 있습니다.

      3. 성능 저하:

        • 입력 데이터가 잘려나간 경우 중요한 정보가 손실될 가능성이 높습니다.

        • 이는 결과적으로 모델의 출력 품질에 영향을 미칩니다.

      RAG 한계점

      RAG(Retrieval Augmented Generation) 시스템을 통해 사용자의 질의에 정확하고 일관성 있는 답변 생성을 위해서는 검색 단계를 고도화해야 합니다.

      고객이 보유한 데이터를 KB(Knoweldge Base) 지식 데이터로 구축하고, 이후 사용자의 질의에 대해 가장 유사한 맥락 정보를 KB 에서 유사도 검색을 통해 가져오는 과정이 가장 중요합니다.


      여기서 유사도 검색의 정확도는 말뭉치를 처음부터 워드 임베딩 모델을 통해서 인덱싱하는 과정, 어떤 말뭉치 타입인지에 따라 전처리, 청킹전략, 임베딩 모델, 메타데이터 등의 커스터마이징이 필요합니다.

      따라서 어떤 말뭉치 데이터 타입인지 그리고 이를 통해 어떤 문제를 해결할려고 하는가? 에 따라 RAG 파이프라인 전략이 달라질 수 있습니다.

      Agentic RAG 이용한 한계 돌파

      아래 그림은 Langgraph 에서 제시하는 Agentic RAG 방식중 하나인 Adaptive RAG 입니다.

      이미 사전에 망뭉치가 KB로 구축이 되었다는 가정하에 사용자의 질문이 모호한 경우, 또는 기 구축한 KB를 통해 답변이 불가능한 경우에 Agentic RAG를 활용할 수 있습니다.

      Query Analysis

      사용자의 질문을 쿼리 분석하여 이미 구축한 KB를 통해 답변할 수 있다고 한다면 벡터DB 검색 수행을 위해 Retrieve 노드로 검색 요청하고,

      그렇지 않다면 Web Search 노드로 요청하도록 라우팅 합니다.


      사용자가 질문에 대해 KB 내 존재 여부에 따라 라우팅 분기할 수도 있지만,

      사용자의 다양한 요청에 따라 그에 따른 필요한 맥락 데이터를 가져올 수 있는 특정 노드의 파이프라인을 구성하여 연동할 수 있습니다.

      따라서 Query Analysis 과정을 통해 다양한 Optional 한 노드와 연동하여 복잡한 사용자 질문에 대해 대응할 수 있습니다.

      RAG + self-reflection

      RAG가 기본적으로 가지는 한계점을 보완하기 위해 만든 self-reflection 개념이 들어간 RAG 파이프라인 입니다.

      1. 사용자의 질문에 대해 KB 내에서 검색이 가능하다면 Retrieve 노드로 요청되어 관련 내용을 검색합니다.

      2. 검색한 결과를 Grade 노드가 평가하여 질문에 대한 답변 생성에 관련성이 있는 문서일 경우 Generate 노드로 전달하고, 그렇지 않은 경우 쿼리 재작성(Re-write question) 노드로 전달합니다.

        결국 사용자의 질문에 제대로 답변하기 위한 문서를 못 찾았기 때문에 원천 질문의 의도를 해치지 않는 선에서 질문을 재작성하여 관련 문서를 찾도록 하는 방법입니다.

      3. Generate 노드를 통해 생성된 응답이 환각현상이 있는지를 체크합니다. 환각 증상이 있다면 Generate 노드를 통해 응답을 재생성 하도록 합니다.

      4. 최종적으로 생성된 답변이 사용자 질문에 대한 정확한 답변 여부를 판단합니다.

        'yes' 일 경우 사용자에게 최정 답변을 전송하고, 'no'일 경우 쿼리 재작성 노드로 이동하여 다시 처음부터 Retrieve 노드를 통해 벡터 유사도 검색을 수행합니다.

        Adaptive RAG

      할루시네이션 판단 과정

      LangChain GradeHallucinations 클래스를 통해 평가 결과는 'yes' 또는 'no'의 이진 점수로 반환됩니다.

      'yes'는 답변이 주어진 사실들에 근거하고 있음을 의미하며, 'no'는 할루시네이션이 발생했을 가능성을 나타냅니다.

      이러한 방식으로 LangChain은 self-reflection 과정에서 생성된 답변의 신뢰성을 평가하고 할루시네이션 여부를 판단합니다.

      1. GradeHallucinations 클래스 정의이 클래스는 생성된 답변이 주어진 사실에 근거하는지 여부를 판단하는 이진 점수를 제공합니다.

      2. 구조화된 LLM 그레이더 설정ChatOpenAI 모델을 사용하여 GradeHallucinations 클래스의 출력을 생성하는 구조화된 LLM을 설정합니다.

      3. 프롬프트 설계시스템 프롬프트를 통해 LLM에게 생성된 답변이 주어진 사실들에 근거하는지 평가하도록 지시합니다.

      4. 할루시네이션 그레이더 생성프롬프트와 구조화된 LLM을 결합하여 할루시네이션 그레이더를 생성합니다.

      5. 평가 실행그레이더에 검색된 문서와 생성된 답변을 입력으로 제공하여 평가를 수행합니다.

      Ref

      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      sysmoon 님의 최신 블로그

      더보기

      DEVOTEE 추천 블로그

      동영상 기고하기