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

Quand Google Cloud amène le sujet GenAI par la data

À l'appui de témoignages d'Airbus, Valeo et Worldline, la plénière du Google Cloud Summit Paris…

14 heures ago

GPT-4o : OpenAI ajoute la conversation vocale

OpenAI lance son nouveau modèle GPT-4o avec une capacité de conversation vocale, une application de…

17 heures ago

Un nouveau patron pour AWS… et un nouvel élan ?

Le 3 juin 2024, Matt Garman prendra la tête d'AWS. Il succédera à Adam Selipsky,…

17 heures ago

Fin de parcours pour Workplace, le Teams de Meta

Workplace passera en lecture seule en septembre 2025, puis fermera en juin 2026. Retour sur…

20 heures ago

Teams : Microsoft bientôt face à des accusations antitrust de l’UE ?

Selon le Financial Times, la Commission européenne se prépare à déposer des accusations antitrust formelles…

2 jours ago

OpenAI livre les clés du cadrage de ses modèles

OpenAI a codifié en un document (la « Model Spec ») son approche concernant le…

3 jours ago