PyRIT icon indicating copy to clipboard operation
PyRIT copied to clipboard

[BREAKING] FEAT: Ensemble scoring for Crescendo

Open martinpollack opened this issue 8 months ago • 2 comments

Description

This change creates a full pipeline for performing ensemble scoring with crescendo. Included are two new scorers: EnsembleScorer which is the driver of this change and allows results of many scorers to be aggregated, as well as SubstringsMultipleScorer which extends SubstringScorer to allow multiple strings to be searched for in a response. In addition, the crescendo orchestrator has been updated to abstract out the logic for creating the objective scorer. This is now created outside of the orchestrator in a new notebook which has been created as a template to demonstrate the capabilities of a crescendo ensemble orchestrator.

Received support from @eugeniavkim @jbolor21.

This change is breaking because it changes how a CrescendoOrchestrator object is instantiated. Instead of providing a PromptChatTarget as a scoring target for the scorer, the user needs to create a Scorer object outside of the CrescendoOrchestrator and then pass it to objective_float_scale_scorer to be used for scoring. This just abstracts the objective scorer outside of the Orchestrator object and allows for more flexibility.

Tests and Documentation

Still in pogress

martinpollack avatar Apr 30 '25 16:04 martinpollack

@microsoft-github-policy-service agree

martinpollack avatar May 31 '25 16:05 martinpollack

I think this has some merge conflicts & pipeline errors! Also would be great if you wrote some docs on the ensemble scorer itself and how this differs from the composite_scorer !

jbolor21 avatar Sep 30 '25 21:09 jbolor21