평가(Datasets) 시작하기
평가(Datasets) 시작하기
모델이 그냥 "뭔가 그럴듯한 응답"을 내는 것과, 내가 정한 기준대로 응답하는 것은 큰 차이가 있어요. 그래서 나온 개념이 평가(eval)인데요, 평가는 모델 출력이 지정한 스타일·내용 기준을 충족하는지 검증하는 작업이에요. 신뢰할 수 있는 애플리케이션을 만들려면 평가 작성은 필수고, 그 출발점으로 좋은 것이 OpenAI 플랫폼의 Datasets 기능이에요. 데이터셋과 프롬프트를 준비하고, 출력을 만들고, 그레이더로 평가하는 흐름을 이 글에서 처음부터 따라가 볼게요.
출처: 공식문서
참고: OpenAI는 Evals 플랫폼을 단계적으로 폐지하고 있어요. 기존 평가 콘텐츠는 전환 기간 동안 유지되지만, 2026년 10월 31일부터 기존 사용자에게 읽기 전용이 되고, 2026년 11월 30일에 플랫폼이 종료될 예정이에요. 자세한 일정은 폐지 공지를 확인하세요. 외부 모델과의 비교 평가, API로 평가 실행 조작, 더 큰 규모의 평가 등 고급 기능이 필요하다면 Evals를 쓰는 걸 고려해 보세요.
데이터셋 만들기
먼저 대시보드에서 데이터셋을 만들어요.
- 평가 페이지에서 Datasets 탭으로 이동해요.
- 오른쪽 위 Create 버튼을 눌러 시작해요.
- 입력 필드에 데이터셋 이름을 넣어요. 여기서는 "Investment memo generation"으로 만들게요.
- 데이터를 추가해요. 처음부터 만들려면 Create를 누르고 시각적 인터페이스로 데이터를 추가하고, 저장된 프롬프트나 CSV가 있다면 업로드하면 돼요.
데이터셋을 동적인 공간으로 활용하길 권해요. 시간이 지나면서 평가 데이터를 계속 늘리는 거예요. 모니터링이 필요한 엣지 케이스나 맹점이 발견되면 대시보드 인터페이스로 추가하면 됩니다.
CSV 업로드
회사 이름과 과거 분기 매출 실적이 담긴 간단한 CSV가 있다고 해볼게요. CSV의 열(column)은 프롬프트와 그레이더 모두가 접근할 수 있어요. 예를 들어 입력 열(company)과 그레이더가 참고할 ground truth 열(correct_revenue, correct_income)을 둘 수 있어요.
시각적 데이터 인터페이스
데이터셋을 열면 Data 탭에서 데이터를 조작할 수 있어요. 셀을 클릭해 내용을 수정하고, 행을 추가하고, 각 행 오른쪽 끝의 오버플로우 메뉴로 삭제·중복을 할 수 있어요. 변경 후에는 오른쪽 위 Save 버튼으로 저장하세요.
프롬프트 만들기
데이터셋 대시보드의 탭 구조 덕분에 여러 프롬프트가 같은 데이터와 상호작용할 수 있어요.
- 새 프롬프트를 추가하려면 Add prompt를 눌러요. 데이터셋은 OpenAI 프롬프트와 함께 쓰도록 설계돼 있어요. 플랫폼에 저장된 프롬프트가 있다면 드롭다운에서 선택해 이 인터페이스에서 수정할 수 있고, 변경 사항은 Save로 저장해요. 프롬프트에는 버전 관리 시스템이 있어서 안전하게 업데이트할 수 있어요. Save를 누르면 새 버전이 만들어지고, OpenAI 플랫폼 어디서든 참조하거나 사용할 수 있어요.
- 프롬프트 패널에서는 제공되는 필드와 설정으로 추론 호출을 제어할 수 있어요.
- 오른쪽 위 슬라이더 아이콘으로 모델의
temperature와top_p를 조절해요. - 도구를 추가해 웹 접근, MCP 사용, 기타 도구 호출 기능을 추론 호출에 부여할 수 있어요.
- 변수를 추가해요. 프롬프트와 그레이더 모두 이 변수를 참조할 수 있어요.
- 시스템 메시지를 직접 입력하거나 연필 아이콘을 눌러 모델이 프롬프트 생성을 도와주게 할 수 있어요.
예시에서는 웹 검색 도구를 추가해 모델이 인터넷에서 금융 데이터를 가져오게 하고, company 변수를 추가해 데이터셋의 회사 열을 참조하게 하며, "금융 보고서를 생성해줘"라고 지시해 프롬프트를 만들 거예요.
출력 생성과 주석(annotation)
데이터와 프롬프트가 준비되면 출력을 만들 차례예요. 모델의 출력은 프롬프트와 도구로 작업을 얼마나 잘 수행하는지 보여줘요. 그리고 이 출력에 주석을 달아 모델이 시간이 지나면서 성능을 개선하게 만들 거예요.
- 오른쪽 위 Generate output을 눌러요. 데이터셋에 특별한 output 열이 생기면서 각 행에 프롬프트를 돌린 결과가 채워져요.
- 출력이 준비되면 주석을 답니다. output, rating, output_feedback 열을 클릭하면 주석 보기가 열려요. 주석을 얼마나 달지는 자유예요. 데이터셋은 어떤 수준·유형의 주석이든 잘 동작하도록 설계됐지만, 더 고품질의 정보를 제공할수록 결과가 좋아져요.
주석이 하는 일
주석은 모델 출력을 평가하고 개선하는 핵심 부분이에요. 좋은 주석은:
- 스타일·톤 같은 주관적 요소를 포함해, 아주 특수한 경우에도 원하는 모델 동작의 ground truth가 된다
- (프롬프트 최적화 도구를 통한) 자동 프롬프트 개선이 가능하도록 정보 밀도 높은 맥락을 제공한다
- 특히 미묘하거나 드문 경우에서 프롬프트의 단점 진단을 가능하게 한다
- 그레이더가 내 의도와 일치하도록 돕는다
데이터셋 내용에 전문가가 아니라면, 해당 분야 전문가(subject matter expert)가 주석을 수행하는 걸 권장해요. 전문성이 최적화 과정에 녹아드는 가장 가치 있는 방법이거든요. 쿡북: evals로 회복력 있는 프롬프트 만들기에서 어떤 접근이 효과적인지 더 볼 수 있어요.
주석 시작 지점
시작할 때 쓸 수 있는 주석 유형 몇 가지예요.
- 출력에 대한 판단을 나타내는 Good/Bad 등급
- output_feedback 섹션의 텍스트 비평
- 오른쪽 위 Columns 드롭다운에서 추가한 맞춤 주석 카테고리
전문가 주석 활용
데이터셋 내용에 전문가가 아니라면 분야 전문가가 주석을 수행하게 하세요. 최적화 과정에 전문성을 녹이는 최선의 방법이에요. 관련 쿡북을 확인해 보세요.
그레이더 추가하기
주석이 인간 피드백을 평가에 녹이는 가장 효과적인 방법이라면, **그레이더(graders)**는 평가를 대규모로 돌릴 수 있게 해줘요. 그레이더는 자동 평가로, 종류에 따라 다양한 입력을 만들 수 있어요.
| 유형 | 세부 내용 | 사용 사례 |
|---|---|---|
| String check | 모델 출력을 참조와 정확한 문자열 일치로 비교 | 응답이 ground truth 열과 정확히 일치하는지 확인 |
| Text similarity | 임베딩으로 모델 출력과 참조 사이 의미적 유사도를 계산 | 정확한 일치가 필요 없을 때 ground truth 참조와 얼마나 가까운지 확인 |
| Score model grader | LLM으로 숫자 점수 부여 | 친절도 같은 주관적 속성을 수치 척도로 측정 |
| Label model grader | LLM으로 카테고리 레이블 선택 | "concise"나 "verbose" 같은 고정 레이블로 응답 분류 |
| Python code execution | 맞춤 Python 코드를 실행해 프로그래밍 방식으로 결과 계산 | 출력이 50단어 미만인지 확인 |
- 오른쪽 위에서 Grade > New grader로 이동해요.
- 드롭다운에서 그레이더 유형을 고르고 폼을 채워 그레이더를 구성해요.
- 데이터셋의 열을 참조해 ground truth 값과 대조해요.
- 그레이더를 생성해요.
- 그레이더를 하나 이상 추가하면 Grade 드롭다운으로 특정 그레이더나 전체 그레이더를 데이터셋에 실행할 수 있어요. 실행이 끝나면 그레이더별 전용 열에 pass/fail 등급이 표시돼요.
데이터셋을 저장하면 그레이더는 데이터셋과 프롬프트가 바뀌어도 유지돼요. 그래서 프롬프트나 모델 파라미터 변경이 개선으로 이어지는지, 엣지 케이스 추가가 프롬프트의 한계를 드러내는지를 빠르게 평가하는 좋은 도구가 돼요. 데이터셋 대시보드는 여러 프롬프트 변형의 자동 그레이더 결과를 동시에 추적하는 다중 탭도 지원해요.
그레이더에 대한 자세한 내용은 그레이더 가이드를 참고하세요.
다음 단계
데이터셋은 빠른 반복에 최고예요. 시간에 따른 성능 추적이나 대규모 실행이 필요할 때는 데이터셋을 Eval로 내보내세요. Evals는 비동기로 실행되고 더 많은 데이터 양을 지원하며 버전 간 성능 모니터링을 가능하게 해요.
더 많은 아이디어는 예시 코드와 서드파티 리소스 링크가 담긴 OpenAI Cookbook에서 찾을 수 있어요.
더 알아보기 (Learn more)
- Cookbook: evals로 회복력 있는 프롬프트 만들기 — 평가로 지속 개선의 플라이휠 돌리기
- Working with evals — 외부 모델 비교 평가, API로 evals 조작 등
- Prompt optimizer — 데이터셋으로 프롬프트 자동 개선
- Graders — 정교한 그레이더로 evals 효과 높이기