All Projects → asappresearch → Flambe

asappresearch / Flambe

Licence: mit
An ML framework to accelerate research and its path to production.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Flambe

dask-sql
Distributed SQL Engine in Python using Dask
Stars: ✭ 271 (+14.83%)
Mutual labels:  ml, distributed
parallax
A Tool for Automatic Parallelization of Deep Learning Training in Distributed Multi-GPU Environments.
Stars: ✭ 128 (-45.76%)
Mutual labels:  ml, distributed
itc.lua
A Lua implementation of Interval Tree Clocks
Stars: ✭ 21 (-91.1%)
Mutual labels:  research, distributed
Tensorflow
An Open Source Machine Learning Framework for Everyone
Stars: ✭ 161,335 (+68262.29%)
Mutual labels:  ml, distributed
Niftynet
[unmaintained] An open-source convolutional neural networks platform for research in medical image analysis and image-guided therapy
Stars: ✭ 1,276 (+440.68%)
Mutual labels:  ml, distributed
Csinva.github.io
Slides, paper notes, class notes, blog posts, and research on ML 📉, statistics 📊, and AI 🤖.
Stars: ✭ 342 (+44.92%)
Mutual labels:  research, ml
awesome-list-of-awesomes
A curated list of all the Awesome --Topic Name-- lists I've found till date relevant to Data lifecycle, ML and DL.
Stars: ✭ 259 (+9.75%)
Mutual labels:  research, ml
Lingvo
Lingvo
Stars: ✭ 2,361 (+900.42%)
Mutual labels:  research, distributed
Jubatus
Framework and Library for Distributed Online Machine Learning
Stars: ✭ 702 (+197.46%)
Mutual labels:  ml, distributed
Handson Ml
A series of Jupyter notebooks that walk you through the fundamentals of Machine Learning and Deep Learning in python using Scikit-Learn and TensorFlow.
Stars: ✭ 23,798 (+9983.9%)
Mutual labels:  ml, distributed
Tfmesos
Tensorflow in Docker on Mesos #tfmesos #tensorflow #mesos
Stars: ✭ 194 (-17.8%)
Mutual labels:  ml, distributed
Oneflow
OneFlow is a performance-centered and open-source deep learning framework.
Stars: ✭ 2,868 (+1115.25%)
Mutual labels:  ml, distributed
Zr Obp
Open Bandit Pipeline: a python library for bandit algorithms and off-policy evaluation
Stars: ✭ 219 (-7.2%)
Mutual labels:  research
Hamiltonian Nn
Code for our paper "Hamiltonian Neural Networks"
Stars: ✭ 229 (-2.97%)
Mutual labels:  research
Amulet
An ML-like functional programming language
Stars: ✭ 219 (-7.2%)
Mutual labels:  ml
Research Paper Notes
Notes and Summaries on ML-related Research Papers (with optional implementations)
Stars: ✭ 218 (-7.63%)
Mutual labels:  research
Appnp
A PyTorch implementation of "Predict then Propagate: Graph Neural Networks meet Personalized PageRank" (ICLR 2019).
Stars: ✭ 234 (-0.85%)
Mutual labels:  research
Coerce Rs
Coerce - an asynchronous (async/await) Actor runtime and cluster framework for Rust
Stars: ✭ 231 (-2.12%)
Mutual labels:  distributed
Vernemq
A distributed MQTT message broker based on Erlang/OTP. Built for high quality & Industrial use cases.
Stars: ✭ 2,628 (+1013.56%)
Mutual labels:  distributed
Vuvuzela
Private messaging system that hides metadata
Stars: ✭ 2,423 (+926.69%)
Mutual labels:  research

.. raw:: html

<p align="center">
   <img src="imgs/Flambe_Logo_CMYK_FullColor.png" width="60%" align="middle">
</p>

|


|

.. image:: https://github.com/asappresearch/flambe/workflows/Run%20fast%20tests/badge.svg :target: https://github.com/asappresearch/flambe/actions :alt: Fast tests

.. image:: https://github.com/asappresearch/flambe/workflows/Run%20slow%20tests/badge.svg :target: https://github.com/asappresearch/flambe/actions :alt: Slow tests

.. image:: https://readthedocs.org/projects/flambe/badge/?version=latest :target: https://flambe.ai/en/latest/?badge=latest :alt: Documentation Status

.. image:: https://badge.fury.io/py/flambe.svg :target: https://badge.fury.io/py/flambe :alt: PyPI version

|

Welcome to Flambé, a PyTorch <https://pytorch.org/>_-based library that allows users to:

  • Run complex experiments with multiple training and processing stages
  • Search over hyperparameters, and select the best trials
  • Run experiments remotely over many workers, including full AWS integration
  • Easily share experiment configurations, results, and model weights with others

Installation

From PIP:

.. code-block:: bash

pip install flambe

From source:

.. code-block:: bash

git clone [email protected]:asappresearch/flambe.git
cd flambe
pip install .

Getting started

Define an Experiment:

.. code-block:: yaml

!Experiment

name: sst-text-classification

pipeline:

  # stage 0 - Load the Stanford Sentiment Treebank dataset and run preprocessing
  dataset: !SSTDataset # this is a simple Python object, and the arguments to build it
    transform: # these arguments are passed to the init method
      text: !TextField
      label: !LabelField

  # Stage 1 - Define a model
  model: !TextClassifier
      embedder: !Embedder
        embedding: !torch.Embedding  # automatically use pytorch classes
          num_embeddings: [email protected] dataset.text.vocab_size # link to other components, and attributes
          embedding_dim: 300
        embedding_dropout: 0.3
        encoder: !PooledRNNEncoder
          input_size: 300
          n_layers: !g [2, 3, 4] # grid search over any parameters
          hidden_size: 128
          rnn_type: sru
          dropout: 0.3
      output_layer: !SoftmaxLayer
          input_size: [email protected] model[embedder][encoder].rnn.hidden_size # also use inner-links
          output_size: [email protected] dataset.label.vocab_size

  # Stage 2 - Train the model on the dataset
  train: !Trainer
    dataset: [email protected] dataset
    model: [email protected] model
    train_sampler: !BaseSampler
    val_sampler: !BaseSampler
    loss_fn: !torch.NLLLoss
    metric_fn: !Accuracy
    optimizer: !torch.Adam
      params: [email protected] train[model].trainable_params
    max_steps: 100
    iter_per_step: 100

  # Stage 3 - Eval on the test set
  eval: !Evaluator
    dataset: [email protected] dataset
    model: [email protected] train.model
    metric_fn: !Accuracy
    eval_sampler: !BaseSampler

# Define how to schedule variants
schedulers:
  train: !ray.HyperBandScheduler

All objects in the pipeline are subclasses of Component, which are automatically registered to be used with YAML. Custom Component implementations must implement run to add custom behavior when being executed.

Now just execute:

.. code-block:: bash

flambe example.yaml

Note that defining objects like model and dataset ahead of time is optional; it's useful if you want to reference the same model architecture multiple times later in the pipeline.

Progress can be monitored via the Report Site (with full integration with Tensorboard):

.. raw:: html

<p align="center">
   <kbd><img src="docs/image/report-site/partial.png" width="120%" align="middle" border="5"></kbd>
</p>

Features

  • Native support for hyperparameter search: using search tags (see !g in the example) users can define multi variant pipelines. More advanced search algorithms will be available in a coming release!
  • Remote and distributed experiments: users can submit Experiments to Clusters which will execute in a distributed way. Full AWS integration is supported.
  • Visualize all your metrics and meaningful data using Tensorboard: log scalars, histograms, images, hparams and much more.
  • Add custom code and objects to your pipelines: extend flambé functionality using our easy-to-use extensions mechanism.
  • Modularity with hierarchical serialization: save different components from pipelines and load them safely anywhere.

Next Steps

Full documentation, tutorials and much more in https://flambe.ai

Contact

You can reach us at [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].