# facebookresearch/nevergrad

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/facebookresearch-nevergrad).**

4,151 stars · 365 forks · Python · mit

## Links

- GitHub: https://github.com/facebookresearch/nevergrad
- Homepage: https://facebookresearch.github.io/nevergrad/
- awesome-repositories: https://awesome-repositories.com/repository/facebookresearch-nevergrad.md

## Description

Nevergrad is a gradient-free optimization library and hyperparameter optimization framework designed to find the minimum of objective functions without using derivatives. It serves as an asynchronous optimization engine that decouples parameter suggestions from result reporting to support parallel function evaluations.

The project specializes in multi-objective optimization to identify Pareto fronts for competing goals and provides a suite for benchmarking the performance and convergence of different optimization routines. It supports black-box system optimization, enabling the tuning of external scripts or non-native code by injecting parameter values into source files.

The library handles a wide variety of search spaces, including continuous, discrete, and categorical variables, and can optimize noisy or ill-conditioned functions. Its capability surface includes distributed parameter search, the ability to chain multiple algorithms, and tools for visualizing benchmark results through regret plots and win-rate matrices.

## Tags

### Development Tools & Productivity

- [Objective Function Minimization](https://awesome-repositories.com/f/development-tools-productivity/search-optimization/hyperparameter-search-algorithms/objective-function-minimization.md) — Finds the minimum value of a target function using a variety of gradient-free algorithms. ([source](https://facebookresearch.github.io/nevergrad/_sources/index.rst.txt))
- [Automated Parameter Searches](https://awesome-repositories.com/f/development-tools-productivity/search-optimization/automated-parameter-searches.md) — Evaluates multiple candidate parameter sets across parallel workers to accelerate the discovery of optimal values.
- [Distributed Search Executions](https://awesome-repositories.com/f/development-tools-productivity/search-optimization/automated-parameter-searches/distributed-search-executions.md) — Supports parallel function evaluations by distributing parameter search across multiple workers.
- [Gradient-Free Optimization](https://awesome-repositories.com/f/development-tools-productivity/search-optimization/hyperparameter-search-algorithms/gradient-free-optimization.md) — Finds optimal input values for a target function using adaptive algorithms that do not require derivatives. ([source](https://facebookresearch.github.io/nevergrad/getting_started.html))
- [Parallel Objective Evaluations](https://awesome-repositories.com/f/development-tools-productivity/search-optimization/hyperparameter-search-algorithms/objective-function-minimization/parallel-objective-evaluations.md) — Evaluates multiple parameter sets across different workers simultaneously to find the optimal value faster. ([source](https://facebookresearch.github.io/nevergrad/r.html))
- [Ill-Conditioned Function Optimization](https://awesome-repositories.com/f/development-tools-productivity/search-optimization/hyperparameter-search-algorithms/objective-function-minimization/ill-conditioned-function-optimization.md) — Solves optimization problems involving rotated or poorly scaled objective functions using comparison-based methods. ([source](https://facebookresearch.github.io/nevergrad/benchmarks.html))

### Scientific & Mathematical Computing

- [Gradient-Free Optimization](https://awesome-repositories.com/f/scientific-mathematical-computing/gradient-free-optimization.md) — Implements a wide array of adaptive, gradient-free algorithms to find the minimum of objective functions.
- [Numerical Parameter Optimization](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-parameter-optimization.md) — Allows specifying the search space using scalars, log-distributed values, or categorical choices to guide the optimizer. ([source](https://facebookresearch.github.io/nevergrad/parametrization.html))
- [Pareto Front Optimizations](https://awesome-repositories.com/f/scientific-mathematical-computing/pareto-front-optimizations.md) — Maintains a set of non-dominated solutions to optimize multiple competing objective functions simultaneously.
- [Unified Parameter Spaces](https://awesome-repositories.com/f/scientific-mathematical-computing/unified-parameter-spaces.md) — Transforms continuous, discrete, and categorical variables into a standardized representation to handle mixed domains.
- [Black-Box Optimization](https://awesome-repositories.com/f/scientific-mathematical-computing/black-box-optimization.md) — Provides the ability to optimize external scripts and non-native code by treating them as opaque black-box functions.
- [Constraint Handling via Penalty Vectors](https://awesome-repositories.com/f/scientific-mathematical-computing/constraint-handling-via-penalty-vectors.md) — Manages search space restrictions by treating constraint violations as additional objective dimensions to be minimized.
- [Discrete Domain Optimization](https://awesome-repositories.com/f/scientific-mathematical-computing/discrete-domain-optimization.md) — Minimizes objective functions over discrete domains using discretization of continuous variables or softmax transformations. ([source](https://facebookresearch.github.io/nevergrad/benchmarks.html))
- [Noisy Function Optimization](https://awesome-repositories.com/f/scientific-mathematical-computing/noisy-function-optimization.md) — Finds the minimum of objective functions containing noise using specialized noise management principles. ([source](https://facebookresearch.github.io/nevergrad/benchmarks.html))
- [Optimization Algorithm Chaining](https://awesome-repositories.com/f/scientific-mathematical-computing/optimization-algorithm-chaining.md) — Runs multiple optimization algorithms sequentially and passes learned information from one process to the next. ([source](https://facebookresearch.github.io/nevergrad/optimization.html))
- [Optimization Constraint Enforcement](https://awesome-repositories.com/f/scientific-mathematical-computing/optimization-constraint-enforcement.md) — Restricts the search space using violation vectors or boolean constraints to ensure candidates meet specific criteria. ([source](https://facebookresearch.github.io/nevergrad/optimization.html))
- [Optimizer Inoculation](https://awesome-repositories.com/f/scientific-mathematical-computing/optimizer-inoculation.md) — Enables the injection of known candidate values and their losses into an optimizer to guide the search process. ([source](https://facebookresearch.github.io/nevergrad/optimization.html))

### Artificial Intelligence & ML

- [Asynchronous Optimization Frameworks](https://awesome-repositories.com/f/artificial-intelligence-ml/asynchronous-optimization-frameworks.md) — Provides an asynchronous engine that decouples parameter suggestions from result reporting to support non-blocking trials.
- [Hyperparameter Optimizers](https://awesome-repositories.com/f/artificial-intelligence-ml/hyperparameter-optimizers.md) — Provides a system for tuning model variables across diverse search spaces to achieve optimal performance.
- [Parallel Evaluators](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/infrastructure/model-training-and-tuning/training-frameworks/training-and-evaluation-pipelines/parallel-evaluators.md) — Runs function evaluations across multiple workers using an executor to speed up the overall optimization process. ([source](https://facebookresearch.github.io/nevergrad/optimization.html))
- [Hyperparameter Tuning](https://awesome-repositories.com/f/artificial-intelligence-ml/model-fine-tuning-resources/hyperparameter-tuning.md) — Provides a framework for searching optimal model parameters across continuous, discrete, and categorical spaces.
- [Hyperparameter Optimization](https://awesome-repositories.com/f/artificial-intelligence-ml/model-optimization/training-efficiency/hyperparameter-optimization.md) — Minimizes functions using a combination of continuous and discrete hyperparameters by transforming them into a unified space. ([source](https://facebookresearch.github.io/nevergrad/machinelearning.html))
- [Gradient-Free Optimization Libraries](https://awesome-repositories.com/f/artificial-intelligence-ml/optimization-algorithms/gradient-free-optimization-libraries.md) — Functions as a comprehensive toolkit for finding function minima using adaptive algorithms without derivatives.
- [Search Space Definition](https://awesome-repositories.com/f/artificial-intelligence-ml/search-space-definition.md) — Sets the search area for optimization using continuous, discrete, or mixed variable types to constrain the search. ([source](https://facebookresearch.github.io/nevergrad/parametrization_ref.html))
- [Optimization Benchmarkers](https://awesome-repositories.com/f/artificial-intelligence-ml/benchmarks/optimization-benchmarkers.md) — Executes experiment plans across functions and optimizers to measure performance metrics like loss and elapsed time. ([source](https://facebookresearch.github.io/nevergrad/benchmarking.html))
- [Result Reproducibility Controls](https://awesome-repositories.com/f/artificial-intelligence-ml/result-reproducibility-controls.md) — Seeds the random state of parametrizations to produce deterministic and repeatable optimization runs. ([source](https://facebookresearch.github.io/nevergrad/optimization.html))

### Programming Languages & Runtimes

- [Parallel Function Execution](https://awesome-repositories.com/f/programming-languages-runtimes/programming-utilities/functional/objective-function-execution/parallel-function-execution.md) — Executes the objective function across multiple threads or workers to discover optimal parameters more quickly. ([source](https://facebookresearch.github.io/nevergrad/machinelearning.html))
- [External Script Execution](https://awesome-repositories.com/f/programming-languages-runtimes/external-script-execution.md) — Wraps non-native code as functions by using placeholders to inject parameter values into external source files. ([source](https://facebookresearch.github.io/nevergrad/parametrization.html))

### Software Engineering & Architecture

- [Asynchronous Ask-and-Tell Interfaces](https://awesome-repositories.com/f/software-engineering-architecture/asynchronous-ask-and-tell-interfaces.md) — Implements an ask-and-tell interface that separates parameter suggestions from result reporting to support asynchronous workflows.
- [Asynchronous Parameter Coordination](https://awesome-repositories.com/f/software-engineering-architecture/asynchronous-parameter-coordination.md) — Requests suggested parameters and reports resulting values asynchronously to facilitate parallel execution. ([source](https://facebookresearch.github.io/nevergrad/machinelearning.html))
- [Search Space Definitions](https://awesome-repositories.com/f/software-engineering-architecture/configuration-variables/search-space-definitions.md) — Allows defining the search space for hyperparameters using continuous, discrete, or mixed variable types. ([source](https://facebookresearch.github.io/nevergrad/getting_started.html))
- [Multi-Objective Optimization](https://awesome-repositories.com/f/software-engineering-architecture/pipeline-optimization-techniques/multi-objective-optimization.md) — Simultaneously optimizes multiple competing performance metrics to find balanced trade-offs on the Pareto front.
- [Optimizer Abstractions](https://awesome-repositories.com/f/software-engineering-architecture/optimizer-abstractions.md) — Provides a common API that allows users to swap different gradient-free algorithms without changing their objective function logic.
- [Logic Decoupling](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/modular-decoupled-design/structural-design-paradigms/decoupled-logic-encapsulation/logic-decoupling.md) — Separates candidate suggestions from result reporting using an ask-and-tell interface to decouple optimization logic. ([source](https://facebookresearch.github.io/nevergrad/optimization.html))
- [Asynchronous Task Executors](https://awesome-repositories.com/f/software-engineering-architecture/task-scheduling/asynchronous-schedulers/asynchronous-thread-schedulers/custom-thread-executors/asynchronous-task-executors.md) — Uses asynchronous task executors to distribute function evaluations across multiple workers or threads for parallel optimization.

### Part of an Awesome List

- [Optimization Algorithm Benchmarks](https://awesome-repositories.com/f/awesome-lists/ai/benchmark-and-evaluation/custom-benchmark-and-framework-integration/optimization-algorithm-benchmarks.md) — Provides tools to integrate custom test functions and optimizers to evaluate new algorithms against baselines. ([source](https://facebookresearch.github.io/nevergrad/benchmarking.html))
- [Computation and Optimization](https://awesome-repositories.com/f/awesome-lists/devtools/computation-and-optimization.md) — Platform for gradient-free optimization.

### Testing & Quality Assurance

- [Optimization Result Visualization](https://awesome-repositories.com/f/testing-quality-assurance/agent-performance-benchmarks/benchmark-result-analysis/optimization-result-visualization.md) — Generates regret plots and win-rate matrices to compare the effectiveness of different optimization algorithms. ([source](https://facebookresearch.github.io/nevergrad/benchmarking.html))
