Xopt v2.0.0
We are pleased the second major release of Xopt, with major changes of all high-level objects embrace the latest Pydantic V2. Some highlights are:
- Objects
Xopt
,VOCS
,Evaluator
, and all Generators inherit frompydantic.BaseModel
- Xopt VOCS objects now contain "observables" attribute to store observed data that is not directly maximized or minimized for more complex algorithms (BAX)
- Asynchronous behavior is now implemented in a separate
AsynchronousXopt
object, which allows for the baseXopt
object to be simpler. - Multiple bugs with BO have been fixed, especially with constraints and trust region BO
- Enables new features including Heteroskedastic noise models, fixed feature GP models, and evaluate functions returning multiple observations for a single input dict
Special thanks to @nikitakuklev for the careful migration from Pydantic v1 to v2.
Migration from V1
Users of previous versions will need to modify their YAML inputs. In particular, the xopt:
field is no longer needed in the YAML, because its options are now at the top level. So,
xopt:
max_evalulations: 100
vocs:
...
Is now:
max_evalulations: 100
vocs:
...
Pydantic will raise errors if fields are missing or if additional fields are not allowed.
What's Changed
- model constructor bugfix by @roussel-ryan in #116
- Fix CustomMean by @t-bz in #117
- Add example for Bayesian Exploration with NaNs by @t-bz in #120
- Fix the ES and RCDS generators by @wenatuhs in #118
- update branch w main by @roussel-ryan in #121
- Fix the NelderMead generator and add basic tests by @wenatuhs in #122
- Pydantic generators by @roussel-ryan in #113
- Fix device inconsistencies by @t-bz in #123
- pull from main by @roussel-ryan in #124
- Bayes exp fix by @roussel-ryan in #125
- change default value of X.options.strict to True from False by @roussel-ryan in #126
- pip pydantic version for now by @roussel-ryan in #127
- enable evaluators to pass lists of return values for a single evaluate call by @roussel-ryan in #130
- pull in main by @roussel-ryan in #132
- fixed features for Bayesian generators by @roussel-ryan in #128
- bax algorithm saving by @roussel-ryan in #134
- Constrained turbo improvements by @roussel-ryan in #133
- ENH: Untility method to copy generator objects by @YektaY in #131
- Bugfixes by @roussel-ryan in #135
- Add ModelList functionality to BaxGenerator. by @dylanmkennedy in #137
- Computation time tracking by @roussel-ryan in #136
- Adaptive ucb ei by @roussel-ryan in #139
- implement and test heteroskedastic modeling by @roussel-ryan in #140
- improve error messaging for validating points in vocs by @roussel-ryan in #141
- Bugfixes and constrained optimization example by @roussel-ryan in #142
- Pydantic xopt object by @roussel-ryan in #143
- bugfix for using turbo with maximization + test by @roussel-ryan in #144
- implement and test data saving + restart bugfix by @roussel-ryan in #145
- bugfixes by @roussel-ryan in #147
- Migrate to pydantic v2 by @nikitakuklev in #129
- UCB and constraints by @t-bz in #149
- Update gh-pages.yml by @roussel-ryan in #152
- enable xopt init from yaml file by @roussel-ryan in #151
- bugfix implementation and test by @roussel-ryan in #153
- add from_file helper function by @roussel-ryan in #155
- Update README by @roussel-ryan in #146
- Improve model visualization options by @t-bz in #157
- bugfix w test by @roussel-ryan in #160
- Update main index page in docs by @ChristopherMayes in #161
- add select_best function to vocs by @roussel-ryan in #162
- Docs touchup by @ChristopherMayes in #164
- Ensure prior mean model is in eval mode by @t-bz in #163
- bugfix for pandas indexing issue by @roussel-ryan in #165
New Contributors
Full Changelog: v1.4.1...v2.0.0