Pour gérer vos consentements :
Categories: ChatGPT

llamafile, un projet pour des LLM vraiment « portables »

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.

Mistral, LLaVA et WizardCoder mis au régime llamafile

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

Recent Posts

Vers des mises à jour cumulatives intermédiaires pour Windows

Pour réduire la taille des mises à jour de Windows, Microsoft va mettre en place…

25 minutes ago

RH, finances, stratégie… Les complexités de la Dinum

De l'organisation administrative à la construction budgétaire, la Cour des comptes pointe le fonctionnement complexe…

20 heures ago

SpreadSheetLLM ou la promesse d’une GenAI plus à l’aise avec Excel

Sous la bannière SpreadSheetLLM, Microsoft propose un framework destiné à optimiser le traitement des feuilles…

21 heures ago

Comment AT&T a payé une rançon pour le vol de ses données

Selon le magazine Wired, AT&T aurait payé près de 400 000 $ à un pirate…

23 heures ago

Banni, Kaspersky quitte les États-Unis

Confronté à un bannissement généralisé, Kaspersky va se retirer progressivement du marché américain, à partir…

1 jour ago

La « coche bleue », mais pas que : X accusé d’enfreindre le DSA

Voilà X officiellement accusé d'infractions au DSA. La Commission européenne ne valide pas le système…

2 jours ago