Skip to content

BUG Inverted and combined true/false scores keep a float that contradicts their verdict #2894

Description

TrueFalseInverterScorer and multi-scorer TrueFalseCompositeScorer results can normalize to a float that contradicts their own verdict.

FloatScaleThresholdScorer stores its raw value as original_float_value in the score metadata, and normalize_score_to_float prefers that over the verdict. The inverter flips score_value but keeps the metadata, and the composite merges the child metadata as is:

threshold      : value=True  normalized=1.0
inverted       : value=False normalized=1.0
AND composite  : value=False normalized=1.0 metadata={'original_float_value': 1.0}

This matters for Crescendo with an objective scorer like AND(threshold(harm), Inverter(refusal)). With use_score_as_feedback, the adversarial chat gets told a refused turn scored "1.00 on a scale of 0.0 to 1.0". TAP node ranking and logs use the same helper.

Fix: the inverter stores 1 - original_float_value, and a composite over more than one scorer drops it, since one child's float doesn't describe the combined verdict.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions