Dsxir.Optimizer.MIPROv2.Sampler (dsxir v0.3.0)

Copy Markdown

Persistent state for a Dsxir.Optimizer.MIPROv2 session.

Holds the data that Dsxir.OptimizerSession needs to checkpoint and resume a sequential MIPROv2 run: the underlying TPE/Random sampler state, the pre-built candidate pool, cached proposer summaries (so a resume does not re-call the proposer LM), the RNG seed, the per-trial history, and the resolved configuration.

Serialized via :erlang.term_to_binary/2 with :deterministic so two checkpoints over the same logical state are byte-identical, and deserialized with :safe to refuse atom creation from untrusted blobs.

Summary

Types

best()

@type best() :: nil | {float(), Dsxir.Program.t()}

proposer_summaries()

@type proposer_summaries() :: %{
  program_summary: nil | String.t(),
  dataset_summary: nil | String.t(),
  degraded: boolean()
}

t()

@type t() :: %Dsxir.Optimizer.MIPROv2.Sampler{
  batch_size: pos_integer(),
  best_so_far: best(),
  candidates: Dsxir.Optimizer.MIPROv2.Candidates.t(),
  config: map(),
  full_evals: [map()],
  minibatch: [Dsxir.Example.t()],
  minibatch_full_eval_steps: pos_integer(),
  proposer_calls: non_neg_integer(),
  proposer_summaries: proposer_summaries(),
  rng_seed: integer(),
  sampler_module: module(),
  top_k_full_eval: pos_integer(),
  total_planned_trials: pos_integer(),
  tpe_state: term(),
  trial_records: [map()],
  valset: [Dsxir.Example.t()]
}