Chapter 12.3 - Mapping TF to PyTorch
Overview
Sometimes, an incredibly smart AI was trained by Google in a language called TensorFlow. But we are building our model in PyTorch! We need to translate the AI's brain (its weights) from TensorFlow language to PyTorch language.
Why we do it
Rationale
OpenAI spent millions of dollars training GPT-2 in TensorFlow. We don't want to spend millions of dollars training our own from scratch! So, we just download their smart brain and carefully map their TensorFlow names to our PyTorch names.
How we do it
Methodology
We create a dictionary (like a translation book). We say, "Hey, whenever you see a weight named h0/attn/c_attn/w in TensorFlow, put it inside our PyTorch layer named transformer.h.0.attn.c_attn.weight."
# A simple translation dictionary!
name_map = {
"h0/attn/c_attn/w": "transformer.h.0.attn.c_attn.weight",
"h0/ln_1/b": "transformer.h.0.ln_1.bias"
}
print("We know exactly where to plug in the smart weights!")