google/vizier
Python-based research interface for blackbox and hyperparameter optimization, based on the internal Google Vizier Service.
What it solves
OSS Vizier provides a reliable and flexible system for black-box optimization, specifically designed to handle hyperparameter tuning at scale. It allows users to find the best parameters for a given objective function without needing to know the internal workings of that function.
How it works
It operates as a distributed client-server system. Users define a search space (including float, integer, discrete, and categorical parameters) and a metric to maximize or minimize. The system then suggests parameters to evaluate, which the user's code evaluates and reports back to the service, creating an optimization loop.
Who it’s for
- ML Engineers: To tune hyperparameters for machine learning models.
- AI Researchers: To implement and benchmark new optimization algorithms using the Developer and Benchmarking APIs.
- Developers: Those needing a distributed backend for large-scale evolutionary experimentation or program search.
Highlights
- Distributed Architecture: A client-server model that supports multi-client settings.
- Comprehensive API: Separate APIs for users, developers implementing algorithms, and researchers benchmarking algorithms.
- Flexible Search Spaces: Supports a wide variety of parameter types including categorical and discrete values.
- Integration: Advanced support for TensorFlow Probability, Flax, and PyGlove.
- JAX-based Optimizer: Includes a state-of-the-art Bayesian Optimizer based on JAX.