Wer ein Modell auf dem eigenen Rechner laufen lässt, nutzt mit gutem Grund llama.cpp darunter, ob direkt installiert oder über eine App, die darauf aufbaut. Das Projekt hat nun Version 1.0.0 seiner Bibliotheken veröffentlicht und sich auf semantische Versionierung festgelegt. Das klingt nach Verwaltungsarbeit, ist für alle, die darauf aufbauen, aber ein Versprechen darüber, wann etwas kaputtgeht.
Die Regeln sind einfach und stehen in der Ankündigung. Eine inkompatible Änderung an der öffentlichen C-API, also den Headern im include-Ordner, erhöht die Hauptversion. Abwärtskompatible Funktionen, Backend-Updates, neue Modellunterstützung und API-Erweiterungen erhöhen die Nebenversion. Fehlerbehebungen ohne API-Änderung erhöhen die Patch-Nummer. Dieselben Regeln gelten für ggml, die Machine-Learning-Engine darunter, und für die übrigen ggml-org-Projekte. Das Team will Inkompatibilitäten bei API und ABI strenger kennzeichnen.
Der Grund ist die Größe. In den dreieinhalb Jahren seit dem Start hat llama.cpp eine lange Liste abhängiger Projekte gewonnen, und laut Beitrag unterstützt es inzwischen mehr als 150 Architekturvarianten und alle gängigen Verfahren für spekulatives Dekodieren. Auch die Verteilung wird breiter: Builds gibt es für Docker, Debian, Homebrew, conda-forge, MacPorts, Winget und als XCFramework für Apple-Plattformen. Getestet wird auf Infrastruktur von Hugging Face mit eigenen Maschinen, unterstützt von NVIDIA, AMD, Qualcomm, Arm, IBM und Intel.
Für die Werkzeuge, die wir besprechen, ist das unauffällig, aber wichtig. Ollama und LM Studio greifen auf llama.cpp und ggml zurück, ebenso viele kleinere Desktop-Apps. Bisher musste man Changelogs genau lesen, um eine Schnittstellenänderung zu erkennen. Eine Versionsnummer, die Brüche anzeigt, erlaubt diesen Projekten häufigere Updates mit weniger Risiko, sodass neue Modellunterstützung schneller bei Endnutzern ankommen sollte. Das Team bei Hugging Face liefert außerdem eigene Llama-Desktop-Apps für macOS und Windows.
Die Grenzen sollte man benennen. Semantische Versionierung ist eine Zusage, keine Garantie, und sie betrifft die C-API, nicht jede Verhaltensänderung bei Qualität oder Tempo. Zu den Kommandozeilenwerkzeugen und Server-Optionen, die viele direkt nutzen, sagt sie nichts. Ein Kommentator merkte an, dass sehr lange Prompts weiterhin langsamer verarbeitet werden, als man sich wünscht, und Version 1.0.0 beansprucht nicht, das zu lösen.