Aller au contenu
Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

llamafile est un projet complètement barré qui va vous permettre de transformer des modèles de langage en exécutables. Derrière se cache en fait la fusion de deux projets bien badass : llama.cpp, un framework open source de chatbot IA, et Cosmopolitan Libc, une libc portable pour compiler des programmes C multiplateformes. En combinant astucieusement ces deux technos, les petits gars de Mozilla ont réussi à pondre un outil qui transforme les poids de modèles de langage naturel en binaires exécutables.

Imaginez un peu, vous avez un modèle de langage qui pèse dans les 4 gigas, dans un format .gguf (un format couramment utilisé pour les poids de LLM). Et bien avec llamafile, vous pouvez le transformer en un exécutable standalone qui fonctionnera directement sur le système sur lequel il est sans avoir besoin d’installer quoi que ce soit. Ça va permettre de démocratiser l’utilisation et la diffusion des LLM.

Et niveau portabilité, c’est le feu puisque ça tourne sur six OS, de Windows à FreeBSD en passant par macOS. Les devs ont bien bossé pour que ça passe partout, en résolvant des trucs bien crados comme le support des GPU et de dlopen() dans Cosmopolitan et croyez-moi (enfin, croyez-les) ça n’a pas été une mince affaire !

Niveau perf aussi c’est du brutal ! Sur Linux llamafile utilise pledge() et SECCOMP pour sandboxer le bousin et empêcher les accès fichiers non désirés et avec les derniers patchs de Justine Tunney, la perf CPU pour l’inférence en local a pris un boost de malade du genre 10 fois plus rapide qu’avant. Même sur un Raspberry Pi on peut faire tourner des petits modèles à une vitesse honnête.

Allez, assez parlé, passons à la pratique !

Voici comment tester vous-même un llamafile en un rien de temps :

  1. Téléchargez l’exemple de llamafile pour le modèle LLaVA (licence : LLaMA 2, OpenAI) : llava-v1.5-7b-q4.llamafile (3,97 Go). LLaVA est un nouveau LLM qui peut non seulement discuter, mais aussi analyser des images que vous uploadez. Avec llamafile, tout se passe en local, vos données ne quittent jamais votre PC.
  2. Ouvrez le terminal de votre ordinateur.
  3. Si vous êtes sous macOS, Linux ou BSD, vous devrez autoriser l’exécution de ce nouveau fichier. (À faire une seule fois) :
    chmod +x llava-v1.5-7b-q4.llamafile
  4. Sous Windows, renommez simplement le fichier en ajoutant « .exe » à la fin.
  5. Lancez le llamafile, par exemple :
    ./llava-v1.5-7b-q4.llamafile
  6. Votre navigateur devrait s’ouvrir automatiquement sur une interface de chat. (Sinon, ouvrez-le et allez sur http://localhost:8080)
  7. Quand vous avez fini, retournez dans le terminal et faites Ctrl-C pour arrêter llamafile.

Évidemment, Mozilla ne compte pas s’arrêter là et continue de bosser comme des dingues pour suivre le rythme des nouveaux modèles qui sortent et avec le support des dernières architectures dès leur sortie.

Il est même prévu qu’on puisse bientôt générer nos propres llamafiles en un seul clic ! D’ailleurs, Hugging Face est déjà dans la boucle pour héberger tout ce petit monde. Bref, je vous le dis, les amis, llamafile est un projet à suivre absolument !

Alors on dit merci qui ?

Merci Mozilla ! 🙏🦊


Je viens de regarder une chouette vidéo de Monsieur Plouf sur le marché de revente de clés de logiciels et jeux vidéos et comme j’ai appris pleins de trucs, et bien je la partage avec vous. Perso, je m’étais jamais intéressé au sujet plus que ça car je ne suis pas gamer mais je pensais quand même que c’était un truc réglo.

Alors, c’est quoi ce marché gris dont il parle ?

En gros, c’est un peu comme les brocantes du dimanche matin, sauf qu’au lieu de chiner des vieilles babioles, on chine des clés de jeux pas chères. Ces clés permettent d’activer un jeu sur une plateforme comme Steam et normalement, elles sont fournies par les développeurs ou les éditeurs. Mais sur le marché gris dont parle Monsieur Plouf, elles débarquent d’on ne sait où, revendues par ces sites un peu louches.

Kinguin, G2A, Instant Gaming… etc, vous les connaissez peut-être, ce sont les principaux acteurs du marché gris, et ils ne sont pas vraiment copains avec les développeurs ni les éditeurs car ils revendent des clés sans leur accord, et souvent à des prix défiant toute concurrence. Pour y parvenir, ces sites achètent en réalité des clés dans des pays où les jeux sont moins chers, genre en Argentine ou en Turquie, ou en récupère via des fuites diverses et variées pour les revendre partout ailleurs. Des combines pas très réglo que développeurs ne voient pas d’un bon œil.

Bref, si vous pouvez éviter, c’est mieux surtout que Steam est parti en guerre contre ça et risque de désactiver vos clés, donc autant être patient et attendre les soldes.


Je vous ai déjà parlé à plusieurs reprises de Subsonic, un logiciel qui permet de monter sur votre serveur un clone de Spotify / Deezer / Apple Music… Et évidemment, qui dit serveur, dit client !

Et l’un des meilleurs clients du moment, c’est Submariner. Il fonctionne sous macOS et va vous permettre d’écouter aussi bien votre musique que vos podcasts auto-hébergés.

Développé à l’origine par Rafaël Warnault, le projet était un peu en pause ces derniers temps mais depuis 2022, Calvin Buckley a repris le flambeau pour lui redonner une seconde jeunesse et l’adapter aux dernières versions de macOS et de Subsonic.

La nouvelle version 3.0 vient donc de sortir et c’est du lourd ! Fini Electron, on est sur du 100% natif (Swift) pour d’excellentes performances et une intégration parfaite à macOS. Ça respecte les conventions d’Apple jusqu’au bout des ongles.

Avec Submariner, vous allez pouvoir streamer votre bibliothèque musicale et vos podcasts depuis votre propre serveur Subsonic ou les alternatives compatibles comme Navidrome. C’est hyper simple à configurer, il suffit de rentrer l’URL de votre serveur, vos identifiants et c’est parti mon kiki !

L’interface est bien pensée avec un design aux petits oignons et vous y retrouverez vos artistes, albums et playlists directement dans une jolie sidebar. Vous pouvez mettre des likes sur vos morceaux et albums préférés, et ça se synchronisera directement avec le serveur.

Côté fonctionnalités, y’a de quoi faire : lecture des formats sans perte, mini-lecteur accessible par raccourci, AirPlay, illustrations des albums qui s’affichent en grand quand on clique dessus, gestion des podcasts, égaliseur, scrobbling (suivi automatique de vos habitudes), mode sombre… Et même le support d’AppleScript pour contrôler la lecture via vos propres scripts. Ça c’est cool pour ceux qui aiment bidouiller.

Puis les petits détails bien pratiques comme pouvoir glisser-déposer un morceau de l’appli vers une playlist, ou des fichiers sur l’icône du dock pour les importer dans la bibliothèque, le choix de l’ordre de tri des albums, la purge des fichiers téléchargés, le support du tactile avec les gestes de navigation…

Bref, si vous avez un serveur Subsonic et un Mac, je vous le recommande.

Merci à j0j0b4rj0 pour l’info !


Si vous êtes développeur, vous connaissez sûrement les galères quand on doit débugger des applis web ou mobiles à savoir intercepter les requêtes HTTP pour voir ce qui s’y passe, simuler des API… etc.

Et bien bonne nouvelle, puisqu’il y a un outil parfait pour ça : HTTP Toolkit ! C’est un soft open source développé par un certain Tim Perry, qui fonctionne sous Windows, Linux, macOS et qui permet :

  • D’intercepter en temps réel le trafic HTTP/HTTPS de n’importe quel client (browser, mobile, scripts, containers Docker…)
  • D’explorer, filtrer et inspecter en détail les requêtes et réponses (URL, statut, headers, body…)
  • De faire des breakpoints et éditer le trafic à la volée (modifier requête, simuler réponse, injecter erreurs…)
  • Mais également de prototyper entièrement des API, créer des règles pour router les requêtes sur vos endpoints

Et encore, je vous la fais courte mais y a 1000 autres features et c’est super simple à prendre en main grâce à une interface plutôt soignée avec plein de petites explications. De plus, ça s’intègre avec l’éditeur Monaco de VS Code, les DevTools, le protocole adb, les spéc Open API… Et surtout, y’a une grosse communauté de fans qui soutiennent le projet.

Avec cet outil vous pourrez par exemple intercepter en 1 clic ce qui se passe dans une fenêtre Chrome ou une application mobile spécifique sans avoir à configurer un proxy, récupérer des certificats SSL et autres joyeusetés.

Je vous invite à le tester, vous m’en direz des nouvelles. Ça se passe par ici.

Merci à Lorenper pour le soft !


Vous galérez avec vos ROMs de jeux rétro éparpillées un peu partout sur votre PC ? Vous passez des heures à chercher le bon émulateur, les bons fichiers, les bonnes versions ? Et bien tout ça c’est fini, grâce à RomM qui est un gestionnaire de ROMs vraiment cool.

Vous lui indiquez le répertoire qui contient tous vos jeux, et hop, en quelques clics, il scanne et organise tout ce bordel avec les bonnes infos et les jolies jaquettes qu’il va récupérer direct sur IGDB. RomM gère surtout un paquet de plateformes comme la Super Nintendo, la PlayStation, la GameBoy, la MegaDrive et même des trucs plus obscurs comme le PocketStation.

Ce outil vous permet même lancer vos jeux directement dans le navigateur grâce à EmulatorJS comme ça, pas besoin d’installer 50 émulateurs, tout est intégré, propre et facile. C’est beau !

C’est également super customisable, avec support des ROMs en plusieurs fichiers pour les jeux PS1, parsing des tags des noms de fichiers pour classer par région, gestion des permissions et des utilisateurs…etc Bref, c’est du solide !

Et si vous êtes un gros noob, pas de panique, c’est pas sorcier de l’installer. Vous créez votre clé API IGDB, vous mettez vos ROMs dans le bon format de dossier, vous modifiez deux trois trucs dans le fichier docker-compose.yml et voilà, en deux temps trois mouvements vous aurez votre serveur qui tourne ! Sur le NAS par exemple, c’est top comme ça plus de galère, plus de temps perdu, juste le plaisir du jeu à l’ancienne.

Le mec derrière RomM a même fait un wiki très complet sur le GitHub du projet.

A découvrir ici !

Encore merci à Lorenper !