[reinvent 2024] Amazon Q 비즈니스 채팅 API를 안전하게 호출하는 방법 알아보기
Summary
Amazon Bedrock을 사용하여 고급 Retrieval Augmented Generation (RAG) 어시스턴트를 구축하는 방법을 배울 수 있습니다. RAG 어시스턴트는 LLM과 외부 지식 검색 기능을 결합하여 정확하고 유익한 답변을 제공합니다. 다양한 데이터 소스를 통합해 어시스턴트의 지식 기반을 확장하고, 지식 관리 파이프라인을 효율적으로 구현하는 기술을 익히며, 사용자 경험을 향상시키는 정확하고 최신의 응답을 제공하는 RAG 어시스턴트를 설계하고 배포하는 방법을 배웁니다.
리인벤트 2024 테크 블로그의 더 많은 글이 보고 싶다면?
Overview
들어가며
세션에서는 크게 RAG 워크플로우의 구성과 Knowledge Base가 제공하는 기능, 그리고 이를 기반으로 챗봇 어시스턴트를 구축하는 데모까지 다루었습니다. 해당 세션은 설명이 자세하고 체계적이어서 이해하기 쉬웠습니다. 각 내용을 단계별로 정리해 보겠습니다.
Introduction to RAG Workflow
- Data Ingestion Workflow
Data Ingestion Workflow는 말그대로 데이터를 준비하는 과정입니다. 이 과정은 RAG의 기반이 되는 데이터 구조를 만드는 것이 핵심입니다. 이 단계는 이후 검색과 응답 생성 과정을 원활하게 만들기 위한 초석이 됩니다.
1) S3, Salesforce 등 다양한 데이터 소스에서 데이터를 가져오고
2) 문서를 청킹하고
3) 임베딩 모델을 통해 벡터로 변환하여
4) 벡터 스토어에 저장합니다.
- Text Generation Workflow
Text Generation Workflow는 사용자 질의에 기반한 응답을 생성하는 파이프라인입니다.
1) 사용자가 자연어 쿼리는 입력하면
2) 임베딩 모델을 통해 벡터화되고
3) 이 벡터를 벡터 스토어에서 검색합니다
사용자의 질의가 들어오면 Data Ingestion Workflow를 통해 저장된 벡터 DB에서 질의 벡터 값을 검색하고 답변을 찾아내는 파이프라인이 전반적인 RAG 파이프라인 입니다.
Amazon Bedrock Knowledge base
1. 안전한 데이터 소스 연결
Knowledge Base는 조직의 데이터 소스와 생성형 AI 모델을 안전하게 연결하여 RAG 워크플로우가 더 관련성 높은 응답을 제공할 수 있도록 지원합니다. 데이터 소스와의 연결은 보안이 보장되며, 조직 데이터를 외부로 유출하지 않고 내부적으로만 처리합니다. 이를 통해 민감한 데이터를 보호하면서도 AI 모델이 정확하고 맥락에 맞는 응답을 생성할 수 있습니다.
2. 완전 관리형 RAG 워크플로우
Knowledge Base는 RAG 애플리케이션 개발 과정의 복잡성을 줄이기 위해 완전 관리형 파이프라인을 제공합니다. 데이터 수집(Ingestion), 검색(Retrieval), 그리고 프롬프트 증강(Augmentation)까지 모든 과정을 자동화합니다. 사용자는 이러한 과정을 기술적인 복잡성 없이 빠르게 구현할 수 있어 개발 시간을 크게 단축할 수 있습니다.
3. 대화를 위한 세션 관리
Knowledge Base는 다중 회차(Multi-turn) 대화를 지원하는 세션 관리 기능을 내장하고 있습니다.
사용자가 이전에 입력한 대화 내용을 기억하고 이를 바탕으로 더 자연스럽고 연속적인 대화 경험을 제공합니다. 이 기능은 복잡한 사용자 요청을 처리하거나 맥락 유지가 중요한 응용 프로그램에서 특히 유용합니다.
4. 투명성 향상을 위한 자동 인용 기능
Knowledge Base는 검색된 데이터의 출처를 자동으로 인용(citation)하여 응답의 신뢰성과 투명성을 높입니다. 사용자는 생성된 응답이 어떤 데이터에서 비롯되었는지 명확히 확인할 수 있습니다. 이 기능은 RAG 응답에 대한 신뢰성을 확보하는 데 중요한 역할을 합니다.
How to make a Knowledge base?
- 원천 데이터를 선택합니다. 원천 데이터는 S3에 있는 데이터도 되지만, Salesforce나 Confluence 등에 있는 데이터도 소스로 선택할 수 있습니다.
- 데이터에 대한 청킹 전역을 선택해줍니다. 청킹을 안할 수도 있고, 지원되는 Chunking 전략을 사용할 수도 있으며, 커스터마이징한 청킹전략을 사용할 수도 있습니다.
- Embedding Model과 Vector DB를 선택하고 생성합니다.
이렇게 간단한 Knowledge Base는 metadata와 incremental update를 지원합니다.
- 메타데이터를 활용(필터링, 랭킹, 세분화 등)하면 검색 결과의 정확성을 높일 수 있습니다.
- Incremental update(증분 업데이트)가 지원되므로 비정기적으로 업데이트 되거나 혹은 빈번하게 업데이트 되는 데이터에 대한 걱정을 할 필요가 없습니다.
RetrieveAndGenerate API
앞에서 소개한 방법으로 knowledge base를 만들면, 기존의 RAG Workflow에서 “data ingestion”과 “text genertion”으로 분리되었던 파트를 하나의 “Fully manager RAG” 파이프라인으로 단순화시킬 수 있습니다.
- 사용자가 질의를 날리면
- RAG API를 거쳐서 Knowledge base에 질의 Query를 전달합니다.
- 이 때 Knowledge base에서는 생성 시 선택했던 Embedding Model로 Query를 임베딩 합니다.
- 임베딩 과정으로 인해 벡터화 된 Query를 Semantic/Hybrid Search를 통해 Vector Store에서 retrieve 하며
- Retrieve된 문서를 기반으로 Augmented Query를 하고
- LLM을 통해 응답은 Generate하여 RAG API를 통해 전달합니다.
Structured Data Retrieval – (Newly Announced in re:Invent 2024)
이번 2024 re:Invent에서 새롭게 Announce된 기능으로, 비정형 데이터뿐만 아니라 정형데이터에 대한 검색이 가능해졌습니다.
이 기능은 DW와 데이터 레이크의 자연어 쿼리를 지원하도록 지식 기반을 확장하여 애플리케이션이 대화형 인터페이스를 통해 비즈니스 인텔리전스(BI)에 액세스하고 중요한 엔터프라이즈 데이터를 포함하여 응답의 정확도를 개선할 수 있습니다.
Re-ranking – (Newly Announced in re:Invent 2024)
이번 2024 re:Invent에서 새롭게 Announce된 기능으로, RAG 애플리케이션의 정확도를 향상시키기 위해 Re-rank API를 지원합니다.
Knowledge Base에서 검색된 결과를 그대로 사용할 경우, 사용자 질문과 덜 관련된 문서가 상위에 있을 수 있습니다. Re-ranking은 Knowledge Base의 초기 검색 결과를 재정렬하여 가장 관련성 높은 문서를 상위로 배치합니다. 이를 통해 LLM이 더 정확한 컨텍스트를 기반으로 답변을 생성할 수 있습니다.
Implicit Filters – (2024.04 Newly Announced)
Implicit metadata filtering은 사용자의 쿼리와 미리 정의된 metadata Schema를 기반으로 자동으로 필터를 생성하여, 검색 결과의 관련성을 높이고 정확도를 향상시키는 기능입니다.
이 기능은 메타데이터 필드와 값을 분석해 필터를 생성하며, 수동 필터링의 필요성을 줄이고 쿼리 처리 효율을 개선합니다.
Streaming API– (Newly Announced in re:Invent 2024)
Amazon Bedrock Knowledge Bases는 이제 RetrieveAndGenerateStream이라는 스트리밍 API를 지원합니다. 이 새로운 기능은 전체 응답이 생성될 때까지 기다리지 않고, 응답이 생성되는 대로 LLM으로부터 실시간으로 응답을 받을 수 있도록 해줍니다.
Demo
이론 설명 후 이루어진 데모는 아래와 같은 아키텍처를 기반으로 합니다. 데모 내용은 다음과 같습니다.
1. 데모의 주요 기능
1) 스마트 라우팅 시스템
- 사용자가 질문을 하면 AI가 자동으로 질문 유형을 파악
- 코드 관련 질문인지, 일반 문서 관련 질문인지 구분
2) 2 개의 Knowledge Base
- 코드 Knowledge Base : 프로그래밍, 개발 관련 정보
- 문서 Knowledge Base : 일반 설명, 정책, 가이드라인 등
2. 작동 방식
1) 사용자 질문 입력
- 예: “Python으로 파일을 어떻게 읽나요?”
2) AI 라우터의 분석
- Claude AI가 질문을 분석하여 적절한 카테고리로 분류
3) Knowledge Base 검색
- 분류된 카테고리에 맞는 Knowledge Base에서 관련 정보 검색
4) 답변 생성
- 찾은 정보를 바탕으로 상세한 답변 제공
3. 사용 예시
👤 사용자: “AWS Lambda 함수를 만드는 방법이 궁금해요”
🤖 시스템: [코드 Knowledge Base로 라우팅] → 코드 예제와 함께 상세한 설명 제공
👤 사용자: “AWS 요금제는 어떻게 되나요?”
🤖 시스템: [문서 Knowledge Base로 라우팅] → 요금 정책과 관련된 정보 제공