본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 06. 03. 17:09

검색 증강 생성 (RAG) 시스템 평가를 위한 합성 데이터셋 생성

요약

RAG 시스템의 성능 평가를 위해 LLM과 지식 검색 컨텍스트를 활용하여 합성 데이터셋을 생성하는 실무 가이드를 제공합니다. Python과 Amazon Bedrock, Langchain을 사용하여 실제 사용자 상호작용을 모방한 데이터셋 구축 워크플로우를 다룹니다.

핵심 포인트

  • LLM을 활용한 현실적인 합성 평가 데이터셋 생성 방법
  • Amazon Bedrock 및 Langchain 기반의 엔드 투 엔드 워크플로우
  • 질문 생성부터 품질 평가까지의 자동화된 단계 안내
  • SageMaker 환경에서의 구현 및 IAM 권한 설정 가이드

검색 증강 생성 (Retrieval Augmented Generation, RAG) 시스템이 점점 더 보편화됨에 따라, 품질과 성능을 보장하기 위해 그 성능을 평가하는 것이 필수적입니다. 그러나 평가를 위한 실제 데이터를 수집하는 것은 특히 프로젝트 초기 단계에서 비용이 많이 들고 시간이 오래 걸릴 수 있습니다. 이 실습(Lab)은 대규모 언어 모델 (Large Language Models, LLM)과 지식 검색 컨텍스트 (Knowledge Retrieval Context)를 활용하여 실제 인간의 상호작용을 모방하는 합성 평가 데이터셋을 생성하는 실무 가이드를 제공합니다. 여기에는 Python과 Amazon Bedrock API를 사용하여 엔드 투 엔드 (End-to-end) 워크플로우를 설정하는 과정이 포함됩니다.

대규모 언어 모델과 지식 검색 컨텍스트를 활용함으로써, 제안된 접근 방식은 합성 데이터셋이 다양하고 현실적이며 실제 시나리오를 대표할 수 있도록 보장합니다. 이 솔루션은 RAG 시스템을 연구하는 개발자와 연구자들에게 유용하며, 평가 프로세스를 간소화하고 반복적인 개발 주기를 가속화하여 궁극적으로 더 나은 성능의 AI 시스템으로 이어지게 합니다.

노트북은 Bedrock API, Python, 그리고 Langchain을 사용하여 QA-RAG 애플리케이션을 위한 합성 데이터셋을 생성하는 과정을 안내합니다. 노트북은 다음과 같은 장으로 구성됩니다:

  • 환경 설정 (Set-up of the environment)
  • 컨텍스트 데이터 로드 및 준비 (Loading and preparing context data)
  • 초기 질문 생성 (Initial Question Generation)
  • 답변 생성 (Answer Generation)
  • 관련 컨텍스트 추출 (Extracting Relevant Context)
  • 최종 사용자의 행동에 맞춘 질문 진화 (Evolving Questions to fit end-users behaviour)
  • 자동화된 데이터셋 생성 (Automated Dataset Generation)
  • 질문 품질 평가 (Assessing the Questions quality)

이 실습은 사용자가 원하는 환경에서 실행할 수 있는 Python 노트북 형태로 제공됩니다:

  • SageMaker Studio는 머신러닝을 위한 웹 기반 통합 개발 환경 (Integrated Development Environment, IDE)입니다. 빠르게 시작하려면 도메인 빠른 설정 지침을 참조하십시오.
  • SageMaker Notebook Instance는 Jupyter Notebook App을 실행하는 머신러닝 (Machine Learning, ML) 컴퓨팅 인스턴스입니다.
  • 기존의 (로컬 또는 기타) 노트북 환경을 사용하려면 AWS를 호출할 수 있는 자격 증명 (Credentials)이 있는지 확인하십시오.

노트북 환경에서 사용하는 AWS Identity (SageMaker의 Studio/notebook Execution Role이거나, 자체 관리형 노트북의 경우 Role 또는 IAM User일 수 있음)는 Amazon Bedrock 서비스를 호출할 수 있는 충분한 AWS IAM 권한을 가지고 있어야 합니다.

사용자의 Identity에 Bedrock 액세스 권한을 부여하려면:

  • AWS IAM Console을 엽니다.
  • 사용 중인 Role (SageMaker를 사용하거나 IAM Role을 맡은 경우) 또는 User를 찾습니다.
  • Add Permissions > Create Inline Policy를 선택하여 새로운 인라인 권한을 첨부하고, JSON 에디터를 열어 아래의 예시 정책을 붙여넣습니다:
{
"Version": "2012-10-17",
"Statement": {
...

ℹ️

참고: Amazon SageMaker를 사용하는 경우, 노트북 실행 역할(Notebook execution role)은 일반적으로 AWS Console에 로그인하는 사용자 또는 역할과는 별개입니다. Amazon Bedrock을 위해 AWS Console을 탐색하려면 Console 사용자/역할에도 권한을 부여해야 합니다. AWS Bedrock 서비스에 액세스할 수 있고 적절한 자격 증명 (Credentials)이 있다면 어디에서든 노트북을 실행할 수 있습니다.

Bedrock의 세분화된 작업(Action) 및 리소스 권한에 대한 자세한 내용은 Bedrock Developer Guide를 확인하십시오.

ℹ️

참고: SageMaker Studio에서는 File > New > Terminal을 클릭하여 "System Terminal"을 열고 이 명령들을 실행할 수 있습니다.

노트북 환경 설정이 완료되면, 이 워크숍 리포지토리(Repository)를 노트북으로 클론(Clone)하십시오.

git clone https://github.com/aws-samples/generating-synthetic-datasets-for-evaluating-retrieval-augmented-generation-systems.git
cd generating-synthetic-datasets-for-evaluating-retrieval-augmented-generation-systems/Notebook

이제 실습 노트북을 탐색할 준비가 되었습니다! 대규모 언어 모델 (LLM) 액세스를 위해 노트북을 Amazon Bedrock에 연결하는 과정이 안내될 것입니다.

자세한 내용은 CONTRIBUTING을 참조하십시오.

이 실습은 MIT-0 라이선스 하에 제공됩니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0