[SageMaker] SageMaker Jumpstart의 Custom dataset을 통해 LLM 평가하기

Sagemaker 환경에서 Custom dataset을 통해 모델의 성능을 평가합니다.

[SageMaker] SageMaker Jumpstart의 Custom dataset을 통해 LLM 평가하기
Photo by Towfiqu barbhuiya / Unsplash

LLM Evaluation

AWS에서 제공하는 공개 데이터 셋을 통해 LLM 모델의 성능 평가를 테스트해보았습니다.해당 자료에서는 사용자가 가지고 있는 데이터를 통해 Jumpstart에서 모델을 평가할 수 있도록 구현 해볼 예정입니다.Amazon SageMaker JumpStart는 SageMaker Studio의 Amazon SageMaker Clarify 기초 모델 평가(FMEval)와 통합되어 있습니다. JumpStart 모델에 사용 가능한 평가 기능이 내장되어 있는 경우 이 모델을 평가할 수 있습니다.

Prerequisite

추가적으로 Public Dataset과는 다르게, 사전 정의된 데이터를 활용해야하므로 Jupyter notebook 환경을 만들어 테스트 데이터를 다운로드합니다.

이후 환경을 실행시킵니다.

  • 단순히 테스트 데이터만을 활용할 것이기 떄문에 큰 인스턴스 사이즈는 필요하지 않습니다.

생성된 환경으로 접속합니다.

상단의 Git Clone Repo를 통해 테스트하기 위한 코드를 가져와 실행시켜야합니다.https://github.com/aws-samples/genai-for-builders.git

이후 현재 디렉토리에서 prerequisites > runme.ipynb 을 실행합니다.

Process

Jumpstart 모델 선택

Jumpstart로 이동합니다.

클릭하면 다음과 같은 화면을 확인할 수 있습니다.그 중에서 OpenSource로 유명한 Meta의 Llama 모델을 사용하여 테스트를 진행할 예정입니다.[Meta의 Llama3 8b 모델을 사용하여 테스트 하였습니다.]

모델 평가 과정

1단계: 작업 세부정보 지정

작업에 대한 이름과 설명을 추가합니다.모델과 수행 중인 평가 유형을 설명하는 이름을 선택하세요. 이 이름은 평가 결과 및 아티팩트가 생성된 후 저장하기 위한 폴더를 생성하는 데 사용됩니다.

2단계: 평가 파라미터 설정

다음과 같은 5개의 파라미터를 설정해야합니다.

  • 평가 유형
  • 평가하려는 모델 확인
  • 평가 지표(2개 이상의 지표일 수 있음) 및 해당 평가 데이터 세트
  • 평가 결과 목적지
  • 프로세스 구성

평가 유형

AWS에서 자동화된 Automatic 혹은 사람이 직접 작업하는 방식이 있습니다.현재 테스트에서는 AWS에서 제공하는 Automatic evaluation 활용하여 수행하도록 하겠습니다.

작업 유형 선택

모든 작업 유형에는 권장 지표 및 지표 유형이 제공됩니다. 평가 기준에 맞게 사용자 정의 지표 생성을 포함하여 지표를 추가, 편집 및 제거할 수 있습니다.Automatic을 선택했으므로 몇 가지 사전 정의된 평가 기준이 존재합니다.Q&A 방식을 선택하여 모델이 실제 자연어 질문에 맞게 답변을 제공하는지 평가합니다.
이전에 사전 정의된 데이터셋을 사용한 것과는 달리 이번에는 사용자가 가지고 있는 데이터셋을 활용합니다.

데이터 세트는 다음 위치에 있습니다. s3://sagemaker-<region>-<account_id>/datasets/sciq/evaluation/automatic_small/dataset_evaluation_small.jsonl

나머지 2개의 지표에 대해서도 동일한 Location을 지정합니다

3단계: Review and Submit

도메인 구성과 파라미터가 올바른지 확인합니다.

이후 Submit을 누르면 SageMaker Endpoint가 생성되며 작업이 진행됩니다.

이때 AWS GPU가 부족한 경우 에러가 발생할 경우가 있습니다.Jobs 콘솔 상으로는 따로 에러메시지를 참고할 수 없어 작업이 실패한 경우 Sagemaker Endpoint를 참고해보실 것을 권장드립니다.

모델 평가 결과

작업이 완료되면 다음과 같은 결과를 확인해볼 수 있습니다.

모델의 성능에 대한 리포트로 다음과 같이 출력되며, 생성된 Job에서도 확인할 수 있습니다.