Welcome to Bender Documentation

Bender Clients Status

Bender Web Client Bender Web Client Bender Python Client Bender R Client Benderopt Lib

About Bender

Bender is a hyperparameters optimizer for black box optimization. It is currently open-access but we plan to open-source all its components.

It features 3 kind of components:

  • benderopt: A custom library implementing 2 algorithms:
    • Random Search
    • Parzen Estimator Optimization (TPE-like)
  • bender-api: A high level interface to interact with bender functionalities.
    • CRUD for experiments, algorithms and trials.
    • Relies on benderopt for suggesting new hyperparameters to try.
  • Various clients to give you access to Bender functionalities from anywhere:
    • web-client available at https://bender.dreem.com
    • python-client available by pip install bender-client
API - WEB CLIENT API - OTHER CLIENTS

You can find a medium post about bender here: https://medium.com/@dylanheirstraeten/bender-c394a5bda78b

Use bender locally

If you don’t want to use our online services, you still have the option to run bender locally using docker.

Prerequisites: docker and git

To do so, first clone, fork, or download this repository, and from its root run the following command lines :

(WARNING: This will be done with default settings, to change the installation and initialisation settings please scroll to the next header)

make install : To download all the ressources needed and install all bender dependencies into ./local

make build : To build the different dependencies.

make start : To run the database, the API and the frontend.

make : Tu do the 3 above commands at the same time.

make stop : To stop all bender services.

make clear : To remove all bender services, source files, images and containers.

To use the different clients with the local API check the its specific documentation.

Configure bender locally

Bender will use the configuration file in .benderconf.

It is defined in JSON syntax and looks like the following :

{
    "benderWebClient": {
        "localhostPort": <the port you want to use on localhost to expose the web-client>
    },
    "benderApi": {
        "localhostPort": <the port you want to use on localhost to expose the api>
    },
    "benderDatabase": {
        "username": <the username of the admin acount to create in the database>,
        "email": <the email of the admin acount to create in the database>,
        "password": <the password of the admin acount to create in the database>,
        "databasePath": <the local volume to mount on the database docker to host your database>,
        "localhostPort": <the port you want to use on localhost to expose the database>
    }
}