Yahoo! JAPAN Search에서 LLM 프롬프트 튜닝을 수작업에서 유전 알고리즘(GEPA) 기반 자동화로 전환한 과정을 다룬다. 기존 방식은 수일~수주가 걸리고 노하우가 개인에게만 쌓이는 문제가 있었으며, GEPA와 DSPy 프레임워크 도입 후 같은 작업을 약 1시간으로 단축하고 요건 준수율 거의 100%를 달성했다.
핵심 포인트- 유전 알고리즘을 선택한 이유: 프롬프트가 자연어로 이산적 구조라 그래디언트 기반 최적화가 어렵고, LLM의 자연어 리플렉션으로 강화학습과 다른 접근이 가능하기 때문이다
- DSPy 프레임워크로 모듈 정의, 시그니처 설정, LLM-as-a-Judge 기반 평가 함수를 구성했다
- 다중 관점 평가(점수 + 자연어 피드백)로 단순 스칼라 보상보다 풍부한 최적화 신호를 확보했다
- 적용 결과: 최적화 시간 수일~수주에서 약 1시간으로 단축, 요건 준수율 거의 100%, 프롬프트 길이 5,521자에서 8,561자로 55% 증가했다
- Yahoo! JAPAN Search 건강·의료 쿼리에서 정책 준수(진단 행위/단정 표현 금지)와 마크다운 가독성 두 목표를 동시에 최적화했다
상세 정리- 기존 문제: 프롬프트 튜닝은 시행착오 반복이 필요하고, 노하우가 개인에게만 축적되며, 개선 사이클이 수일~수주로 느리고, 모델 업데이트 시 재작업 비용이 높았다
- 자동화 방법 비교: 베이지안 최적화, 강화학습, 유전 알고리즘 세 가지를 검토했으며, 자연어 이산 구조에 유전 알고리즘이 가장 적합하다고 판단했다
- GEPA 작동 방식: 여러 후보 프롬프트를 생성하고, 평가 점수가 높은 것을 남겨 변이·교배를 반복하며 점진적으로 개선한다
- DSPy 구성: 모듈 정의와 시그니처 설정으로 프롬프트 구조를 프레임워크 안에서 관리하고 재현성을 확보했다
- 평가 함수: LLM-as-a-Judge로 점수와 자연어 피드백을 함께 산출해, 단순 스칼라보다 방향성 있는 피드백을 최적화에 활용했다
- 적용 도메인: Yahoo! JAPAN Search 건강·의료 쿼리에서 진단 행위 금지·단정 표현 금지 정책 준수와 마크다운 가독성 개선 두 목표를 설정했다
- 최적화 프로세스: 가독성 최적화 후 사람 검토를 거쳐 평가 함수를 수정하고, 건강·의료 정책 최적화를 반복하는 단계적 접근을 취했다
- 결과: 수일~수주 걸리던 작업이 약 1시간으로 단축되고, 요건 준수율 거의 100%를 달성했으며, 프롬프트 길이는 5,521자에서 8,561자로 55% 증가했다
- 제약: 단일 스칼라 값 반환의 한계, 사람 평가가 병목이 될 수 있고, 프롬프트가 비대화되며, 차분 정보를 활용하지 못하는 한계가 있다
- 향후: 개선 루프를 기반화해 팀 전체로 확산하고, 사람 개입 없는 자율적 제품 개선 시스템 구축을 목표로 한다
왜 읽나DSPy와 유전 알고리즘으로 LLM 프롬프트 최적화를 자동화하거나, LLM-as-a-Judge 기반 평가 시스템을 설계하는 AI/ML 엔지니어에게 실전 구현 참고자료다.