본문으로 건너뛰기
버전: 1.0.0

모델 품질 평가 (EvaluationRun)

모델별 정확도와 응답 성능을 측정하는 단계로, 모델 간 비교나 NPU 컴파일 후 성능 검증 등의 목적으로 사용합니다.

평가는 Dataset 생성 → Dataset Version 추가 → Evaluation Criteria 정의 → 평가 실행의 순서로 진행합니다.


1. Dataset 등록

좌측 사이드바에서 Datasets 메뉴를 클릭합니다.

우측 상단 + Dataset 만들기 버튼을 눌러 아래 정보를 입력합니다.

필드
Nametutorial-eval
Description(선택)

생성된 Dataset을 클릭하여 상세 화면으로 이동한 뒤, 우측 상단의 Version 추가 버튼을 클릭합니다. Version 이름은 main으로 입력합니다.

데이터 소스 선택

데이터 소스는 HF datasetJSONL dataset 두 가지를 지원합니다.

  • HF dataset: Hugging Face Hub의 데이터셋을 직접 가져옵니다.
  • JSONL dataset: 로컬에서 준비한 JSONL 파일을 업로드합니다.

Dataset Version 추가

HF dataset을 사용하는 경우

HF dataset을 선택하고 아래 값을 입력합니다.

필드
Hugging Face repo IDopenai/gsm8k
Subsetmain
Splittrain
Revisionmain

각 필드는 Hugging Face 데이터셋 페이지에서 확인할 수 있는 값들로, 평가하려는 데이터셋에 맞게 자유롭게 변경할 수 있습니다.

HF dataset 입력

실행 버튼을 클릭하면 데이터셋을 가져옵니다. 작업이 완료되면 상태가 Ready로 바뀝니다.

JSONL dataset을 사용하는 경우

손에 있는 데이터를 그대로 평가에 쓰고 싶다면 JSONL dataset을 선택합니다. 각 줄이 하나의 평가 샘플이 되는 JSON Lines 형식으로 준비하면 됩니다.

{"input": "What is 2+2?", "expected_output": "4"}
{"input": "Capital of France?", "expected_output": "Paris"}
{"input": "Color of the sky?", "expected_output": "Blue"}
  • input: 모델에 줄 질문/프롬프트
  • expected_output: 정답으로 비교할 기대 출력

별도 Dataset(예: tutorial-eval-jsonl)을 새로 만들고, Version 추가에서 JSONL dataset을 선택해 위 형식의 파일을 업로드합니다. 이후 흐름은 HF dataset과 동일하게 상태가 Ready로 바뀔 때까지 기다립니다.


2. Evaluation Criteria 만들기

Dataset Version 상세 화면에서 Evaluation Criteria 탭을 클릭한 뒤, 평가 기준 만들기 버튼을 누릅니다.

폼은 Dataset Version의 source schema를 기준으로 만들어지므로, HF dataset이냐 JSONL dataset이냐에 따라 입력해야 하는 필드가 달라집니다. 사용한 Dataset 유형에 맞는 안내를 따라가세요.

HF dataset인 경우

HF dataset(예: openai/gsm8k)으로 진행하고 있다면 아래 화면이 보입니다.

HF Evaluation Criteria

필드
Nametutorial-eval-criteria
TemplateShort Answer QA
Input fieldquestion
Target fieldanswer
Prompt template{{input}}
Description(선택)

각 필드의 의미는 다음과 같습니다.

  • Template: 어떤 평가 방식을 쓸지 정하는 템플릿. 짧은 답변 QA 데이터셋은 Short Answer QA를 사용합니다.
  • Input field / Target field: Dataset 각 row에서 모델 입력과 정답으로 사용할 컬럼 이름. openai/gsm8k는 일반적으로 question, answer를 사용합니다.
  • Prompt template: 실제 모델에 들어갈 프롬프트 형태. {{input}} 자리에 선택한 input field 값이 치환됩니다.

Generated config preview에서 설정을 확인한 뒤 Evaluation Criteria 만들기를 클릭합니다.

JSONL dataset인 경우

JSONL dataset으로 진행하고 있다면 아래 화면이 보입니다. HF 화면과 달리 JSONL의 어느 키를 입력/정답으로 쓸지 직접 지정하는 필드들이 등장합니다.

JSONL Evaluation Criteria

필드
Nametutorial-eval-jsonl-criteria
TemplateShort Answer QA
Input fieldinput
Target fieldexpected_output
Prompt template{{input}}
Description(선택)

각 필드의 의미는 다음과 같습니다.

  • Template: 짧은 답변 QA JSONL은 일반적으로 Short Answer QA를 사용합니다.
  • Input field / Target field: JSONL 각 줄에서 모델 입력과 정답으로 사용할 키 이름. 위 예시 JSONL이면 각각 input, expected_output입니다.
  • Prompt template: 실제 모델에 들어갈 프롬프트 형태. {{input}} 자리에 JSONL의 input 값이 치환됩니다. 시스템 지시문이나 추가 컨텍스트를 앞뒤로 붙이고 싶을 때 이 템플릿을 수정합니다.

Preview에서 실제로 채워질 프롬프트와 기대 출력을 확인한 뒤 저장합니다. 이후 평가 실행 흐름은 HF dataset과 동일합니다.


3. 평가 실행

평가 실행 버튼

위 화면에서 Eval 버튼을 클릭하면 3단계 마법사가 열립니다.

Step 1. Dataset 선택

평가에 사용할 Dataset을 선택합니다. 사용한 Dataset 유형에 맞춰 앞서 등록한 항목을 고릅니다.

  • HF dataset인 경우: tutorial-eval
  • JSONL dataset인 경우: tutorial-eval-jsonl

Step 2. Evaluation Criteria 선택

어떤 방식으로 평가할지 정의된 Evaluation Criteria를 선택합니다. Dataset 유형에 맞춰 앞서 만든 Criteria를 고릅니다.

  • HF dataset인 경우: tutorial-eval-criteria (Short Answer QA, input=question, target=answer)
  • JSONL dataset인 경우: tutorial-eval-jsonl-criteria (Short Answer QA, input=input, target=expected_output)

Step 3. 컬럼 매핑 및 실행 옵션

Evaluation Criteria가 요구하는 입력 컬럼(예: 질문, 정답)이 DatasetVersion의 어떤 컬럼과 연결될지 보여줍니다. gsm8k처럼 표준 스키마를 따르는 데이터셋은 기본값으로도 정상 동작합니다. 사용 중인 Dataset의 컬럼명이 다르거나 일부 필드를 다른 컬럼으로 대체하고 싶을 때만 매핑을 조정합니다.

이어서 평가 실행 옵션을 확인합니다. 각 항목은 다음을 의미합니다.

  • Limit (optional): 평가에 사용할 샘플 개수 상한입니다. 비워두면 Dataset 전체를 사용합니다. 빠르게 동작만 확인하고 싶을 때 작은 값(예: 10)으로 지정합니다.
  • Batch size: 한 번에 모델에 보낼 입력 묶음 크기입니다. 클수록 처리량이 늘지만 메모리를 더 사용합니다. 기본값 1로 시작합니다.
  • 동시 요청 수: 서빙 엔드포인트로 동시에 보낼 요청 수입니다. 값을 키우면 평가가 빨라지지만 서빙 리소스 부담이 커집니다. 기본값 1로 시작합니다.
  • Few-shot 수 (optional): 프롬프트에 함께 넣어줄 예시 개수입니다. gsm8k 같은 추론 태스크는 보통 5~8을 사용하지만, 비워두면 Evaluation Criteria에 정의된 기본값을 사용합니다.
  • Serving CPU / Serving memory / Serving accelerator 수: 평가를 위해 임시로 띄우는 서빙 Pod의 리소스 요청량입니다.

기본값으로 진행해도 되며, 위 설명을 참고해 필요한 값만 조정한 뒤 평가를 실행합니다.


4. 결과 확인

Model Version 상세 화면의 Evaluations 탭에서 실행 중/완료된 평가 목록을 확인할 수 있습니다. 평가가 완료되면 상태가 Succeeded로 바뀌고, 결과를 클릭하면 상세 메트릭을 확인할 수 있습니다.

평가 결과 상세

상세 화면의 메트릭은 크게 Quality Metrics(모델 정확도)와 Runtime Metrics(서빙 성능) 두 가지로 나뉩니다.

Quality Metrics

모델이 정답을 얼마나 맞췄는지 보여주는 지표입니다. 이 튜토리얼의 Short Answer QA 기준은 선택한 target field와 모델 출력을 비교해 exact_match를 계산합니다.

  • exact_match: 모델 출력이 target field 값과 일치한 비율입니다. 1.0에 가까울수록 정답률이 높습니다.
  • Limit을 작게 설정한 smoke test에서는 몇 개 샘플 차이만으로도 점수가 크게 흔들릴 수 있습니다. GPU/NPU artifact를 비교할 때는 같은 DatasetVersion, 같은 Evaluation Criteria, 같은 실행 옵션을 사용하세요.

Runtime Metrics

평가 도중 띄운 서빙 Pod에서 측정된 성능 지표입니다.

  • ttftP50 / ttftP99 (초): Time To First Token. 요청을 보낸 시점부터 첫 토큰이 돌아올 때까지 걸린 시간의 중앙값(P50)과 99분위(P99). 체감 응답 지연을 좌우합니다.
  • itlP50 / itlP99 (초): Inter-Token Latency. 첫 토큰 이후 후속 토큰들이 얼마나 빠르게 이어 나오는지를 나타내는 토큰 간 간격의 P50/P99. 스트리밍 응답 속도와 직결됩니다.
  • tps: Tokens Per Second. 초당 생성 토큰 수(throughput). 높을수록 처리량이 좋습니다.
  • power (W): 평가 중 측정된 평균 전력 소비량.
  • tokensPerWatt: 와트당 생성 토큰 수(tps / power에 해당하는 효율 지표). 같은 모델이라도 NPU(rngd) 아티팩트가 GPU 대비 이 값이 높게 나오는 것이 일반적입니다.

5. 결과 비교 (GPU vs NPU)

NPU 컴파일은 양자화·연산 치환 등으로 인해 GPU 대비 정확도가 미세하게 달라질 수 있습니다. 운영 반영 전에 같은 모델의 GPU 아티팩트와 NPU 컴파일 결과를 동일 Dataset으로 평가하고, 두 결과를 직접 비교합니다.

비교 평가 준비

같은 DatasetVersion(tutorial-eval / main)에 대해 두 번의 평가를 실행합니다. 두 평가 모두 동일한 Evaluation Criteria를 사용해야 결과를 1:1로 맞출 수 있습니다.

평가대상 아티팩트DatasetVersionEvaluation Criteria
Run AGPU(base)tutorial-eval / maintutorial-eval-criteria
Run BNPU(컴파일 결과, 예: rngd)tutorial-eval / maintutorial-eval-criteria

Compare 화면

두 평가가 모두 Succeeded 상태가 되면, Evaluations 목록에서 비교할 Run들을 선택하고 Compare 버튼을 클릭합니다.

평가 결과 비교

비교 화면에서는 Quality Metrics와 Runtime Metrics가 두 Run을 나란히 보여주며, 다음을 한 눈에 확인할 수 있습니다.

  • 정확도 손실: exact_match 등 Quality Metrics가 GPU 대비 어느 정도 변했는지. 작은 Limit으로 실행한 결과는 샘플 수가 적어 점수 변동이 클 수 있습니다.
  • 속도/효율 이득: tps, ttft, tokensPerWatt 같은 Runtime Metrics에서 NPU가 GPU 대비 얼마나 빠르고 효율적인지.

다음 단계

07. 모델 서빙 배포 — NPU 또는 GPU 서빙 배포