From d8a081a185271cf9fa352f7ae2c93abdbef6858a Mon Sep 17 00:00:00 2001 From: Sven Mika Date: Sat, 30 May 2020 22:48:34 +0200 Subject: [PATCH] [RLlib] Unity3D integration (n Unity3D clients vs learning server). (#8590) --- .../rllib-training-inside-a-unity3d-env.png | Bin 0 -> 270887 bytes doc/source/rllib-env.rst | 41 ++-- doc/source/rllib-examples.rst | 21 +- rllib/BUILD | 41 ++-- rllib/agents/dqn/tests/test_dqn.py | 2 +- .../bandits/models/linear_regression.py | 3 +- rllib/env/base_env.py | 29 +-- rllib/env/external_env.py | 24 +- rllib/env/external_multi_agent_env.py | 7 +- rllib/env/multi_agent_env.py | 6 +- rllib/env/policy_client.py | 61 +++-- .../tests}/test_local_inference.sh | 8 +- .../tests}/test_remote_inference.sh | 8 +- rllib/env/unity3d_env.py | 232 ++++++++++++++++++ rllib/env/vector_env.py | 104 +++++--- rllib/evaluation/rollout_worker.py | 6 +- rllib/evaluation/sample_batch_builder.py | 12 +- rllib/evaluation/sampler.py | 35 ++- rllib/examples/attention_net.py | 2 +- rllib/examples/env/multi_agent.py | 12 +- rllib/examples/env/random_env.py | 12 +- rllib/examples/models/shared_weights_model.py | 25 +- rllib/examples/multi_agent_cartpole.py | 5 +- rllib/examples/serving/cartpole_client.py | 4 +- rllib/examples/serving/cartpole_server.py | 3 +- rllib/examples/serving/unity3d_client.py | 120 +++++++++ rllib/examples/serving/unity3d_server.py | 129 ++++++++++ rllib/examples/unity3d_env_local.py | 95 +++++++ rllib/policy/torch_policy.py | 2 +- rllib/tests/test_rollout_worker.py | 8 +- rllib/utils/policy_client.py | 4 +- 31 files changed, 870 insertions(+), 191 deletions(-) create mode 100644 doc/source/images/rllib-training-inside-a-unity3d-env.png rename rllib/{examples/serving => env/tests}/test_local_inference.sh (60%) rename rllib/{examples/serving => env/tests}/test_remote_inference.sh (60%) create mode 100644 rllib/env/unity3d_env.py create mode 100644 rllib/examples/serving/unity3d_client.py create mode 100755 rllib/examples/serving/unity3d_server.py create mode 100644 rllib/examples/unity3d_env_local.py diff --git a/doc/source/images/rllib-training-inside-a-unity3d-env.png b/doc/source/images/rllib-training-inside-a-unity3d-env.png new file mode 100644 index 0000000000000000000000000000000000000000..32d58422e48299fe139c2705e889915aff6c7393 GIT binary patch literal 270887 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 ~Z5%F$3w-va<`)9G{JP{t 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 B81VoA literal 0 HcmV?d00001 diff --git a/doc/source/rllib-env.rst b/doc/source/rllib-env.rst index 69a718795..10c1a77d5 100644 --- a/doc/source/rllib-env.rst +++ b/doc/source/rllib-env.rst @@ -36,7 +36,7 @@ You can pass either a string name or a Python class to specify an environment. B while True: print(trainer.train()) -You can also register a custom env creator function with a string name. This function must take a single ``env_config`` parameter and return an env instance: +You can also register a custom env creator function with a string name. This function must take a single ``env_config`` (dict) parameter and return an env instance: .. code-block:: python @@ -113,19 +113,20 @@ When using remote envs, you can control the batching level for inference with `` Multi-Agent and Hierarchical ---------------------------- -A multi-agent environment is one which has multiple acting entities per step, e.g., in a traffic simulation, there may be multiple "car" and "traffic light" agents in the environment. The model for multi-agent in RLlib as follows: (1) as a user you define the number of policies available up front, and (2) a function that maps agent ids to policy ids. This is summarized by the below figure: +A multi-agent environment is one which has multiple acting entities per step, e.g., in a traffic simulation, there may be multiple "car"- and "traffic light" agents in the environment. The model for multi-agent in RLlib is as follows: (1) as a user, you define the number of policies available up front, and (2) a function that maps agent ids to policy ids. This is summarized by the below figure: .. image:: multi-agent.svg -The environment itself must subclass the `MultiAgentEnv `__ interface, which can returns observations and rewards from multiple ready agents per step: +The environment itself must subclass the `MultiAgentEnv `__ interface, which can return observations and rewards from multiple ready agents per step: .. code-block:: python # Example: using a multi-agent env > env = MultiAgentTrafficEnv(num_cars=20, num_traffic_lights=5) - # Observations are a dict mapping agent names to their obs. Not all agents - # may be present in the dict in each time step. + # Observations are a dict mapping agent names to their obs. Only those + # agents' names that require actions in the next call to `step()` will + # be present in the returned observation dict. > print(env.reset()) { "car_1": [[...]], @@ -133,14 +134,15 @@ The environment itself must subclass the `MultiAgentEnv new_obs, rewards, dones, infos = env.step(actions={"car_1": ..., "car_2": ...}) + # In the following call to `step`, actions should be provided for each + # agent that returned an observation before: + > new_obs, rewards, dones, infos = env.step(actions={"car_1": ..., "car_2": ..., "traffic_light_1": ...}) # Similarly, new_obs, rewards, dones, etc. also become dicts > print(rewards) {"car_1": 3, "car_2": -1, "traffic_light_1": 0} - # Individual agents can early exit; env is done when "__all__" = True + # Individual agents can early exit; The entire episode is done when "__all__" = True > print(dones) {"car_2": True, "__all__": False} @@ -305,9 +307,14 @@ See this file for a runnable example: `hierarchical_training.py `__ class for this purpose. Unlike other envs, ExternalEnv has its own thread of control. At any point, agents on that thread can query the current policy for decisions via ``self.get_action()`` and reports rewards via ``self.log_returns()``. This can be done for multiple concurrent episodes as well. +.. figure:: images/rllib-training-inside-a-unity3d-env.png + :scale: 75 % + + A Unity3D soccer game being learnt by RLlib via the ExternalEnv API. + +RLlib provides the `ExternalEnv `__ class for this purpose. Unlike other envs, ExternalEnv has its own thread of control. At any point, agents on that thread can query the current policy for decisions via ``self.get_action()`` and reports rewards, done-dicts, and infos via ``self.log_returns()``. This can be done for multiple concurrent episodes as well. Logging off-policy actions ~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -330,8 +337,8 @@ You can configure any Trainer to launch a policy server with the following confi trainer_config = { # An environment class is still required, but it doesn't need to be runnable. # You only need to define its action and observation space attributes. + # See examples/serving/unity3d_server.py for an example using a RandomMultiAgentEnv stub. "env": YOUR_ENV_STUB, - # Use the policy server to generate experiences. "input": ( lambda ioctx: PolicyServerInput(ioctx, SERVER_ADDRESS, SERVER_PORT) @@ -360,7 +367,13 @@ To understand the difference between standard envs, external envs, and connectin .. https://docs.google.com/drawings/d/1hJvT9bVGHVrGTbnCZK29BYQIcYNRbZ4Dr6FOPMJDjUs/edit .. image:: rllib-external.svg -Try it yourself by launching a `cartpole_server.py `__, and connecting to it with any number of clients (`cartpole_client.py `__): +Try it yourself by launching either a +`simple CartPole server `__ (see below), and connecting it to any number of clients +(`cartpole_client.py `__) or +run a `Unity3D learning sever `__ +against distributed Unity game engines in the cloud. + +CartPole Example: .. code-block:: bash @@ -391,9 +404,9 @@ Try it yourself by launching a `cartpole_server.py `__ class. This low-level API models multiple agents executing asynchronously in multiple environments. A call to ``BaseEnv:poll()`` returns observations from ready agents keyed by their environment and agent ids, and actions for those agents are sent back via ``BaseEnv:send_actions()``. BaseEnv is used to implement all the other env types in RLlib, so it offers a superset of their functionality. For example, ``BaseEnv`` is used to implement dynamic batching of observations for inference over `multiple simulator actors `__. +For more complex / high-performance environment integrations, you can instead extend the low-level `BaseEnv `__ class. This low-level API models multiple agents executing asynchronously in multiple environments. A call to ``BaseEnv:poll()`` returns observations from ready agents keyed by 1) their environment, then 2) agent ids. Actions for those agents are sent back via ``BaseEnv:send_actions()``. BaseEnv is used to implement all the other env types in RLlib, so it offers a superset of their functionality. For example, ``BaseEnv`` is used to implement dynamic batching of observations for inference over `multiple simulator actors `__. diff --git a/doc/source/rllib-examples.rst b/doc/source/rllib-examples.rst index 915448f71..487bc8be4 100644 --- a/doc/source/rllib-examples.rst +++ b/doc/source/rllib-examples.rst @@ -36,12 +36,18 @@ Training Workflows Custom Envs and Models ---------------------- +- `Local Unity3D multi-agent environment example `__: + Example of how to setup an RLlib Trainer against a locally running Unity3D editor instance to + learn any Unity3D game (including support for multi-agent). + Use this example to try things out and watch the game and the learning progress live in the editor. + Providing a compiled game, this example could also run in distributed fashion with `num_workers > 0`. + For a more heavy-weight, distributed, cloud-based example, see `Unity3D client/server`_ below. - `Registering a custom env and model `__: Example of defining and registering a gym env and model for use with RLlib. - `Custom Keras model `__: Example of using a custom Keras model. -- `Custom Keras RNN model `__: - Example of using a custom Keras RNN model. +- `Custom Keras RNN model `__: + Example of using a custom Keras- or PyTorch RNN model. - `Registering a custom model with supervised loss `__: Example of defining and registering a custom model with a supervised loss. - `Subprocess environment `__: @@ -55,7 +61,16 @@ Custom Envs and Models Serving and Offline ------------------- -- `CartPole server `__: + +.. _Unity3D client/server: + +- `Unity3D client/server `__: + Example of how to setup n distributed Unity3D (compiled) games in the cloud that function as data collecting + clients against a central RLlib Policy server learning how to play the game. + The n distributed clients could themselves be servers for external/human players and allow for control + being fully in the hands of the Unity entities instead of RLlib. + Note: Uses Unity's MLAgents SDK (>=1.0) and supports all provided MLAgents example games and multi-agent setups. +- `CartPole client/server `__: Example of online serving of predictions for a simple CartPole policy. - `Saving experiences `__: Example of how to externally generate experience batches in RLlib-compatible format. diff --git a/rllib/BUILD b/rllib/BUILD index 54d0deb85..11d91e101 100644 --- a/rllib/BUILD +++ b/rllib/BUILD @@ -983,6 +983,29 @@ py_test( ] ) +# -------------------------------------------------------------------- +# Env tests +# rllib/env/ +# +# Tag: env +# -------------------------------------------------------------------- + +sh_test( + name = "env/tests/test_local_inference", + tags = ["env"], + size = "medium", + srcs = ["env/tests/test_local_inference.sh"], + data = glob(["examples/serving/*.py"]), +) + +sh_test( + name = "env/tests/test_remote_inference", + tags = ["env"], + size = "medium", + srcs = ["env/tests/test_remote_inference.sh"], + data = glob(["examples/serving/*.py"]), +) + # -------------------------------------------------------------------- # Models and Distributions # rllib/models/ @@ -1692,7 +1715,7 @@ py_test( name = "examples/multi_agent_cartpole_torch", main = "examples/multi_agent_cartpole.py", tags = ["examples", "examples_M"], - size = "small", + size = "medium", srcs = ["examples/multi_agent_cartpole.py"], args = ["--as-test", "--torch", "--stop-reward=70.0", "--num-cpus=4"] ) @@ -1822,22 +1845,6 @@ py_test( args = ["--as-test", "--torch"], ) -sh_test( - name = "examples/serving/test_local_inference", - tags = ["examples", "examples_S", "exclusive"], - size = "medium", - srcs = ["examples/serving/test_local_inference.sh"], - data = glob(["examples/serving/*.py"]), -) - -sh_test( - name = "examples/serving/test_remote_inference", - tags = ["examples", "examples_S", "exclusive"], - size = "medium", - srcs = ["examples/serving/test_remote_inference.sh"], - data = glob(["examples/serving/*.py"]), -) - py_test( name = "examples/two_trainer_workflow_tf", main = "examples/two_trainer_workflow.py", diff --git a/rllib/agents/dqn/tests/test_dqn.py b/rllib/agents/dqn/tests/test_dqn.py index 55dea09cd..f76e016d2 100644 --- a/rllib/agents/dqn/tests/test_dqn.py +++ b/rllib/agents/dqn/tests/test_dqn.py @@ -26,7 +26,7 @@ class TestDQN(unittest.TestCase): num_iterations = 1 for fw in framework_iterator(config): - # double-dueling DQN. + # Double-dueling DQN. plain_config = config.copy() trainer = dqn.DQNTrainer(config=plain_config, env="CartPole-v0") for i in range(num_iterations): diff --git a/rllib/contrib/bandits/models/linear_regression.py b/rllib/contrib/bandits/models/linear_regression.py index 64c1817e2..568fcd56d 100644 --- a/rllib/contrib/bandits/models/linear_regression.py +++ b/rllib/contrib/bandits/models/linear_regression.py @@ -68,7 +68,8 @@ class OnlineLinearRegression(nn.Module): return batch_dots.sqrt() def forward(self, x, sample_theta=False): - """ Predict the scores on input batch using the underlying linear model + """ Predict scores on input batch using the underlying linear model. + Args: x (torch.Tensor): Input feature tensor of shape (batch_size, feature_dim) diff --git a/rllib/env/base_env.py b/rllib/env/base_env.py index 29c2e3a9c..4c41986c9 100644 --- a/rllib/env/base_env.py +++ b/rllib/env/base_env.py @@ -1,7 +1,7 @@ from ray.rllib.env.external_env import ExternalEnv from ray.rllib.env.external_multi_agent_env import ExternalMultiAgentEnv -from ray.rllib.env.vector_env import VectorEnv from ray.rllib.env.multi_agent_env import MultiAgentEnv +from ray.rllib.env.vector_env import VectorEnv from ray.rllib.utils.annotations import override, PublicAPI ASYNC_RESET_RETURN = "async_reset_return" @@ -99,16 +99,13 @@ class BaseEnv: make_env=make_env, existing_envs=[env], num_envs=num_envs) - elif isinstance(env, ExternalMultiAgentEnv): - if num_envs != 1: - raise ValueError( - "ExternalMultiAgentEnv does not currently support " - "num_envs > 1.") - env = _ExternalEnvToBaseEnv(env, multiagent=True) elif isinstance(env, ExternalEnv): if num_envs != 1: raise ValueError( - "ExternalEnv does not currently support num_envs > 1.") + "External(MultiAgent)Env does not currently support " + "num_envs > 1. One way of solving this would be to " + "treat your Env as a MultiAgentEnv hosting only one " + "type of agent but with several copies.") env = _ExternalEnvToBaseEnv(env) elif isinstance(env, VectorEnv): env = _VectorEnvToBaseEnv(env) @@ -166,12 +163,16 @@ class BaseEnv: raise NotImplementedError @PublicAPI - def try_reset(self, env_id): - """Attempt to reset the env with the given id. + def try_reset(self, env_id=None): + """Attempt to reset the sub-env with the given id or all sub-envs. If the environment does not support synchronous reset, None can be returned here. + Args: + env_id (Optional[int]): The sub-env ID if applicable. If None, + reset the entire Env (i.e. all sub-envs). + Returns: obs (dict|None): Resetted observation or None if not supported. """ @@ -206,10 +207,10 @@ def _with_dummy_agent_id(env_id_to_values, dummy_id=_DUMMY_AGENT_ID): class _ExternalEnvToBaseEnv(BaseEnv): """Internal adapter of ExternalEnv to BaseEnv.""" - def __init__(self, external_env, preprocessor=None, multiagent=False): + def __init__(self, external_env, preprocessor=None): self.external_env = external_env self.prep = preprocessor - self.multiagent = multiagent + self.multiagent = issubclass(type(external_env), ExternalMultiAgentEnv) self.action_space = external_env.action_space if preprocessor: self.observation_space = preprocessor.observation_space @@ -262,8 +263,8 @@ class _ExternalEnvToBaseEnv(BaseEnv): if "off_policy_action" in data: off_policy_actions[eid] = data["off_policy_action"] if self.multiagent: - # ensure a consistent set of keys - # rely on all_obs having all possible keys for now + # Ensure a consistent set of keys + # rely on all_obs having all possible keys for now. for eid, eid_dict in all_obs.items(): for agent_id in eid_dict.keys(): diff --git a/rllib/env/external_env.py b/rllib/env/external_env.py index 6f2c36928..092b32978 100644 --- a/rllib/env/external_env.py +++ b/rllib/env/external_env.py @@ -32,16 +32,14 @@ class ExternalEnv(threading.Thread): >>> register_env("my_env", lambda config: YourExternalEnv(config)) >>> trainer = DQNTrainer(env="my_env") >>> while True: - print(trainer.train()) + >>> print(trainer.train()) """ @PublicAPI def __init__(self, action_space, observation_space, max_concurrent=100): - """Initialize an external env. + """Initializes an external env. - ExternalEnv subclasses must call this during their __init__. - - Arguments: + Args: action_space (gym.Space): Action space of the env. observation_space (gym.Space): Observation space of the env. max_concurrent (int): Max number of active episodes to allow at @@ -49,6 +47,7 @@ class ExternalEnv(threading.Thread): """ threading.Thread.__init__(self) + self.daemon = True self.action_space = action_space self.observation_space = observation_space @@ -78,9 +77,9 @@ class ExternalEnv(threading.Thread): def start_episode(self, episode_id=None, training_enabled=True): """Record the start of an episode. - Arguments: - episode_id (str): Unique string id for the episode or None for - it to be auto-assigned. + Args: + episode_id (Optional[str]): Unique string id for the episode or + None for it to be auto-assigned and returned. training_enabled (bool): Whether to use experiences for this episode to improve the policy. @@ -108,7 +107,7 @@ class ExternalEnv(threading.Thread): def get_action(self, episode_id, observation): """Record an observation and get the on-policy action. - Arguments: + Args: episode_id (str): Episode id returned from start_episode(). observation (obj): Current environment observation. @@ -123,7 +122,7 @@ class ExternalEnv(threading.Thread): def log_action(self, episode_id, observation, action): """Record an observation and (off-policy) action taken. - Arguments: + Args: episode_id (str): Episode id returned from start_episode(). observation (obj): Current environment observation. action (obj): Action for the observation. @@ -140,7 +139,7 @@ class ExternalEnv(threading.Thread): episode. Rewards accumulate until the next action. If no reward is logged before the next action, a reward of 0.0 is assumed. - Arguments: + Args: episode_id (str): Episode id returned from start_episode(). reward (float): Reward from the environment. info (dict): Optional info dict. @@ -156,7 +155,7 @@ class ExternalEnv(threading.Thread): def end_episode(self, episode_id, observation): """Record the end of an episode. - Arguments: + Args: episode_id (str): Episode id returned from start_episode(). observation (obj): Current environment observation. """ @@ -267,6 +266,7 @@ class _ExternalEnvEpisode: self.cur_reward = 0.0 if not self.training_enabled: item["info"]["training_enabled"] = False + with self.results_avail_condition: self.data_queue.put_nowait(item) self.results_avail_condition.notify() diff --git a/rllib/env/external_multi_agent_env.py b/rllib/env/external_multi_agent_env.py index 7604aca42..a7d930461 100644 --- a/rllib/env/external_multi_agent_env.py +++ b/rllib/env/external_multi_agent_env.py @@ -14,7 +14,7 @@ class ExternalMultiAgentEnv(ExternalEnv): ExternalMultiAgentEnv subclasses must call this during their __init__. - Arguments: + Args: action_space (gym.Space): Action space of the env. observation_space (gym.Space): Observation space of the env. max_concurrent (int): Max number of active episodes to allow at @@ -135,10 +135,7 @@ class ExternalMultiAgentEnv(ExternalEnv): if multiagent_done_dict: for agent, done in multiagent_done_dict.items(): - if agent in episode.cur_done_dict: - episode.cur_done_dict[agent] = done - else: - episode.cur_done_dict[agent] = done + episode.cur_done_dict[agent] = done if info_dict: episode.cur_info_dict = info_dict or {} diff --git a/rllib/env/multi_agent_env.py b/rllib/env/multi_agent_env.py index 3a9fd2ef7..214ea754d 100644 --- a/rllib/env/multi_agent_env.py +++ b/rllib/env/multi_agent_env.py @@ -21,9 +21,9 @@ class MultiAgentEnv: "traffic_light_1": [0, 3, 5, 1], } >>> obs, rewards, dones, infos = env.step( - action_dict={ - "car_0": 1, "car_1": 0, "traffic_light_1": 2, - }) + ... action_dict={ + ... "car_0": 1, "car_1": 0, "traffic_light_1": 2, + ... }) >>> print(rewards) { "car_0": 3, diff --git a/rllib/env/policy_client.py b/rllib/env/policy_client.py index 6249c3f93..958775360 100644 --- a/rllib/env/policy_client.py +++ b/rllib/env/policy_client.py @@ -11,6 +11,7 @@ import time import ray.cloudpickle as pickle from ray.rllib.evaluation.rollout_worker import RolloutWorker from ray.rllib.env import ExternalEnv, MultiAgentEnv, ExternalMultiAgentEnv +from ray.rllib.policy.sample_batch import MultiAgentBatch from ray.rllib.utils.annotations import PublicAPI logger = logging.getLogger(__name__) @@ -54,6 +55,7 @@ class PolicyClient: or None for manual control via client. """ self.address = address + self.env = None if inference_mode == "local": self.local = True self._setup_local_rollout_worker(update_interval) @@ -65,11 +67,11 @@ class PolicyClient: @PublicAPI def start_episode(self, episode_id=None, training_enabled=True): - """Record the start of an episode. + """Record the start of one or more episode(s). - Arguments: - episode_id (str): Unique string id for the episode or None for - it to be auto-assigned. + Args: + episode_id (Optional[str]): Unique string id for the episode or + None for it to be auto-assigned. training_enabled (bool): Whether to use experiences for this episode to improve the policy. @@ -101,13 +103,20 @@ class PolicyClient: if self.local: self._update_local_policy() - return self.env.get_action(episode_id, observation) - - return self._send({ - "command": PolicyClient.GET_ACTION, - "observation": observation, - "episode_id": episode_id, - })["action"] + if isinstance(episode_id, (list, tuple)): + actions = { + eid: self.env.get_action(eid, observation[eid]) + for eid in episode_id + } + return actions + else: + return self.env.get_action(episode_id, observation) + else: + return self._send({ + "command": PolicyClient.GET_ACTION, + "observation": observation, + "episode_id": episode_id, + })["action"] @PublicAPI def log_action(self, episode_id, observation, action): @@ -151,11 +160,11 @@ class PolicyClient: if self.local: self._update_local_policy() - if multiagent_done_dict: + if multiagent_done_dict is not None: + assert isinstance(reward, dict) return self.env.log_returns(episode_id, reward, info, multiagent_done_dict) - else: - return self.env.log_returns(episode_id, reward, info) + return self.env.log_returns(episode_id, reward, info) self._send({ "command": PolicyClient.LOG_RETURNS, @@ -207,7 +216,6 @@ class PolicyClient: kwargs = self._send({ "command": PolicyClient.GET_WORKER_ARGS, })["worker_args"] - (self.rollout_worker, self.inference_thread) = create_embedded_rollout_worker( kwargs, self._send) @@ -245,8 +253,14 @@ class _LocalInferenceThread(threading.Thread): logger.info("Generating new batch of experiences.") samples = self.rollout_worker.sample() metrics = self.rollout_worker.get_metrics() - logger.info("Sending batch of {} steps back to server.".format( - samples.count)) + if isinstance(samples, MultiAgentBatch): + logger.info( + "Sending batch of {} env steps ({} agent steps) to " + "server.".format(samples.count, samples.total())) + else: + logger.info( + "Sending batch of {} steps back to server.".format( + samples.count)) self.send_fn({ "command": PolicyClient.REPORT_SAMPLES, "samples": samples, @@ -265,11 +279,11 @@ def auto_wrap_external(real_env_creator): def wrapped_creator(env_config): real_env = real_env_creator(env_config) - if not (isinstance(real_env, ExternalEnv) - or isinstance(real_env, ExternalMultiAgentEnv)): + if not isinstance(real_env, (ExternalEnv, ExternalMultiAgentEnv)): logger.info( - "The env you specified is not a type of ExternalEnv. " - "Attempting to convert it automatically to ExternalEnv.") + "The env you specified is not a supported (sub-)type of " + "ExternalEnv. Attempting to convert it automatically to " + "ExternalEnv.") if isinstance(real_env, MultiAgentEnv): external_cls = ExternalMultiAgentEnv @@ -278,8 +292,9 @@ def auto_wrap_external(real_env_creator): class ExternalEnvWrapper(external_cls): def __init__(self, real_env): - super().__init__(real_env.action_space, - real_env.observation_space) + super().__init__( + observation_space=real_env.observation_space, + action_space=real_env.action_space) def run(self): # Since we are calling methods on this class in the diff --git a/rllib/examples/serving/test_local_inference.sh b/rllib/env/tests/test_local_inference.sh similarity index 60% rename from rllib/examples/serving/test_local_inference.sh rename to rllib/env/tests/test_local_inference.sh index 9d4c98cfc..7544d0cfb 100755 --- a/rllib/examples/serving/test_local_inference.sh +++ b/rllib/env/tests/test_local_inference.sh @@ -4,8 +4,8 @@ rm -f last_checkpoint.out pkill -f cartpole_server.py sleep 1 -if [ -f cartpole_server.py ]; then - basedir="." +if [ -f test_local_inference.sh ]; then + basedir="../../examples/serving" else basedir="rllib/examples/serving" # In bazel. fi @@ -14,10 +14,10 @@ fi pid=$! echo "Waiting for server to start" -while ! curl localhost:9900; do +while ! curl localhost:9900; do sleep 1 done sleep 2 -python $basedir/cartpole_client.py --stop-at-reward=100 --inference-mode=local +python $basedir/cartpole_client.py --stop-reward=150 --inference-mode=local kill $pid diff --git a/rllib/examples/serving/test_remote_inference.sh b/rllib/env/tests/test_remote_inference.sh similarity index 60% rename from rllib/examples/serving/test_remote_inference.sh rename to rllib/env/tests/test_remote_inference.sh index 925c3887e..88dce1a32 100755 --- a/rllib/examples/serving/test_remote_inference.sh +++ b/rllib/env/tests/test_remote_inference.sh @@ -4,8 +4,8 @@ rm -f last_checkpoint.out pkill -f cartpole_server.py sleep 1 -if [ -f cartpole_server.py ]; then - basedir="." +if [ -f test_local_inference.sh ]; then + basedir="../../examples/serving" else basedir="rllib/examples/serving" # In bazel. fi @@ -14,11 +14,11 @@ fi pid=$! echo "Waiting for server to start" -while ! curl localhost:9900; do +while ! curl localhost:9900; do sleep 1 done sleep 2 -python $basedir/cartpole_client.py --stop-at-reward=100 --inference-mode=remote +python $basedir/cartpole_client.py --stop-reward=150 --inference-mode=remote kill $pid diff --git a/rllib/env/unity3d_env.py b/rllib/env/unity3d_env.py new file mode 100644 index 000000000..c66a6c14c --- /dev/null +++ b/rllib/env/unity3d_env.py @@ -0,0 +1,232 @@ +from gym.spaces import Box, MultiDiscrete, Tuple +import logging +import mlagents_envs +from mlagents_envs.environment import UnityEnvironment +import numpy as np + +from ray.rllib.env.multi_agent_env import MultiAgentEnv +from ray.rllib.utils.annotations import override + +logger = logging.getLogger(__name__) + + +class Unity3DEnv(MultiAgentEnv): + """A MultiAgentEnv representing a single Unity3D game instance. + + For an example on how to use this class inside a Unity game client, which + connects to an RLlib Policy server, see: + `rllib/examples/serving/unity3d_[client|server].py` + + Supports all Unity3D (MLAgents) examples, multi- or single-agent and + gets converted automatically into an ExternalMultiAgentEnv, when used + inside an RLlib PolicyClient for cloud/distributed training of Unity games. + """ + + def __init__(self, + file_name=None, + worker_id=0, + base_port=5004, + seed=0, + no_graphics=False, + timeout_wait=60, + episode_horizon=1000): + """Initializes a Unity3DEnv object. + + Args: + file_name (Optional[str]): Name of the Unity game binary. + If None, will assume a locally running Unity3D editor + to be used, instead. + worker_id (int): Number to add to `base_port`. Used when more than + one Unity3DEnv (games) are running on the same machine. This + will be determined automatically, if possible, so a value + of 0 should always suffice here. + base_port (int): Port number to connect to Unity environment. + `worker_id` increments on top of this. + seed (int): A random seed value to use for the Unity3D game. + no_graphics (bool): Whether to run the Unity3D simulator in + no-graphics mode. Default: False. + timeout_wait (int): Time (in seconds) to wait for connection from + the Unity3D instance. + episode_horizon (int): A hard horizon to abide to. After at most + this many steps (per-agent episode `step()` calls), the + Unity3D game is reset and will start again (finishing the + multi-agent episode that the game represents). + Note: The game itself may contain its own episode length + limits, which are always obeyed (on top of this value here). + """ + + super().__init__() + + if file_name is None: + print( + "No game binary provided, will use a running Unity editor " + "instead.\nMake sure you are pressing the Play (|>) button in " + "your editor to start.") + + # Try connecting to the Unity3D game instance. If a port + while True: + self.worker_id = worker_id + try: + self.unity_env = UnityEnvironment( + file_name=file_name, + worker_id=worker_id, + base_port=base_port, + seed=seed, + no_graphics=no_graphics, + timeout_wait=timeout_wait, + ) + except mlagents_envs.exception.UnityWorkerInUseException as e: + worker_id += 1 + # Hard limit. + if worker_id > 100: + raise e + else: + break + + # Reset entire env every this number of step calls. + self.episode_horizon = episode_horizon + # Keep track of how many times we have called `step` so far. + self.episode_timesteps = 0 + + @override(MultiAgentEnv) + def step(self, action_dict): + """Performs one multi-agent step through the game. + + Args: + action_dict (dict): Multi-agent action dict with: + keys=agent identifier consisting of + [MLagents behavior name, e.g. "Goalie?team=1"] + "_" + + [Agent index, a unique MLAgent-assigned index per single + agent] + + Returns: + tuple: + obs: Multi-agent observation dict. + Only those observations for which to get new actions are + returned. + rewards: Rewards dict matching `obs`. + dones: Done dict with only an __all__ multi-agent entry in it. + __all__=True, if episode is done for all agents. + infos: An (empty) info dict. + """ + + # Set only the required actions (from the DecisionSteps) in Unity3D. + all_agents = [] + for behavior_name in self.unity_env.get_behavior_names(): + for agent_id in self.unity_env.get_steps(behavior_name)[ + 0].agent_id_to_index.keys(): + key = behavior_name + "_{}".format(agent_id) + all_agents.append(key) + self.unity_env.set_action_for_agent(behavior_name, agent_id, + action_dict[key]) + # Do the step. + self.unity_env.step() + + obs, rewards, dones, infos = self._get_step_results() + + # Global horizon reached? -> Return __all__ done=True, so user + # can reset. Set all agents' individual `done` to True as well. + self.episode_timesteps += 1 + if self.episode_timesteps > self.episode_horizon: + return obs, rewards, dict({ + "__all__": True + }, **{agent_id: True + for agent_id in all_agents}), infos + + return obs, rewards, dones, infos + + @override(MultiAgentEnv) + def reset(self): + """Resets the entire Unity3D scene (a single multi-agent episode).""" + self.episode_timesteps = 0 + self.unity_env.reset() + obs, _, _, _ = self._get_step_results() + return obs + + def _get_step_results(self): + """Collects those agents' obs/rewards that have to act in next `step`. + + Returns: + Tuple: + obs: Multi-agent observation dict. + Only those observations for which to get new actions are + returned. + rewards: Rewards dict matching `obs`. + dones: Done dict with only an __all__ multi-agent entry in it. + __all__=True, if episode is done for all agents. + infos: An (empty) info dict. + """ + obs = {} + rewards = {} + infos = {} + for behavior_name in self.unity_env.get_behavior_names(): + decision_steps, terminal_steps = self.unity_env.get_steps( + behavior_name) + # Important: Only update those sub-envs that are currently + # available within _env_state. + # Loop through all envs ("agents") and fill in, whatever + # information we have. + for agent_id, idx in decision_steps.agent_id_to_index.items(): + key = behavior_name + "_{}".format(agent_id) + os = tuple(o[idx] for o in decision_steps.obs) + os = os[0] if len(os) == 1 else os + obs[key] = os + rewards[key] = decision_steps.reward[idx] # rewards vector + for agent_id, idx in terminal_steps.agent_id_to_index.items(): + key = behavior_name + "_{}".format(agent_id) + # Only overwrite rewards (last reward in episode), b/c obs + # here is the last obs (which doesn't matter anyways). + # Unless key does not exist in obs. + if key not in obs: + os = tuple(o[idx] for o in terminal_steps.obs) + obs[key] = os = os[0] if len(os) == 1 else os + rewards[key] = terminal_steps.reward[idx] # rewards vector + + # Only use dones if all agents are done, then we should do a reset. + return obs, rewards, {"__all__": False}, infos + + @staticmethod + def get_policy_configs_for_game(game_name): + + # The RLlib server must know about the Spaces that the Client will be + # using inside Unity3D, up-front. + obs_spaces = { + # SoccerStrikersVsGoalie. + "Striker": Tuple([ + Box(float("-inf"), float("inf"), (231, )), + Box(float("-inf"), float("inf"), (63, )), + ]), + "Goalie": Box(float("-inf"), float("inf"), (738, )), + # 3DBall. + "Agent": Box(float("-inf"), float("inf"), (8, )), + } + action_spaces = { + # SoccerStrikersVsGoalie. + "Striker": MultiDiscrete([3, 3, 3]), + "Goalie": MultiDiscrete([3, 3, 3]), + # 3DBall. + "Agent": Box(float("-inf"), float("inf"), (2, ), dtype=np.float32), + } + + # Policies (Unity: "behaviors") and agent-to-policy mapping fns. + if game_name == "SoccerStrikersVsGoalie": + policies = { + "Striker": (None, obs_spaces["Striker"], + action_spaces["Striker"], {}), + "Goalie": (None, obs_spaces["Goalie"], action_spaces["Goalie"], + {}), + } + + def policy_mapping_fn(agent_id): + return "Striker" if "Striker" in agent_id else "Goalie" + + else: # 3DBall + policies = { + "Agent": (None, obs_spaces["Agent"], action_spaces["Agent"], + {}) + } + + def policy_mapping_fn(agent_id): + return "Agent" + + return policies, policy_mapping_fn diff --git a/rllib/env/vector_env.py b/rllib/env/vector_env.py index db2292128..d8da1ac6d 100644 --- a/rllib/env/vector_env.py +++ b/rllib/env/vector_env.py @@ -8,31 +8,43 @@ logger = logging.getLogger(__name__) @PublicAPI class VectorEnv: - """An environment that supports batch evaluation. - - Subclasses must define the following attributes: - - Attributes: - action_space (gym.Space): Action space of individual envs. - observation_space (gym.Space): Observation space of individual envs. - num_envs (int): Number of envs in this vector env. + """An environment that supports batch evaluation using clones of sub-envs. """ + def __init__(self, observation_space, action_space, num_envs): + """Initializes a VectorEnv object. + + Args: + observation_space (Space): The observation Space of a single + sub-env. + action_space (Space): The action Space of a single sub-env. + num_envs (int): The number of clones to make of the given sub-env. + """ + self.observation_space = observation_space + self.action_space = action_space + self.num_envs = num_envs + @staticmethod def wrap(make_env=None, existing_envs=None, num_envs=1, action_space=None, - observation_space=None): - return _VectorizedGymEnv(make_env, existing_envs or [], num_envs, - action_space, observation_space) + observation_space=None, + env_config=None): + return _VectorizedGymEnv( + make_env=make_env, + existing_envs=existing_envs or [], + num_envs=num_envs, + observation_space=observation_space, + action_space=action_space, + env_config=env_config) @PublicAPI def vector_reset(self): - """Resets all environments. + """Resets all sub-environments. Returns: - obs (list): Vector of observations from each environment. + obs (List[any]): List of observations from each environment. """ raise NotImplementedError @@ -41,55 +53,73 @@ class VectorEnv: """Resets a single environment. Returns: - obs (obj): Observations from the resetted environment. + obs (obj): Observations from the reset sub environment. """ raise NotImplementedError @PublicAPI def vector_step(self, actions): - """Vectorized step. + """Performs a vectorized step on all sub environments using `actions`. Arguments: - actions (list): Actions for each env. + actions (List[any]): List of actions (one for each sub-env). Returns: - obs (list): New observations for each env. - rewards (list): Reward values for each env. - dones (list): Done values for each env. - infos (list): Info values for each env. + obs (List[any]): New observations for each sub-env. + rewards (List[any]): Reward values for each sub-env. + dones (List[any]): Done values for each sub-env. + infos (List[any]): Info values for each sub-env. """ raise NotImplementedError @PublicAPI def get_unwrapped(self): - """Returns the underlying env instances.""" + """Returns the underlying sub environments. + + Returns: + List[Env]: List of all underlying sub environments. + """ raise NotImplementedError class _VectorizedGymEnv(VectorEnv): - """Internal wrapper for gym envs to implement VectorEnv. - - Arguments: - make_env (func|None): Factory that produces a new gym env. Must be - defined if the number of existing envs is less than num_envs. - existing_envs (list): List of existing gym envs. - num_envs (int): Desired num gym envs to keep total. + """Internal wrapper to translate any gym envs into a VectorEnv object. """ def __init__(self, - make_env, - existing_envs, - num_envs, + make_env=None, + existing_envs=None, + num_envs=1, + *, + observation_space=None, action_space=None, - observation_space=None): + env_config=None): + """Initializes a _VectorizedGymEnv object. + + Args: + make_env (Optional[callable]): Factory that produces a new gym env + taking a single `config` dict arg. Must be defined if the + number of `existing_envs` is less than `num_envs`. + existing_envs (Optional[List[Env]]): Optional list of already + instantiated sub environments. + num_envs (int): Total number of sub environments in this VectorEnv. + action_space (Optional[Space]): The action space. If None, use + existing_envs[0]'s action space. + observation_space (Optional[Space]): The observation space. + If None, use existing_envs[0]'s action space. + env_config (Optional[dict]): Additional sub env config to pass to + make_env as first arg. + """ self.make_env = make_env self.envs = existing_envs - self.num_envs = num_envs - while len(self.envs) < self.num_envs: + while len(self.envs) < num_envs: self.envs.append(self.make_env(len(self.envs))) - self.action_space = action_space or self.envs[0].action_space - self.observation_space = observation_space or \ - self.envs[0].observation_space + + super().__init__( + observation_space=observation_space + or self.envs[0].observation_space, + action_space=action_space or self.envs[0].action_space, + num_envs=num_envs) @override(VectorEnv) def vector_reset(self): diff --git a/rllib/evaluation/rollout_worker.py b/rllib/evaluation/rollout_worker.py index 6a2bdc248..30f7bb29d 100644 --- a/rllib/evaluation/rollout_worker.py +++ b/rllib/evaluation/rollout_worker.py @@ -303,11 +303,11 @@ class RolloutWorker(ParallelIteratorWorker): self.fake_sampler = fake_sampler self.env = _validate_env(env_creator(env_context)) - if isinstance(self.env, MultiAgentEnv) or \ - isinstance(self.env, BaseEnv): + if isinstance(self.env, (BaseEnv, MultiAgentEnv)): def wrap(env): return env # we can't auto-wrap these env types + elif is_atari(self.env) and \ not model_config.get("custom_preprocessor") and \ preprocessor_pref == "deepmind": @@ -411,7 +411,7 @@ class RolloutWorker(ParallelIteratorWorker): if self.worker_index == 0: logger.info("Built filter map: {}".format(self.filters)) - # Always use vector env for consistency even if num_envs = 1 + # Always use vector env for consistency even if num_envs = 1. self.async_env = BaseEnv.to_base_env( self.env, make_env=make_env, diff --git a/rllib/evaluation/sample_batch_builder.py b/rllib/evaluation/sample_batch_builder.py index 580cbcbac..845391983 100644 --- a/rllib/evaluation/sample_batch_builder.py +++ b/rllib/evaluation/sample_batch_builder.py @@ -2,10 +2,10 @@ import collections import logging import numpy as np -from ray.util.debug import log_once from ray.rllib.policy.sample_batch import SampleBatch, MultiAgentBatch from ray.rllib.utils.annotations import PublicAPI, DeveloperAPI from ray.rllib.utils.debug import summarize +from ray.util.debug import log_once logger = logging.getLogger(__name__) @@ -124,8 +124,9 @@ class MultiAgentSampleBatchBuilder: This pushes the postprocessed per-agent batches onto the per-policy builders, clearing per-agent state. - Arguments: - episode: current MultiAgentEpisode object or None + Args: + episode (Optional[MultiAgentEpisode]): Current MultiAgentEpisode + object. """ # Materialize the batches so far @@ -198,8 +199,9 @@ class MultiAgentSampleBatchBuilder: Any unprocessed rows will be first postprocessed with a policy postprocessor. The internal state of this builder will be reset. - Arguments: - episode: current MultiAgentEpisode object or None + Args: + episode (Optional[MultiAgentEpisode]): Current MultiAgentEpisode + object. """ self.postprocess_batch_so_far(episode) diff --git a/rllib/evaluation/sampler.py b/rllib/evaluation/sampler.py index 7c4ef67fe..dd1b83c10 100644 --- a/rllib/evaluation/sampler.py +++ b/rllib/evaluation/sampler.py @@ -341,7 +341,7 @@ def _env_runner(worker, base_env, extra_batch_callback, policies, while True: perf_stats.iters += 1 t0 = time.time() - # Get observations from all ready agents + # Get observations from all ready agents. unfiltered_obs, rewards, dones, infos, off_policy_actions = \ base_env.poll() perf_stats.env_wait_time += time.time() - t0 @@ -351,7 +351,7 @@ def _env_runner(worker, base_env, extra_batch_callback, policies, summarize(unfiltered_obs))) logger.info("Info return from env: {}".format(summarize(infos))) - # Process observations and prepare for policy evaluation + # Process observations and prepare for policy evaluation. t1 = time.time() active_envs, to_eval, outputs = _process_observations( worker, base_env, policies, batch_builder_pool, active_episodes, @@ -362,13 +362,13 @@ def _env_runner(worker, base_env, extra_batch_callback, policies, for o in outputs: yield o - # Do batched policy eval + # Do batched policy eval (accross vectorized envs). t2 = time.time() eval_results = _do_policy_eval(tf_sess, to_eval, policies, active_episodes) perf_stats.inference_time += time.time() - t2 - # Process results and update episode state + # Process results and update episode state. t3 = time.time() actions_to_send = _process_policy_eval_results( to_eval, eval_results, active_episodes, active_envs, @@ -401,11 +401,11 @@ def _process_observations( large_batch_threshold = max(1000, rollout_fragment_length * 10) if \ rollout_fragment_length != float("inf") else 5000 - # For each environment + # For each environment. for env_id, agent_obs in unfiltered_obs.items(): - new_episode = env_id not in active_episodes + is_new_episode = env_id not in active_episodes episode = active_episodes[env_id] - if not new_episode: + if not is_new_episode: episode.length += 1 episode.batch_builder.count += 1 episode._add_agent_rewards(rewards[env_id]) @@ -427,11 +427,11 @@ def _process_observations( "to terminate (batch_mode=`complete_episodes`). Make sure it " "does at some point.") - # Check episode termination conditions + # Check episode termination conditions. if dones[env_id]["__all__"] or episode.length >= horizon: hit_horizon = (episode.length >= horizon and not dones[env_id]["__all__"]) - all_done = True + all_agents_done = True atari_metrics = _fetch_atari_metrics(base_env) if atari_metrics is not None: for m in atari_metrics: @@ -445,7 +445,7 @@ def _process_observations( episode.hist_data)) else: hit_horizon = False - all_done = False + all_agents_done = False active_envs.add(env_id) # Custom observation function is applied before preprocessing. @@ -473,7 +473,7 @@ def _process_observations( if log_once("filtered_obs"): logger.info("Filtered obs: {}".format(summarize(filtered_obs))) - agent_done = bool(all_done or dones[env_id].get(agent_id)) + agent_done = bool(all_agents_done or dones[env_id].get(agent_id)) if not agent_done: to_eval[policy_id].append( PolicyEvalData(env_id, agent_id, filtered_obs, @@ -517,15 +517,15 @@ def _process_observations( if episode.batch_builder.has_pending_agent_data(): if dones[env_id]["__all__"] and not no_done_at_end: episode.batch_builder.check_missing_dones() - if (all_done and not pack) or \ + if (all_agents_done and not pack) or \ episode.batch_builder.count >= rollout_fragment_length: outputs.append(episode.batch_builder.build_and_reset(episode)) - elif all_done: + elif all_agents_done: # Make sure postprocessor stays within one episode episode.batch_builder.postprocess_batch_so_far(episode) - if all_done: - # Handle episode termination + if all_agents_done: + # Handle episode termination. batch_builder_pool.append(episode.batch_builder) # Call each policy's Exploration.on_episode_end method. for p in policies.values(): @@ -548,13 +548,13 @@ def _process_observations( del active_episodes[env_id] resetted_obs = base_env.try_reset(env_id) if resetted_obs is None: - # Reset not supported, drop this env from the ready list + # Reset not supported, drop this env from the ready list. if horizon != float("inf"): raise ValueError( "Setting episode horizon requires reset() support " "from the environment.") elif resetted_obs != ASYNC_RESET_RETURN: - # Creates a new episode if this is not async return + # Creates a new episode if this is not async return. # If reset is async, we will get its result in some future poll episode = active_episodes[env_id] if observation_fn: @@ -623,7 +623,6 @@ def _do_policy_eval(tf_sess, to_eval, policies, active_episodes): prev_reward_batch=prev_reward_batch, timestep=policy.global_timestep) else: - # TODO(sven): Does this work for LSTM torch? rnn_in_cols = [ np.stack([row[i] for row in rnn_in]) for i in range(len(rnn_in[0])) diff --git a/rllib/examples/attention_net.py b/rllib/examples/attention_net.py index c0a804c07..c5a8899c9 100644 --- a/rllib/examples/attention_net.py +++ b/rllib/examples/attention_net.py @@ -28,7 +28,7 @@ if __name__ == "__main__": assert not args.torch, "PyTorch not supported for AttentionNets yet!" - ray.init(num_cpus=args.num_cpus or None, local_mode=True) + ray.init(num_cpus=args.num_cpus or None) registry.register_env("RepeatAfterMeEnv", lambda c: RepeatAfterMeEnv(c)) registry.register_env("RepeatInitialObsEnv", diff --git a/rllib/examples/env/multi_agent.py b/rllib/examples/env/multi_agent.py index ce5214b76..545d3ea30 100644 --- a/rllib/examples/env/multi_agent.py +++ b/rllib/examples/env/multi_agent.py @@ -4,12 +4,16 @@ from ray.rllib.env.multi_agent_env import MultiAgentEnv from ray.rllib.tests.test_rollout_worker import MockEnv, MockEnv2 -def make_multiagent(env_name): +def make_multiagent(env_name_or_creator): class MultiEnv(MultiAgentEnv): def __init__(self, config): - self.agents = [ - gym.make(env_name) for _ in range(config["num_agents"]) - ] + num = config.pop("num_agents", 1) + if isinstance(env_name_or_creator, str): + self.agents = [ + gym.make(env_name_or_creator) for _ in range(num) + ] + else: + self.agents = [env_name_or_creator(config) for _ in range(num)] self.dones = set() self.observation_space = self.agents[0].observation_space self.action_space = self.agents[0].action_space diff --git a/rllib/examples/env/random_env.py b/rllib/examples/env/random_env.py index 66cd63b5c..af41ce183 100644 --- a/rllib/examples/env/random_env.py +++ b/rllib/examples/env/random_env.py @@ -1,7 +1,9 @@ import gym -from gym.spaces import Tuple +from gym.spaces import Discrete, Tuple import numpy as np +from ray.rllib.examples.env.multi_agent import make_multiagent + class RandomEnv(gym.Env): """A randomly acting environment. @@ -14,9 +16,9 @@ class RandomEnv(gym.Env): def __init__(self, config): # Action space. - self.action_space = config["action_space"] + self.action_space = config.get("action_space", Discrete(2)) # Observation space from which to sample. - self.observation_space = config["observation_space"] + self.observation_space = config.get("observation_space", Discrete(2)) # Reward space from which to sample. self.reward_space = config.get( "reward_space", @@ -43,3 +45,7 @@ class RandomEnv(gym.Env): bool(np.random.choice( [True, False], p=[self.p_done, 1.0 - self.p_done] )), {} + + +# Multi-agent version of the RandomEnv. +RandomMultiAgentEnv = make_multiagent(lambda c: RandomEnv(c)) diff --git a/rllib/examples/models/shared_weights_model.py b/rllib/examples/models/shared_weights_model.py index 3348fa0a6..6d2d96253 100644 --- a/rllib/examples/models/shared_weights_model.py +++ b/rllib/examples/models/shared_weights_model.py @@ -85,7 +85,12 @@ class SharedWeightsModel2(TFModelV2): TORCH_GLOBAL_SHARED_LAYER = None if torch: - TORCH_GLOBAL_SHARED_LAYER = SlimFC(32, 32) + TORCH_GLOBAL_SHARED_LAYER = SlimFC( + 64, + 64, + activation_fn=nn.ReLU, + initializer=torch.nn.init.xavier_uniform_, + ) class TorchSharedWeightsModel(TorchModelV2, nn.Module): @@ -104,12 +109,22 @@ class TorchSharedWeightsModel(TorchModelV2, nn.Module): # Non-shared initial layer. self.first_layer = SlimFC( int(np.product(observation_space.shape)), - 32, - activation_fn=nn.ReLU) + 64, + activation_fn=nn.ReLU, + initializer=torch.nn.init.xavier_uniform_) # Non-shared final layer. - self.last_layer = SlimFC(32, self.num_outputs, activation_fn=nn.ReLU) - self.vf = SlimFC(32, 1, activation_fn=None) + self.last_layer = SlimFC( + 64, + self.num_outputs, + activation_fn=None, + initializer=torch.nn.init.xavier_uniform_) + self.vf = SlimFC( + 64, + 1, + activation_fn=None, + initializer=torch.nn.init.xavier_uniform_, + ) self._output = None @override(ModelV2) diff --git a/rllib/examples/multi_agent_cartpole.py b/rllib/examples/multi_agent_cartpole.py index cfda788b9..c7b41c36b 100644 --- a/rllib/examples/multi_agent_cartpole.py +++ b/rllib/examples/multi_agent_cartpole.py @@ -28,7 +28,7 @@ parser = argparse.ArgumentParser() parser.add_argument("--num-agents", type=int, default=4) parser.add_argument("--num-policies", type=int, default=2) -parser.add_argument("--stop-iters", type=int, default=20) +parser.add_argument("--stop-iters", type=int, default=200) parser.add_argument("--stop-reward", type=float, default=150) parser.add_argument("--stop-timesteps", type=int, default=100000) parser.add_argument("--simple", action="store_true") @@ -74,7 +74,6 @@ if __name__ == "__main__": "env_config": { "num_agents": args.num_agents, }, - "log_level": "DEBUG", "simple_optimizer": args.simple, "num_sgd_iter": 10, "multiagent": { @@ -89,7 +88,7 @@ if __name__ == "__main__": "training_iteration": args.stop_iters, } - results = tune.run("PPO", stop=stop, config=config) + results = tune.run("PPO", stop=stop, config=config, verbose=1) if args.as_test: check_learning_achieved(results, args.stop_reward) diff --git a/rllib/examples/serving/cartpole_client.py b/rllib/examples/serving/cartpole_client.py index 2026e73aa..3541e0f6f 100755 --- a/rllib/examples/serving/cartpole_client.py +++ b/rllib/examples/serving/cartpole_client.py @@ -23,7 +23,7 @@ parser.add_argument( action="store_true", help="Whether to take random instead of on-policy actions.") parser.add_argument( - "--stop-at-reward", + "--stop-reward", type=int, default=9999, help="Stop once the specified reward is reached.") @@ -49,7 +49,7 @@ if __name__ == "__main__": client.log_returns(eid, reward, info=info) if done: print("Total reward:", rewards) - if rewards >= args.stop_at_reward: + if rewards >= args.stop_reward: print("Target reward achieved, exiting") exit(0) rewards = 0 diff --git a/rllib/examples/serving/cartpole_server.py b/rllib/examples/serving/cartpole_server.py index a488307d8..ee63e88a5 100755 --- a/rllib/examples/serving/cartpole_server.py +++ b/rllib/examples/serving/cartpole_server.py @@ -32,8 +32,7 @@ if __name__ == "__main__": connector_config = { # Use the connector server to generate experiences. "input": ( - lambda ioctx: PolicyServerInput( \ - ioctx, SERVER_ADDRESS, SERVER_PORT) + lambda ioctx: PolicyServerInput(ioctx, SERVER_ADDRESS, SERVER_PORT) ), # Use a single worker process to run the server. "num_workers": 0, diff --git a/rllib/examples/serving/unity3d_client.py b/rllib/examples/serving/unity3d_client.py new file mode 100644 index 000000000..4f3784aa7 --- /dev/null +++ b/rllib/examples/serving/unity3d_client.py @@ -0,0 +1,120 @@ +""" +Example of running a Unity3D client instance against an RLlib Policy server. +Unity3D clients can be run in distributed fashion on n nodes in the cloud +and all connect to the same RLlib server for faster sample collection. +For a locally running Unity3D example, see: +`examples/unity3d_env_local.py` + +To run this script on possibly different machines +against a central Policy server: +1) Install Unity3D and `pip install mlagents`. + +2) Compile a Unity3D example game with MLAgents support (e.g. 3DBall or any + other one that you created yourself) and place the compiled binary + somewhere, where your RLlib client script (see below) can access it. + +2.1) To find Unity3D MLAgent examples, first `pip install mlagents`, + then check out the `.../ml-agents/Project/Assets/ML-Agents/Examples/` + folder. + +3) Change your RLlib Policy server code so it knows the observation- and + action Spaces, the different Policies (called "behaviors" in Unity3D + MLAgents), and Agent-to-Policy mappings for your particular game. + Alternatively, use one of the two already existing setups (3DBall or + SoccerStrikersVsGoalie). + +4) Then run (two separate shells/machines): +$ python unity3d_server.py --env 3DBall +$ python unity3d_client.py --inference-mode=local --game [path to game binary] +""" + +import argparse + +from ray.rllib.env.policy_client import PolicyClient +from ray.rllib.env.unity3d_env import Unity3DEnv + +SERVER_ADDRESS = "localhost" +SERVER_PORT = 9900 + +parser = argparse.ArgumentParser() +parser.add_argument( + "--game", + type=str, + default=None, + help="The game executable to run as RL env. If not provided, uses local " + "Unity3D editor instance.") +parser.add_argument( + "--horizon", + type=int, + default=200, + help="The max. number of `step()`s for any episode (per agent) before " + "it'll be reset again automatically.") +parser.add_argument( + "--server", + type=str, + default=SERVER_ADDRESS + ":" + str(SERVER_PORT), + help="The Policy server's address and port to connect to from this client." +) +parser.add_argument( + "--no-train", + action="store_true", + help="Whether to disable training (on the server side).") +parser.add_argument( + "--inference-mode", + type=str, + default="local", + choices=["local", "remote"], + help="Whether to compute actions `local`ly or `remote`ly. Note that " + "`local` is much faster b/c observations/actions do not have to be " + "sent via the network.") +parser.add_argument( + "--update-interval-local-mode", + type=float, + default=10.0, + help="For `inference-mode=local`, every how many seconds do we update " + "learnt policy weights from the server?") +parser.add_argument( + "--stop-reward", + type=int, + default=9999, + help="Stop once the specified reward is reached.") + +if __name__ == "__main__": + args = parser.parse_args() + + # Start the client for sending environment information (e.g. observations, + # actions) to a policy server (listening on port 9900). + client = PolicyClient( + "http://" + args.server, + inference_mode=args.inference_mode, + update_interval=args.update_interval_local_mode) + + # Start and reset the actual Unity3DEnv (either already running Unity3D + # editor or a binary (game) to be started automatically). + env = Unity3DEnv(file_name=args.game, episode_horizon=args.horizon) + obs = env.reset() + eid = client.start_episode(training_enabled=not args.no_train) + + # Keep track of the total reward per episode. + total_rewards_this_episode = 0.0 + + # Loop infinitely through the env. + while True: + # Get actions from the Policy server given our current obs. + actions = client.get_action(eid, obs) + # Apply actions to our env. + obs, rewards, dones, infos = env.step(actions) + total_rewards_this_episode += sum(rewards.values()) + # Log rewards and single-agent dones. + client.log_returns(eid, rewards, infos, multiagent_done_dict=dones) + # Check whether all agents are done and end the episode, if necessary. + if dones["__all__"]: + print("Episode done: Reward={}".format(total_rewards_this_episode)) + if total_rewards_this_episode >= args.stop_reward: + quit(0) + # End the episode and reset Unity Env. + total_rewards_this_episode = 0.0 + client.end_episode(eid, obs) + obs = env.reset() + # Start a new episode. + eid = client.start_episode(training_enabled=not args.no_train) diff --git a/rllib/examples/serving/unity3d_server.py b/rllib/examples/serving/unity3d_server.py new file mode 100755 index 000000000..3aa2600b4 --- /dev/null +++ b/rllib/examples/serving/unity3d_server.py @@ -0,0 +1,129 @@ +""" +Example of running a Unity3D (MLAgents) Policy server that can learn +Policies via sampling inside many connected Unity game clients (possibly +running in the cloud on n nodes). +For a locally running Unity3D example, see: +`examples/unity3d_env_local.py` + +To run this script against one or more possibly cloud-based clients: +1) Install Unity3D and `pip install mlagents`. + +2) Compile a Unity3D example game with MLAgents support (e.g. 3DBall or any + other one that you created yourself) and place the compiled binary + somewhere, where your RLlib client script (see below) can access it. + +2.1) To find Unity3D MLAgent examples, first `pip install mlagents`, + then check out the `.../ml-agents/Project/Assets/ML-Agents/Examples/` + folder. + +3) Change this RLlib Policy server code so it knows the observation- and + action Spaces, the different Policies (called "behaviors" in Unity3D + MLAgents), and Agent-to-Policy mappings for your particular game. + Alternatively, use one of the two already existing setups (3DBall or + SoccerStrikersVsGoalie). + +4) Then run (two separate shells/machines): +$ python unity3d_server.py --env 3DBall +$ python unity3d_client.py --inference-mode=local --game [path to game binary] +""" + +import argparse +import os + +import ray +from ray.tune import register_env +from ray.rllib.agents.ppo import PPOTrainer +from ray.rllib.env.policy_server_input import PolicyServerInput +from ray.rllib.examples.env.random_env import RandomMultiAgentEnv +from ray.rllib.examples.env.unity3d_env import Unity3DEnv + +SERVER_ADDRESS = "localhost" +SERVER_PORT = 9900 +CHECKPOINT_FILE = "last_checkpoint_{}.out" + +parser = argparse.ArgumentParser() +parser.add_argument( + "--env", + type=str, + default="3DBall", + choices=["3DBall", "SoccerStrikersVsGoalie"], + help="The name of the Env to run in the Unity3D editor. Either `3DBall` " + "or `SoccerStrikersVsGoalie` (feel free to add more to this script!)") +parser.add_argument( + "--port", + type=int, + default=SERVER_PORT, + help="The Policy server's port to listen on for ExternalEnv client " + "conections.") +parser.add_argument( + "--checkpoint-freq", + type=int, + default=10, + help="The frequency with which to create checkpoint files of the learnt " + "Policies.") +parser.add_argument( + "--no-restore", + action="store_true", + help="Whether to load the Policy " + "weights from a previous checkpoint") + +if __name__ == "__main__": + args = parser.parse_args() + ray.init(local_mode=True) + + # Create a fake-env for the server. This env will never be used (neither + # for sampling, nor for evaluation) and its obs/action Spaces do not + # matter either (multi-agent config below defines Spaces per Policy). + register_env("fake_unity", lambda c: RandomMultiAgentEnv(c)) + + policies, policy_mapping_fn = \ + Unity3DEnv.get_policy_configs_for_game(args.env) + + # The entire config will be sent to connecting clients so they can + # build their own samplers (and also Policy objects iff + # `inference_mode=local` on clients' command line). + config = { + # Use the connector server to generate experiences. + "input": ( + lambda ioctx: PolicyServerInput(ioctx, SERVER_ADDRESS, args.port)), + # Use a single worker process (w/ SyncSampler) to run the server. + "num_workers": 0, + # Disable OPE, since the rollouts are coming from online clients. + "input_evaluation": [], + + # Other settings. + "sample_batch_size": 64, + "train_batch_size": 256, + "rollout_fragment_length": 20, + # Multi-agent setup for the particular env. + "multiagent": { + "policies": policies, + "policy_mapping_fn": policy_mapping_fn, + }, + "framework": "tf", + } + + # Create the Trainer used for Policy serving. + trainer = PPOTrainer(env="fake_unity", config=config) + + # Attempt to restore from checkpoint if possible. + checkpoint_path = CHECKPOINT_FILE.format(args.env) + if not args.no_restore and os.path.exists(checkpoint_path): + checkpoint_path = open(checkpoint_path).read() + print("Restoring from checkpoint path", checkpoint_path) + trainer.restore(checkpoint_path) + + # Serving and training loop. + count = 0 + while True: + # Calls to train() will block on the configured `input` in the Trainer + # config above (PolicyServerInput). + print(trainer.train()) + if count % args.checkpoint_freq == 0: + print("Saving learning progress to checkpoint file.") + checkpoint = trainer.save() + # Write the latest checkpoint location to CHECKPOINT_FILE, + # so we can pick up from the latest one after a server re-start. + with open(checkpoint_path, "w") as f: + f.write(checkpoint) + count += 1 diff --git a/rllib/examples/unity3d_env_local.py b/rllib/examples/unity3d_env_local.py new file mode 100644 index 000000000..380eb527e --- /dev/null +++ b/rllib/examples/unity3d_env_local.py @@ -0,0 +1,95 @@ +""" +Example of running an RLlib Trainer against a locally running Unity3D editor +instance (available as Unity3DEnv inside RLlib). +For a distributed cloud setup example with Unity, +see `examples/serving/unity3d_[server|client].py` + +To run this script against a local Unity3D engine: +1) Install Unity3D and `pip install mlagents`. + +2) Open the Unity3D Editor and load an example scene from the following + ml-agents pip package location: + `.../ml-agents/Project/Assets/ML-Agents/Examples/` + This script supports the `3DBall` and `SoccerStrikersVsGoalie` examples. + Specify the game you chose on your command line via e.g. `--env 3DBall`. + Feel free to add more supported examples here. + +3) Then run this script (you will have to press Play in your Unity editor + at some point to start the game and the learning process): +$ python unity3d_env_local.py --env 3DBall --stop-reward [..] [--torch]? +""" + +import argparse + +import ray +from ray import tune +from ray.rllib.env.unity3d_env import Unity3DEnv +from ray.rllib.utils.test_utils import check_learning_achieved + +parser = argparse.ArgumentParser() +parser.add_argument( + "--env", + type=str, + default="3DBall", + choices=["3DBall", "SoccerStrikersVsGoalie"], + help="The name of the Env to run in the Unity3D editor. Either `3DBall` " + "or `SoccerStrikersVsGoalie` (feel free to add more to this script!)") +parser.add_argument("--as-test", action="store_true") +parser.add_argument("--stop-iters", type=int, default=150) +parser.add_argument("--stop-reward", type=float, default=9999.0) +parser.add_argument("--stop-timesteps", type=int, default=100000) +parser.add_argument( + "--horizon", + type=int, + default=200, + help="The max. number of `step()`s for any episode (per agent) before " + "it'll be reset again automatically.") +parser.add_argument("--torch", action="store_true") + +if __name__ == "__main__": + ray.init(local_mode=True) + + args = parser.parse_args() + + tune.register_env( + "unity3d", + lambda c: Unity3DEnv(episode_horizon=c.get("episode_horizon", 1000))) + + # Get policies (different agent types; "behaviors" in MLAgents) and + # the mappings from individual agents to Policies. + policies, policy_mapping_fn = \ + Unity3DEnv.get_policy_configs_for_game(args.env) + + config = { + "env": "unity3d", + "env_config": { + "episode_horizon": args.horizon, + }, + # IMPORTANT: Just use one Worker (we only have one Unity running)! + "num_workers": 0, + # Other settings. + "sample_batch_size": 64, + "train_batch_size": 256, + "rollout_fragment_length": 20, + # Multi-agent setup for the particular env. + "multiagent": { + "policies": policies, + "policy_mapping_fn": policy_mapping_fn, + }, + "framework": "tf", + } + + stop = { + "training_iteration": args.stop_iters, + "timesteps_total": args.stop_timesteps, + "episode_reward_mean": args.stop_reward, + } + + # Run the experiment. + results = tune.run("PPO", config=config, stop=stop, verbose=1) + + # And check the results. + if args.as_test: + check_learning_achieved(results, args.stop_reward) + + ray.shutdown() diff --git a/rllib/policy/torch_policy.py b/rllib/policy/torch_policy.py index 8056978d9..a8f8be298 100644 --- a/rllib/policy/torch_policy.py +++ b/rllib/policy/torch_policy.py @@ -232,7 +232,7 @@ class TorchPolicy(Policy): loss_out = force_list( self._loss(self, self.model, self.dist_class, train_batch)) assert len(loss_out) == len(self._optimizers) - # assert not any(np.isnan(l.detach().numpy()) for l in loss_out) + # assert not any(torch.isnan(l) for l in loss_out) # Loop through all optimizers. grad_info = {"allreduce_latency": 0.0} diff --git a/rllib/tests/test_rollout_worker.py b/rllib/tests/test_rollout_worker.py index 1635f7044..03c97976d 100644 --- a/rllib/tests/test_rollout_worker.py +++ b/rllib/tests/test_rollout_worker.py @@ -100,11 +100,11 @@ class MockEnv2(gym.Env): class MockVectorEnv(VectorEnv): def __init__(self, episode_length, num_envs): - super().__init__() + super().__init__( + observation_space=gym.spaces.Discrete(1), + action_space=gym.spaces.Discrete(2), + num_envs=num_envs) self.envs = [MockEnv(episode_length) for _ in range(num_envs)] - self.observation_space = gym.spaces.Discrete(1) - self.action_space = gym.spaces.Discrete(2) - self.num_envs = num_envs def vector_reset(self): return [e.reset() for e in self.envs] diff --git a/rllib/utils/policy_client.py b/rllib/utils/policy_client.py index 1b542e9ae..606bf7e3f 100644 --- a/rllib/utils/policy_client.py +++ b/rllib/utils/policy_client.py @@ -38,8 +38,8 @@ class PolicyClient: """Record the start of an episode. Arguments: - episode_id (str): Unique string id for the episode or None for - it to be auto-assigned. + episode_id (Optional[str]): Unique string id for the episode or + None for it to be auto-assigned. training_enabled (bool): Whether to use experiences for this episode to improve the policy.