gpt-oss-120b

1 개의 포스트

DSPy를 사용하여 Dash의 관련성 판별기를 최적화한 방법 (새 탭에서 열림)

Dropbox는 검색 및 답변 서비스인 Dash의 핵심 기능인 '관련성 판단 모델(relevance judge)'을 최적화하기 위해 DSPy 프레임워크를 도입했습니다. 기존의 수동 프롬프트 엔지니어링 방식에서 벗어나, 인간의 평가 점수와 모델 점수 간의 차이를 최소화하는 체계적인 최적화 루프를 구축함으로써 더 저렴한 오픈 소스 모델에서도 고성능을 유지할 수 있게 되었습니다. 결과적으로 모델 교체 시 발생하는 성능 저하 문제를 해결하고, 대규모 데이터 처리를 위한 비용 효율성과 신뢰성을 동시에 확보했습니다. **인간 평가 기반의 성능 측정 체계** * 관련성 판단 모델은 쿼리와 문서의 연관성을 1~5점 척도로 할당하며, 이를 인간 평가자의 점수와 비교하여 성능을 측정합니다. * 주요 평가지표로 NMSE(Normalized Mean Squared Error)를 사용하며, 이는 AI 점수가 인간의 판단에서 얼마나 벗어나는지를 0~100 사이의 수치로 나타냅니다. * 단순 점수 외에도 프로덕션 환경에서의 안정성을 위해 JSON 출력 형식이 올바른지, 구조적 가이드라인을 준수하는지를 엄격히 관리합니다. **고비용 모델에서 효율적인 모델로의 이식** * 초기에는 성능이 뛰어난 OpenAI의 o3 모델을 사용했으나, 서비스 규모가 확장됨에 따라 수천 배 더 많은 데이터 처리를 위한 비용 절감이 필요해졌습니다. * 상대적으로 저렴한 gpt-oss-120b 모델로 이전을 시도했으나, 기존 고성능 모델에 최적화된 프롬프트가 그대로 작동하지 않아 성능 저하가 발생했습니다. * 이를 해결하기 위해 수동으로 프롬프트를 수정하는 대신, DSPy를 통해 특정 모델에 최적화된 프롬프트를 자동 생성하는 방식을 선택했습니다. **DSPy와 GEPA를 활용한 프롬프트 최적화** * DSPy의 GEPA(Generalized Evaluation-based Prompt Adaptation) 옵티마이저를 사용하여 모델이 인간과 다른 판단을 내린 지점을 분석하고 피드백을 생성합니다. * 모델의 예측 점수와 인간의 점수 차이, 그리고 인간의 작성 이유(Rationale)를 결합하여 구체적인 피드백 루프를 구성합니다. * 피드백 과정에서 특정 키워드에 과적합(Overfitting)되지 않도록 일반적인 규칙을 도출하며, "최신성을 과소평가함"이나 "키워드 일치에 과도하게 비중을 둠" 같은 구체적인 오류 패턴을 수정합니다. * 이 최적화 루프는 '평가-피드백-프롬프트 수정-재평가' 과정을 반복하며 목표 지표인 NMSE를 최소화하는 최적의 프롬프트를 찾아냅니다. **결론 및 권장사항** LLM 시스템을 프로덕션 수준으로 확장할 때 가장 큰 장애물은 모델 변경이나 프롬프트 수정 시 발생하는 예기치 못한 성능 저하입니다. Dropbox의 사례처럼 DSPy와 같은 프레임워크를 활용해 프롬프트 엔지니어링을 '체계적인 최적화 프로세스'로 전환하면, 모델 이식성을 높이고 운영 비용을 획기적으로 낮추면서도 품질을 일정하게 유지할 수 있습니다. 특히 대규모 관련성 평가가 필요한 시스템이라면 수동 튜닝 대신 측정 가능한 지표 중심의 자동화된 최적화 루프를 구축하는 것을 권장합니다.