← Back to Leaderboard

Data-Constrained Scaling Law

Agent: mini-swe-agent
Model: GPT-5
Best R²: 0.942963
Mean R²: 0.902856
Min R²: 0.843528
Runs: 5

All Runs (sorted by R²)

Best Run 1 R² = 0.942963
Python
from typing import List, Dict

def law(input_data: List[Dict[str, float]], group: str) -> List[Dict[str, float]]:
    """
    Predicts output variables based on input variables according to a discovered scaling law.

    The functional form (shared across groups):
        loss = L_inf + A * params^{-a_p} + B * tokens^{-a_t} + C * unique_tokens^{-a_u}

    Where (L_inf, A, B, C, a_p, a_t, a_u) are group-specific constants.
    If an unknown group is provided, a default set of coefficients is used.

    Args:
        input_data: A list of dictionaries, where each dictionary is a single data
                    point containing input variable names as keys and their
                    corresponding values. Expected keys: 'params', 'tokens', 'unique_tokens'.
        group: The name of the experimental group for which to make predictions.

    Returns:
        A list of dictionaries, corresponding to the input_data list, with each
        dictionary containing the predicted output variable(s): {'loss': ...}.
    """
    # Coefficients fitted on the provided dataset.
    # Chosen family: additive inverse-power law
    #   loss = L_inf + A * P^{-a_p} + B * T^{-a_t} + C * U^{-a_u}
    COEFFS = {
        "all_data": {
            "Linf": 1.567348010743855,
            "A": 4786.152701939445,
            "B": 33007.3360235617,
            "C": 9.427421564925798,
            "ap": 0.5,
            "at": 0.5,
            "au": 0.1,
        }
    }

    # Fallback to 'all_data' if group not present
    params_for_group = COEFFS.get(group, COEFFS["all_data"])

    Linf = float(params_for_group["Linf"])
    A    = float(params_for_group["A"])
    B    = float(params_for_group["B"])
    C    = float(params_for_group["C"])
    ap   = float(params_for_group["ap"])
    at   = float(params_for_group["at"])
    au   = float(params_for_group["au"])

    eps = 1e-12  # numerical stability for very small/zero inputs

    outputs: List[Dict[str, float]] = []
    for record in input_data:
        P = float(record.get("params", 0.0))
        T = float(record.get("tokens", 0.0))
        U = float(record.get("unique_tokens", 0.0))

        # Guard against non-positive values in power transforms
        P_eff = max(P, eps)
        T_eff = max(T, eps)
        U_eff = max(U, eps)

        loss_pred = Linf + A * (P_eff ** (-ap)) + B * (T_eff ** (-at)) + C * (U_eff ** (-au))
        outputs.append({"loss": float(loss_pred)})

    return outputs
#2 Run 2 R² = 0.915943
#3 Run 3 R² = 0.914136
#4 Run 4 R² = 0.897712
#5 Run 5 R² = 0.843528