이벌(elval)을 위한 프롬프트 세트와 어서션 만들기

이벌(elval)을 위한 프롬프트 세트와 어서션 만들기 (Build a prompt set and assertions for an eval)

이벌(elval)은 당신이 넣어준 프롬프트와 채점 기준(assertion)만큼 정직해요. 실제 사용과 전혀 닮지 않은 깔끔한 프롬프트는 실패를 숨기고, 모호한 어서션은 두 명의 검토자가 같은 출력에 다른 점수를 매기게 만들죠. 이 페이지에서는 실제 사용과 닮은 프롬프트 세트를 만들고, 검토자 누가 적용해도 같은 결과가 나오는 어서션을 작성하는 방법을 정리해 볼게요.

출처: 문서

본문

당신의 이벌은 당신이 넣어준 프롬프트와 당신이 채점 기준으로 삼는 어서션만큼 정직해요. 실제 사용과 전혀 닮지 않은 깔끔한 프롬프트는 실패를 숨겨요. 모호한 어서션은 두 명의 검토자가 같은 출력에 다른 점수를 매기게 만들어요.

실제 사용과 닮은 프롬프트 세트 만들기

사람들이 실제로 입력하는 프롬프트에서 시작하세요. 당신이 이상적으로 보고 싶은 프롬프트가 아니라요.

끌어올 출처:

  • 연구 세션과 맥락 인터뷰
  • 제품 피드백과 지원 티켓
  • 사용 로그와 의도 데이터
  • 출력이 잘못된 조치를 일으킨 것으로 알려진 시나리오

피해야 할 것:

  • 내부에서 작성된, 깔끔하게 들리는 프롬프트
  • 행복 경로(happy path)만 설명하는 프롬프트
  • 실제 입력의 지저분함을 제거하기 위해 다듬어진 프롬프트

당신의 프롬프트 세트가 시스템을 절대 깨뜨리지 않는다면, 그것은 시스템을 테스트하고 있지 않은 것이에요.

안정(stable) 동작과 도전(stretch) 동작 모두 다루기

프롬프트 유형 무엇을 테스트하나 주는 신호
회귀 (Regression) 시스템이 항상 반드시 맞춰야 하는 동작 하락은 무언가가 깨졌다는 뜻
능력 (Capability) 시스템이 아직 안정적으로 다룰 수 없는 더 어려운 작업 시간에 따른 진전은 시스템이 개선되고 있다는 뜻

회귀 프롬프트 없이는 무엇이 미끄러졌는지 잡아낼 수 없어요. 능력 프롬프트 없이는 실패만 감지할 수 있고 진전은 감지할 수 없어요.

문구가 아니라 맥락에 따라 달라지게 하기

같은 요청을 세 번 다르게 바꿔 쓴 것은 세 개의 프롬프트가 아니라 하나예요.

무엇이 바뀌었나 무엇으로 치나
같은 맥락, 다른 문구 하나의 프롬프트 유형
다른 맥락 (예: 청중, 이해관계, 누락된 입력, 충돌하는 출처) 새로운 시나리오

각 시나리오마다 문구를 달리한 프롬프트를 서너 개 쓰세요. 각각의 새로운 맥락마다 새 시나리오를 시작하세요.

세트 안의 모든 프롬프트가 같은 맥락을 테스트한다면, 당신의 이벌 커버리지는 보이는 것보다 좁아요.

두 번째 검토자가 같은 방식으로 적용할 어서션 쓰기

어서션(assertion)은 품질 요구사항을 출력에서 직접 검증할 수 있는 검사로 바꿔줘요.

각 어서션은 다음이어야 해요:

  • 시스템이나 그 추론이 아니라 출력에서 관찰 가능할 것
  • 같은 시나리오의 프롬프트 간에 반복 가능할 것
  • 검토자 간에 일관될 것

해야 할 것: "출처가 이름을 명시하지 않으면 소유자(owner)를 배정하지 않는다."

하지 말 것: "전문적이고 정확하게 들린다."

두 검토자가 같은 출력에 다르게 점수를 매길 것 같다면, 그 어서션은 너무 모호한 것이에요.

각 어서션을 올바른 종류의 심사자(judge)에 맞추기

심사자 유형 무엇에 사용하나 어서션은 반드시
자동화 (예: LLM 또는 규칙) 필수 통과 동작, 안전, 거절, 사실 근거 출력 텍스트만으로 답할 수 있어야 함
인간 느껴지는 품질, 어조 적합성, 맥락에서의 유용성 좋은 응답과 약한 응답의 명확한 예시에 묶여야 함

대부분의 이벌 세트는 둘 다 필요해요. 어서션이 쓰여진 신호를 읽을 수 없는 심사자는 그것을 안정적으로 채점하지 못해요.

어서션을 확장하기 전에 세 가지 검사 실행하기

검사 통과하면 실패하면
일관성 (Consistent) 두 검토자가 같은 결과에 도달 검토자들이 같은 출력에 의견이 갈림
변별력 (Discriminating) 어서션이 좋은 출력과 약한 출력을 구분 강한 응답과 약한 응답 둘 다 통과
이전 가능성 (Transferable) 어서션이 작성되지 않은 출력에서도 성립 그것을 초안 작성할 때 쓴 예시에서만 작동

어느 하나라도 실패하면 확장 전에 어서션을 고치세요. 이 검사 중 하나에 실패한 어서션은 더 많은 출력에 적용한다고 더 신뢰할 만해지지 않아요.

어서션이 아직 잡지 못하는 것을 이름 붙이기

어조 변화, 실패한 턴 이후의 회복, 후속 질문의 유용성 같은 어떤 동작은 사람에게 중요하지만 현재 어서션에 맞지 않아요.

  • 그것들을 구체적으로 기록하세요.
  • 현재 어서션이 왜 그것들을 놓치는지 적으세요.
  • 엔지니어링과 응용 과학 파트너와 공유하세요.

정확히 이름 붙여진 공백(gap)은 누군가가 해결할 수 있는 공백이에요.

핵심 요점 (Key takeaway)

프롬프트는 당신의 이벌이 무엇을 볼 수 있는지를 결정하고, 어서션은 당신의 이벌이 무엇을 채점할 수 있는지를 결정해요. 둘 중 하나라도 어긋나면 나머지 이벌은 회복할 수 없어요.

더 알아보기 (Learn more)