시간 경과에 따른 품질 추적

시간 경과에 따른 품질 추적 (Track quality over time)

품질은 고정된 채로 있지 않아요. 오늘 통과한 릴리스가 내일은 실패할 수 있죠. 새로운 프롬프트, 변하는 데이터, 모델 업데이트가 모두 시스템이 동작하는 방식을 바꿔요. 시간 경과에 따른 동작을 추적하지 않으면 언제 고장 났는지 알 수 없어요.

출처: 문서

본문

점수가 아니라 동작을 추적하세요 (Track behavior, not just scores)

점수는 무엇인가가 바뀌었다는 것을 알려줘요. 무엇이 바뀌었는지는 알려주지 않죠.

출력이 여전히 다음을 하는지 추적하세요:

  • 지원되지 않는 세부사항을 피하는지
  • 누락된 정보를 올바르게 처리하는지
  • 유사한 프롬프트에서 일관성을 유지하는지

핵심 신호는 점수 이동이 아니라 동작 변화예요.

드리프트 신호를 주의 깊게 보세요 (Watch for drift signals)

신호 어떤 모습인가 왜 중요한가
새로운 실패 패턴 전에 본 적 없는 실패 유형이 나타남 무작위 노이즈가 아니라 동작 변화를 나타냄
빈도 증가 같은 실패가 실행마다 더 자주 나타남 신뢰성이 약해지고 있음
시나리오별 하락 실패가 한 프롬프트 유형이나 컨텍스트에 몰림 커버리지나 요구사항의 공백을 암시
예상 밖의 점수 점프 알려진 제품 변경 없이 점수가 향상됨 eval이 잘못된 것을 측정하고 있을 수 있음

동작이 달라지면 무언가가 바뀌었다고 가정하고 조사하세요.

같은 프롬프트를 다시 실행하세요 (Re-run the same prompts)

결과를 직접 비교할 수 있도록 실행 간에 안정적인 프롬프트 세트를 사용하세요.

확인해야 할 것:

  • 동일한 입력이 이제 다른 출력을 만드는지
  • 알려진 실패가 실제로 고쳐졌는지
  • 새로운 실패가 나타나는지

매 실행마다 프롬프트가 바뀌면 추세 추적은 깨져요.

신호와 노이즈를 구분하세요 (Separate signal from noise)

다음의 경우 결과를 의미 있는 것으로 취급하세요:

  • 같은 실패가 여러 프롬프트에서 반복됨
  • 실패가 영향력이 큰 시나리오에 나타남
  • 동작이 일관된 방향으로 변함

다음의 경우 결과를 노이즈로 취급하세요:

  • 실패가 한 번 나타나고 다시 반복되지 않음
  • 프롬프트가 불명확하거나 품질이 낮음
  • 리뷰어가 체크를 일관되게 적용할 수 없음

행동할 수 있는 패턴에 우선순위를 두세요.

eval이 낡으면 갱신하세요 (Refresh the eval when it goes stale)

항상 통과하는 eval은 더 이상 의미 있는 위험을 테스트하지 않아요.

다음의 경우 eval을 갱신하세요:

  • 같은 프롬프트가 스트레스 없이 반복적으로 통과함
  • 오래된 실패 패턴이 사라짐
  • 새로운 실제 시나리오가 나타남
  • 프로덕션 문제가 프롬프트 세트에 반영되지 않음

시스템에 압력을 유지하기 위해 더 어렵고 현실적인 사례를 추가하세요.

변화를 행동으로 바꾸세요 (Turn changes into actions)

무엇이 바뀌었나 다음에 무엇을 할까
신뢰성 실패가 증가 요구사항이나 제약을 강화
실패가 새 시나리오로 이동 그 시나리오의 프롬프트 커버리지를 확장
리뷰어 불일치가 증가 체크를 더 관찰 가능하게 재작성
시간이 지나도 실패 없음 더 어렵고 가장자리 프롬프트를 추가

추적은 당신이 보는 변화가 당신이 만드는 변화가 될 때만 가치가 있어요.

핵심 메시지 (Key takeaway)

Eval은 시스템이 어디에 서 있는지 알려주고, 추적(tracking)은 그것이 어떻게 바뀌었는지 알려줘요.

더 알아보기 (Learn more)