Course Description
This course provides an in-depth introduction to deep learning techniques for natural language processing. The course will cover the latest advances in deep learning research for NLP, with a focus on pre-trained language models and fine-tuning. Students will gain hands-on experience in developing deep learning models for a variety of NLP tasks using PyTorch and Hugging Face’s Transformers library. The course will also cover reinforcement learning for NLP and its application in ChatGPT.
Learning Goals
- Understand the latest advances in deep learning research for NLP
- Develop deep learning models for a variety of NLP tasks using PyTorch and Hugging Face’s Transformers library
- Understand the concepts of pre-trained language models and fine-tuning
- Understand reinforcement learning for NLP and its application in ChatGPT
Grading
- Participation: 10%
- Midterm: 30%
- Term Project: 60%
Final Project
For the final project, students will work on a real-world NLP problem and develop a deep learning model to solve it. The project will involve pre-processing a dataset, fine-tuning a pre-trained model or developing a custom model, and evaluating the model’s performance. The project report will be presented in a research paper format.
Prerequisites
- Basic knowledge of Python programming language
- Basic understanding of deep learning and neural networks
- Familiarity with PyTorch or other deep learning frameworks
Course Outline
Week 1: Introduction
- Course overview and introduction to NLP with deep learning
- Introduction to Python and PyTorch for deep learning
- Introduction to Hugging Face and the transformers library
Week 2: Getting Started with Hugging Face
- Overview of Hugging Face’s transformers library
- Building and training a simple classification model
Week 3: Zero Shot, Prompt, and Search Strategies
- Introduction to zero-shot learning for NLP
- Using prompt-based and search-based strategies for NLP tasks
Week 4: What is BLOOM?
- Overview of the BLOOM algorithm for NLP
- Building a BLOOM model for a text classification task
- Working with BLOOM on various NLP tasks
Week 5: Transformers
- Introduction to the transformer architecture
- Building a transformer model for a text classification task
Week 6: BERT: Bidirectional Encoder Representations from Transformers
- Overview of the BERT model and its architecture
- Fine-tuning BERT for various NLP tasks
Week 7: T5: Text-To-Text Transfer Transformer
- Overview of the T5 model and its architecture
- Fine-tuning T5 for various NLP tasks
Week 8: Midterm
Week 9: Tokenization
- Introduction to tokenization and its importance in NLP
- Overview of various tokenization techniques
Week 10: SentencePiece Tokenizer
- Introduction to the SentencePiece tokenizer and its applications
- Building custom tokenizers with SentencePiece
Week 11: ByT5: Towards a Token-Free Future with Pre-Trained Byte-to-Byte Models
- Overview of the ByT5 model and its architecture
- Fine-tuning ByT5 for various NLP tasks
Week 12: ChatGPT: Generative Pre-trained Transformer 3
- Introduction to the ChatGPT model and its architecture
- Fine-tuning ChatGPT for conversational AI applications
Week 13: Reinforcement Learning for ChatGPT
- Introduction to reinforcement learning and its applications in NLP
- Reinforcement learning with ChatGPT for dialogue generation
Week 14: Pretrained Language Models
- Overview of pre-trained language models and their applications in NLP
- Introduction to transfer learning and fine-tuning pre-trained models
Week 15: Conclusion
- Overview of recent advances in deep learning for NLP
- Discussion of current research topics and trends
- Examining the future of deep learning in NLP