class_docstr: A collection of remote modules (of type RemoteModule) with connections showing how inputs
  to the model or outputs of individual modules are use as inputs of subsequent modules.
  The graph has a number of helper functions that add new modules to the graph and define inputs
  to these module.
code: def _find_or_add(self, module: RemoteModule) -> Node:
      try:
          return self._find_node(module)
      except ValueError:
          new_node = Node(module)
          self.nodes.append(new_node)
          return new_node
  
imports: from dataclasses import dataclass
  from typing import List, Optional, Set, Tuple, Union
  from torch import Tensor, nn
  from torch.distributed import rpc
  from torch.distributed.nn import RemoteModule
  from .data import DataConsumer
label_desc: Use image node_id 3 for calling the PipelineModulesGraph obj's underlying member method code with example usage: obj._find_or_add(module) and returns: self, new_node