Skip to content

pass@k for ASR #1911

Description

@stefanoamorelli

Each probe sends a prompt to the model a few times (probes/base.py#L299-L304), and the attack success rate represents how many of those replies resulted in a breach.

The problem that I see with this approach is that an attacker doesn't need the model to fail most of the time. They need it to fail once, and they can just try again. So a jailbreak that only lands on 1 try in 5 is effectievly a full break of that prompt, but it shows up as only 20% ASR, missing the point of a critical vulnerability.

an approach I would suggest is pass@k, the metric introduced in OpenAI's Codex paper (Chen et al., 2021). instead of pooling, you ask, per prompt: "given k tries, does at least one get through? "

it gives a more meaningful ASR reading as it reflects how the model actually gets attacked, because, fundamentally, an attacker can keep trying.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions