There are lots of general-purpose models to use locally, and also coding-specific models.
But are there models specialized in one programming language? My thought was that a model that only needs to handle one language (e.g. Python) could be faster, or be better for a given size.
E.g If I need to code in Rust and is limited to an 8B model to run locally, I was hoping to get better results with a model that is narrower. I don’t need it to be able to help with Java.
This approach would of course require switching models, but that’s no problem for me.
You can still leverage knowledge from a foundation model in a smaller fine-tuned one.
So the model might have learned general OOP principles from Java but it then drops redundant parameters about specific conventions like
AbstractFactoryBuilder
s when it specialises on a language like Python which has no notion of Interfaces.Likewise real world knowledge might help distinguish between accounting and database transactions when writing a banking application but you don’t necessarily need your coding assistant to have memorised all the world cup winners since 1966.
These models are unwieldy so I think it makes a lot of sense to try and find ones that are tuned efficiently.