모듈로 추론 전략 바꾸기

모듈로 추론 전략 바꾸기 (Changing Modules)

지금까지 예시에서는 Predict 모듈로 서명을 실행했어요. 그런데 모듈은 이렇게 한 가지가 아니에요. 작업을 실행하는 전략이 모듈마다 다르고, 모듈을 바꿔 끼우는 것만으로 추론 전략을 통째로 바꿀 수 있어요. 시도해 보는 것도 아주 간단해요.

reasoning_haiku_bot = dspy.ChainOfThought(HaikuBot)
result = reasoning_haiku_bot(location="Bodega Bay", mood="mysterious", season="autumn")
print(result.haiku)

그러면 이런 결과가 나와요.

Fog curls over waves  
Leaves whisper, gulls glide at night  
Moon pierces deep mist

Predict 대신 ChainOfThought를 썼어요. 이 모듈은 LM이 최종 답을 내기 전에 먼저 추론하도록 프롬프트를 짜요. 우리가 쓴 서명은 클래스 기반 HaikuBot으로 똑같고, 함수 호출도 동일해요. 그런데 내부적으로 DSPy가 서명을 변형해, 모델이 최종 시를 만들기 전에 먼저 추론하게 만들었어요. 새로 추가된 서명 출력 필드 reasoning에 모델의 근거(rationale)가 채워지는 거예요.

result.reasoning을 출력해 보면 확인할 수 있어요.

print(result.reasoning)

ChainOfThought는 단순하지만, DSPy의 모듈 계층이 얼마나 유연한지 잘 보여줘요. 다른 모듈들은 또 다른 전략을 구현해요 — 모델 앙상블, 코딩 샌드박스, 도구 호출(tool-calling) 같은 것들요. 다음 섹션에서 이어서 살펴봐요.

더 알아보기 (Learn more)