dspy.Ensemble

dspy.Ensemble

dspy.Ensemble는 여러 프로그램(module)의 출력을 하나로 합치는(ensemble) 텔레프롬프터입니다. 여러 개의 프로그램을 실행해 그 결과들을 모은 뒤, reduce_fn이 주어지면 그 함수로 결과를 합칩니다. 흔히 쓰는 reduce_fn은 dspy.majority입니다.

출처: 문서

본문

dspy.Ensemble(*, reduce_fn=None, size=None, deterministic=False)
  • Bases: Teleprompter
  • 흔히 쓰는 reduce_fn은 dspy.majority입니다.

소스 코드는 dspy/teleprompt/ensemble.py에 있습니다.

def __init__(self, *, reduce_fn=None, size=None, deterministic=False):
    """A common reduce_fn is dspy.majority."""

    assert deterministic is False, "TODO: Implement example hashing for deterministic ensemble."

    self.reduce_fn = reduce_fn
    self.size = size
    self.deterministic = deterministic

Methods

compile(programs)

소스 코드는 dspy/teleprompt/ensemble.py에 있습니다.

def compile(self, programs):
    size = self.size
    reduce_fn = self.reduce_fn

    import dspy

    class EnsembledProgram(dspy.Module):
        def __init__(self):
            super().__init__()
            self.programs = programs

        def forward(self, *args, **kwargs):
            programs = random.sample(self.programs, size) if size else self.programs
            outputs = [prog(*args, **kwargs) for prog in programs]

            if reduce_fn:
                return reduce_fn(outputs)

            return outputs

    return EnsembledProgram()

get_params() -> dict[str, Any]

텔레프롬프터의 파라미터를 반환합니다.

Returns:

Type Description
dict[str, Any] 텔레프롬프터의 파라미터

소스 코드는 dspy/teleprompt/teleprompt.py에 있습니다.

def get_params(self) -> dict[str, Any]:
    """
    Get the parameters of the teleprompter.

    Returns:
        The parameters of the teleprompter.
    """
    return self.__dict__

더 알아보기 (Learn more)