Weights are the source, training data is the compiler

Training data == source code, training algorithm == compiler, model weights == compiled binary.

Training algorithm is the programmer, weights are the code that you run in an interpreter

isn't it more like the data is the source, the training process is the compiler, and the weights are the binary output.