Algorithm Whiteboard Resources
This is where we share notebooks and projects used in our youtube channel.
DIET Architecture - How it Works
Video 1:This video explains the parts of the DIET architecture. It does not discuss any code.
DIET Architecture - Design Decisions
Video 2:This video explains the parts of the DIET architecture. It does not discuss any code.
DIET Architecture - Benchmarks
Video 3:In this video we make changes to a configuration file. The configuration files, the streamlit application as well as an instructions manual can be found in the diet
folder.
Word Embeddings - Letter Embeddings
Video 4:In this video we demonstrate how to train letter embeddings in order to gain intuition on what word embeddings are.
The kaggle dataset that we use in this video can be found here.
We've added the two notebooks in this repo in the letter-embeddings
folder. But you can also run them yourself in google colab. The notebooks are mostly identical but the v1
notebook only uses one token to predict the next one while v2
uses two tokens to predict the next one.
Notebook with one token input:
Notebook with two token input:
Word Embeddings - CBOW & SkipGram
Video 5:This video explains two algorithms but it does not discuss any code.
Word Embeddings - GloVe
Video 6:This video discusses GloVe but also offers code to train a variant of your own. The keras model can be found in the glove
folder.
The glove.py
file contains just the keras algorithm while the notebook
contains the full code. You can also go online to colab
and play with the full notebook from there.
Word Embeddings - WhatLies
Video 7:This video discusses a small visualisation package we've open sourced. The documentation for it can be found here.
The notebook that we made in this video can be found in the whatlies
folder.
Attention - Self Attention
Video 8:This video discusses the idea behind attention (you may notice some similarities with a convolution) but it does not discuss any code.
Attention: Keys, Values, Queries
Video 9:This video discusses how you can add more context to the self attention mechanism by introducing layers. This video does not discuss any code though.
Attention: Multi Head Attention
Video 10:This video explains how you can increase the potential of attention by introducing multiple layers of keys, queries and values. The video does not discuss any code though.
Attention: Transformers
Video 11:Given the lessons from the previous videos, this video wraps everything together by combining everything into a transformer block. There is no code for this video.
StarSpace
Video 12:This video discusses the StarSpace algorithm. The video serves as an introduction to the TED policy. This video contains no code.
TED Policy
Video 13:This video only discusses the theory behind the TED algorithm. The next video will show how TED more on a practical level. This video contains no code.
TED Policy in Practice
Video 14:This video makes use of a rasa project that can be found here. By tuning the history
hyperparameter we see how the chatbot is able
to deal with context switches over a long period in the dialogue.
Response Selection
Video 15:This video explains how a response selection model might make your model more accurate in a FAQ/Chitchat scenario. There is no code for this video.
Response Selection
Video 16:This video explains how a response selection model is implemented internally. There is no code for this video.
CountVectors
Video 17:This video explains why CountVectors are still the unsung hero of natural language processing. There is no code attachment for this video.
Subword Embeddings
Video 18:This video tries to combine the ideas from word embeddings with the idea of countvectors. To reproduce, check out whatlies.
Subword Implementation
Video 19:This video explains how you might implement subword embeddings from a neural network design perspective. There is no code for this video.
BytePair Embeddings
Video 20:This video explains how BytePair embeddings work. If you want to use these embeddings in Rasa please check out rasa-nlu-examples.
Levenshtein Vectors
Video 21:This video explains how count vector mights be turned from sparse into dense layers. While doing this, we also learn that these vectors also encode levensthein distance.
Bias in Word Embeddings
Video 22:This video explains how you might measure gender bias in word embeddings. It's part of a larger series and the code for it can be found in the bias
folder of this repository.
De-Biasing Projections
Video 23:There's a lot of research on how we might remove bias from word-embeddings. In this video we'll discuss one such technique. For the code, check the bias
folder of this repository.
Remain Careful with Debiasing
Video 24:In this video we explain why de-biasing techniques have limits. For the code, check the bias
folder of this repository.
Why Debiasing is Hard
Video 25:In this video we explain why de-biasing techniques have limits. For the code, check the bias
folder of this repository.
Word Analogies
Video 26:In this video we explain why "word analogies" don't really work by merely applying arithmetic on word-vectors. For the code, check the analogies
folder of this repository.
Toxic Language
Video 27:In this video we explain why detecting toxic language is harder than it might seem. Code for the video can be found in the toxic
folder in this repository.
Lexical Ambiguity
Video 28:In this video we explain why detecting, in general, NLP models fall short. Models don't really understand language, they merely model it.
Fallback Detection
Video 29:It's important to understand the limits of our models. They can sometimes tell us when they're uncertain about a prediction and this information should not be ignored.
Language Detection
Video 30:What might an assistant do if it sees a text from a language that it isn't trained on? It might make assumptions because it's unlike anything it has seen before and a standard fallback mechanism might not be able to pick it up.
For the code, check the language
folder of this repository.
Incremental Training
Video 31:Sometimes we don't need to completely retrain our algorithms. At times we can just finetune on new data. In this video we explain how that might be done with DIET.
Bulk Labelling UI
Video 31:This video demonstrates a new feature in our bulk labelling demo. The code can be found here.
Language Agnostic BERT (LaBSE)
Video 32:In this episode, I'll discuss how you might tweak the standard BERT model to accommodate multiple languages at the same time. We'll also demonstrate a pre-trained model that you can use right away! If you're interested in the paper, you can find it here.
Iterate on Data
Video 33:Instead of debugging a model, it might be much more effective to consider debugging your data. In this video, we'll discuss some techniques that you can start with while also demonstrating some new features in Rasa X.
Meaningful Benchmarks
Video 34:It's easy to get distracted when you go down the rabbit hole of performance statistics. But! Not every impressive benchmark is meaningful and it's important to make the distinction. In this video, we're going to explore one benchmark to demonstrate what we mean by this.
The code for this can be found in the intent-benchmark
folder.
Model Confidence
Video 35:If we're going to apply a fallback, we better make sure that we have a good measure for confidence. In this video we explain an update that we've made to DIET that makes the confidence measure a more representative number.
FlashText Entity Extraction
Video 36:If we're going to apply a fallback, we better make sure that we have a good measure for confidence. In this video we explain an update that we've made to DIET that makes the confidence measure a more representative number.