code: def create_tokenizer(tokenizer_type, model_path, vocab_path):
      if tokenizer_type == "whitespace":
          return tokenizers.create(
              tokenizer_type, vocab=Vocab.load(vocab_path)
          )
      elif tokenizer_type == "spm":
          return tokenizers.create(
              tokenizer_type, model_path=model_path, vocab=vocab_path
          )
      elif tokenizer_type == "subword_nmt":
          return tokenizers.create(
              tokenizer_type, model_path=model_path, vocab=vocab_path
          )
      elif tokenizer_type == "yttm":
          return tokenizers.create(
              tokenizer_type, model_path=model_path
          )
      elif tokenizer_type in ["hf_bytebpe", "hf_wordpiece", "hf_bpe"]:
          if huggingface.is_new_version_model_file(model_path):
              return tokenizers.create(
                  "hf_tokenizer",
                  model_path=model_path,
                  vocab=vocab_path,
              )
          elif tokenizer_type == "hf_bytebpe":
              return tokenizers.create(
                  tokenizer_type,
                  merges_file=model_path,
                  vocab_file=vocab_path,
              )
          elif tokenizer_type == "hf_wordpiece":
              return tokenizers.create(
                  tokenizer_type, vocab_file=vocab_path
              )
          elif tokenizer_type == "hf_bpe":
              return tokenizers.create(
                  tokenizer_type,
                  merges_file=model_path,
                  vocab_file=vocab_path,
              )
      else:
          raise NotImplementedError
  
imports: import argparse
  import time
  import random
  import os
  import logging
  import json
  import math
  import numpy
  import mxnet
  import sacrebleu
  from mxnet import gluon
  from gluonnlp.models.transformer import TransformerModel, TransformerInference
  from gluonnlp.sequence_sampler import BeamSearchSampler, BeamSearchScorer
  from gluonnlp.utils.misc import logging_config, md5sum, grouper, init_comm, repeat
  from gluonnlp.data.sampler import ConstWidthBucket, LinearWidthBucket, ExpWidthBucket, FixedBucketSampler, BoundedBudgetSampler, ShardedIterator
  from tensorboardX import SummaryWriter
  import gluonnlp.data.batchify
  from gluonnlp.data import Vocab
  from gluonnlp.data import tokenizers
  from gluonnlp.data.tokenizers import BaseTokenizerWithVocab, huggingface, MosesTokenizer
  from gluonnlp.lr_scheduler import InverseSquareRootScheduler
  from gluonnlp.loss import LabelSmoothCrossEntropyLoss
  from gluonnlp.utils.parameter import grad_global_norm, clip_grad_global_norm, deduplicate_param_dict, count_parameters, AverageSGDTracker
label_desc: Use image node_id 4 for calling a global function with example usage: create_tokenizer(tokenizer_type, model_path, vocab_path) and returns: tokenizers, tokenizers, tokenizers, tokenizers, tokenizers, tokenizers, tokenizers, tokenizers