Comment by mirekrusin
5 hours ago
Post training is general purpose method, same process that original authors used - that's not the case with binaries.
5 hours ago
Post training is general purpose method, same process that original authors used - that's not the case with binaries.
I think opening something in the hex editor, changing necessary bytes and saving it is as general purpose as it gets. You usually don't distribute it (I remember they days when it was common however) due to law, so in practice people write code that hot-patches stuff after starting the process.
You can also just open gdb and patch the process on the fly when you need to do things.
At the end of the day there isn't much hard difference between source code and binary code. By design source code is usually easier to read and write, but it's all syntax sugar and transformations all the way down.
Same as "airplanes are made to be used as submarines" – you just need hammer and few other tools and you're good to go.
RedHat and Ubuntu has kernel hot-patching. That's a case with binaries.
You're conflating runtime patching with continuing development.
Post training directly evolves existing model weights using the same optimization process that created them.
Software: source code -> compiler -> binary
Models: weights + training data + optimizer -> updated weights
Ie. binary is output of the development process.
Model weights are both – it's output and it's direct input for further development.
Model weight snapshots are continuously used all the time in this iterative process from the very beginning, being output of current step and input to the next step.