Scalable AI Safety via Doubly-Efficient Debate
Jonah Brown-Cohen et al., Nov 2023arXiv:2311.14125ProposalGap
Sets out a new set of debate protocols for verifying the alignment of stochastic AI systems. In these protocols, the honest side can always succeed using a simulation of polynomially many steps, even where the dishonest side is allowed exponentially many simulation steps.
CodeDoublyEfficientDebate
from aiag import LM
from aiag.procedural import DoublyEfficientDebate
# A writes out every step of the computation, B names one, and the verifier reruns only that step
double = lambda cases: 2 * cases
honest = DoublyEfficientDebate.first_error(double)
print(DoublyEfficientDebate.cross_examine([10, 20, 40, 80], double, honest)) # -> True
print(DoublyEfficientDebate.cross_examine([10, 20, 45, 90], double, honest)) # -> False
lm = LM("Qwen/Qwen2.5-1.5B-Instruct")
out = DoublyEfficientDebate(lm, lm, lm)("Ten flu cases that double every week reach 80 in three weeks.")
print(out["challenged"], out["verdict"]) # in language: the step the skeptic disputes, and the judge's P(it follows)- DoublyEfficientDebateProcedureaiag/procedural/adversarial_proceduralism.py:488 Doubly-efficient debate: one debater writes out the whole computation, the other names a single step it says is wrong, and the verifier checks only that step, so the honest side needs one run of the computation and the judge a constant number of queries; with a stochastic oracle the debaters claim each step's probability and the verifier samples only where a claim is challenged (Brown-Cohen et al., 2023).
pip install aiagEvery method in aiag Library on GitHub