- fastBPE was removed, until a better alternative is settled on
- Better default behavior when no devices is specified inside an Experiment
- Fixes a vulnerability with PyYAML < 5.3.1
- When creating new AWS instances, they now receive an initial temporary name until the final name is assigned.
- Fixed an issue with running trials in parallel on a single node with multiple GPUs
- Set the default Metric aggregate behavior to better reflect common use cases
- ``TextField``: now accepts a vocabulary as input, supports additional special tokens and can operate over nested lists and dictionaries of strings
- ``MultiClassAUC``: new metric to compute non binary AUC
- ``Recall``: new metric to compute non binary recall
- ``BaseSampler``: has a new argument ``downsample_max_samples`` to downsample to a specific number of samples as opposed to a percentage of the data.
- We now use Github Actions for testing and publishing
- Fixed an issue with serialization on loading Tensors
- Fixed learning rate logging in the ``Trainer``
- ``Perplexity`` now aggregates correctly
* Now TextField can store all the embeddings provided, not just the ones that are on the datasets (236 )
* Changed most of the wrapper logic around metric computation for more robustness and generalization ability (226 )
* We fixed the examples tests that were not able to run before on the CI because of hardware limitations.
**We now run fully on Github Actions!**
* Flambe is now fully compatible with torch 1.3
* We fixed a bug where some modules containing `torch.nn.Module` were not correctly serialized.
- Support for args and kwargs in `Script` (191 )
- Added `RAdam` optimizer (195)
- **[BACKWARDS INCOMPATIBLE CHANGE]** The `Trainer` `extra_validation_metrics` is now a dict instead of a list (198 )
- Improved linking error message (182)
- Updated integration of the `transformers` library. Instead of a having a series of objects for each type of Transformer model, there are now only two: `PretrainedTransformerField` and `PretrainedTransformerEmbedder` which support aliases from any type of Transformer model. This should ensure that the integration does not need to be updated when new models are added in the `transformers` library.
- Fixed a bug where the Trainer could run out of training batches
- The `TabularDataset.from_path` class method now correctly supports paths which use `smartopen`
- All objects from the older `transformers` library integration have been removed.
* **New debugging experience**. `debug` is not a parameter of the `Experiment` anymore. The user just needs to execute `flambe config.yaml -d` (173)
* Now uploading heavyweight resource or extensions will generate a stdout warning (174)
* We now run on the ray `0.7.6` (https://github.com/asappresearch/flambe/pull/172)
* We are now compatible with Python `3.7`.
* Fixed a bug in `AvgPooling` (thanks ciguaran-asapp , https://github.com/asappresearch/flambe/pull/165)
* Fixed an issue where resources with the same directory name would conflict in remote experiment (158 )
- New resources notation (no more `local` or `remote`, introducing new `!cluster` tag). (134 )
- Removed the automatic debugger per block when `debug=True`. Now is up to the user to put the breakpoints (151 )
- Added `WarmupLinearScheduler` and `NoamScheduler` (124)
- No more special installations (`pip install flambe[cuda]`) for GPU support. The base pip installable already supports GPU/CPU. (125 )
- Added `BPC` metric and `PTB` dataset. (126)
- Requirements are more spefic now following `~=` notation to avoid unexpected backwards incompatible changes (129)
- Added `F1` metric (133, thanks ciguaran-asapp )
- Fixed a bug that was not allowing links to be specified in lists (132)
- A bug was fixed that was not allowing the EC2 to run tensorboard. (128)
- Fixed a bug that was removing output directories (136)
- The flambé configuration can now be seen through the web UI
- `Embeddings` now supports loading locally saved `gensim` embeddings
- Better language modeling support with the `Enwiki8` and `Wikitext103` datasets, and the new `CorpusSampler`
- `Experiment` now has an option fail fast flag to avoid continuing the execution of the stages when an error has occured
- Added a `BPETokenizer`, a simple wrapper around `FastBPE`
- Added a new option to the `TextField` that allows dropping unknown tokens when processing an example.
- Fix bug that was not allowing the resources to be synced to all hosts
- Update `sru` version that fixes performance bugs.
- Fix bug where GPU trained model could not be loaded to CPU when using `load_state_from_file`
* Now everything is batch first. Samplers will generate tensors with the first dimension being the batch.
* Tensors now get serialized correctly when put inside the state. We now use `torch.save` and `torch.load` instead of plain `pickle` to handle the stash.
* The console in the website now works in a more robust way.
* We fix a bug in serialization that wasn't allowing loading correctly objects that originally had links.
- New link mechanisms: when using links inside the configuration format (`!`) there is now a different syntax for schematic paths and attribute paths. You can reference objects as shown in the config using the bracket notation(ex: `trainer[model][encoder]`), while you can refer to object attributes using dot notation, as it is done now (ex: `trainer[model][encoder].input_dim`). See documentation for more information.
- New objects: `Transformer`, `TransformerEncoder` and `TransformerDecoder`
- New objects: `TransformerSRU`, `TransformerSRUEncoder`, `TransformerSRUDecoder` (a variant of the Transformer architecture where the FFN is replaced with an SRU cell)
- New pytorch-transformers integration with all the available objects: `BertEmbedder`, `RobertaEmbedder`, `TransoXLEmbedder`, `XLNetEmbedder`, etc.. The equivalent text field objects are also provided. These objects are meant to be used to load pretrained models and to possibly be finetuned, not for training from scratch. You can load any pretrained model with a simple alias: `BertEmbedder('bert-base-uncased')`
- Positional encoding was added as an option to the `Embeddings` object. They can be fixed or learned.
- The `Embedder` now supports custom pooling. Currently implemented: `AvgPooling`, `SumPooling`, `LastPooling`, `FirstPooling`.
- There is now a way to get the current trial output directory for custom outputs: `flambe.logging.get_trial_dir`
- `WordTokenizer` now tokenizes punctuation
- `NGramTokenizer` now supports stop words removal
- The `Trainer` now evaluates before starting training
- The new linking mechanism may cause some errors. For example, the common `train.model.trainable_parameters` link in configurations will not work anymore, as the trainer is not initialized yet in this scenario. The correct link is now `train[model].trainable_parameters`
- `PooledRNNEncoder` is deprecated but can still be used in this version
- The `autogen_val_test` method in TabularDataset was renamed `autogen` and supports a test_path input
- Fixed a bug where the AUC for max_fpr < 1 was computed wrong
Fixed a bug that prevented loading a saved components containing extensions
- `LabelField` now have new attributes for label frequencies that can be used, for example, to apply weights to loss functions
- Volume type (`gp2` or `io1`) is now an `AWSCluster` parameter
- Object tags are verified when launching a config
- New Binary metrics
- Volumes in AWS now have tags as well
- New utility to build config templates using jinja
- TabularDataset has a new factory method to automate train/dev/test splitting
- The Trainer now has gradient clipping options
- Timeouts in AWS work now in a more robust way:
* The ray cluster is shutdown in all instances so that the AWS alarms can correctly trigger.
* Fixed a bug that triggered the created alarms if the machine was currently idle.
- More stable execution of remote commands through tmux
- `rsync`ing flambe to the instances in `dev` mode is now much faster as it ignores all .gitignore resources
- Fields now correctly dump the vocabulary when saved
- AWSCluster can take a region name
- `model` is now correctly imported at the top level
- Better flow in installing extensions remotely
- Improved "Using Custom Code in Flambé" tutorial
- Fixed typos in docs
- New AWS cluster tutorial
- Fix an issue with accessing correct role in AWSCluster
- Correctly remove output folders for variants that did not run due to a reduce operation in a previous stage
This is the first open-source release of Flambé