Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/asappresearch/flambe
An ML framework to accelerate research and its path to production.
https://github.com/asappresearch/flambe
deep-learning distributed machine-learning ml python pytorch research
Last synced: 5 days ago
JSON representation
An ML framework to accelerate research and its path to production.
- Host: GitHub
- URL: https://github.com/asappresearch/flambe
- Owner: asappresearch
- License: mit
- Created: 2019-07-29T20:57:45.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-09-03T20:58:51.000Z (4 months ago)
- Last Synced: 2024-12-21T17:03:24.639Z (12 days ago)
- Topics: deep-learning, distributed, machine-learning, ml, python, pytorch, research
- Language: Python
- Homepage: https://flambe.ai
- Size: 13.2 MB
- Stars: 264
- Watchers: 9
- Forks: 29
- Open Issues: 22
-
Metadata Files:
- Readme: README-pypi.rst
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- Awesome-pytorch-list-CNVersion - flambe
- Awesome-pytorch-list - flambe
README
Flambé
------|
.. 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 `_-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 othersInstallation
------------**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
transform:
text: !TextField
label: !LabelField# Stage 1 - Define a model
model: !TextClassifier
embedder: !Embedder
embedding: !torch.Embedding # automatically use pytorch classes
num_embeddings: !@ dataset.text.vocab_size
embedding_dim: 300
embedding_dropout: 0.3
encoder: !PooledRNNEncoder
input_size: 300
n_layers: !g [2, 3, 4]
hidden_size: 128
rnn_type: sru
dropout: 0.3
output_layer: !SoftmaxLayer
input_size: !@ model[embedder][encoder].rnn.hidden_size
output_size: !@ dataset.label.vocab_size# Stage 2 - Train the model on the dataset
train: !Trainer
dataset: !@ dataset
model: !@ model
train_sampler: !BaseSampler
val_sampler: !BaseSampler
loss_fn: !torch.NLLLoss
metric_fn: !Accuracy
optimizer: !torch.Adam
params: !@ train[model].trainable_params
max_steps: 10
iter_per_step: 100# Stage 3 - Eval on the test set
eval: !Evaluator
dataset: !@ dataset
model: !@ train.model
metric_fn: !Accuracy
eval_sampler: !BaseSampler# Define how to schedule variants
schedulers:
train: !ray.HyperBandSchedulerAll 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).
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]