EvSys
Concepts

Architecture

The whole system at a glance - one ExperimentConfig, five layers, eight registries.

evsys-sdk is organized around a single idea: one ExperimentConfig (YAML) drives everything, and every kind: in it resolves through a registry.

The Experiment - the organizing unit

The Experiment is the top of the system. It's the scientific container: you give it a hypothesis and one or more runs, and it produces a best arm and an auto-synthesized conclusion. Concretely, Experiment.run():

  1. Expands the config - a single run, a list of runs, or a matrix shorthand - into one or more arms (each arm is one RunConfig = one training job). n_repeats replicates an arm across seeds for variance.
  2. Runs each arm through the same pipeline - Data → Training → Evaluation - with per-arm failure isolation.
  3. Picks the best arm by your success_metric and records an ExperimentResult (best_arm, conclusion, metrics).
per arm (RunConfig)for each rundata format rowscheckpointExperimentConfigone YAML - the canonical artifactExperimentrun / runs / matrix → arms · n_repeats → seedsDataraw → data format rowsTrainingbuild_batch()Evaluationvalidation + benchmarkExperimentResultbest_arm · conclusion · metrics

So an experiment is one YAML that can fan out into a whole campaign of runs, each of which is the left-to-right pipeline you saw on the introduction. Blue is what you author; white pillars and the grey result are what the SDK owns.

The five layers

LayerWhat it doesStart here
① ExperimentThe organizing unit - a hypothesis, one or more runs, an auto-synthesized conclusion.Experiments
② DataRaw sources → ordered transforms → standardized typed rows.Data
③ AlgorithmOne contract - train(ctx) -> RunResult - over any tinker-compatible backend.Algorithms
④ EvaluationA test/validation firewall: Benchmark (once) vs Validation (in-loop).Algorithms
⑤ PluginsEight registries - implement a protocol, register a kind, reference it in YAML.Plugins

Everything below this page drills into one layer. If you just want to run something, jump to the Quickstart.

On this page