4.65 (76 reviews)
☑ Generate assessments like MCQs, True/False questions etc from any content using state-of-the-art natural language processing techniques.
☑ Apply recent advancements like BERT, OpenAI GPT-2, and T5 transformers to solve real-world problems in edtech.
☑ Use NLP libraries like Spacy, NLTK, AllenNLP, HuggingFace transformers, etc.
☑ Deploy transformer models like T5 to production in a Serverless fashion by ONNX quantization and by dockerizing them using FastAPI.
☑ Use Google Colab environment to run all these algorithms.
This course focuses on using state-of-the-art Natural Language processing techniques to solve the problem of question generation in edtech.
If we pick up any middle school textbook, at the end of every chapter we see assessment questions like MCQs, True/False questions, Fill-in-the-blanks, Match the following, etc. In this course, we will see how we can take any text content and generate these assessment questions using NLP techniques.
This course will be a very practical use case of NLP where we put basic algorithms like word vectors (word2vec, Glove, etc) to recent advancements like BERT, openAI GPT-2, and T5 transformers to real-world use.
We will use NLP libraries like Spacy, NLTK, AllenNLP, HuggingFace transformers, etc.
All the sections will be accompanied by easy to use Google Colab notebooks. You can run Google Colab notebooks for free on the cloud and also train models using free GPUs provided by Google.
This course will focus on the practical use cases of algorithms. A high-level introduction to the algorithms used will be introduced but the focus is not on the mathematics behind the algorithms.
A high-level understanding of deep learning concepts like forward pass, backpropagation, optimizers, loss functions is expected.
Strong Python programming skills with basic knowledge of Natural Language processing and Pytorch is assumed.
The course outline :
➤ Generate distractors (wrong choices) for MCQ options
Students will use several approaches like Wordnet, ConceptNet, and Sense2vec to generate distractors for MCQ options.
➤ Generate True or False questions using pre-trained models like sentence BERT, constituency parser, and OpenAI GPT-2
Students will learn to use constituency parser from AllenNLP to split any sentence. They will learn to use GPT-2 to generate sentences with alternate endings and filter them with Sentence BERT.
➤ Generate MCQs from any content by training a T5 transformer model using the HuggingFace library.
Students will understand the T5 transformer algorithm and use SQUAD dataset to train a question generation model using HuggingFace Transformers library and Pytorch Lightning.
➤ Generate Fill in the blanks questions
Students will learn to use Python Keyword extraction library to extract keywords, use flashtext library to do fast keyword matching, and visualize fill-in-the-blanks using HTML ElementTree in Colab
➤ Generate Match the following questions.
Students will learn to use Python Keyword extraction library to extract keywords, use flashtext library to do fast keyword matching, and use BERT to do word sense disambiguation (WSD).
➤ Deploy question generation models to production.
Deploy transformer models like T5 to production in a serverless fashion by converting them to ONNX format and performing quantization. Create lightweight docker containers using FastAPI for transformer model and deploy on Google Cloud Run.
Introduction to the Course
Code and Dataset Link
Generate distractors (wrong choices) for MCQ options
Theory - Generate distractors using wordnet
Code - Generate Distractors using Wordnet
Theory - Generate distractors using Conceptnet
Code - Generate distractors using Conceptnet
Theory - Generate distractors using Sense2vec
Code - Generate distractors using Sense2vec
Assignment - Filter the distractors from Sense2vec
Assignment Solution - Filter the distractors from Sense2vec
Generate True or False Questions using Constituency Parsing and OpenAI GPT2
Introduction - Generate True or False Questions
Theory - Constituency Parsing and OpenAI GPT2
Code - Split a sentence using constituency parsing
Code - Another example to split a sentence using constituency parsing
Code - Generate alternate endings to a split sentence using OpenAI GPT2
Assignment - Sort the generated sentences in the order of dissimilarity
Assignment Solution - Sort the generated sentences using Sentence BERT
Train a question generation model using T5 transformer
Introduction to T5 - Text to text transfer transformer
Training methodology, dataset and decoding methods for text generation
Code - Download SQUAD dataset and preprocess
Code - Understanding T5 Tokenizer
Code - Prepare Pytorch Dataset class for T5
Code - Train T5 transformer model
Code - Use the trained T5 model to perform inference
Generate Fill in the blanks questions from any content
Generate fill in the blanks - Theory
Generate fill in the blanks - Code
Generate Match the following questions from any content
Generate Match the following - Theory
Extract keywords from any content - Code
BERT Word Sense Disambiguation (WSD) - Code
Exceptional work done on this topic by Ramsri, really knows he field and helped answer all my questions.
I liked the content but I wish it ended with the project. It feels like a half-baked idea that needs a final topic/ section that brings everything together
To the point and every theoretical session is followed by a coding example. The instructor lives up to the expectations. I recommend this course to anyone who is looking for hands on examples.
This really was a short, sweet and a crisp one to add to my existing NLP knowledge base kitty :). Have definitely learned a lot of new things through this course. The tutor has completely fulfilled everything that was promised. I would have loved to see some UI built around (either using Flask/Streamlit or anything else). I am hoping that one day, there will be a new topic added to this course for making some of the models explained Production ready.