code: def __init__(self, args):
      self.config = args.config
  
      if not args.use_pretrain:
          if args.progressive_layer_drop:
              print("BertConfigPreLnLayerDrop")
              from nvidia.modelingpreln_layerdrop import (
                  BertForPreTrainingPreLN,
                  BertConfig,
              )
          else:
              from nvidia.modelingpreln import (
                  BertForPreTrainingPreLN,
                  BertConfig,
              )
  
          bert_config = BertConfig(**self.config["bert_model_config"])
          bert_config.vocab_size = len(args.tokenizer.vocab)
  
          # Padding for divisibility by 8
          if bert_config.vocab_size % 8 != 0:
              bert_config.vocab_size += 8 - (bert_config.vocab_size % 8)
          print("VOCAB SIZE:", bert_config.vocab_size)
  
          self.network = BertForPreTrainingPreLN(bert_config, args)
      # Use pretrained bert weights
      else:
          self.bert_encoder = BertModel.from_pretrained(
              self.config["bert_model_file"],
              cache_dir=PYTORCH_PRETRAINED_BERT_CACHE
              / "distributed_{}".format(args.local_rank),
          )
          bert_config = self.bert_encoder.config
  
      self.device = None
  
imports: import torch
  import torch.nn
  from torch.nn import CrossEntropyLoss, MSELoss
  from turing.utils import TorchTuple
  from pytorch_pretrained_bert.modeling import BertModel
  from pytorch_pretrained_bert.modeling import BertPreTrainingHeads, PreTrainedBertModel, BertPreTrainingHeads
  from pytorch_pretrained_bert.file_utils import PYTORCH_PRETRAINED_BERT_CACHE
label_desc: Use image node_id 1 to create a new BertMultiTask object  with example: obj = BertMultiTask(args)