code: def create_rename_keys(
      config, vqa_model=False, nlvr_model=False, irtr_model=False
  ):
      rename_keys = []
      for i in range(config.num_hidden_layers):
          # encoder layers: output projection, 2 feedforward neural networks and 2 layernorms
          rename_keys.append(
              (
                  f"transformer.blocks.{i}.norm1.weight",
                  f"vilt.encoder.layer.{i}.layernorm_before.weight",
              )
          )
          rename_keys.append(
              (
                  f"transformer.blocks.{i}.norm1.bias",
                  f"vilt.encoder.layer.{i}.layernorm_before.bias",
              )
          )
          rename_keys.append(
              (
                  f"transformer.blocks.{i}.attn.proj.weight",
                  f"vilt.encoder.layer.{i}.attention.output.dense.weight",
              )
          )
          rename_keys.append(
              (
                  f"transformer.blocks.{i}.attn.proj.bias",
                  f"vilt.encoder.layer.{i}.attention.output.dense.bias",
              )
          )
          rename_keys.append(
              (
                  f"transformer.blocks.{i}.norm2.weight",
                  f"vilt.encoder.layer.{i}.layernorm_after.weight",
              )
          )
          rename_keys.append(
              (
                  f"transformer.blocks.{i}.norm2.bias",
                  f"vilt.encoder.layer.{i}.layernorm_after.bias",
              )
          )
          rename_keys.append(
              (
                  f"transformer.blocks.{i}.mlp.fc1.weight",
                  f"vilt.encoder.layer.{i}.intermediate.dense.weight",
              )
          )
          rename_keys.append(
              (
                  f"transformer.blocks.{i}.mlp.fc1.bias",
                  f"vilt.encoder.layer.{i}.intermediate.dense.bias",
              )
          )
          rename_keys.append(
              (
                  f"transformer.blocks.{i}.mlp.fc2.weight",
                  f"vilt.encoder.layer.{i}.output.dense.weight",
              )
          )
          rename_keys.append(
              (
                  f"transformer.blocks.{i}.mlp.fc2.bias",
                  f"vilt.encoder.layer.{i}.output.dense.bias",
              )
          )
  
      # embeddings
      rename_keys.extend(
          [
              # text embeddings
              (
                  "text_embeddings.word_embeddings.weight",
                  "vilt.embeddings.text_embeddings.word_embeddings.weight",
              ),
              (
                  "text_embeddings.position_embeddings.weight",
                  "vilt.embeddings.text_embeddings.position_embeddings.weight",
              ),
              (
                  "text_embeddings.position_ids",
                  "vilt.embeddings.text_embeddings.position_ids",
              ),
              (
                  "text_embeddings.token_type_embeddings.weight",
                  "vilt.embeddings.text_embeddings.token_type_embeddings.weight",
              ),
              (
                  "text_embeddings.LayerNorm.weight",
                  "vilt.embeddings.text_embeddings.LayerNorm.weight",
              ),
              (
                  "text_embeddings.LayerNorm.bias",
                  "vilt.embeddings.text_embeddings.LayerNorm.bias",
              ),
              # patch embeddings
              ("transformer.cls_token", "vilt.embeddings.cls_token"),
              (
                  "transformer.patch_embed.proj.weight",
                  "vilt.embeddings.patch_embeddings.projection.weight",
              ),
              (
                  "transformer.patch_embed.proj.bias",
                  "vilt.embeddings.patch_embeddings.projection.bias",
              ),
              (
                  "transformer.pos_embed",
                  "vilt.embeddings.position_embeddings",
              ),
              # token type embeddings
              (
                  "token_type_embeddings.weight",
                  "vilt.embeddings.token_type_embeddings.weight",
              ),
          ]
      )
  
      # final layernorm + pooler
      rename_keys.extend(
          [
              ("transformer.norm.weight", "vilt.layernorm.weight"),
              ("transformer.norm.bias", "vilt.layernorm.bias"),
              ("pooler.dense.weight", "vilt.pooler.dense.weight"),
              ("pooler.dense.bias", "vilt.pooler.dense.bias"),
          ]
      )
  
      # classifier head(s)
      if vqa_model:
          # classification head
          rename_keys.extend(
              [
                  ("vqa_classifier.0.weight", "classifier.0.weight"),
                  ("vqa_classifier.0.bias", "classifier.0.bias"),
                  ("vqa_classifier.1.weight", "classifier.1.weight"),
                  ("vqa_classifier.1.bias", "classifier.1.bias"),
                  ("vqa_classifier.3.weight", "classifier.3.weight"),
                  ("vqa_classifier.3.bias", "classifier.3.bias"),
              ]
          )
      elif nlvr_model:
          # classification head
          rename_keys.extend(
              [
                  ("nlvr2_classifier.0.weight", "classifier.0.weight"),
                  ("nlvr2_classifier.0.bias", "classifier.0.bias"),
                  ("nlvr2_classifier.1.weight", "classifier.1.weight"),
                  ("nlvr2_classifier.1.bias", "classifier.1.bias"),
                  ("nlvr2_classifier.3.weight", "classifier.3.weight"),
                  ("nlvr2_classifier.3.bias", "classifier.3.bias"),
              ]
          )
      else:
          pass
  
      return rename_keys
  
file_path: H2O/h2o_flexgen/benchmark/third_party/transformers/src/transformers/models/vilt/convert_vilt_original_to_pytorch.py
imports: import argparse
  import json
  from pathlib import Path
  import torch
  from PIL import Image
  import requests
  from huggingface_hub import hf_hub_download
  from transformers import BertTokenizer, ViltConfig, ViltFeatureExtractor, ViltForImageAndTextRetrieval, ViltForImagesAndTextClassification, ViltForMaskedLM, ViltForQuestionAnswering, ViltProcessor
  from transformers.utils import logging
label_desc: Use image node_id 1 for calling a global function with example usage: create_rename_keys(config, vqa_model, nlvr_model, irtr_model) and returns: rename_keys