code: def recommend_auto_balance(message: str) -> str:
      """Expands a message with recommendation to :mod:`torchpipe.balance`."""
      return f"""{message}
  
  If your model is still under development, its optimal balance would change
  frequently. In this case, we highly recommend 'fairscale.nn.pipe.balance' for
  naive automatic balancing:
  
    from fairscale.nn import Pipe
    from fairscale.nn.pipe.balance import balance_by_time
  
    partitions = torch.cuda.device_count()
    sample = torch.empty(...)
    balance = balance_by_time(partitions, model, sample)
  
    model = Pipe(model, balance, ...)
  """
  
imports: from collections import OrderedDict
  from typing import TYPE_CHECKING, Any, Iterable, List, Optional, Tuple, Union, cast
  import warnings
  import torch
  from torch import Tensor, nn
  import torch.autograd
  import torch.cuda
  from fairscale.internal import torch_version
  from .None import microbatch
  from .batchnorm import DeferredBatchNorm
  from .pipeline import Pipeline
  from .skip.layout import inspect_skip_layout
  from .skip.skippable import verify_skippables
  from .stream import AbstractStream, new_stream
label_desc: Use image node_id 1 for calling a global function with example usage: recommend_auto_balance(message) and returns: message, str