Source: src/mcss/mechanism_pilot/rgbd_stream_ttt_v9.py · Plain text

src/mcss/mechanism_pilot/rgbd_stream_ttt_v9.py

"""Core B V9: does stream TTT keep improving past 100 steps (300 steps), on TRAIN-EXT.

PLAN_BEFORE_COREB_V9.md fixed this round. The policy table has Core B V7's format; every row but
TTT_300 is Core B V7's, and TTT_300 is TTT_100 with 300 Adam steps. Policies are unrolled by Core
B V7's `unroll_v7` (every policy here is seeded by (seed, episode, policy)) and evaluated by Core B
V8's `evaluate_v8` with this round's policy table and control set.
"""

from __future__ import annotations

from mcss.mechanism_pilot.rgbd_stream_ttt_v7 import LEARNING_RATE
from mcss.mechanism_pilot.rgbd_stream_ttt_v8 import evaluate_v8

EXPERIMENT = "EXP-3D-RGBD-DYNAMIC-TTT-DOSE-V9"
POLICY_SPECS = {
    "NO_STREAM": (False, None, 0),
    "OFF": (True, None, 0),
    "OFF_CTX_TTT_100": (True, "context", 100),
    "TTT_100": (True, "stream", 100),
    "TTT_300": (True, "stream", 300),
}
CONTROLS = {"TTT_300_WRONG_SCENE": "TTT_300"}
__all__ = ["CONTROLS", "EXPERIMENT", "LEARNING_RATE", "POLICY_SPECS", "evaluate_v9"]


def evaluate_v9(carrier, cohorts, expected_split, out, seed, device, specs=None, controls=None):
    """Core B V8's sealed evaluation with this round's policy table and control set."""
    specs = POLICY_SPECS if specs is None else specs
    controls = CONTROLS if controls is None else controls
    return evaluate_v8(carrier, cohorts, expected_split, out, seed, device, specs, controls)