Skip to content

v2.0.0-beta.1

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 Aug 15:16
085cad0

What's Changed

Core PySR / Backend

PySR v2.0.0-beta.1 is the first beta release of PySR 2. It upgrades the Julia backend from SymbolicRegression.jl v2.0.0-alpha.9 to v2.0.0-beta.3 and introduces first-class mutation and plugin configuration.

Breaking changes

  • Remove ParametricExpressionSpec in favor of TemplateExpressionSpec by @MilesCranmerBot in #1277
  • Switch Slurm allocations to SlurmClusterManager.jl by @MilesCranmer in #794
  • Enable simulated annealing by default, matching SymbolicRegression.jl, by @MilesCranmerBot in #1283
  • Increase the default crossover probability to 0.2 through the updated backend defaults
  • Enable adaptive mutation weights and automatic batching through the updated backend defaults

Saved search states using ParametricExpressionSpec cannot be loaded by PySR 2. Use TemplateExpressionSpec for structured expressions.

Mutations and plugins

  • Expose first-class mutation configuration through mutations and default_mutations by @MilesCranmerBot in #1282
  • Expose plugin configuration through plugins and default_plugins, including simulated annealing, adaptive parsimony, adaptive mutation weights, and mutation bursts
  • Add configurable mutation objects, including BacksolveMutation
  • Preserve the legacy weight_* parameters while allowing mutation-specific settings through the new object interface

Search behavior and performance

  • Delegate automatic batching to SymbolicRegression.jl while preserving explicit batching and batch_size settings by @MilesCranmerBot in #1285
  • Skip the unused Float64 SymbolicRegression.jl precompile workload for PySR's default Float32 configuration by @MilesCranmerBot in #1279
  • Reuse evaluation buffers during search through the updated backend
  • Improve backend precompilation time and compiled-cache size

Bug fixes

Backend changes from SymbolicRegression.jl v2.0.0-alpha.9 to v2.0.0-beta.3

View the SymbolicRegression.jl changes included in this release

PySR v2.0.0-beta.1 upgrades SymbolicRegression.jl from v2.0.0-alpha.9 to v2.0.0-beta.3.

Backend release: https://github.com/astroautomata/SymbolicRegression.jl/releases/tag/v2.0.0-beta.3

Full backend changelog: astroautomata/SymbolicRegression.jl@v2.0.0-alpha.9...v2.0.0-beta.3

Mutation, crossover, and plugin interfaces

Defaults and search behavior

Template expressions and custom value types

Performance

Correctness and reliability

Packaging / Release / Dependencies

  • Move PyPI publication to trusted publishing by @MilesCranmerBot in #1256
  • Update repository links following the move to the astroautomata organization by @MilesCranmerBot in #1272
  • Update Python, documentation, and GitHub Actions dependencies

CI / Testing / Automation

Documentation / Website / Papers

  • Add an agent skill describing effective PySR usage by @MilesCranmer in #1264
  • Use Float32 literals in the custom-loss example by @MilesCranmerBot in #1276
  • Expand the research-paper showcase with work on microbial growth, human mobility, wind turbines, skin friction, dark energy, biomass pyrolysis, angular coefficients, and stellar chaos
  • Update the contributor list by @MilesCranmerBot in #1286

Full Changelog: v2.0.0a2...v2.0.0-beta.1