- Software engineers and developers
- Data analysts and data scientists
- Machine learning and artificial intelligence engineers
- Programmers and developers looking to apply NLP, machine learning, and prompt engineering
to their stack
- How to apply and integrate various LLMs to an organization’s existing data infrastructure
and systems. This includes understanding open-source alternatives to ChatGPT, Sydney,
and Bard.
- Understanding the evolution of transformer architectures and the historical context
behind ChatGPT, including different types of LLMs and their lifecycles (pre-training,
fine-tuning, and inference).
- Familiarity with various machine learning paradigms, including unsupervised, supervised,
self-supervised, and in-context learning.
- Knowledge of different downstream tasks that LLMs can be applied to, such as prediction,
extraction, sequence labeling, sequence transformation, and generation.
- Ability to perform prompt engineering and effective fine-tuning, including prompt
construction, effective completions, and understanding the tradeoffs between zero-shot,
k-shot, domain/knowledge transfer, in-context learning, and supervised fine-tuning.
- Understanding LLMs as components in larger architectures, including their use in embeddings
for dense retrieval, recommendations, clustering, synthetic data generation, negative
mining, and managing model size through knowledge distillation, pruning, and quantization.
- Weekly live sessions via Zoom every Tuesday from 12 - 1:30 p.m. ET (also available
as recordings). Sessions include live instruction with Q&A.
- Hands-on assignments and weekly quizzes to independently practice and hone skills
with programming notebooks.
- Curated readings designed to expand your knowledge about LLMs.
- A complete system that uses both ChatGPT and a search engine to answer questions.
- Attendance requirement: It is highly recommended that participants attend live sessions, but it is not required.
Live sessions will be recorded and available for later viewing.
Prerequisites
- Proficient in reading and writing code in Python. (understanding of different data
types and the basics of object-oriented programming).
- Intermediate to advanced experience with data and machine learning Python libraries
such as Numpy, Scikit-Learn, and Pandas.
- Comfortable working with web applications and big data.
- Experience working with API endpoints and the ability to write a simple Python code
to send requests and parse responses from an endpoint.
Course requirements
These two subscriptions are necessary for this course:
This course will use GPT-3.5-turbo, which charges USD$0.002 to process approximately
one page of text. The total amount spent throughout the course will not exceed USD$10.
Receive a certificate from the University of Waterloo
Upon successful completion of this program, you will receive a professional education
certificate from the University of Waterloo.
Module 1: Basics of LLMs
|
- Understand the evolution of transformer architectures and the historical context behind
ChatGPT: Decoder-only models (e.g., GPT-4), encoder-only models (e.g., BERT), encoder-decoder
models (e.g., T5).
- Understand the use cases for working with different machine learning paradigms (supervised,
self-supervised, in-context learning).
- Explain the lifecycle of LLMs: pre-training, fine-tuning, and inference.
- Know and work with different types of downstream tasks: Text classification, text
similarity, search, question-answering, summarization, translation, and named entity
recognition.
|
Module 2: Prompt engineering and fine-tuning
|
- Construct prompts and effective completions with OpenAI APIs.
- Understand the use cases for working with zero-shot and few-shot in-context learning
approaches.
- Fine-tune and evaluate models in with the Hugging Face Transformers library.
|
Module 3: Picking the right tool for the task
|
- Understand the tradeoffs between zero-shot, k-shot, domain/knowledge transfer, in-context
learning, and supervised fine-tuning.
- Choose the right architecture for the downstream task.
- Understand how to perform knowledge transfer with out-of-distribution datasets.
- Know and work with custom models with further pre-training.
- Know how to adapt case studies to new problems involving multilingual retrieval, QA,
summarization, sequence labeling, machine translation, and other tasks.
|
Module 4: LLMs as components in larger architectures
|
- Understand how to use embeddings for dense retrieval, recommendations, and clustering.
- Explain synthetic data generation and negative mining pipelines.
- Know how to reduce model size via knowledge distillation and quantization.
|
Brian Zimmerman
Course Instructor, WatSPEED
Brian is a current PhD student at the David R. Cheriton School of Computer Science
at the University of Waterloo. He is doing research in controllable text generation
and techniques to more efficiently train large language models. Brian also spent several years as a software engineer based out of San Diego, California,
working on creating an intelligent search interface for government contracts.
Rodrigo Nogueira, PhD
Course Author, WatSPEED
Rodrigo Nogueira was a postdoctoral fellow at the University of Waterloo in Canada
under the guidance of professor Jimmy Lin. He holds a Ph.D. in Computer Science from
New York University, where he was advised by the renowned Professor Kyunghyun Cho.
He is also a computer scientist who serves as an adjunct professor at UNICAMP in Brazil
and consults for multiple companies in the search engine industry. He was a pioneer
in the use of transformers for search, including monoT5, doc2query, and InPars, and
is a co-author of the book "Pre-trained Transformers for Text Ranking."
Throughout his career, Rodrigo has won several IR competitions and made contributions
to the IR and NLP fields through the creation and open sourcing of multilingual models,
such as BERTimbau and PTT5, and datasets, such as mMARCO.
Dr. Jimmy Lin
Cheriton Chair, Cheriton School of Computer Science | Co-director, Waterloo.AI | Course
Author, WatSPEED
Dr. Jimmy Lin is a professor and holds the David R. Cheriton Chair in the David R. Cheriton School
of Computer Science at the University of Waterloo. He also serves as the co-director
of the Waterloo AI Institute, which has the mission to promote cross-disciplinary
research at the frontiers of artificial intelligence and its applications across the
entire campus.
Dr. Lin’s area of research lies at the intersection between natural language processing
and information retrieval. In addition to being one of the most cited artificial intelligence
scholars in the world, he has been frequently and deeply engaged with both the private
and public sectors throughout his career, including an extended sabbatical at Twitter
and visiting positions at the US National Library of Medicine (NLM), part of the National
Institutes of Health (NIH).
He presently serves as the chief technology officer of Primal, a Waterloo-based AI company focused on creating meaning that computers can understand.
Dr. Lin holds a Ph.D. in Electrical Engineering and Computer Science from MIT and
is a fellow of the ACM.