Hacker News
points by mirekrusin 14 hours ago | 0 comments
Can you evolve binary like you can post train weights?
[–] Muromec 14 hours ago
You can read and edit binary code just fine, it's much easier with AI too
[–] mirekrusin 14 hours ago
Do you have examples you can point to?

For example there are more than 100k modified weights on hugging face.

[–] Muromec 13 hours ago
[–] mirekrusin 12 hours ago
Modding isn't equivalent to post-training. Modders write new code, replace assets, patch existing instructions etc. With model weights you can continue original training process – directly optimizing existing artifact to acquire new behavior. There's no equivalent general-purpose process for a compiled binaries.
[–] Wheen 14 hours ago
It's usually against the license to redistribute modified binaries. There are few pieces of software (I cannot think of any) that allow redistribution of modified binaries, but aren't open source.

As a result, in practice, the only example I can think of is cracks for pirated software.

[–] teiferer 14 hours ago
Indeed.

You can hardly re-create the binary from a suitable source, just like the weights just fell from the sky. But you can change the binary (patch the machine code) just like you can adjust the weights. The comparison is quite apt.

[–] bayindirh 14 hours ago
The whole reverse engineering and cracking scene is built upon this premise, you know.
[–] Muromec 14 hours ago
don't forget game modding. it's the only way it even works
[–] mirekrusin 13 hours ago
Post training is general purpose method, same process that original authors used - that's not the case with binaries.
[–] Muromec 13 hours ago
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.

[–] mirekrusin 12 hours ago
Same as "airplanes are made to be used as submarines" – you just need hammer and few other tools and you're good to go.
[–] bayindirh 13 hours ago
RedHat and Ubuntu has kernel hot-patching. That's a case with binaries.
[–] mirekrusin 13 hours ago
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.

[–] losvedir 14 hours ago
Calling it a "cracking scene" shows the different, though. Open weight models are intended to be used this way.
[–] simias 14 hours ago
Hotpatching binaries used to be common. It's less so in the modern age but mainly because we moved software to higher levels of abstractions, virtual machines and interpreters, and also because rebuilding even a massive project from source is achievable on commodity hardware. You can still see various hotpatching schemes being developed, for instance to allow partial recompile of the sources while developping.

If in 2080 we can retrain Opus 129.5 directly on dev machines from scratch in <2h, I doubt many will bother messing with the weights directly.