code: def convert_config(fairseq_cfg, vocab_size, cfg):
      print("converting config")
      cfg.defrost()
      cfg.MODEL.vocab_size = vocab_size
      cfg.MODEL.units = fairseq_cfg.encoder_embed_dim
      cfg.MODEL.hidden_size = fairseq_cfg.encoder_ffn_embed_dim
      cfg.MODEL.max_length = fairseq_cfg.max_positions
      cfg.MODEL.num_heads = fairseq_cfg.encoder_attention_heads
      cfg.MODEL.num_layers = fairseq_cfg.encoder_layers
      cfg.MODEL.pos_embed_type = "learned"
      cfg.MODEL.activation = fairseq_cfg.activation_fn
      cfg.MODEL.pooler_activation = fairseq_cfg.pooler_activation_fn
      cfg.MODEL.layer_norm_eps = 1e-5
      cfg.MODEL.hidden_dropout_prob = fairseq_cfg.dropout
      cfg.MODEL.attention_dropout_prob = fairseq_cfg.attention_dropout
      cfg.MODEL.dtype = "float32"
      cfg.INITIALIZER.embed = ["truncnorm", 0, 0.02]
      cfg.INITIALIZER.weight = ["truncnorm", 0, 0.02]
      cfg.INITIALIZER.bias = ["zeros"]
      cfg.VERSION = 1
      cfg.freeze()
      return cfg
  
imports: import os
  import re
  import sys
  import json
  import shutil
  import logging
  import argparse
  import mxnet
  import numpy
  from numpy.testing import assert_allclose
  import torch
  from gluonnlp.data.vocab import Vocab
  from gluonnlp.utils.misc import sha1sum, logging_config, naming_convention
  from fairseq.models.roberta import RobertaModel
  from gluonnlp.models.roberta import RobertaModel, RobertaForMLM
  from gluonnlp.data.tokenizers import HuggingFaceByteBPETokenizer
label_desc: Use image node_id 4 for calling a global function with example usage: convert_config(fairseq_cfg, vocab_size, cfg) and returns: cfg