4 research outputs found

    Multipoint-BAX: A New Approach for Efficiently Tuning Particle Accelerator Emittance via Virtual Objectives

    Full text link
    Although beam emittance is critical for the performance of high-brightness accelerators, optimization is often time limited as emittance calculations, commonly done via quadrupole scans, are typically slow. Such calculations are a type of multi-point query\textit{multi-point query}, i.e. each query requires multiple secondary measurements. Traditional black-box optimizers such as Bayesian optimization are slow and inefficient when dealing with such objectives as they must acquire the full series of measurements, but return only the emittance, with each query. We propose applying Bayesian Algorithm Execution (BAX) to instead query and model individual beam-size measurements. BAX avoids the slow multi-point query on the accelerator by acquiring points through a virtual objective\textit{virtual objective}, i.e. calculating the emittance objective from a fast learned model rather than directly from the accelerator. Here, we use BAX to minimize emittance at the Linac Coherent Light Source (LCLS) and the Facility for Advanced Accelerator Experimental Tests II (FACET-II). In simulation, BAX is 20×\times faster and more robust to noise compared to existing methods. In live LCLS and FACET-II tests, BAX performed the first automated emittance tuning, matching the hand-tuned emittance at FACET-II and achieving a 24% lower emittance at LCLS. Our method represents a conceptual shift for optimizing multi-point queries, and we anticipate that it can be readily adapted to similar problems in particle accelerators and other scientific instruments

    ChristopherMayes/Xopt: Xopt v2.0.1

    No full text
    <h2>What's Changed</h2> <ul> <li>Delete print statement for validation of GP constructor by @t-bz in https://github.com/ChristopherMayes/Xopt/pull/169</li> <li>Optional arguments by @roussel-ryan in https://github.com/ChristopherMayes/Xopt/pull/170</li> <li>Vocs normalize inputs by @roussel-ryan in https://github.com/ChristopherMayes/Xopt/pull/168</li> </ul> <p><strong>Full Changelog</strong>: https://github.com/ChristopherMayes/Xopt/compare/v2.0.0...v2.0.1</p&gt

    ChristopherMayes/Xopt: Xopt v2.0.0

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