def METHOD_NAME(self):
    config_dict = {
        "train_batch_size": 2,
        "steps_per_print": 1,
        "optimizer": {
            "type": "Adam",
            "params": {
                "lr": 0.00015,
                "weight_decay": 0.01
            }
        },
        "gradient_clipping": 1.0,
        "fp16": {
            "enabled": True,
            "loss_scale": 0,
            "initial_scale_power": 16
        },
        "data_efficiency": {
            "enabled": True,
            "seed": 1234,
            "data_sampling": {
                "enabled": True,
                "num_workers": 0,
                "curriculum_learning": {
                    "enabled": True,
                    "data_cluster_path": "/tmp",
                    "curriculum_metrics": {
                        "dummy_metric": {
                            "index_to_sample_path": "dummy",
                            "index_to_metric_path": "dummy",
                            "difficulty_type": "value",
                            "clustering_type": "single_cluster",
                            "min_difficulty": 2,
                            "max_difficulty": 10,
                            "schedule_type": "fixed_root",
                            "schedule_config": {
                                "total_curriculum_step": 8,
                                "difficulty_step": 2,
                                "root_degree": 1
                            }
                        }
                    }
                }
            }
        }
    }
    def data_post_process(data, data_sampler_state_dict):
        assert 'dummy_metric' in data_sampler_state_dict['current_difficulties']
        return data
    hidden_dim = 10
    model = SimpleModel(hidden_dim)
    dataset = random_dataset(20, hidden_dim, torch.device('cpu'), dtype=torch.half)
    model, _, data_loader, _ = deepspeed.initialize(config=config_dict,
                                                    model=model,
                                                    training_data=dataset,
                                                    model_parameters=model.parameters(),
                                                    mpu=MPU(1))
    if model.mpu.get_data_parallel_rank() == 0 and not os.path.exists('/tmp'):
        os.makedirs('/tmp')
    model.set_data_post_process_func(data_post_process)
    for n, batch in enumerate(data_loader):
        x = batch[0].to(get_accelerator().current_device_name())
        y = batch[1].to(get_accelerator().current_device_name())
        loss = model(x, y)
        model.backward(loss)
        model.step()
        if n >= 10:
            break