Skip to content

Releases: allenai/allenact

v0.5.2

16 Aug 21:41
ce3414c
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.5.0...v0.5.2

v0.5.0

24 Mar 19:12
4c5341d
Compare
Choose a tag to compare

In this release we add several new substantial features.

Multi-machine distributed training support

We've added a new tutorial (see here) and scripts necessary to be able to run allenact across multiple machines.

Improved Navigation Models with Auxiliary Tasks

Recent work has shown that certain auxiliary tasks (e.g. inverse/forward dynamics) can be used to speed up training and improve the performance of navigation agents. We have implemented a large number of these auxiliary tasks (see for instance the InverseDynamicsLoss, TemporalDistanceLoss, CPCA16Loss, and MultiAuxTaskNegEntropyLoss classes in the allenact.embodiedai.aux_losses.losses module as well as a new base architecture for visual navigation (allenact.embodiedai.models.VisualNavActorCritic) which makes it very easy to use these auxiliary losses during training.

CLIP Preprocessors and Embodied CLIP experiments

We've added a new clip_plugin that makes preprocessors available which use the CLIP-pretrained visual encoders. See the projects/objectnav_baselines/experiments/robothor/clip/objectnav_robothor_rgb_clipresnet50gru_ddppo.py experiment configuration file which uses these new proprocessors to obtain SOTA results on the RoboTHOR ObjectNav leaderboard. These results correspond to our new paper on using CLIP visual encoders for embodied tasks.

New storage flexibility

We've substantially generalized the rollout storage class. This is an "advanced" option but it is now possible to implement custom storage classes which can enable new types of training (e.g. Q-learning) and even mixing various training paradigms (e.g. training with Q-learning, PPO, and offline imitation learning simultaneously).

Better Habitat Support and Experiments

We've added support for training ObjectNav models in Habitat and include a experiment config that trains such a model with a CLIP visual encoder backbone (see projects/objectnav_baselines/experiments/habitat/clip/objectnav_habitat_rgb_clipresnet50gru_ddppo.py).

v0.4.0

15 Jun 23:35
86b8ce3
Compare
Choose a tag to compare

In this release we add:

Hierarchical policy support 📶

We have improved our support of hierarchical agent policies via the addition of a SequentialDistr class. This class allows for multi-stage hierarchical policy distributions. There are two common settings where this can be very useful. (1) You have an agent who needs to choose a high level objective before choosing a low-level action (e.g. maybe it wants to "MoveAhead" if it's high level goal is to explore but wants to "Crouch" if its goal is to hide). This is naturally modeled as a hierarchical policy where the agent first samples it's objective and then samples a low-level action conditional on this objective. (2) You have an conditional low-level action space, e.g. perhaps your agent needs to specify x,y coordinates when taking a "PickupObject" action but doesn't need such coordinates when taking a "MoveAhead" action.

We also include native support for hierarchical policies with Categorical sub-policies.

Misc improvements 📚

We also include several smaller enhancements:

  • Early stopping criteria for non-distributed training - It can be useful to automatically stop training when some success criterion is met (e.g. training reward has saturated). This is now enabled (for non-distributed training) via the early_stopping_criteria parameter of the PipelineStage class.
  • Better error (and keyboard interrupt) handing - Depending on the complexity of a training task, AllenAct may start a large number of parallel processes. We are now more consistent about how we handle exit signals so that processs are less likely to remain alive after a kill signal is sent.

Backwards incompatible changes 💔

  • Several vision sensors have moved from allenact.base_abstractions.sensor to allenact.embodiedai.sensors.vision_sensors. This change improves consistency of class location.

v0.3.1

13 May 17:13
3570747
Compare
Choose a tag to compare

AllenAct 0.3.1 Release Notes

This patch release introduces several small bug fixes:

  • In refactoring the compute_cnn_output a function, a prior commit failed to remove all instances of a use_agents variable, this is fixed.
  • Visualization code has been improved to work more seamlessly with new version of AI2-THOR.

v0.3.0

04 May 23:06
33f2f73
Compare
Choose a tag to compare

AllenAct 0.3.0 Release Notes

This minor release brings:

  • Command line updates to experiment runs - often you might want to be able to specify certain experiment parameters from the command line (e.g. which gpus to use or the number of processes to train with). We have now enabled this functionality with the --config_kwargs flag. This flag can be used to pass parameters directly to the initializer of your ExperimentConfig class before training/evaluation enabling huge amounts of flexibility in how you want your experiment to run.
  • Improved logging - logs are now semantically colored to highlight "info", "warning", and "error" messages. This also includes a bug fix where failing to call init_logging before get_logger would result in print statements being hidden.
  • Less mysterious testing - using AllenAct for testing was previously somewhat mysterious/magical as we made several assumptions regarding how directories (+ checkpoint file names) were named. This has now been simplified, this simplification does introduce a minor backwards incompatible change so please see our documentation for how evaluation should now be run.

v0.2.3

26 Apr 17:38
7b4c0c5
Compare
Choose a tag to compare

AllenAct 0.2.3 Release Notes

This minor release brings:

  • Semantic / free-space mapping support - this includes new sensors (for building maps as agents traverse their environment) and an implementation of the Active Neural SLAM mapping module from Chaplot et al. (2020).
  • Bug fix in the RoboTHOR Object Navigation task where distances between points were sometimes reported incorrectly (this bug did not impact the Success or SPL metrics).

v0.2.2

07 Apr 18:25
5680f9b
Compare
Choose a tag to compare

AllenAct 0.2.2 Release Notes

This minor release brings:

  • Minor bug fixes including a crash occurring when attempting to use very large models.
  • Usability improvements when running ObjectNav and PointNav tasks in AI2-THOR, namely we now automatically detect X-displays when possible rather than them having to be manually defined.

v0.2.1

17 Feb 14:55
49297d4
Compare
Choose a tag to compare

AllenAct 0.2.1 Release Notes

This minor release brings:

  • Updates to the RoboTHOR ObjectNav baselines in preparation for the 2021 RoboTHOR ObjectNav Challenge.
  • Minor usability improvements (e.g. changing the default experiment path to be the directory from which training is run).

v0.2.0

10 Feb 18:46
Compare
Choose a tag to compare

AllenAct 0.2.0 Release Notes

In this release we add:

Speed improvements 🚀

Faster training in iTHOR/RoboTHOR: we can now hit more than 1200 FPS on a server with 8 GPUs. This is thanks to the new FifoServer interface to AI2-THOR and improved caching in AllenAct.

Pip installability 📥

AllenAct can now be installed via pip and our various environment plugins can be installed separately from the underlying framework. Check the new installation instructions. To make this possible we have renamed some modules:
-- Old core -> allenact.
-- Old plugins -> allenact_plugins.

Continuous and multi-dimensional action spaces 🤖

Does your agent need to take actions that are more complex than choosing from a discrete list? We now support continuous (and multi-dimensional) actions for which you can associate arbitrary probability distributions. No longer do you need to artificially discretize actions: for example, you could now allow your agent to specify 7 different continuous torques to be applied to its robotic arm at once. These features are exemplified in a new tutorial.

A new OpenAI Gym plugin / support 📦

We now support all Box2D tasks with continuous actions. See our new tutorial.

Stability and logging improvements ⚖️

We revamped the logging system improving reliability and consistency. We've also made numerous small improvements so that we generate better error messages and fail more gracefully.

Cumulative support 📈

Environments Tasks Algorithms
iTHOR, RoboTHOR, Habitat, MiniGrid, Gym PointNav, ObjectNav, MiniGrid tasks, Gym Box2D tasks A2C, PPO, DD-PPO, DAgger, Off-policy Imitation

v0.1.0 (first release)

01 Sep 21:06
62e33fd
Compare
Choose a tag to compare

AllenAct is a modular and flexible learning framework designed with a focus on the unique requirements of Embodied-AI research. It provides first-class support for a growing collection of embodied environments, tasks and algorithms, provides reproductions of state-of-the-art models, and includes extensive documentation, tutorials, start-up code, and pre-trained models.

In this first release we provide:

  • Support for several environments: We support different environments used for Embodied AI research such as AI2-THOR, Habitat and MiniGrid. We have made it easy to incorporate new environments.
  • Different input modalities: The framework supports a variety of input modalities such as RGB images, depth, language, and GPS readings.
  • Customizable training pipelines: The framework includes not only various training algorithms (A2C, PPO, DAgger, etc.) but also allows one to easily combine these algorithms in pipelines (e.g., imitation learning followed by reinforcement learning).

AllenAct currently supports the following environments, tasks, and algorithms. We are actively working on integrating recently developed models and frameworks. Moreover, in our documentation, we provide tutorials to demonstrating how to integrate the algorithms, tasks, and environments of your choice.

Environments Tasks Algorithms
iTHOR, RoboTHOR, Habitat, MiniGrid PointNav, ObjectNav, MiniGrid tasks A2C, PPO, DD-PPO, DAgger, Off-policy Imitation

Note that we allow for distributed training of all above algorithms.