code: def _get_mlp(tripwire: bool = False):
      if not tripwire:
          return Sequential(
              Linear(2, 3),
              Linear(3, 3),
              Linear(3, 3),
              Linear(3, 3),
              Linear(3, 3),
              Linear(3, 3),
          )
  
      class Tripwire(torch.nn.Module):
          """A model made to expose possible corner cases"""
  
          def __init__(self) -> None:
              super().__init__()
              self.model = Linear(2, 3, bias=False)
  
              # mismatched types in between trainable or not, can trip the buckets for instance
              self.register_parameter(
                  "tripwire",
                  torch.nn.Parameter(
                      torch.LongTensor((3, 3)), requires_grad=False
                  ),
              )
  
          def forward(self, x):
              return self.model(x)
  
      return Tripwire()
  
imports: from contextlib import suppress
  import numpy
  import pytest
  import torch
  import torch.distributed
  import torch.multiprocessing
  from torch.nn import Linear, Sequential
  from fairscale.fair_dev.testing.testing import GPT2, SGDWithPausingCompute, available_devices, check_same_models_across_ranks, skip_if_less_than_four_gpu, skip_if_no_cuda, skip_if_single_gpu, temp_files_ctx
  from fairscale.nn.data_parallel import ShardedDataParallel
  from fairscale.optim import OSS
label_desc: Use image node_id 1 for calling a global function with example usage: _get_mlp(tripwire) and returns: Tripwire, Sequential, self