class_docstr: Wrap one shard of the model, make it possible to load parameters on the
  fly for the FW and BW pass on the given device.
code: def to_device(self) -> None:
      self.model_shard.to(device=self.device, non_blocking=True)
  
imports: from builtins import isinstance
  import functools
  import logging
  from typing import Any, List, Tuple
  import torch
  from torch import nn
label_desc: Use image node_id 5 for calling the ModelShard obj's underlying member method code with example usage: obj.to_device() without return types