AWS Bedrock Knowledge Base Retriever를 활용한 RAG 애플리케이션 구축 가이드

서론

클라우드 환경에서 비공개 데이터를 활용해 머신러닝 모델을 빠르고 효율적으로 사용자 정의하는 것이 점점 더 중요해지고 있습니다. AWS는 Knowledge Bases for Amazon Bedrock이라는 강력한 도구를 제공하여 개발자가 RAG(Retrieval-Augmented Generation) 애플리케이션을 쉽게 구축할 수 있도록 지원합니다. 이 글에서는 AWS Bedrock Knowledge Base Retriever를 사용하여 RAG 애플리케이션을 빠르게 시작하는 방법과 실제 개발 과정에서 직면할 수 있는 문제를 해결하는 방법을 안내합니다.

주요 내용

1. Knowledge Base Retriever란?

Knowledge Base Retriever는 Amazon S3에 저장된 데이터를 자동으로 벡터로 변환하고 전용 벡터 데이터베이스에 저장하는 AWS 도구입니다. 벡터 데이터베이스가 없는 사용자를 위해 AWS는 Amazon OpenSearch Serverless 벡터 저장소를 자동으로 생성합니다. Langchain과 Amazon Bedrock을 통합하면 사용자 질의와 관련된 결과를 쉽게 검색할 수 있습니다.

2. Knowledge Base 설정 방법

AWS 콘솔이나 SDK를 통해 Knowledge Base를 구성할 수 있습니다. 시작하기 전에 knowledge_base_id를 확보해야 합니다. 다음은 자동화된 쿼리 추적이 필요할 경우 선택적으로 설정할 수 있는 LangSmith API 키 설정 단계입니다:

import os
import getpass

# os.environ["LANGSMITH_API_KEY"] = getpass.getpass("Enter your LangSmith API key: ")
# os.environ["LANGSMITH_TRACING"] = "true"

3. 설치 및 인스턴스화

먼저 langchain-aws 패키지를 설치합니다:

%pip install -qU langchain-aws

그런 다음 검색기를 인스턴스화합니다:

from langchain_aws.retrievers import AmazonKnowledgeBasesRetriever

searcher = AmazonKnowledgeBasesRetriever(
    knowledge_base_id="PUIJP4EQUA",
    retrieval_config={"vectorSearchConfiguration": {"numberOfResults": 4}},
)

코드 예제

대통령이 Ketanji Brown에 대해 언급한 내용을 질의한다고 가정해봅시다:

query = "What did the president say about Ketanji Brown?"

# 검색기 사용
searcher.invoke(query)

# 체인에서 검색 사용
from botocore.client import Config
from langchain.chains import RetrievalQA
from langchain_aws import Bedrock

model_config_claude = {"temperature": 0, "top_k": 10, "max_tokens_to_sample": 3000}

llm = Bedrock(model_id="anthropic.claude-v2", model_kwargs=model_config_claude)

qa = RetrievalQA.from_chain_type(
    llm=llm, retriever=searcher, return_source_documents=True
)

qa(query)  # API 프록시 서비스를 사용하여 접근 안정성 향상

자주 발생하는 문제와 해결 방안

문제 1: 네트워크 접근 제한으로 인한 API 연결 문제

해결 방안: 코드에서 API 프록시 서비스를 사용하여 접근 안정성을 향상시킵니다. 일부 지역에서는 AWS API를 정상적으로 사용하기 위해 프록시 서비스로 네트워크 제한을 우회해야 할 수 있습니다.

문제 2: 벡터 데이터베이스 구성의 복잡성

해결 방안: AWS가 자동으로 Amazon OpenSearch Serverless 벡터 저장소를 생성하므로 데이터베이스를 수동으로 구성할 필요가 줄어듭니다.

요약 및 추가 학습 자료

AWS Bedrock Knowledge Base Retriever는 RAG 애플리케이션 개발 프로세스를 단순화하여 복잡한 데이터 처리 대신 비즈니스 로직에 집중할 수 있게 해줍니다. 더 깊이 학습하려면 다음 자료를 참조하세요:

  • AWS 공식 문서
  • Langchain AWS 라이브러리

참고 자료

  1. AWS 공식 문서: https://aws.amazon.com/documentation/
  2. Langchain AWS 라이브러리: https://github.com/langchain-ai/langchain-aws

태그: AWS Bedrock RAG Knowledge Base Amazon OpenSearch Serverless LangChain

6월 12일 01:16에 게시됨