Package: google-vizier
Open Source Vizier: Reliable and Flexible Black-Box Optimization.Google AI Blog|Getting Started|Documentation|Installation|Citing and HighlightsWhat is Open Source (OSS) Vizier?OSS Vizieris a Python-based service for black-box optimization and research, based onGoogle Vizier, one of the first hyperparameter tuning services designed to work at scale.OSS Vizier's distributed client-server system. Animation by Tom Small.Getting StartedAs a basic example for users, below shows how to tune a simple objective using all flat search space types:fromvizier.serviceimportclientsfromvizier.serviceimportpyvizierasvz# Objective function to maximize.defevaluate(w:float,x:int,y:float,z:str)->float:returnw**2-y**2+x*ord(z)# Algorithm, search space, and metrics.study_config=vz.StudyConfig(algorithm='DEFAULT')study_config.search_space.root.add_float_param('w',0.0,5.0)study_config.search_space.root.add_int_param('x',-2,2)study_config.search_space.root.add_discrete_param('y',[0.3,7.2])study_config.search_space.root.add_categorical_param('z',['a','g','k'])study_config.metric_information.append(vz.MetricInformation('metric_name',goal=vz.ObjectiveMetricGoal.MAXIMIZE))# Setup client and begin optimization. Vizier Service will be implicitly created.study=clients.Study.from_study_config(study_config,owner='my_name',study_id='example')foriinrange(10):suggestions=study.suggest(count=2)forsuggestioninsuggestions:params=suggestion.parametersobjective=evaluate(params['w'],params['x'],params['y'],params['z'])suggestion.complete(vz.Measurement({'metric_name':objective}))DocumentationOSS Vizier's interface consists ofthree main APIs:User API:Allows a user to optimize their blackbox objective and optionally setup a server for distributed multi-client settings.Developer API:Defines abstractions and utilities for implementing new optimization algorithms for research and to be hosted in the service.Benchmarking API:A wide collection of objective functions and methods to benchmark and compare algorithms.Additionally, it containsadvanced APIfor:Tensorflow Probability:For writing Bayesian Optimization algorithms using Tensorflow Probability and Flax.PyGlove:For large-scale evolutionary experimentation and program search using OSS Vizier as a distributed backend.Please see OSS Vizier'sReadTheDocs documentationfor detailed information.InstallationMost common:To tune objectives using our default state-of-the-art JAX-based Bayesian Optimizer, run:pipinstallgoogle-vizier[jax]To install aminimal versionthat consists of only the core service and client API fromrequirements.txt, run:pipinstallgoogle-vizierForfull installationto support all algorithms and benchmarks, run:pipinstallgoogle-vizier[all]Forspecific installations, you can run:pipinstallgoogle-vizier[X]which will install additional packages fromrequirements-X.txt, such as:requirements-jax.txt: Jax libraries shared by both algorithms and benchmarks.requirements-tf.txt: Tensorflow libraries used by benchmarks.requirements-algorithms.txt: Additional repositories (e.g. EvoJAX) for algorithms.requirements-benchmarks.txt: Additional repositories (e.g. NASBENCH-201) for benchmarks.requirements-test.txt: Libraries needed for testing code.Check if all unit tests work by runningrun_tests.shafter a full installation. OSS Vizier requires Python 3.10+, while client-only packages require Python 3.8+.Citing and HighlightsCiting Vizier:If you found this code useful, please consider citing theOSS Vizier paperas well as theGoogle Vizier paper.Highlights:We tracknotable usersandmedia attention- let us know if OSS Vizier was helpful for your work.Thanks!@inproceedings{oss_vizier,
  author    = {Xingyou Song and
               Sagi Perel and
               Chansoo Lee and
               Greg Kochanski and
               Daniel Golovin},
  title     = {Open Source Vizier: Distributed Infrastructure and API for Reliable and Flexible Black-box Optimization},
  booktitle = {Automated Machine Learning Conference, Systems Track (AutoML-Conf Systems)},
  year      = {2022},
}
@inproceedings{google_vizier,
  author    = {Daniel Golovin and
               Benjamin Solnik and
               Subhodeep Moitra and
               Greg Kochanski and
               John Karro and
               D. Sculley},
  title     = {Google Vizier: {A} Service for Black-Box Optimization},
  booktitle = {Proceedings of the 23rd {ACM} {SIGKDD} International Conference on
               Knowledge Discovery and Data Mining, Halifax, NS, Canada, August 13
               - 17, 2017},
  pages     = {1487--1495},
  publisher = {{ACM}},
  year      = {2017},
  url       = {https://doi.org/10.1145/3097983.3098043},
  doi       = {10.1145/3097983.3098043},
}