Building a Production AI Agent in Spring Boot: A/B Testing Prompts With an LLM Judge (Part 9)

개요

LLM을 심판으로 활용한 A/B 테스트는 프로덕션 환경으로 배포되기 전 프롬프트 및 툴 설명의 성능을 비교하고 평가하는 효과적인 방법론을 제시합니다.

주요 내용

* 직접 평가 vs. 쌍대 비교: 직접 평가는 채점 루브릭 기반으로 응답을 평가하는 반면, 쌍대 비교는 두 후보 응답 중 더 나은 것을 선택하는 방식으로 A/B 테스트에 더 적합합니다.
* 쌍대 비교의 장점: 응답 비교가 채점보다 쉬워 더 일관된 심판 판정을 유도하며, 심판 모델 업데이트나 기준 변화에 따른 기준 드리프트(drift) 문제를 피할 수 있습니다.
* 위치 편향 완화: 쌍대 비교 시 발생하는 위치 편향(position bias)을 완화하기 위해 각 쌍을 두 번씩 심판하고 응답 순서를 바꿔가며 평가하며, 두 평가에서 일관된 승자가 나오는 경우에만 유효한 판정으로 간주합니다.
* 실험 설정 및 실행:
* 베이스라인 고정: 변경 사항 적용 전, 현재 프로덕션 프롬프트로 구성된 베이스라인 클라이언트를 스냅샷으로 저장하며, 응답과 툴 호출 로그도 함께 기록합니다.
* 단일 변경: 실험별로 프롬프트 라인 또는 툴 설명 중 단 하나의 항목만 수정하여 변경 효과를 명확히 합니다.
* 동일 데이터셋 및 심판: 동일한 40개 케이스와 툴, 메모리를 사용하여 두 클라이언트를 실행하고, 별도의 LLM 심판을 통해 쌍대 비교를 수행합니다.
* 결정 게이트: 후보 프롬프트가 최소 60%의 유효한 쌍대 비교에서 승리해야 하며, 툴 사용 방식의 변화가 없고, 머니 패스(money path)에 회귀가 없는 경우에만 배포가 승인됩니다.
* 실제 실험 결과:
* 실험 1: 단순히 텍스트만 요구한 변경은 응답 정확도를 떨어뜨려 배포되지 못했으나, 이후 수정된 버전은 성공적으로 배포되었습니다.
* 실험 2: 툴 설명 수정은 에이전트의 잘못된 사용을 개선하여 높은 승률로 배포되었습니다.
* 실험 3: 스왑 테스트 없이 진행했다면 위치 편향으로 인해 잘못된 긍정 판단을 내릴 뻔한 변경이 스왑 테스트를 통해 부결되었습니다.
* 비용 및 고려사항: 쌍대 비교는 생성 횟수와 심판 호출 횟수가 두 배가 되지만, 실험을 배치(batch)하여 하루에 하나의 실험만 수행하고, 30% 이상의 높은 플립(flip) 비율은 심판 모델 변경으로 간주하는 등 관리를 통해 효율성을 유지할 수 있습니다.

시사점

LLM을 심판으로 활용한 쌍대 비교 A/B 테스트는 개발자가 직관에 의존하여 프롬프트를 변경하는 것보다 훨씬 신뢰할 수 있는 방식으로 AI 에이전트의 성능을 개선하고, 프로덕션 환경에서 예상치 못한 회귀(regression)를 방지하는 데 필수적인 방법론입니다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions