Code Monkey home page Code Monkey logo

benchmarks's Introduction

Mindsdb Benchmark Suite

This is a benchmark suite meant for automatic machine learning frameworks, containing a broad range of datasets and accuracy functions to evaluate performance on them. You can see an up to date list of all datasets and accuracy functions, as well as ongoing lightwood performance at: http://benchmarks.mindsdb.com:9107/accuracy_plots

Running the benchmarks (open source user)

In order to run the benchmarks locally to check if a change you made to lightwood is positive:

  1. Install pip, git and git-lfs (note: when you pull new changes you have to git lfs pull in addition to git pull and you have add large files to git-lfs instead of it)

  2. Clone this repository and add it to your PYTHONPATH and install requirements.txt and ploting/requirements.txt

  3. cd into it and run python3 benchmarks/run.py --use_db=0 --use_ray=0 --lightwood=#env | Set use_ray to 1 if you have more than 1 GPU or a very good GPU (e.g. a Quadro) | If you wish to benchmark fewer datasets set the --dataset argument to the comma separated list of these datasets, e.g. --datasets=hdi,home_rentals,openml_transfusion.

  4. Once the benchmarks are done running they will generate a preliminary report (REPORT.md) and a local file with the full results (REPORT.db). These will be used for the plots and reports in the next step

  5. Run python3 ploting/server.py

  6. Got to http://localhost:9107/compare/best_of_all_time/local or http://localhost:9107/compare/last_{x}/local. best_of_all_times choses the best version of lightwood for each databaset+accuracy function combination, while last_{x} looks at the last x versions. We usually like comparing with last_3 to determine if we should release a new version. You can also compare with a specific version or commit hash if you're only interested in that. Go to http://localhost:9107/accuracy_plots in order to see accuracy plots that include your local results (they will always be the last data-point on each plot)

Running the benchmarks (lightwood researcher or colaborator)

Same as above, but you should have access to a db_info.json file and thus be able to run with --use_db=1 to store your results in our database, this means you can compare using urls like http://benchmarks.mindsdb.com:9107/compare/<some hash>/<hash of your branch> for easier sharing and to appease automatic release scripts.

Release protocol

When a PR is made into stable you should chose a machine (ideally the benchmarking rig on ec2) and:

  1. Clone the latest commit being merged (let's say commit hash for this is foobar)
  2. Run the benchmarks via python3 benchmarks/run.py --use_db=1 --use_ray=1 --lightwood=#env
  3. Check http://benchmarks.mindsdb.com:9107/compare/last_3/foobar in order to see if a release can be made (be patient, it might take 3-5 hours for all benchmarks to run)
  4. Re-run github actions for the latest commit (excluding the documentation bot's commits) and make sure all is green
  5. Once we release a new stable run benchmarks for it using --is_dev=0 such that it gets added to the official list of released versions

benchmarks's People

Contributors

aditahmedabadi avatar asharma13524 avatar btkcodedev avatar chelsieng avatar debadri3 avatar fishthefish avatar george3d6 avatar hamishfagg avatar jumc avatar krissingl avatar kunal-05 avatar laukikk avatar ludovicgirard avatar mindsdbadmin avatar mphirke avatar niyonx avatar parthiv11 avatar paxcema avatar purvimisal avatar rputhuma avatar sakshiseth avatar spotts9 avatar tino097 avatar zoranpandovski avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

benchmarks's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.