πŸ“„ SquadΒΆ

metrics.squad

type: MetricPipeline
main_score: f1
preprocess_steps: 
  - type: AddID
  - type: Set
    use_deepcopy: True
    fields: 
      prediction_template: 
        prediction_text: PRED
        id: ID
      reference_template: 
        answers: 
          answer_start: 
            - -1
          text: REF
        id: ID
  - type: Copy
    field_to_field: 
      - - references
        - reference_template/answers/text
      - - prediction
        - prediction_template/prediction_text
      - - id
        - prediction_template/id
      - - id
        - reference_template/id
  - type: Copy
    field_to_field: 
      - - reference_template
        - references
      - - prediction_template
        - prediction
metric: 
  type: Squad
[source]

Explanation about AddIDΒΆ

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

Explanation about CopyΒΆ

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 Copy(field_to_field={β€œa”: β€œb”} would yield {β€œa”: 2, β€œb”: 2}, and when processed by Copy(field_to_field={β€œa”: β€œc”} would yield {β€œa”: 2, β€œb”: 3, β€œc”: 2}

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

Explanation about SetΒΆ

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 Set(fields={β€œclasses”: [β€œpositive”,”negatives”]})

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

# Add a β€˜classes’ field with a value of a list β€œpositive” and β€œnegative” to β€˜train’ stream Set(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. Set(fields={β€œclasses”: alist}), use_deepcopy=True) # if now alist is modified, still the instances remain intact.

Read more about catalog usage here.