AWS를 활용하여 관리형 지식 기반, 스마트 파싱 및 에이전트 검색으로 엔터프라이즈 RAG 구축하기
요약
본 글은 AWS Amazon Bedrock Managed Knowledge Base를 활용하여 엔터프라이즈 RAG 시스템을 구축하는 방법을 다룹니다. 이 서비스는 데이터 수집, 파싱, 검색 등 복잡한 RAG 구성 요소를 관리형으로 단순화합니다. 이를 통해 개발자는 여러 분산된 문서에서 신뢰성 높은 답변을 얻는 데 집중할 수 있습니다.
핵심 포인트
- Amazon Bedrock Managed Knowledge Base가 엔터프라이즈 RAG 구축을 단순화함.
- S3, SharePoint, Confluence 등 다양한 소스를 네이티브 커넥터로 지원함.
- 복잡한 RAG 파이프라인의 여러 단계를 관리형으로 처리하여 운영 복잡성을 줄임.
- Python 데모를 통해 실제 엔터프라이즈 문서 검색 기능을 구현할 수 있음.
엔터프라이즈 AI 어시스턴트는 언어 모델만으로는 충분하지 않습니다. 적절한 문서에 대한 접근성, 신뢰할 수 있는 검색 기능, 그리고 사용자가 검증할 수 있는 답변이 필요합니다.
내부 어시스턴트에게 다음과 같이 질문한다고 상상해 보세요:
우리 ML 플랫폼을 어떤 팀이 소유하고 있는지, 연간 클라우드 예산은 얼마인지, 그리고 구매 정책에서 연간 선지급을 허용하는지?
답변은 팀 소유권 문서, 예산 파일, 그리고 비용 정책 등 여러 곳에 분산되어 있을 수 있습니다. 기본적인 검색 파이프라인으로는 이 중 단 하나만 찾을 수 있어 답변이 불완전할 수 있습니다.
Amazon Bedrock Managed Knowledge Base는 관리형 데이터 수집(ingestion) 및 검색 기능, 네이티브 데이터 커넥터, Smart Parsing, 그리고 에이전트 검색 기능을 통해 엔터프라이즈 Retrieval-Augmented Generation (RAG)을 단순화하는 데 도움을 줍니다.
본 튜토리얼에서는 이러한 기능들을 탐색하고 여러 엔터프라이즈 문서에서 증거를 검색하는 Python 데모를 구축해 보겠습니다.
1. Amazon Bedrock Managed Knowledge Base란 무엇인가?
RAG는 문서 검색과 생성형 AI 모델을 결합한 것입니다. 단순히 학습 과정에서 얻은 정보에만 의존하는 대신, 애플리케이션이 구성된 소스에서 관련 정보를 검색하여 답변을 생성하는 데 사용합니다.
일반적인 RAG 파이프라인에는 다음 요소들이 포함됩니다:
- 데이터 소스 연결 (Data source connections)
- 문서 파싱 및 청킹 (Document parsing and chunking)
- 임베딩 및 인덱싱 (Embeddings and indexing)
- 검색 및 랭킹 (Retrieval and ranking)
- 답변 생성 (Answer generation)
- 출처 참조 및 평가 (Source references and evaluation)
각 구성 요소를 개별적으로 관리하는 것은 운영 복잡성을 증가시킬 수 있습니다.
Amazon Bedrock Managed Knowledge Base는 지식의 수집과 검색에 대한 관리형 접근 방식을 제공하여, 개발자들이 모든 RAG 구성 요소를 직접 구축하기보다는 애플리케이션 자체에 집중할 수 있도록 돕습니다.
공식 문서: Amazon Bedrock Managed Knowledge Base
2. 네이티브 데이터 커넥터
기업 지식은 종종 여러 플랫폼에 분산되어 있습니다.
Managed Knowledge Base는 다음과 같은 지원되는 소스용 네이티브 커넥터를 지원합니다:
- Amazon S3
- Microsoft SharePoint
- Atlassian Confluence
- Google Drive
- Microsoft OneDrive
- 웹 크롤러(Web Crawler)
이러한 커넥터들은 기업 콘텐츠를 지식 기반으로 가져오는 데 필요한 사용자 지정 수집 코드(custom ingestion code) 양을 줄일 수 있습니다.
예를 들어, 한 회사는 S3에서 엔지니어링 런북(runbooks)을 검색하고 지원되는 협업 플랫폼에서 비즈니스 정책을 검색한 다음, 그 정보를 사용하여 내부 질문에 답변할 수 있습니다.
커넥터는 여전히 적절한 권한, 동기화 및 접근 제어 구성이 필요합니다. 항상 AWS 문서에서 현재 지원되는 소스와 전제 조건을 확인하십시오.
3. 복잡한 문서를 위한 스마트 파싱(Smart Parsing)
모든 기업 데이터가 일반 텍스트는 아닙니다.
PDF, 보고서, 프레젠테이션 및 기술 문서에는 표, 다이어그램, 스크린샷 또는 복잡한 레이아웃이 포함될 수 있습니다. 기본적인 텍스트 추출만으로는 이러한 요소들 간의 중요한 관계를 놓칠 수 있습니다.
Smart Parsing은 지원되는 콘텐츠를 처리하여 검색(retrieval) 과정에서 더 효과적으로 사용될 수 있도록 돕습니다.
잠재적인 사용 사례는 다음과 같습니다:
- 아키텍처 문서
- 기술 보고서
- 비즈니스 정책
- 표와 다이어그램을 포함하는 문서
- 지원되는 스캔 또는 시각적 콘텐츠
파싱 품질은 여전히 대표적인 문서를 사용하여 테스트해야 합니다. 중요한 수치, 표 관계 및 다이어그램 세부 사항은 검증이 필요할 수 있습니다.
참고: Amazon Bedrock Managed Knowledge Base 발표
4. 에이전트 검색(Agentic retrieval): 다중 부분 질문 처리
전통적인 검색(Traditional retrieval)은 일반적으로 질의와 관련된 콘텐츠를 검색합니다. 이는 간단한 질문에는 잘 작동하지만, 더 복잡한 질문은 여러 번의 검색을 필요로 할 수 있습니다.
다음과 같은 경우를 고려해 보세요:
당사 플랫폼 예산과 구매 정책을 비교해 주세요. 연간 선지급이 허용되는지, 그리고 어떤 승인이 필요한가요?
애플리케이션은 예산을 검색하고, 정책을 찾고, 관련 조건을 연결하며, 사용 가능한 증거에 근거하여 답변을 생성해야 합니다.
에이전트 기반 검색(Agentic retrieval)은 파운데이션 모델(foundation model)을 사용하여 구성된 지식 기반 검색기(knowledge base retrievers) 전반에 걸쳐 검색을 계획하고 개선합니다. 이는 복잡한 질문을 하위 질의(sub-queries)로 분해하고, 정보를 반복적으로 검색하며, 충분한 증거가 사용 가능한지 평가할 수 있습니다.
이는 다음 경우에 도움이 될 수 있습니다:
- 기업 정책 비서(Enterprise policy assistants)
- 기술 지원(Technical support)
- 내부 문서 검색(Internal documentation search)
- 문서 간 비교(Cross-document comparisons)
- 여러 관련 부분이 있는 질문
에이전트 기반 검색은 검색 프로세스를 개선할 수 있지만, 정확한 답변을 보장하지는 않습니다. 프로덕션 환경에서 의존하기 전에 결과와 인용 출처를 검증해야 합니다.
5. 데모 아키텍처(Demo architecture)
세 개의 가상 문서를 사용하여 기업 정책 비서(enterprise policy assistant)를 만들 것입니다.
Enterprise Documents
|
v
...
Amazon Bedrock은 대부분의 기본 수집 및 검색 인프라를 관리합니다. 애플리케이션 자체는 여전히 권한, 오류 처리, 보안 제어(security controls)가 필요합니다.
6. Python 데모 구축(Build the Python demo)
전제 조건(Prerequisites)
다음이 필요합니다:
- AWS 계정
- 지원되는 리전(Region)에서 Amazon Bedrock 접근 권한
- 관리형 지식 기반(Managed Knowledge Base)
- 샘플 문서를 포함하는 S3 버킷
- 적절한 IAM ID 및 권한
- Python 3 및 Boto3
단계 1: 프로젝트 생성(Create the project)
enterprise-rag-demo/
├── documents/
│ ├── team-ownership.md
...
단계 2: 샘플 문서 추가(Add sample documents)
다음 내용을 번역합니다.
생성할 파일:
documents/team-ownership.md:
# ML Platform Team Ownership
The ML Platform team owns the internal machine learning
...
documents/cloud-budget.md:
# ML Platform Cloud Budget
The ML Platform team has an illustrative annual cloud
...
documents/expense-policy.md:
# Cloud Expense and Prepayment Policy
Annual cloud prepayment may be considered when the
...
이들은 가상의 예시입니다. 이 예산은 AWS 가격 추정치가 아닙니다.
3단계: S3에 문서 업로드하기
지원되는 리전(Region)에서 S3 버킷을 생성하고 세 파일을 다음과 같은 접두사(prefix)에 업로드합니다:
s3://YOUR-BUCKET-NAME/enterprise-rag-demo/
YOUR-BUCKET-NAME을 사용자의 버킷 이름으로 대체하세요.
4단계: 관리형 지식 기반(Managed Knowledge Base) 생성하기
Amazon Bedrock 콘솔에 접속하여 다음을 수행합니다:
- Knowledge Bases로 이동합니다.
- 관리형 지식 기반(Managed Knowledge Base)을 생성합니다.
- 이름과 지원되는 리전(Region)을 구성합니다.
- 소스(source)로 Amazon S3를 선택합니다.
- 문서를 포함하는 버킷 또는 접두사를 구성합니다.
- IAM 권한 및 역할 구성을 검토합니다.
- 생성을 완료하고 데이터 소스를 동기화합니다.
- 색인 생성(ingestion)이 성공적으로 완료될 때까지 기다립니다.
생성된 지식 기반 ID를 저장합니다. 이 ID는 Python 애플리케이션에서 사용됩니다.
최신 요구 사항 및 콘솔 옵션은 공식 설정 가이드를 참조하세요.
5단계: Boto3 설치하기
python -m pip install --upgrade boto3
적절한 IAM ID, CLI 프로필 또는 실행 역할(execution role)을 통해 자격 증명(credentials)을 구성합니다.
로컬 AWS CLI 설정을 위해서는 다음을 사용할 수 있습니다:
aws configure
애플리케이션에 AWS 액세스 키를 하드코딩하는 것은 피하세요.
6단계: 지식 기반 질의하기
query_enterprise_kb.py 파일을 생성합니다:
import os
boto3
...
예제는 관리형 검색 계획(managed retrieval planning) 및 재순위 지정(reranking)을 사용합니다. 반환되는 문서, 응답 텍스트, 추적 이벤트(trace events), 인용 매핑(citation mappings)은 서비스 구성과 사용 가능한 증거에 따라 달라집니다.
운영 환경에서는 민감한 문서 내용을 출력하는 대신 구조화된 로깅(structured logging)으로 추적을 전송해야 합니다.
API 참조: AgenticRetrieveStream
7단계: 데모 실행
PowerShell에서:
$env:AWS_REGION = "us-east-1"
$env:KNOWLEDGE_BASE_ID = "YOUR_KNOWLEDGE_BASE_ID"
...
Bash에서:
export AWS_REGION="us-east-1"
export KNOWLEDGE_BASE_ID="YOUR_KNOWLEDGE_BASE_ID"
...
실제 지식 기반 ID와 해당 지식 기반이 생성된 리전을 사용하십시오. 스크립트를 실행하는 신원이 에이전트 검색 API(agentic retrieval API) 및 구성된 관리형 기능에 필요한 권한을 가지고 있는지 확인하십시오.
7. 답변은 무엇을 포함해야 하는가?
샘플 문서를 기반으로 성공적인 응답은 다음 내용을 식별해야 합니다:
- 팀 소유권: ML 플랫폼 팀이 내부 ML 플랫폼을 소유합니다.
- 연간 예산: 예시 연간 클라우드 인프라 예산은 $120,000입니다.
- 선불 정책: 연간 선불(annual prepayment)을 고려할 수 있지만 자동으로 승인되지는 않습니다.
- 필수 조건: 약정(commitment)이 이루어지기 전에 비즈니스 정당성, 계약 조건, 예상 절감액, 예산 확인 및 재무 검토가 필요합니다.
응답에는 사용자가 중요한 주장을 확인할 수 있도록 출처 참조(source references)를 포함해야 합니다.
이는 실제 AWS 실행의 결과가 아니라 예제 문서를 기반으로 한 예상 결과입니다. 데모를 실행하여 환경에서 실제 응답과 인용을 검증하십시오.
8. 운영 시 고려 사항
엔터프라이즈 RAG 애플리케이션을 배포하기 전에 다음 영역들을 고려하십시오.
접근 제어(Access control): 사용자가 접근 권한이 있는 문서만 검색하도록 보장해야 합니다. 지원되는 접근 제어 메커니즘 및 신원 동작을 테스트하십시오.
데이터 신선도(Data freshness): 동기화 및 수집 실패를 모니터링해야 합니다.
근거 기반 답변(Grounded answers): 중요한 주장에 대한 증거를 요구하고 정보가 누락되었을 때 어시스턴트가 이를 알릴 수 있도록 해야 합니다.
프롬프트 인젝션(Prompt injection): 검색된 콘텐츠는 신뢰할 수 없는 입력으로 취급해야 합니다. 문서는 애플리케이션의 보안 규칙을 무효화해서는 안 됩니다.
관측 가능성(Observability): 민감한 정보를 보호하면서 실패한 쿼리, 검색 추적(retrieval traces), 지연 시간(latency), 소스 커버리지 등을 추적해야 합니다.
비용 및 지연 시간(Cost and latency): 에이전트 기반 검색(Agentic retrieval)은 여러 검색 단계를 포함할 수 있습니다. 추가 작업이 비용을 정당화할 만큼 충분히 결과를 개선하는지 측정해야 합니다.
평가(Evaluation): 알려진 답변과 예상 소스를 가진 대표적인 질문들을 대상으로 테스트해야 합니다. 답변 정확도, 인용 품질, 검색 완전성을 측정해야 합니다.
9. 에이전트 기반 검색은 언제 사용해야 할까요?
질문이 여러 출처의 정보를 필요로 하거나 여러 관련 단계를 포함하는 경우에 에이전트 기반 검색을 사용하세요.
단순한 조회(lookups)의 경우, 기존의 검색 방식이 더 간단하고 빠를 수 있습니다. 프로덕션 설계를 선택하기 전에 대표적인 평가 세트를 사용하여 두 가지 접근 방식을 모두 비교해 보세요.
다음으로, 두 번째 지원 데이터 커넥터를 추가하고, 테이블과 다이어그램을 포함하는 문서를 테스트하며, 검색 접근 방식을 비교하고, 직원들을 위한 간단한 웹 인터페이스를 생성하여 이 데모를 확장할 수 있습니다.
결론
엔터프라이즈 RAG는 단순히 문서 청크를 검색하는 것 이상입니다. 지식을 연결하고, 문서를 처리하며, 올바른 증거를 검색하고, 사용자가 검증할 수 있는 답변을 생성하는 것을 필요로 합니다.
Amazon Bedrock Managed Knowledge Base는 네이티브 데이터 커넥터, Smart Parsing, 관리형 인덱싱(managed indexing), 에이전트 기반 검색을 통합된 경험으로 제공합니다.
이 데모는 Python이 지식 기반에 쿼리하여 문서 전반의 정보를 검색하고 검증을 위해 소스 참조를 노출하는 방법을 보여줍니다.
제가 얻은 교훈: 단순히 질문에 답변하는 것이 아니라, 증거를 찾고, 정보를 연결하며, 결론을 검증 가능하게 만드는 AI 어시스턴트를 구축하세요.
가장 먼저 무엇을 만드시겠습니까? 내부 정책 비서(internal policy assistant), 기술 문서 비서(technical documentation assistant), 아니면 고객 지원 지식 에이전트(customer support knowledge agent) 중 어느 것입니까?
참고 자료
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기