DSPy로 Dash의 관련성 판정기를 최적화한 방법
DSPy로 Dropbox Dash의 relevance judge를 더 싸고 정확하게 만들었다.
Dropbox Dash의 relevance judge는 쿼리와 문서의 관련성을 1~5점으로 매기며, 랭킹·학습 데이터 생성·오프라인 평가에 쓰인다. 하지만 모델을 바꾸거나 프롬프트를 조금만 수정해도 품질이 흔들리고, 비용과 신뢰성 문제가 함께 커졌다.
기존에는 OpenAI o3 기반의 강한 judge가 있었지만, 대규모 처리에는 너무 비쌌다. 그래서 더 저렴한 gpt-oss-120b로 옮기면서 DSPy와 GEPA optimizer를 사용해 프롬프트를 인간 정답과의 차이(NMSE)에 맞춰 체계적으로 재최적화했다.
핵심은 작업 정의를 고정한 뒤, 인간 평가와 모델 출력을 비교해 구조화된 피드백을 반복적으로 반영하는 방식이다. 이 과정에서 특정 예시의 키워드나 표현을 그대로 베끼는 과적합을 막기 위한 가드레일도 넣었다.
그 결과 NMSE는 8.83 → 4.86으로 줄어 45% 개선됐고, 수동 튜닝에 걸리던 시간도 1~2주 → 1~2일로 단축됐다. 같은 비용으로 10~100배 더 많은 데이터를 라벨링할 수 있어, 실험 규모와 통계적 신뢰도도 함께 커졌다.
운영 신뢰성도 개선됐다. 더 작은 gemma-3-12b를 대상으로 한 실험에서는 baseline에서 40% 이상의 응답이 malformed JSON이었지만, DSPy 최적화 후 malformed 출력이 97% 이상 감소했고 NMSE도 46.88 → 17.26으로 개선됐다.
o3 같은 생산용 judge에는 전면 재작성 대신, 검증된 instruction library에서 안전한 bullet 규칙만 선택해 추가하는 방식으로 점진적 개선을 적용했다. 덕분에 대체 모델로의 확장과 운영 중인 고품질 judge의 안정성 유지라는 두 목표를 분리해 다룰 수 있었다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.