Skip to content

Commit

Permalink
1. Fix README
Browse files Browse the repository at this point in the history
2. Separate out the core requirements to minimize package installation

PiperOrigin-RevId: 708825801
  • Loading branch information
xingyousong authored and copybara-github committed Dec 22, 2024
1 parent 1fcf2ea commit c0618ec
Show file tree
Hide file tree
Showing 6 changed files with 39 additions and 23 deletions.
14 changes: 9 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
# Iris: Synchronous and Distributed Blackbox Optimization at Scale

## Overview
Iris is a library for performing synchronous and distributed zeroth-order
optimization at scale. It is meant primarily to train large neural networks with
evolutionary methods, but can be applied to optimize any high dimensional
blackbox function.

## Associated Publications
* [SARA-RT: Scaling up Robotics Transformers with Self-Adaptive Robust Attention
](https://arxiv.org/abs/2312.01990) (ICRA 2024 - Best Robotic Manipulation Award)
* [Embodied AI with Two Arms: Zero-shot Learning, Safety and Modularity
](https://arxiv.org/abs/2404.03570) (IROS 2024 - Robocup Best Paper Award)
* [SARA-RT: Scaling up Robotics Transformers with Self-Adaptive Robust Attention](https://arxiv.org/abs/2312.01990) (ICRA 2024 - Best Robotic Manipulation Award)
* [Embodied AI with Two Arms: Zero-shot Learning, Safety and Modularity](https://arxiv.org/abs/2404.03570) (IROS 2024 - Robocup Best Paper Award)
* [Agile Catching with Whole-Body MPC and Blackbox Policy Learning](https://arxiv.org/abs/2306.08205) (L4DC 2023)
* [Discovering Adaptable Symbolic Algorithms from Scratch](https://arxiv.org/abs/2307.16890) (IROS 2023, Best Paper Finalist)
* [Visual-Locomotion: Learning to Walk on Complex Terrains with Vision](https://proceedings.mlr.press/v164/yu22a.html) (CoRL 2022)
Expand All @@ -16,6 +20,6 @@
* [Provably Robust Blackbox Optimization for Reinforcement Learning](https://arxiv.org/abs/1903.02993) (CoRL 2019)
* [Structured Evolution with Compact Architectures for Scalable Policy Optimization](https://arxiv.org/abs/1804.02395) (ICML 2018)
* [Optimizing Simulations with Noise-Tolerant Structured Exploration](https://arxiv.org/abs/1805.07831) (ICRA 2018)
* [On Blackbox Backpropagation and Jacobian Sensing](https://proceedings.neurips.cc/paper_files/paper/2017/file/9c8661befae6dbcd08304dbf4dcaf0db-Paper.pdf) (Neurips 2017)
* [On Blackbox Backpropagation and Jacobian Sensing](https://proceedings.neurips.cc/paper_files/paper/2017/file/9c8661befae6dbcd08304dbf4dcaf0db-Paper.pdf) (NeurIPS 2017)

**Disclaimer:** This is not an officially supported Google product.
3 changes: 3 additions & 0 deletions requirements-extras.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Extras for supporting all features of the project.
pyglove # For Pyglove evolutionary algorithms.
ribs # For PyRibs: https://pyribs.org/
14 changes: 14 additions & 0 deletions requirements-rl.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Packages required for Reinforcement Learning.

# Environment packages.
gym
tf-agents # NOTE: Requires tensorflow>=2.15.0 for TFP compatibility.

# Numerical packages.
jax # Use latest version.
jaxlib # Use latest version.
flax # Use latest version.
tensorflow # TODO(team): Resolve version conflicts.

# Configuration + Experimentation
gin-config>=0.5.0
1 change: 1 addition & 0 deletions requirements-test.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
pytest # Use the latest version to match github workflow.
18 changes: 0 additions & 18 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,27 +1,9 @@
# Standard packages.
typing # Version dependent on Python version.
pytest # Use the latest version to match github workflow.
absl-py>=1.0.0

# Numerical packages.
numpy>=1.21.5
jax # Use latest version.
jaxlib # Use latest version.
flax # Use latest version.
tensorflow # TODO(team): Resolve version conflicts.

# Distributed systems libraries.
# NOTE: Requires tensorflow~=2.8.0 to avoid proto issues.
dm-launchpad[tensorflow]
dm-reverb[tensorflow]

# Configuration + Experimentation
ml-collections>=0.1.1
gin-config>=0.5.0

# Reinforcement Learning
gym
tf-agents # NOTE: Requires tensorflow>=2.15.0 for TFP compatibility.

# Optimization packages
pyglove
12 changes: 12 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

"""Setup for pip package."""

import itertools
import setuptools


Expand All @@ -33,6 +34,16 @@ def _parse_requirements(requirements_txt_path: str) -> list[str]:
return [l for l in lines if (l and 'github.com' not in l)]


extras_require = {
'rl': _parse_requirements('requirements-rl.txt'),
'extras': _parse_requirements('requirements-extras.txt'),
'test': _parse_requirements('requirements-test.txt'),
}

extras_require['all'] = list(
itertools.chain.from_iterable(extras_require.values())
)

setuptools.setup(
name='google-iris',
version='0.0.1.alpha',
Expand All @@ -41,5 +52,6 @@ def _parse_requirements(requirements_txt_path: str) -> list[str]:
author_email='jaindeepali@google.com',
install_requires=_parse_requirements('requirements.txt'),
packages=setuptools.find_packages(),
extras_require=extras_require,
python_requires='>=3.10',
)

0 comments on commit c0618ec

Please sign in to comment.