본문 바로가기
C.W.K.
Stream
Lesson 10 of 10 · published

평가를 코드처럼 다루기

~12 min · evaluation, engineering

Level 0수련생
0 XP0/100 lessons0/14 achievements
0/120 XP to next level120 XP to go0% complete

평가도 시험 대상 시스템만큼 정비해야 해

평가도 소프트웨어야. 버전과 의존성, 판정기 보정 같은 자체 시험, 수명 주기를 가져. 애플리케이션 코드와 같은 공학 규율로 다뤄.

실용적인 정비 원칙

  • 평가 스크립트를 프롬프트 옆 소스 관리에 둬.
  • 골든 세트에 의미 버전이나 날짜 버전을 붙여.
  • pytest evals/ 같은 명령 하나나 Promptfoo, Langfuse 전용 실행기로 돌려.
  • 결과를 대시보드, 시트, 내부 앱처럼 질의할 수 있는 형태로 보관해.
  • 평가 실패를 시험 실패처럼 분류해. 흔들리는 시험인지, 실제 퇴행인지, 평가 자체의 버그인지 가려.

누구나 쉽게 돌릴 수 있어야 해

팀에서 한 사람만 평가를 실행할 수 있다면 그 평가는 깨지기 쉬워. 지루할 만큼 단순하게 만들어. 그러면 프롬프트 개선이 느낌이 아니라 자료를 따라 움직여.

Code

pytest 모음으로 평가하기·python
# tests/test_support_prompt.py
import pytest
from evals.runner import run_case

@pytest.mark.parametrize("case", load_jsonl("goldens/support/v3.jsonl"))
def test_support_prompt(case, prompt_v8):
    out = call(prompt_v8, case["input"])
    assert all(s in out for s in case["must_contain"])
    assert not any(s in out for s in case["must_not_contain"])
    if "schema" in case:
        case["schema"].validate(out)

External links

Exercise

평가 모음을 pytest나 쓰는 시험 실행기에 연결해봐. 프롬프트를 건드리는 변경마다 돌리는 CI 단계를 넣고 README에 한 줄짜리 실행 명령을 적어.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.