BERT (Bidirectional Encoder Representations from Transformers) is a very large and complicated neural network architecture composed of extremely simple mathematical operations that can be utilized towards various NLP tasks. It has an encoder-decoder architecture that is modified to form a question-answering tool. Encoder-decoder forms the base of the language modeling architecture that we have used. It is a type of neural network that takes a variable-length input belonging to one topological space and produces another variable-length output belonging to another topological space. Given its versatility, encoderdecoder opens the door for various interesting applications such as language modeling, image captioning, translation, etc.