πŸ“„ squadΒΆ

Note

ID: metrics.squad | Type: MetricPipeline

{
    "main_score": "f1",
    "metric": {
        "type": "squad"
    },
    "preprocess_steps": [
        {
            "type": "add_id"
        },
        {
            "fields": {
                "prediction_template": {
                    "id": "ID",
                    "prediction_text": "PRED"
                },
                "reference_template": {
                    "answers": {
                        "answer_start": [
                            -1
                        ],
                        "text": "REF"
                    },
                    "id": "ID"
                }
            },
            "type": "add_fields",
            "use_deepcopy": true
        },
        {
            "field_to_field": [
                [
                    "references",
                    "reference_template/answers/text"
                ],
                [
                    "prediction",
                    "prediction_template/prediction_text"
                ],
                [
                    "id",
                    "prediction_template/id"
                ],
                [
                    "id",
                    "reference_template/id"
                ]
            ],
            "type": "copy_fields"
        },
        {
            "field_to_field": [
                [
                    "reference_template",
                    "references"
                ],
                [
                    "prediction_template",
                    "prediction"
                ]
            ],
            "type": "copy_fields"
        }
    ],
    "type": "metric_pipeline"
}

Explanation about AddIDΒΆ

Stores a unique id value in the designated β€˜id_field_name’ field of the given instance.

Explanation about CopyFieldsΒΆ

Copies values from specified fields to specified fields.

Args (of parent class):

field_to_field (Union[List[List], Dict[str, str]]): A list of lists, where each sublist contains the source field and the destination field, or a dictionary mapping source fields to destination fields.

Examples:

An input instance {β€œa”: 2, β€œb”: 3}, when processed by CopyField(field_to_field={β€œa”: β€œb”} would yield {β€œa”: 2, β€œb”: 2}, and when processed by CopyField(field_to_field={β€œa”: β€œc”} would yield {β€œa”: 2, β€œb”: 3, β€œc”: 2}

with field names containing / , we can also copy inside the field: CopyFields(field_to_field={β€œa/0”: β€œa”}) would process instance {β€œa”: [1, 3]} into {β€œa”: 1}

Explanation about AddFieldsΒΆ

Adds specified fields to each instance in a given stream or all streams (default) If fields exist, updates them.

Args:
fields (Dict[str, object]): The fields to add to each instance.

Use β€˜/’ to access inner fields

use_deepcopy (bool) : Deep copy the input value to avoid later modifications

Examples:

# Add a β€˜classes’ field with a value of a list β€œpositive” and β€œnegative” to all streams AddFields(fields={β€œclasses”: [β€œpositive”,”negatives”]})

# Add a β€˜start’ field under the β€˜span’ field with a value of 0 to all streams AddFields(fields={β€œspan/start”: 0}

# Add a β€˜classes’ field with a value of a list β€œpositive” and β€œnegative” to β€˜train’ stream AddFields(fields={β€œclasses”: [β€œpositive”,”negatives”], apply_to_stream=[β€œtrain”]})

# Add a β€˜classes’ field on a given list, prevent modification of original list # from changing the instance. AddFields(fields={β€œclasses”: alist}), use_deepcopy=True) # if now alist is modified, still the instances remain intact.

Read more about catalog usage here.