def METHOD_NAME():
    parser = argparse.ArgumentParser(description='onnx squad')
    parser.add_argument('--model_path', required=True, help='model path')
    parser.add_argument('--save_path', type=str, default='bertsquad_tune.onnx', 
                        help='save tuned model path')
    parser.add_argument('--data_path', type=str,
                        help='datseset path')
    parser.add_argument('--tune', action='store_true', default=False, 
                        help='run neural_compressor tune')
    parser.add_argument('--benchmark', action='store_true', default=False,
                        help='run benchmark')
    parser.add_argument('--mode', type=str, default='performance',
                        help="benchmark mode of performance or accuracy")
    parser.add_argument('--benchmark_nums', type=int, default=1000,
                        help="Benchmark numbers of samples")
    parser.add_argument('--batch_size', type=int, default=1, 
                        help="batch size for benchmark")
    args = parser.parse_args()
    model = onnx.load(args.model_path)
    predict_file = 'dev-v1.1.json'
    input_file=os.path.join(args.data_path, predict_file)
    eval_examples = read_squad_examples(input_file=input_file)
    vocab_file = os.path.join('uncased_L-12_H-768_A-12', 'vocab.txt')
    tokenizer = tokenization.FullTokenizer(vocab_file=vocab_file, do_lower_case=True)
    input_ids, input_mask, segment_ids, extra_data = convert_examples_to_features(eval_examples, tokenizer, 
                                                                            max_seq_length, doc_stride, max_query_length)
    dataset = squadDataset(eval_examples, input_ids, input_mask, segment_ids, 1) 
    eval_dataloader = DataLoader(dataset, batch_size=args.batch_size)
    def eval_func(model):
        return evaluate_squad(model, eval_dataloader, input_ids, eval_examples, extra_data, input_file)
    if args.tune:
        from neural_compressor import quantization, PostTrainingQuantConfig
        config = PostTrainingQuantConfig(approach='dynamic')
        q_model = quantization.fit(model, 
                                   config,
                                   eval_func=eval_func)
        q_model.save(args.save_path)
    if args.benchmark:
        model = onnx.load(args.model_path)
        if args.mode == 'performance':
            from neural_compressor.benchmark import fit
            from neural_compressor.config import BenchmarkConfig
            conf = BenchmarkConfig(iteration=100,
                                cores_per_instance=4,
                                num_of_instance=1)
            fit(model, conf, b_dataloader=eval_dataloader)
        elif args.mode == 'accuracy':
            acc_result = eval_func(model)
            print("Batch size = %d" % args.batch_size)
            print("Accuracy: %.5f" % acc_result)