code: def make_task_cmds():
      data_dir_samples = f"{FIXTURE_DIRECTORY}/tests_samples"
      data_dir_wmt = f"{data_dir_samples}/wmt_en_ro"
      data_dir_xsum = f"{data_dir_samples}/xsum"
      args_main = """
          --do_train
          --max_train_samples 4
          --per_device_train_batch_size 2
          --num_train_epochs 1
          --fp16
          --report_to none
          --overwrite_output_dir
          """.split()
  
      # try to cover as many models as possible once (it's enough to run on one task per model)
      # but need a tiny model for each
      #
      # should have "{model_type.upper()}_TINY" corresponding vars defined, e.g., T5_TINY, etc.
      tasks2models = {
          "trans": [
              "bart",
              "fsmt",
              "m2m_100",
              "marian",
              "mbart",
              "t5",
              "t5_v1",
              # "mt5", missing model files
          ],
          "sum": [
              "pegasus",
          ],
          "clm": [
              "big_bird",
              "bigbird_pegasus",
              "blenderbot",
              "bloom",
              "gpt2",
              "gpt_neo",
              "gptj",
              "xlm-roberta",
              "prophetnet",
              # "camembert", missing model files
          ],
          "mlm": [
              "albert",
              "deberta",
              "deberta-v2",
              "distilbert",
              "electra",
              "flaubert",
              "funnel",
              "layoutlm",
              # "reformer", # multiple issues with either mlm/qa/clas
          ],
          "qa": [
              "led",
              "longformer",
              "mobilebert",
              "mpnet",
              "roberta",
              "squeezebert",
              # "convbert", # missing tokenizer files
              # "layoutlmv2", missing model files
          ],
          "clas": [
              "bert",
              "xlnet",
              # "hubert", # missing tokenizer files
              # "ibert", # multiple issues with either mlm/qa/clas
              # "transfo-xl", # tokenizer issues as ctrl
              # "ctrl", # tokenizer issues
              # "openai-gpt", missing model files
              # "tapas", multiple issues
          ],
          "img_clas": [
              "vit",
          ],
      }
  
      scripts_dir = f"{ROOT_DIRECTORY}/examples/pytorch"
  
      tasks = {
          "trans": f"""
          {scripts_dir}/translation/run_translation.py
          --train_file {data_dir_wmt}/train.json
          --source_lang en
          --target_lang ro
          """,
          "sum": f"""
          {scripts_dir}/summarization/run_summarization.py
          --train_file {data_dir_xsum}/sample.json
          --max_source_length 12
          --max_target_length 12
          --lang en
          """,
          "clm": f"""
          {scripts_dir}/language-modeling/run_clm.py
          --train_file {FIXTURE_DIRECTORY}/sample_text.txt
          --block_size 8
          """,
          "mlm": f"""
          {scripts_dir}/language-modeling/run_mlm.py
          --train_file {FIXTURE_DIRECTORY}/sample_text.txt
          """,
          "qa": f"""
          {scripts_dir}/question-answering/run_qa.py
          --train_file {data_dir_samples}/SQUAD/sample.json
          """,
          "clas": f"""
          {scripts_dir}/text-classification/run_glue.py
          --train_file {data_dir_samples}/MRPC/train.csv
          --max_seq_length 12
          --task_name MRPC
          """,
          "img_clas": f"""
          {scripts_dir}/image-classification/run_image_classification.py
              --dataset_name hf-internal-testing/cats_vs_dogs_sample
              --remove_unused_columns False
              --max_steps 10
              --image_processor_name {DS_TESTS_DIRECTORY}/vit_feature_extractor.json
          """,
      }
  
      launcher = get_launcher(distributed=True)
  
      cmds = {}
      for task, args in tasks.items():
          args = args.split()
          for model in tasks2models[task]:
              model_name = globals()[
                  f"{model.upper().replace('-', '_')}_TINY"
              ]
              args_model = f"--model_name_or_path {model_name}".split()
              cmds[f"{task}_{model}"] = (
                  launcher + args + args_model + args_main
              )
  
              # # generation special case
              # if task == "gen":
              #     launcher = f"deepspeed --num_nodes 1 --num_gpus 1".split()
              #     args_model += f"--model_type {model}".split()
              #     cmds[f"{task}_{model}"] = launcher + args + args_model
              # else:
  
      return cmds
  
file_path: transformers/tests/deepspeed/test_model_zoo.py
imports: import itertools
  import os
  import subprocess
  from os.path import dirname
  from parameterized import parameterized
  from tests.trainer.test_trainer import TrainerIntegrationCommon
  from transformers import is_torch_available
  from transformers.testing_utils import TestCasePlus, execute_subprocess_async, get_gpu_count, get_tests_dir, require_deepspeed, require_torch_gpu, slow
  from transformers.trainer_utils import set_seed
label_desc: Use image node_id 2 for calling a global function with example usage: make_task_cmds() and returns: cmds