## End-to-End Training of Neural Retrievers for Open-Domain Question Answering
Below we present the steps to run unsupervised and supervised trainining and evaluation of the retriever for [open domain question answering](https://arxiv.org/abs/2101.00408).
Below we present the steps to run unsupervised and supervised training and evaluation of the retriever for [open domain question answering](https://arxiv.org/abs/2101.00408).
print(f"Checking step {step} against expected {i}")
iftest_type==TypeOfTest.APPROX:
assertactual_list[step]==pytest.approx(expected=expected_list[i],rel=self.margin_loss),f"{self.job_name} : The loss at step {step} should be approximately {expected_list[i]} but it is {actual_list[step]}."
assertactual_val==pytest.approx(expected=expected_val,rel=self.margin_loss),f"The loss at step {step} should be approximately {expected_val} but it is {actual_val}."
else:
assertactual_list[step]==expected_list[i],f"The value at step {step} should be {expected_list[i]} but it is {actual_list[step]}."
assertactual_val==expected_val,f"The value at step {step} should be {expected_val} but it is {actual_val}."