def METHOD_NAME(model, module_dict, prefix):
    fx_white_list = get_default_qconfig_propagation_list()
    ignore_list = []
    if is_hf_model:
        import transformers
        ignore_list.extend([transformers.models.gpt2.modeling_gpt2.GPT2Attention, transformers.models.t5.modeling_t5.T5DenseActDense])
    def _get_sub_module(model, module_dict, prefix, sub_module_list):
        for name, module in model.named_children():
            quant_wrap_flag = False
            if type(module) in ignore_list:
                continue
            op_name = prefix + "." + name if prefix != "" else name
            if op_name not in module_dict:
                continue
            if type(module) in fx_white_list and type(module) != torch.nn.Sequential:
                module = QuantWrapper(module)
                quant_wrap_flag = True
            try:
                graph_module = torch.fx.symbolic_trace(module)
                if not quant_wrap_flag and str(module.get_submodule).count("\n") != str(graph_module.get_submodule).count("\n"):
                    continue
                _fuse_fx(graph_module, False)
                setattr(model, name, module)
                sub_module_list.append(op_name)
            except:
                module = _get_sub_module(module, module_dict, op_name, sub_module_list)
                setattr(model, name, module)
        return model
    sub_module_list = []
    model = _get_sub_module(model, module_dict, prefix, sub_module_list)
    return model, sub_module_list