Ce qui se passe
Les mainteneurs de llama.cpp publient la version 1.0.0 de leurs deux bibliothèques : libllama (llama.cpp, l'inférence de LLM en C/C++) et libggml (ggml, la bibliothèque de tenseurs). Leur raison, en trois ans et demi d'existence : de plus en plus d'applications s'appuient sur ces interfaces, et leurs auteurs ont besoin d'une API stable. À partir de maintenant, les deux projets signalent par un changement de version majeure toute incompatibilité d'API ou d'ABI.
La règle de versions
Le projet applique le semantic versioning, selon le tableau suivant :
| Changement | Incrément |
|---|---|
Rupture de l'API C publique dans ./include |
majeur |
| Fonctionnalité compatible, mise à jour de backend, prise en charge d'un modèle, ajout à l'API | mineur |
| Correction de bug sans changement d'API | correctif |
Les en-têtes publics sont dans llama.cpp/include/ pour libllama et dans ggml/include/ pour libggml.
Ce que ça change pour vous
Si vous écrivez une application, des bindings ou un paquet qui dépend de libllama, vous pouvez désormais borner la dépendance à la version majeure 1 (>=1.0,<2, selon votre outil) et compter sur le fait qu'une mise à jour mineure ne cassera pas la compilation. Le billet précise aussi que le projet sera plus strict sur ces frontières à mesure que l'adoption grandit.
Distribution et couverture
Le billet liste les canaux par lesquels le logiciel arrive :
- binaires de pré-version : Linux, macOS, Windows, Android, iOS ;
- Docker (Linux), Debian (Linux), Homebrew (macOS, Linux), conda-forge (Windows, macOS, Linux), MacPorts (macOS), Winget (Windows) ;
- XCFramework pour iOS et macOS.
Côté modèles, plus de 150 variantes d'architecture sont prises en charge, avec toutes les méthodes courantes de décodage spéculatif. Chaque backend de ggml peut être compilé comme bibliothèque dynamique et chargé à l'exécution. Pour suivre le rythme, l'intégration continue ajoute des runners auto-hébergés sur les grandes plateformes matérielles, avec le soutien de NVIDIA, AMD, Qualcomm, Arm, IBM et Intel.
Limites
La règle ne vise que l'API C des en-têtes publics. Le billet ne dit rien de la stabilité des options de la ligne de commande ou du serveur HTTP : ne supposez pas qu'elles sont couvertes. Il s'agit aussi d'une promesse d'équipe, pas d'un changement de fonctionnalités : rien dans ce billet n'indique de gain de vitesse ou de nouveau modèle.
Source : Hugging Face, billet des mainteneurs, en anglais.