Releases: allenai/allenact
v0.5.2
What's Changed
- Fixing clip requirement. by @Lucaweihs in #340
- Fix for memoryless agents by @jordis-ai2 in #342
- Valid on initial model weights by @jordis-ai2 in #344
- Inference agent fix, improvements when using NCCL backend, and other minor improvements. by @Lucaweihs in #345
- Merging main into callbacks and fixing merge conflict. by @Lucaweihs in #347
- Fixing callbacks PR comments and other misc improvements. by @Lucaweihs in #350
- Add Callback Support by @mattdeitke in #339
Full Changelog: v0.5.0...v0.5.2
v0.5.0
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
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 thePipelineStage
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
toallenact.embodiedai.sensors.vision_sensors
. This change improves consistency of class location.
v0.3.1
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 ause_agents
variable, this is fixed. - Visualization code has been improved to work more seamlessly with new version of AI2-THOR.
v0.3.0
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 yourExperimentConfig
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
beforeget_logger
would result inprint
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
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
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
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
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)
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.