Benchopt
A framework for reproducible, comparable benchmarks
Install / Use
/learn @benchopt/BenchoptREADME
.. image:: https://raw.githubusercontent.com/benchopt/communication_materials/main/posters/images/logo_benchopt.png :width: 350 :align: center
—A framework for reproducible, comparable benchmarks—
|Test Status| |codecov| |Documentation| |Python 3.6+| |install-per-months| |discord| |SWH|
Benchopt is a benchmarking suite tailored for machine learning workflows.
It is built for simplicity, transparency, and reproducibility.
It is implemented in Python but can run algorithms written in many programming languages.
So far, benchopt has been tested with Python <https://www.python.org/>,
R <https://www.r-project.org/>, Julia <https://julialang.org/>_
and C/C++ <https://isocpp.org/>_ (compiled binaries with a command line interface).
Programs available via conda <https://docs.conda.io/en/latest/>_ should be compatible as well.
See for instance an example of usage <https://benchopt.github.io/stable/auto_examples/plot_run_benchmark_python_R.html>_ with R.
Install
It is recommended to use benchopt within a conda environment to fully-benefit
from benchopt Command Line Interface (CLI).
To install benchopt, start by creating a new conda environment and then activate it
.. code-block:: bash
conda create -n benchopt python
conda activate benchopt
Then run the following command to install the latest release of benchopt
.. code-block:: bash
pip install -U benchopt
It is also possible to use the latest development version. To do so, run instead
.. code-block:: bash
pip install git+https://github.com/benchopt/benchopt.git
Getting started
After installing benchopt, you can
- replicate/modify an existing benchmark
- create your own benchmark
Using an existing benchmark ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Replicating an existing benchmark is simple.
Here is how to do so for the L2-logistic Regression benchmark <https://github.com/benchopt/benchmark_logreg_l2>_.
- Clone the benchmark repository and
cdto it
.. code-block:: bash
git clone https://github.com/benchopt/benchmark_logreg_l2 cd benchmark_logreg_l2
- Install the desired solvers automatically with
benchopt
.. code-block:: bash
benchopt install . -s lightning -s sklearn
- Run the benchmark to get the figure below
.. code-block:: bash
benchopt run . --config ./example_config.yml
.. figure:: https://benchopt.github.io/_images/sphx_glr_plot_run_benchmark_001.png :target: how.html :align: center :width: 60%
These steps illustrate how to reproduce the L2-logistic Regression benchmark <https://github.com/benchopt/benchmark_logreg_l2>.
Find the complete list of the Available benchmarks.
Also, refer to the documentation <https://benchopt.github.io/>_ to learn more about benchopt CLI and its features.
You can also easily extend this benchmark by adding a dataset, solver or metric.
Learn that and more in the Benchmark workflow <https://benchopt.github.io/stable/benchmark_workflow/index.html>_.
Creating a benchmark ^^^^^^^^^^^^^^^^^^^^
The section Write a benchmark <https://benchopt.github.io/stable/benchmark_workflow/write_benchmark.html>_ of the documentation provides a tutorial
for creating a benchmark. The benchopt community also maintains
a template benchmark <https://github.com/benchopt/template_benchmark>_ to quickly and easily start a new benchmark.
Finding help
Join benchopt discord server <https://discord.gg/EA2HGQb7nv>_ and get in touch with the community!
Feel free to drop us a message to get help with running/constructing benchmarks
or (why not) discuss new features to be added and future development directions that benchopt should take.
Citing Benchopt
Benchopt is a continuous effort to make reproducible and transparent ML and optimization benchmarks.
Join us in this endeavor! If you use benchopt in a scientific publication, please cite
.. code-block:: bibtex
@inproceedings{benchopt, author = {Moreau, Thomas and Massias, Mathurin and Gramfort, Alexandre and Ablin, Pierre and Bannier, Pierre-Antoine and Charlier, Benjamin and Dagréou, Mathieu and Dupré la Tour, Tom and Durif, Ghislain and F. Dantas, Cassio and Klopfenstein, Quentin and Larsson, Johan and Lai, En and Lefort, Tanguy and Malézieux, Benoit and Moufad, Badr and T. Nguyen, Binh and Rakotomamonjy, Alain and Ramzi, Zaccharie and Salmon, Joseph and Vaiter, Samuel}, title = {Benchopt: Reproducible, efficient and collaborative optimization benchmarks}, year = {2022}, booktitle = {NeurIPS}, url = {https://arxiv.org/abs/2206.13424} }
Available benchmarks
.. list-table:: :widths: 70 15 15 :header-rows: 1
-
- Problem
- Results
- Build Status
-
Ordinary Least Squares (OLS) <https://github.com/benchopt/benchmark_ols>_Results <https://benchopt.github.io/results/benchmark_ols.html>__- |Build Status OLS|
-
Non-Negative Least Squares (NNLS) <https://github.com/benchopt/benchmark_nnls>_Results <https://benchopt.github.io/results/benchmark_nnls.html>__- |Build Status NNLS|
-
LASSO: L1-Regularized Least Squares <https://github.com/benchopt/benchmark_lasso>_Results <https://benchopt.github.io/results/benchmark_lasso.html>__- |Build Status Lasso|
-
LASSO Path <https://github.com/jolars/benchmark_lasso_path>_Results <https://benchopt.github.io/results/benchmark_lasso_path.html>__- |Build Status Lasso Path|
-
Elastic Net <https://github.com/benchopt/benchmark_elastic_net>_- |Build Status ElasticNet|
-
MCP <https://github.com/benchopt/benchmark_mcp>_Results <https://benchopt.github.io/results/benchmark_mcp.html>__- |Build Status MCP|
-
L2-Regularized Logistic Regression <https://github.com/benchopt/benchmark_logreg_l2>_Results <https://benchopt.github.io/results/benchmark_logreg_l2.html>__- |Build Status LogRegL2|
-
L1-Regularized Logistic Regression <https://github.com/benchopt/benchmark_logreg_l1>_Results <https://benchopt.github.io/results/benchmark_logreg_l1.html>__- |Build Status LogRegL1|
-
L2-regularized Huber regression <https://github.com/benchopt/benchmark_huber_l2>_Results <https://benchopt.github.io/results/benchmark_huber_l2.html>__- |Build Status HuberL2|
-
L1-Regularized Quantile Regression <https://github.com/benchopt/benchmark_quantile_regression>_Results <https://benchopt.github.io/results/benchmark_quantile_regression.html>__- |Build Status QuantileRegL1|
-
Linear SVM for Binary Classification <https://github.com/benchopt/benchmark_linear_svm_binary_classif_no_intercept>_Results <https://benchopt.github.io/results/benchmark_linear_svm_binary_classif_no_intercept.html>__- |Build Status LinearSVM|
-
Linear ICA <https://github.com/benchopt/benchmark_linear_ica>_- |Build Status LinearICA|
-
Approximate Joint Diagonalization (AJD) <https://github.com/benchopt/benchmark_jointdiag>_- |Build Status JointDiag|
-
1D Total Variation Denoising <https://github.com/benchopt/benchmark_tv_1d>_Results <https://benchopt.github.io/results/benchmark_tv_1d.html>__- |Build Status TV1D|
-
2D Total Variation Denoising <https://github.com/benchopt/benchmark_tv_2d>_- |Build Status TV2D|
-
ResNet Classification <https://github.com/benchopt/benchmark_resnet_classif>_Results <https://benchopt.github.io/results/benchmark_resnet_classif.html>__- |Build Status ResNetClassif|
-
Bilevel Optimization <https://github.com/benchopt/benchmark_bilevel>_Results <https://benchopt.github.io/results/benchmark_bilevel.html>__- |Build Status Bilevel|
-
Sorted L-One Penalized Estimation (SLOPE) <https://github.com/benchopt/benchmark_slope>_- |Build Status SLOPE|
.. |Test Status| image:: https://github.com/benchopt/benchopt/actions/workflows/test.yml/badge.svg :target: https://github.com/benchopt/benchopt/actions/workflows/test.yml .. |Python 3.6+| image:: https://img.shields.io/badge/python-3.6%2B-blue :target: https://www.python.org/downloads/release/python-360/ .. |Documentation| image:: https://img.shields.io/badge/documentation-latest-blue :target: https://benchopt.github.io .. |codecov| image:: https://codecov.io/gh/benchopt/benchopt/branch/main/graph/badge.svg :target: https://codecov.io/gh/benchopt/benchopt .. |SWH| image:: https://archive.softwareheritage.org/badge/origin/https://github.com/benchopt/benchopt/ :target: https://archive.softwareheritage.org/browse/origin/?origin_url=https://github.com/benchopt/benchopt .. |discord| image:: https://dcbadge.limes.pink/api/server/EA2HGQb7nv?style=flat :target: https://discord.gg/EA2HGQb7nv .. |install-per-months| image:: https://static.pepy.tech/badge/benchopt/month :target: https://pepy.tech/project/benchopt
.. |Build Status OLS| image:: https://github.com/benchopt/benchmark_ols/actions/workflows/main.yml/badge.svg :target: https://github.com/benchopt/benchmark_ols/actions .. |Build Status NNLS| image:: https://github.com/benchopt/benchmark_nnls/actions/workflows/main.yml/badge.svg :target: https://github.com/benchopt/benchmark_nnls/actions .. |Build Status Lasso| image:: https://github.com/benchopt/benchmark_lasso/actions/workflows/main.yml/badge.svg :target: https://github.com/benchopt/benchmark_lasso/actions .. |Build Status Lasso Path| image:: https://github.com/jolars/benchmark_lasso_path/actions/workflows/main.yml/badge.svg :target: https://github.com/benchopt/benchmark_lasso_path/actions .. |Build Status Ela
Related Skills
claude-opus-4-5-migration
90.0kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
model-usage
343.1kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
TrendRadar
50.3k⭐AI-driven public opinion & trend monitor with multi-platform aggregation, RSS, and smart alerts.🎯 告别信息过载,你的 AI 舆情监控助手与热点筛选工具!聚合多平台热点 + RSS 订阅,支持关键词精准筛选。AI 智能筛选新闻 + AI 翻译 + AI 分析简报直推手机,也支持接入 MCP 架构,赋能 AI 自然语言对话分析、情感洞察与趋势预测等。支持 Docker ,数据本地/云端自持。集成微信/飞书/钉钉/Telegram/邮件/ntfy/bark/slack 等渠道智能推送。
mcp-for-beginners
15.7kThis open-source curriculum introduces the fundamentals of Model Context Protocol (MCP) through real-world, cross-language examples in .NET, Java, TypeScript, JavaScript, Rust and Python. Designed for developers, it focuses on practical techniques for building modular, scalable, and secure AI workflows from session setup to service orchestration.
