{"id":332,"date":"2023-02-02T18:38:46","date_gmt":"2023-02-02T18:38:46","guid":{"rendered":"https:\/\/todaysainews.com\/index.php\/2023\/02\/02\/towards-reliable-and-flexible-hyperparameter-and-blackbox-optimization-google-ai-blog\/"},"modified":"2025-04-27T07:35:22","modified_gmt":"2025-04-27T07:35:22","slug":"towards-reliable-and-flexible-hyperparameter-and-blackbox-optimization-google-ai-blog","status":"publish","type":"post","link":"https:\/\/todaysainews.com\/index.php\/2023\/02\/02\/towards-reliable-and-flexible-hyperparameter-and-blackbox-optimization-google-ai-blog\/","title":{"rendered":"Towards reliable and flexible hyperparameter and blackbox optimization \u2013 Google AI Blog"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"post-body-2251856808648917535\">\n<span class=\"byline-author\">Posted by Xingyou (Richard) Song, Research Scientist, and Chansoo Lee, Software Engineer, Google Research, Brain Team<\/span><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEikPG-Aj1VCXtxpt22YM1q22-ieQFmruJ1QGpSBqaL8rYCZYoPo2zLzB_-w7bCRl_yBQXk6CZZp1B9pueu9JWSdQg-ym7pYrk6qoxXVqwezne75ISK_nGB8Q9qAJJUAeoNqdBnzwdMyCYBLqET2L-kO_VMjLJtfFnl2eQfaT3YgrH7BrGe6jmpv4Vl4Tw\/s1200\/image2.png\" style=\"display: none;\"\/><\/p>\n<p>\n<a href=\"https:\/\/dl.acm.org\/doi\/10.1145\/3097983.3098043\">Google Vizier<\/a> is the de-facto system for <a href=\"https:\/\/en.wikipedia.org\/wiki\/Derivative-free_optimization\">blackbox optimization<\/a> over objective functions and <a href=\"https:\/\/en.wikipedia.org\/wiki\/Hyperparameter_optimization\">hyperparameters<\/a> across Google, having serviced some of Google\u2019s largest research efforts and optimized a wide range of products (e.g., Search, Ads, YouTube). For research, it has not only <a href=\"https:\/\/ai.googleblog.com\/2022\/01\/lamda-towards-safe-grounded-and-high.html\">reduced language model latency for users<\/a>, <a href=\"https:\/\/ai.googleblog.com\/2021\/02\/machine-learning-for-computer.html\">designed computer architectures<\/a>, <a href=\"https:\/\/ai.googleblog.com\/2022\/03\/offline-optimization-for-architecting.html\">accelerated hardware<\/a>, <a href=\"https:\/\/ai.googleblog.com\/2022\/03\/using-deep-learning-to-annotate-protein.html\">assisted protein discovery<\/a>, and <a href=\"https:\/\/ai.googleblog.com\/2022\/08\/towards-helpful-robots-grounding.html\">enhanced robotics<\/a>, but also provided a reliable backend interface for users to <a href=\"https:\/\/ai.googleblog.com\/2017\/11\/automl-for-large-scale-image.html\">search for neural architectures<\/a> and <a href=\"https:\/\/ai.googleblog.com\/2021\/04\/evolving-reinforcement-learning.html\">evolve reinforcement learning algorithms<\/a>. To operate at the scale of optimizing thousands of users\u2019 critical systems and tuning millions of machine learning models, Google Vizier solved key design challenges in supporting diverse use cases and workflows, while remaining strongly fault-tolerant.\n<\/p>\n<p><a name=\"more\"\/><\/p>\n<p>\nToday we are excited to announce <a href=\"https:\/\/github.com\/google\/vizier\">Open Source (OSS) Vizier<\/a> (with an accompanying <a href=\"https:\/\/arxiv.org\/abs\/2207.13676\">systems whitepaper<\/a> published at <a href=\"https:\/\/2022.automl.cc\/\">AutoML Conference 2022<\/a>), a standalone Python package based on Google Vizier. OSS Vizier is designed for two main purposes: (1) managing and optimizing experiments at scale in a reliable and distributed manner for users, and (2) developing and benchmarking algorithms for <a href=\"https:\/\/en.wikipedia.org\/wiki\/Automated_machine_learning\">automated machine learning<\/a> (AutoML) researchers.\n<\/p>\n<h2>System design<\/h2>\n<p>\nOSS Vizier works by having a server provide services, namely the optimization of blackbox objectives, or functions, from multiple clients. In the main workflow, a client sends a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Remote_procedure_call\">remote procedure call<\/a> (RPC) and asks for a suggestion (i.e., a proposed input for the client\u2019s blackbox function), from which the service begins to spawn a worker to launch an algorithm (i.e., a <em><a href=\"https:\/\/oss-vizier.readthedocs.io\/en\/latest\/guides\/developer\/writing_algorithms.html\">Pythia policy<\/a><\/em>) to compute the following suggestions. The suggestions are then evaluated by clients to form their corresponding objective values and measurements, which are sent back to the service. This pipeline is repeated multiple times to form an entire tuning trajectory.\n<\/p>\n<p>\nThe use of the ubiquitous <a href=\"https:\/\/grpc.io\/\">gRPC<\/a> library, which is compatible with most programming languages, such as C++ and Rust, allows maximum flexibility and customization, where the user can also write their own custom clients and even algorithms outside of the default Python interface. Since the entire process is saved to an <a href=\"https:\/\/en.wikipedia.org\/wiki\/SQL\">SQL<\/a> datastore, a smooth recovery is ensured after a crash, and usage patterns can be stored as valuable datasets for research into meta-learning and multitask <a href=\"https:\/\/en.wikipedia.org\/wiki\/Transfer_learning\">transfer-learning<\/a> methods such as the <a href=\"https:\/\/ai.googleblog.com\/2022\/08\/optformer-towards-universal.html\">OptFormer<\/a> and <a href=\"https:\/\/arxiv.org\/abs\/2109.08215\">HyperBO<\/a>.\n<\/p>\n<table align=\"center\" cellpadding=\"0\" cellspacing=\"0\" class=\"tr-caption-container\" style=\"margin-left: auto; margin-right: auto;\">\n<tbody>\n<tr>\n<td style=\"text-align: center;\"><a href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhR6qwcflQSnPWSRHSoMXCoqR9b4qcguFWLZx4hbi4_9yb7ZCBS8imJ2AbtOTkXQpgi9bQ9xl0EImshI1En2co--vlxRMMstz1pQuk3LvSWtidwoAtsUsREV-1qZILV9yFfIXdy7og3gY1Ky2em04GxNnA4roJuoaiQUAdOri0zb9s-GJ43aENh4pNBQw\/s1433\/image1.gif\" style=\"margin-left: auto; margin-right: auto;\"><img decoding=\"async\" border=\"0\" data-original-height=\"723\" data-original-width=\"1433\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhR6qwcflQSnPWSRHSoMXCoqR9b4qcguFWLZx4hbi4_9yb7ZCBS8imJ2AbtOTkXQpgi9bQ9xl0EImshI1En2co--vlxRMMstz1pQuk3LvSWtidwoAtsUsREV-1qZILV9yFfIXdy7og3gY1Ky2em04GxNnA4roJuoaiQUAdOri0zb9s-GJ43aENh4pNBQw\/s16000\/image1.gif\"\/><\/a><\/td>\n<\/tr>\n<tr>\n<td class=\"tr-caption\" style=\"text-align: center;\">In the distributed pipeline, multiple clients each send a \u201cSuggest\u201d request to the Service API, which produces Suggestions for the clients using Pythia. The clients evaluate these suggestions and return measurements. All transactions are stored to allow fault-tolerance.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Usage<\/h2>\n<p>\nBecause of OSS Vizier\u2019s emphasis as a <em>service<\/em>, in which clients can send requests to the server at any point in time, it is thus designed for a broad range of scenarios \u2014 the budget of evaluations, or <em>trials<\/em>, can range from tens to millions, and the evaluation latency can range from seconds to weeks. Evaluations can be done asynchronously (e.g., tuning an ML model) or in synchronous batches (e.g., <a href=\"https:\/\/en.wikipedia.org\/wiki\/Wet_lab\">wet lab<\/a> settings involving multiple simultaneous experiments). Furthermore, evaluations may fail due to transient errors and be retried, or may fail due to persistent errors (e.g., the evaluation is impossible) and should not be retried.\n<\/p>\n<p>\nThis broadly supports a variety of applications, which include <a href=\"https:\/\/github.com\/google-research\/tuning_playbook\">hyperparameter tuning deep learning models<\/a> or optimizing non-computational objectives, which can be e.g., physical, chemical, biological, mechanical, or even human-evaluated, such as <a href=\"https:\/\/www.wired.co.uk\/article\/google-vizier-black-box-optimisation-machine-learning-cookies\">cookie recipes.<\/a>\n<\/p>\n<table align=\"center\" cellpadding=\"0\" cellspacing=\"0\" class=\"tr-caption-container\" style=\"margin-left: auto; margin-right: auto;\">\n<tbody>\n<tr>\n<td style=\"text-align: center;\"><a href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEj8BiHkziHu3LL4HTF1W07Uw53HkYgrKAn6woIPR5rxwRZ2LPsEi8gQCR8BCk635AMP4HsH_zC9NBP_ytj5o0X_UM8NXgGn-m_p0LTVHVgAZN3Ks6tsLdwmTffOtM_45QSupdCcFFg4QmpTzjngIxZSouohsFD5KkYBO0Zt6hLZ13nMheu6IYwRXxd9Sg\/s974\/image2.jpg\" style=\"margin-left: auto; margin-right: auto;\"><img decoding=\"async\" border=\"0\" data-original-height=\"362\" data-original-width=\"974\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEj8BiHkziHu3LL4HTF1W07Uw53HkYgrKAn6woIPR5rxwRZ2LPsEi8gQCR8BCk635AMP4HsH_zC9NBP_ytj5o0X_UM8NXgGn-m_p0LTVHVgAZN3Ks6tsLdwmTffOtM_45QSupdCcFFg4QmpTzjngIxZSouohsFD5KkYBO0Zt6hLZ13nMheu6IYwRXxd9Sg\/s16000\/image2.jpg\"\/><\/a><\/td>\n<\/tr>\n<tr>\n<td class=\"tr-caption\" style=\"text-align: center;\">The OSS Vizier API allows (1) developers to integrate other packages, with PyGlove and Vertex Vizier already included, and (2) users to optimize their experiments, such as machine learning pipelines and cookie recipes.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Integrations, algorithms, and benchmarks<\/h2>\n<p>\nAs Google Vizier is heavily integrated with many of Google\u2019s internal frameworks and products, OSS Vizier will naturally be heavily integrated with many of Google\u2019s open source and external frameworks. Most prominently, OSS Vizier will serve as a distributed backend for <a href=\"https:\/\/github.com\/google\/pyglove\">PyGlove<\/a> to allow large-scale evolutionary searches over combinatorial primitives such as <a href=\"https:\/\/ai.googleblog.com\/2018\/03\/using-evolutionary-automl-to-discover.html\">neural architectures<\/a> and <a href=\"https:\/\/ai.googleblog.com\/2021\/04\/evolving-reinforcement-learning.html\">reinforcement learning algorithms<\/a>. Furthermore, OSS Vizier shares the same client-based API with <a href=\"https:\/\/cloud.google.com\/vertex-ai\/docs\/vizier\/overview\">Vertex Vizier<\/a>, allowing users to quickly swap between open-source and production-quality services.\n<\/p>\n<p>\nFor AutoML researchers, OSS Vizier is also outfitted with a useful collection of algorithms and benchmarks (i.e., objective functions) unified under common APIs for assessing the strengths and weaknesses of proposed methods. Most notably, via <a href=\"https:\/\/www.tensorflow.org\/probability\">TensorFlow Probability<\/a>, researchers can now use the <a href=\"https:\/\/github.com\/google\/vizier\/blob\/main\/vizier\/_src\/algorithms\/designers\/gp_bandit.py\">JAX-based Gaussian Process Bandit algorithm<\/a>, based on the default algorithm in Google Vizier that tunes internal users\u2019 objectives.\n<\/p>\n<h2>Resources and future direction<\/h2>\n<p>\nWe provide links to the <a href=\"https:\/\/github.com\/google\/vizier\">codebase<\/a>, <a href=\"https:\/\/oss-vizier.readthedocs.io\/en\/latest\/\">documentation<\/a>, and <a href=\"https:\/\/arxiv.org\/abs\/2207.13676\">systems whitepaper<\/a>. We plan to allow user contributions, especially in the form of algorithms and benchmarks, and further integrate with the open-source AutoML ecosystem. Going forward, we hope to see OSS Vizier as a core tool for expanding research and development over blackbox optimization and hyperparameter tuning.\n<\/p>\n<h2>Acknowledgements<\/h2>\n<p>\n<em>OSS Vizier was developed by members of the Google Vizier team in collaboration with the TensorFlow Probability team: Setareh Ariafar, Lior Belenki, Emily Fertig, Daniel Golovin, Tzu-Kuo Huang, Greg Kochanski, Chansoo Lee, Sagi Perel, Adrian Reyes, Xingyou (Richard) Song, and Richard Zhang.<\/em>\n<\/p>\n<p>\n<em>In addition, we thank Srinivas Vasudevan, Jacob Burnim, Brian Patton, Ben Lee, Christopher Suter, and Rif A. Saurous for further TensorFlow Probability integrations, Daiyi Peng and Yifeng Lu for PyGlove integrations, Hao Li for Vertex\/Cloud integrations, Yingjie Miao for AutoRL integrations, Tom Hennigan, Varun Godbole, Pavel Sountsov, Alexey Volkov, Mihir Paradkar, Richard Belleville, Bu Su Kim, Vytenis Sakenas, Yujin Tang, Yingtao Tian, and Yutian Chen for open source and infrastructure help, and George Dahl, Aleksandra Faust, Claire Cui, and Zoubin Ghahramani for discussions.<br \/><\/em>\n<\/p>\n<p>\n<em>Finally we thank Tom Small for designing the animation for this post.<\/em>\n<\/p>\n<\/div>\n<p>[ad_2]<br \/>\n<br \/><a href=\"http:\/\/ai.googleblog.com\/2023\/02\/open-source-vizier-towards-reliable-and.html\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] Posted by Xingyou (Richard) Song, Research Scientist, and Chansoo Lee, Software Engineer, Google Research, Brain Team Google<\/p>\n","protected":false},"author":2,"featured_media":333,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20],"tags":[],"class_list":["post-332","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-google-ai"],"_links":{"self":[{"href":"https:\/\/todaysainews.com\/index.php\/wp-json\/wp\/v2\/posts\/332","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/todaysainews.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/todaysainews.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/todaysainews.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/todaysainews.com\/index.php\/wp-json\/wp\/v2\/comments?post=332"}],"version-history":[{"count":1,"href":"https:\/\/todaysainews.com\/index.php\/wp-json\/wp\/v2\/posts\/332\/revisions"}],"predecessor-version":[{"id":2906,"href":"https:\/\/todaysainews.com\/index.php\/wp-json\/wp\/v2\/posts\/332\/revisions\/2906"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/todaysainews.com\/index.php\/wp-json\/wp\/v2\/media\/333"}],"wp:attachment":[{"href":"https:\/\/todaysainews.com\/index.php\/wp-json\/wp\/v2\/media?parent=332"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/todaysainews.com\/index.php\/wp-json\/wp\/v2\/categories?post=332"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/todaysainews.com\/index.php\/wp-json\/wp\/v2\/tags?post=332"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}