Amazon Web Services 한국 블로그

Amazon Bedrock RAG 평가 및 LLM-as-a-judge 기능 출시

오늘은 생성형 AI 애플리케이션 테스트 및 개선을 간소화하는 데 도움이 되는 Amazon Bedrock의 2가지 새로운 평가 기능을 발표합니다.

Amazon Bedrock Knowledge Bases, 이제 RAG 평가를 지원(평가판) – 이제 Amazon Bedrock Knowledge Bases를 사용하여 자동 지식 기반 평가를 실행해 검색 증강 생성(RAG) 애플리케이션을 평가하고 최적화할 수 있습니다. 평가 프로세스에서는 대규모 언어 모델(LLM)을 사용하여 평가를 위한 지표를 계산합니다. RAG 평가를 통해 다양한 구성을 비교하고 설정을 조정하여 사용 사례에 필요한 결과를 얻을 수 있습니다.

Amazon Bedrock 모델 평가, 이제 LLM-as-a-judge를 포함(평가판) – 이제 인적 평가를 실행하는 데 드는 비용과 시간보다 훨씬 적은 비용으로 인간과 유사한 품질로 테스트를 수행하고 다른 모델을 평가할 수 있습니다.

이러한 새로운 기능은 AI 기반 애플리케이션에 대한 신속하고 자동화된 평가를 제공하고 피드백 루프를 단축하며 개선 속도를 높임으로써 더 쉽게 프로덕션으로 전환할 수 있도록 합니다. 이러한 평가는 정확성, 유용성, 책임 있는 AI 기준(예: 답변 거부, 유해성)을 포함한 다양한 품질 차원을 평가합니다.

쉽고 직관적으로 이해할 수 있도록 평가 결과는 출력 및 콘솔에서 각 점수에 대한 자연어 설명을 제공하며, 점수는 용이한 해석을 위해 0~1로 정규화됩니다. 설명서에 루브릭의 전체 내용이 Judge 프롬프트와 함께 게시되므로 비과학자도 점수 산출 방법을 이해할 수 있습니다.

실제로 어떻게 작동하는지 보겠습니다.

Amazon Bedrock Knowledge Bases에서 RAG 평가 사용
Amazon Bedrock 콘솔의 Inference and Assessment 섹션에서 Evaluations를 선택합니다. 여기에서 새로운 Knowledge Bases 탭을 볼 수 있습니다.

콘솔 스크린샷.

Create를 선택하고 평가의 이름 및 설명을 입력한 다음 지표를 계산할 Evaluator model을 선택합니다. 여기서는 Anthropic의 Claude 3.5 Sonnet을 사용하겠습니다.

콘솔 스크린샷.

평가할 지식 기반을 선택합니다. 이전에 저는 AWS Lambda 개발자 설명서 PDF 파일만 포함하는 지식 기반을 생성했습니다. 이런 식으로 평가를 위해 AWS Lambda 서비스에 대한 질문을 할 수 있습니다.

검색 기능만 평가할 수도 있고 전체 검색 및 생성 워크플로를 평가할 수도 있습니다. 이 선택은 다음 단계에서 사용할 수 있는 지표에 영향을 줍니다. 검색 및 응답 생성을 모두 평가하도록 선택하고 사용할 모델을 선택합니다. 여기서는 Anthropic의 Claude 3 Haiku를 사용하겠습니다. 또한 Amazon Bedrock Guardrails를 사용하고 응답 생성기 모델 다음에 configurations 링크를 선택하여 런타임 추론 설정을 조정할 수 있습니다.

콘솔 스크린샷.

이제 평가할 지표를 선택할 수 있습니다. Quality 섹션에서 HelpfulnessCorrectness를 선택하고 Responsible AI metrics 섹션에서 Harmfulness를 선택합니다.

콘솔 스크린샷.

이제 평가에 사용할 데이터세트를 선택합니다. 이 데이터세트는 제가 이 평가를 위해 Amazon Simple Storage Service(Amazon S3)에 업로드한 JSONL 파일입니다. 각 줄은 대화를 제공하고 각 메시지에는 참조 응답이 있습니다.

{"conversationTurns":[{"referenceResponses":[{"content":[{"text":"A trigger is a resource or configuration that invokes a Lambda function such as an AWS service."}]}],"prompt":{"content":[{"text":"What is an AWS Lambda trigger?"}]}}]}
{"conversationTurns":[{"referenceResponses":[{"content":[{"text":"An event is a JSON document defined by the AWS service or the application invoking a Lambda function that is provided in input to the Lambda function."}]}],"prompt":{"content":[{"text":"What is an AWS Lambda event?"}]}}]}

평가 결과를 저장할 S3 위치를 지정합니다. 평가 작업을 수행하려면 S3 버킷을 Amazon Bedrock 사용 설명서에 설명된 Cross-Origin Resource Sharing(CORS) 권한으로 구성해야 합니다.

서비스 액세스를 위해서는 Amazon Bedrock이 수임할 수 있고 평가에 사용된 Amazon Bedrock 및 Amazon S3 리소스에 대한 액세스를 허용하는 AWS Identity and Access Management(IAM) 서비스 역할을 생성하거나 제공해야 합니다.

몇 분 후 평가가 완료되어 결과를 살펴봅니다. 실제 평가 기간은 프롬프트 데이터세트의 크기와 사용된 생성기 및 평가자 모델에 따라 달라집니다.

상단의 Metric summary는 모든 대화의 평균 점수를 사용하여 전체 성능을 평가합니다.

콘솔 스크린샷.

다음으로 Generation metrics breakdown을 통해 선택한 각 평가 지표에 대한 세부 정보를 확인할 수 있습니다. 평가 데이터세트가 작아서(두 줄) 큰 분포는 볼 수 없습니다.

여기에서 예제 대화와 평가 결과도 볼 수 있습니다. 모든 대화를 보려면 S3 버킷의 전체 출력을 확인할 수 있습니다.

Helpfulness이 1보다 약간 낮은 이유가 궁금합니다. Helpfulness에 대한 Example conversations를 확장하고 확대합니다. 여기에서 생성된 결과, 평가 데이터세트와 함께 제공한 원본 데이터, 점수를 볼 수 있습니다. 모델의 추론을 보기 위해 점수를 선택합니다. 모델에 따르면 보다 심층적인 정보를 얻는 데 도움이 되었을 것입니다. 모델은 정말 엄격한 심사위원입니다.

콘솔 스크린샷.

RAG 평가 비교
지식 기반 평가의 결과를 그 자체로는 해석하기 어려울 수 있습니다. 이러한 이유로 콘솔에서 여러 평가의 결과를 비교하여 차이점을 파악할 수 있습니다. 이를 통해 관심 있는 지표가 개선되고 있는지 여부를 파악할 수 있습니다.

예를 들어, 저는 이전에 두 번의 다른 지식 기반 평가를 실행한 적이 있습니다. 이들은 데이터 소스가 같지만 청킹 및 파싱 구성이 다르고 임베딩 모델이 다른 지식 기반과 관련이 있습니다.

두 평가를 선택하고 Compare를 선택합니다. 콘솔에서 비교할 수 있으려면 평가가 동일한 지표를 포함해야 합니다.

콘솔 스크린샷.

At a glance 탭에서는 스파이더 차트를 사용하여 지표를 시각적으로 비교한 것을 볼 수 있습니다. 이 경우에는 결과가 크게 다르지 않습니다. 가장 큰 차이점은 Faithfulness 점수입니다.

콘솔 스크린샷.

Evaluation details 탭에서는 점수 차이를 포함하여 각 지표의 결과를 자세히 비교할 수 있습니다.

콘솔 스크린샷.

Amazon Bedrock 모델 평가에서 LLM-as-a-judge 사용(평가판)
Amazon Bedrock 콘솔에서 탐색 창의 Inference and Assessment 섹션에서 Evaluations를 선택합니다. Create를 선택한 후 새로운 Automatic: Model as a judge 옵션을 선택합니다.

평가의 이름 및 설명을 입력하고 평가 지표를 생성하는 데 사용되는 Evaluator model을 선택합니다. 저는 Anthropic의 Claude 3.5 Sonnet을 사용하겠습니다.

콘솔 스크린샷.

그런 다음 평가하려는 모델인 Generator model을 선택합니다. 모델 평가는 더 작고 더 비용 효율적인 모델이 내 사용 사례의 요구 사항을 충족하는지 이해하는 데 도움이 됩니다. 저는 Anthropic의 Claude 3 Haiku을 사용합니다.

콘솔 스크린샷.

다음 섹션 Metrics에서는 평가할 지표를 선택합니다. Quality 섹션에서 HelpfulnessCorrectness를 선택하고 Responsible AI metrics 섹션에서 Harmfulness를 선택합니다.

콘솔 스크린샷.

Datasets 섹션에서 평가 데이터세트가 저장되는 Amazon S3 위치와 모델 평가 작업의 결과가 저장되는 S3 버킷의 폴더를 지정합니다.

평가 데이터세트로 다른 JSONL 파일을 준비했습니다. 각 줄은 프롬프트와 참조 답변을 제공합니다. 참고로 형식은 지식 기반 평가와 다릅니다.

{"prompt":"Write a 15 words summary of this text:\n\nAWS Fargate is a technology that you can use to run containers without having to manage servers or clusters. With AWS Fargate, you no longer have to provision, configure, or scale clusters of virtual machines to run containers. This removes the need to choose server types, decide when to scale your clusters, or optimize cluster packing.","referenceResponse":"AWS Fargate allows running containers without managing servers or clusters, simplifying container deployment and scaling."}
{"prompt":"Give me a list of the top 3 benefits from this text:\n\nAWS Fargate is a technology that you can use to run containers without having to manage servers or clusters. With AWS Fargate, you no longer have to provision, configure, or scale clusters of virtual machines to run containers. This removes the need to choose server types, decide when to scale your clusters, or optimize cluster packing.","referenceResponse":"- No need to manage servers or clusters.\n- Simplified infrastructure management.\n- Improved focus on application development."}

마지막으로 Amazon Bedrock에 이 평가 작업에서 사용되는 리소스에 대한 액세스 권한을 부여하는 IAM 서비스 역할을 선택할 수 있습니다.

이제 평가 생성을 완료했습니다. 몇 분 후 평가가 완료됩니다. 지식 기반 평가와 마찬가지로 결과는 Metrics Summary로 시작됩니다.

Generation metrics breakdown에서는 각 지표에 대해 자세히 설명하며, 몇 가지 샘플 프롬프트에 대한 세부 정보를 볼 수 있습니다. 평가 점수를 더 잘 이해하기 위해 Helpfulness를 살펴봅니다.

콘솔 스크린샷.

평가 프롬프트는 모델에서 올바르게 처리되었으며 결과를 사용 사례에 적용할 수 있습니다. 애플리케이션이 이 평가에서 사용된 것과 유사한 프롬프트를 관리해야 하는 경우 평가된 모델이 훌륭한 선택입니다.

알아야 할 사항
이러한 새로운 평가 기능은 다음 AWS 리전에서 평가판으로 사용할 수 있습니다.

  • RAG 평가: 미국 동부(버지니아 북부), 미국 서부(오리건), 아시아 태평양(뭄바이, 시드니, 도쿄), 캐나다(중부), 유럽(프랑크푸르트, 아일랜드, 런던, 파리), 남아메리카(상파울루)
  • LLM-as-a-judge: 미국 동부(버지니아 북부), 미국 서부(오리건), 아시아 태평양(뭄바이, 서울 시드니, 도쿄), 캐나다(중부), 유럽(프랑크푸르트, 아일랜드, 런던, 파리, 취리히), 남아메리카(상파울루)

참고로 사용 가능한 평가자 모델은 리전에 따라 다릅니다.

요금은 모델 추론에 대한 표준 Amazon Bedrock 요금을 기준으로 부과됩니다. 평가 작업 자체에는 추가 요금이 부과되지 않습니다. 평가자 모델 및 평가 대상 모델에는 일반 온디맨드 또는 프로비저닝된 요금에 따라 요금이 부과됩니다. Judge 프롬프트 템플릿은 입력 토큰의 일부이며, 이러한 Judge 프롬프트는 투명성에 대한 AWS 설명서에서 찾을 수 있습니다.

평가 서비스는 출시 당시에는 영어 콘텐츠에 최적화되어 있지만, 기본 모델은 지원하는 다른 언어의 콘텐츠에도 사용할 수 있습니다.

시작하려면 Amazon Bedrock 콘솔을 방문하세요. 자세히 알아보려면 Amazon Bedrock 설명서를 참조하고 Amazon Bedrock용 AWS re:Post에 피드백을 보낼 수 있습니다. community.aws에서 심층적인 기술 콘텐츠와 함께 빌더 커뮤니티가 Amazon Bedrock을 어떻게 사용하고 있는지 알아볼 수 있습니다. 이러한 새로운 기능으로 무엇을 빌드했는지 알려주세요!

Danilo