Problem๏
Problem: the complete, self-describing benchmark bundle.
load_problem("heftcom2024:forecasting") returns one of these. It carries
everything an Experiment needs โ dataset,
environment factory, objective, schedule, splits โ plus the published
reference scores that let a result be ranked against the historical field.
- class emflow.problems.problem.Splits(train_end: Timestamp, validation: Tuple[Timestamp, Timestamp], holdout: Tuple[Timestamp, Timestamp])[source]๏
Bases:
objectTemporal splits, in target time.
train_endTraining data is everything strictly before this timestamp.
validationHalf-open
[start, end)period whose origins are for model iteration โ what agents hillclimb on.holdoutHalf-open
[start, end)period scored once by the Verifier. Never iterate against it.
- class emflow.problems.problem.RefScore(rank: int, team: str, score: float)[source]๏
Bases:
objectOne row of a competitionโs published final leaderboard.
- rank: int๏
- team: str๏
- score: float๏
- class emflow.problems.problem.Problem(name: str, dataset: t.Union[Dataset, str, t.Callable[[], Dataset]], make_env: t.Callable[['Problem', str], 'gym.Env'], objective: Objective, schedule: IssueSchedule, splits: Splits, description: t.Optional[str] = None, reference_scores: t.List[RefScore] = <factory>, _dataset_cache: t.Optional[Dataset] = None)[source]๏
Bases:
objectA benchmark problem. Environments are created fresh per run via
env()โ never share a live env between runs.- name: str๏
- make_env: t.Callable[['Problem', str], 'gym.Env']๏
- schedule: IssueSchedule๏
- description: t.Optional[str] = None๏
- load_dataset() Dataset[source]๏
Resolve the dataset (lazily, cached): a Dataset instance, an
rb://manifest reference, or a zero-arg loader callable.