최적화기 고르기

최적화기 고르기 (Optimizers: choosing one)

DSPy는 12개가 넘는 최적화기(텔레프롬프터)를 제공하고, 가장 많이 받는 질문은 "어떤 것을 써야 하나요?"입니다. 이 페이지는 선택 가이드로, 각 최적화기가 무엇을 튜닝하는지, 컴파일 시점에 무엇이 필요한지, 비용이 얼마인지, 언제 대안을 이기는지를 다룹니다.

출처: 문서

본문

작동하는 프로그램과 메트릭이 있고, 무엇에 대해 컴파일할지 정하려 할 때 이 문서를 읽으세요. 개별 최적화기(GEPA, BootstrapFewShot 계열, BootstrapFinetune)의 심층 페이지는 이 문서 옆에 있습니다.

설계 결정

1. 모든 최적화기는 지시문·데모·가중치 중 하나 이상을 튜닝한다

세 개의 손잡이가 DSPy가 노출하는 모든 탐색 공간을 커버합니다. 지시문(instructions)은 각 predictor의 시그니처에 있는 자연어 docstring입니다. 데모(demos)는 각 predictor가 호출 시점에 보는 컨텍스트 내 예시입니다. 가중치(weights)는 LM이 튜닝 가능할 때의 모델 파라미터입니다. 각 최적화기는 이 중 하나나 둘을 고르고 나머지는 건드리지 않습니다. 아래 API 살펴보기는 어느 손잡이를 돌리는지에 따라 묶었어요.

2. .compile() 은 새 복사본을 반환한다. 원래 student는 변경되지 않는다

모든 최적화기가 가장 먼저 하는 것은 student.reset_copy() 입니다 — 상속된 _compiled 플래그를 지우는 deepcopy죠. 컴파일된 프로그램이 반환되고, 당신이 넘긴 원본은 그대로 남습니다. 같은 student에 대해 다른 최적화기·데이터셋·예산으로 .compile() 을 다시 실행하고 결과를 비교해도 안전합니다.

API 살펴보기

각 최적화기가 무엇을 튜닝하는지 기준으로 묶었어요.

지시문과 데모 (프롬프트) 최적화기

dspy.GEPA — (가이드: GEPA in depth) 반성(reflection) 기반 지시문 최적화기. 후보 프로그램 개체군을 유지하고 reflection_lm 으로 포인트를 제안합니다. 지시문과 코드(Flex)를 모두 튜닝할 수 있습니다. 작업을 재정의해야 할 때, 그리고 GEPA가 있는 강력한 메트릭 피드백(Prediction(score, feedback))이 있을 때 최상의 결과를 줍니다. 예산이 더 많은 auto 설정을 선택할 수 있습니다.

dspy.MIPROv2 — 지시문과 훈련 세트의 특정 데모를 동시에 최적화하려 할 때 탁월합니다. 여러 단계로 반복하는 프로그램에 좋습니다.

데모 (프롬프트) 최적화기 — BootstrapFewShot 계열

가이드를 참고하세요. 이 계열은 predictor의 demos 리스트를 수집·선택합니다.

dspy.BootstrapFewShot — 메트릭으로 필터링된 부트스트랩 데모를 선택. 넓은 기본선으로 좋습니다. dspy.BootstrapFewShotWithRandomSearch (별칭 BootstrapRS) — 데모 세트에 걸친 무작위 탐색. dspy.LabeledFewShot — 메트릭·LM 호출 없는 기본선. 데모만으로 충분한지 확인할 때. dspy.KNNFewShot — 추론 시점 KNN 검색으로 데모를 선택. dspy.InferRules — 부트스트랩된 트레이스에서 규칙을 추출.

가중치 (모델) 최적화기

dspy.BootstrapFinetune — 부트스트랩된 예시로 기본 모델을 파인튜닝. 프롬프트 최적화가 한계에 닿았을 때.

선택 요령

  • 데이터가 적고 구조를 유지하고 싶다 → BootstrapFewShot 계열로 시작.
  • 지시문을 다시 쓰고 싶다, 특히 강력한 피드백 메트릭이 있다 → GEPA.
  • 지시문과 데모를 함께, 다단계 파이프라인 → MIPROv2.
  • 모델 자체를 조정하고 싶다 → BootstrapFinetune.

크로스링크

더 알아보기 (Learn more)