<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 1. Load DataBunch
You have to redefine or import any custom you defined in the last step, because the data bunch is going to look for that.
Step1:  2. Instantiate Language Model
We are going to use the awd_lstm with the default parameters listed in the config file below
Step2:  3. Train Language Model
Find the best learning rate
Step3:  Define callbacks
Step4:  Train Model
Note
<ASSISTANT_TASK:>
Python Code:
def pass_through(x):
    return x
data_lm = load_data(path, bs=120)
Explanation: 1. Load DataBunch
You have to redefine or import any custom you defined in the last step, because the data bunch is going to look for that.
End of explanation
learn = language_model_learner(data=data_lm,
                               arch=AWD_LSTM,
                               pretrained=False)
Explanation: 2. Instantiate Language Model
We are going to use the awd_lstm with the default parameters listed in the config file below:
End of explanation
learn.lr_find()
learn.recorder.plot()
best_lr = 1e-2 * 2
Explanation: 3. Train Language Model
Find the best learning rate
End of explanation
escb = EarlyStoppingCallback(learn=learn, patience=5)
smcb = SaveModelCallback(learn=learn)
rpcb = ReduceLROnPlateauCallback(learn=learn, patience=3)
sgcb = ShowGraph(learn=learn)
csvcb = CSVLogger(learn=learn)
callbacks = [escb, smcb, rpcb, sgcb, csvcb]
Explanation: Define callbacks
End of explanation
learn.fit_one_cycle(cyc_len=1,
                    max_lr=1e-3,
                    tot_epochs=10,
                    callbacks=callbacks)
Explanation: Train Model
Note: I don't actually do this in a notebook.  I execute training from a shell script at the root of this repository run_train.sh
End of explanation
<END_TASK>