メインコンテンツまでスキップ

FunctionScore

FunctionScore インスタンスは、複数の Function を設定可能な方法で組み合わせます。FunctionScore インスタンスを ranker として使用して、複数の reranking Function を組み合わせることができます。

python
class pymilvus.FunctionScore

Constructor​

複数の Function を設定可能な方法で組み合わせる FunctionScore インスタンスを構築します。

python
FunctionScore(
functions: Union[Function, List[Function]],
params: Optional[Dict] = None,
)

PARAMETERS:

  • functions (Function, List[Function]) -

    現在の FunctionScore インスタンスで組み合わせる 1 つの Function インスタンス、または Function インスタンスのリストです。

  • params (Dict) -

    上記の Function インスタンスをどのように組み合わせるかを指定します。以下の設定があります。

    • boost_mode (str) -

      指定した重みが一致した entity のスコアにどのように影響するかを指定します。指定可能な値は次のとおりです。

      • Multiply

        重み付けされた値が、一致した entity の元のスコアに指定した重みを掛けた値であることを示します。

        これはデフォルト値です。

      • Sum

        重み付けされた値が、一致した entity の元のスコアと指定した重みの合計に等しいことを示します

    • function_mode (str) -

      さまざまな Boost Ranker からの重み付けされた値をどのように処理するかを指定します。指定可能な値は次のとおりです。

      • Multiply

        一致した entity の最終スコアが、すべての Boost Ranker からの重み付けされた値の積に等しいことを示します。

        これはデフォルト値です。

      • Sum

        一致した entity の最終スコアが、すべての Boost Ranker からの重み付けされた値の合計に等しいことを示します。

    RETURN TYPE:

    FunctionScore

    RETURNS:

    設定された方法で組み合わされた Functions のセット

    Examples​

    python
    from pymilvus import Function, FunctionType, FunctionScore

    # Create a Boost Ranker with a fixed weight
    fix_weight_ranker = Function(
    name="boost",
    input_field_names=[], # Must be an empty list
    function_type=FunctionType.RERANK,
    params={
    "reranker": "boost",
    "weight": 0.8
    }
    )

    # Create a Boost Ranker with a randomly generated weight between 0 and 0.4
    random_weight_ranker = Function(
    name="boost",
    input_field_names=[], # Must be an empty list
    function_type=FunctionType.RERANK,
    params={
    "reranker": "boost",
    "random_score": {
    "seed": 126,
    },
    "weight": 0.4
    }
    )

    # Create a Function Score
    ranker = FunctionScore(
    functions=[
    fix_weight_ranker,
    random_weight_ranker
    ],
    params={
    "boost_mode": "Multiply",
    "function_mode": "Sum"
    }
    )