code: def get_nllb_wrap_policy(
      arch_name: str, gang: Gang
  ) -> Tuple[FSDPWrapPolicy, Optional[List[str]]]:
      """Return the FSDP wrap policy and ignored parameter names for ``arch_name``.
  
      :param arch_name:
          The name of the architecture.
      :param gang:
          The gang that will be used to shard the model.
  
      :returns:
          - The FSDP wrap policy.
          - The ignored parameter names, can contain regular expressions.
      """
      kls = (TransformerEncoder, TransformerDecoder)
  
      wrap_policy = partial(
          transformer_auto_wrap_policy, transformer_layer_cls=kls
      )
  
      return wrap_policy, None
  
imports: from dataclasses import dataclass
  from functools import partial
  from typing import List, Optional, Tuple
  from torch.distributed.fsdp.wrap import transformer_auto_wrap_policy
  from fairseq2.data import VocabularyInfo
  from fairseq2.gang import Gang
  from fairseq2.models.transformer import TransformerEmbeddingFrontend, TransformerFrontend, TransformerModel
  from fairseq2.models.utils import ArchitectureRegistry
  from fairseq2.nn.embedding import Embedding, StandardEmbedding, init_scaled_embedding
  from fairseq2.nn.fsdp import FSDPWrapPolicy
  from fairseq2.nn.position_encoder import SinusoidalPositionEncoder
  from fairseq2.nn.projection import TiedProjection
  from fairseq2.nn.transformer import FeedForwardNetwork, MultiheadAttention, StandardFeedForwardNetwork, StandardMultiheadAttention, StandardTransformerDecoder, StandardTransformerDecoderLayer, StandardTransformerEncoder, StandardTransformerEncoderLayer, TransformerDecoder, TransformerDecoderLayer, TransformerEncoder, TransformerEncoderLayer, TransformerNormOrder, create_default_sdpa
  from fairseq2.typing import DataType, Device
label_desc: Use image node_id 5 for calling a global function with example usage: get_nllb_wrap_policy(arch_name, gang) and returns: wrap_policy,  None