Faire la synthèse entre les formats binaires d’UNIX, Windows et macOS ? C’est l’objectif du projet APE (Actually Portable Executable), qu’on doit à Justine Tunney.
Sur cette base, l’intéressée a donné corps à une autre initiative : Cosmopolitan. Son but : faire de C un langage vraiment « portable ». Le principe : reconfigurer GCC et Clang pour produire un format POSIX utilisable sur de multiples OS (Linux, macOS, Windows, FreeBSD, OpenBSD, NetBSD) et architectures CPU (AMD64/ARM64)*.
Appliqué au framework llama.cpp, Cosmopolitan permet de distribuer des LLM (poids + code d’inférence) en un seul fichier, exécutable sans installation. C’est l’objet du projet llamafile. Une première version vient de faire son entrée, avec le soutien de Mozilla. Elle est sous licence Apache 2.0 – l’adaptation de llama.cpp étant quant à elle sous licence MIT.
Trois exemples de « llamafiles » sont fournis, pour Mistral 7B Instruct, LLaVA 1.5 et WizardCoder-Python-13B. Deux options : une version CLI fonctionnant dans le terminal et une version serveur à laquelle on accède dans un navigateur (localhost:8080).
Les llamafiles peuvent embarquer les poids (support de PKZIP ajouté à la bibliothèque GGML). Ces derniers sont alors mappés directement en mémoire (le script extrait un loader).
On peut aussi utiliser des poids externes. Cela permet notamment de passer outre la limite de taille d’exécutable sur Windows (4 Go).
En matière de sécurité, llamafile apporte une sandbox à llama.cpp avec seccomp-pledge. C’est pour le moment pris en charge sur les environnements Linux et OpenBSD sans GPU.
Le serveur HTTP ne peut quant à lui pas accéder au système de fichiers. Idem pour la commande CLI principale, qui ne peut par ailleurs pas accéder au réseau.
Pour permettre une telle portabilité, Cosmopolitan utilise la liaison statique. Un défi pour la prise en charge des GPU. Aussi, llamafile s’appuie sur le compilateur du système hôte (Xcode pour Apple Silicon, nvcc pour les autres plates-formes).
* CPU compatibles SSE3 (Intel Core, AMD Bullzdozer) et ARMv8a+
Illustration © Jamie – Adobe Stock
Pour réduire la taille des mises à jour de Windows, Microsoft va mettre en place…
De l'organisation administrative à la construction budgétaire, la Cour des comptes pointe le fonctionnement complexe…
Sous la bannière SpreadSheetLLM, Microsoft propose un framework destiné à optimiser le traitement des feuilles…
Selon le magazine Wired, AT&T aurait payé près de 400 000 $ à un pirate…
Confronté à un bannissement généralisé, Kaspersky va se retirer progressivement du marché américain, à partir…
Voilà X officiellement accusé d'infractions au DSA. La Commission européenne ne valide pas le système…