❌

Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
🔲 ☆

P.T. - Le couloir de Kojima en natif sur Windows et Linux

Le P.T. de Kojima, ce "playable teaser" de Silent Hills que Konami a retiré du PlayStation Store en 2015, a maintenant un portage natif pour Windows et Linux et c'est signé Lorean Xavier.

Pour ceux qui ne connaissent pas ce jeu, P.T. est sorti gratuitement sur PS4 en août 2014, sous le nom d'un studio qui n'existait pas, 7780s Studio. On y parcourt un couloir en L qui tourne en boucle, en marchant et en zoomant, pendant que Lisa, un fantôme, nous traque. Et si elle nous attrape, eh bien la boucle infernale recommence encore et encore... Et bien sûr, ce maudit couloir change à chaque tour réussi !

Ensuite, une fois la dernière énigme résolue, on avait droit à un trailer annonçant Silent Hills, réalisé par Hideo Kojima et Guillermo del Toro avec Norman Reedus dans le rôle principal. Le vrai jeu a ensuite été malheureusement annulé, et P.T. n'a survécu depuis uniquement sur les PS4 qui l'avaient conservé ou via l'émulation.

Ce clic autorise une connexion à Google : adresse IP transmise et traceurs possibles. En savoir plus Voir cette vidéo sur YouTube

Mais c'était sans compter sur Lorean qui l'a recompilé pour en faire un portage natif, comme celui d'Animal Crossing dont je vous parlais en juillet. La logique du jeu a été intégralement reconstruite en C++ à partir du comportement de l'original et le rendu tourne sur Vulkan, alors que les niveaux, les modèles, les textures, les sons et les cinématiques, eux, sont lus lors de l'exécution à l'aide de votre propre copie PS4 (ce qui évite de diffuser du contenu sous copyright donc).

Tout ce que le portage ajoute est désactivé ou calé sur l'original par défaut. On y retrouve donc des upscalers (FSR 3.1 et XeSS sur n'importe quel GPU récent, DLSS 4.5 sur GeForce RTX, sous Windows seulement), un mode photo sur F7 et un dossier de mods qui accepte des scripts Lua.

Côté fidélité, Lance McDonald, le dataminer qui avait fouillé P.T. à l'époque, y voit, autant qu'il puisse en juger, un portage 1:1 de toute la base de code, qui reproduit tous les comportements non documentés qu'il connaît. Et bien sûr, même si le dev de ce portage a dû gérer l'archi du code de A à Z, c'est l'IA qui s'est occupée du dev et du debugging.

Bref, comme je vous le disais, ce portage ne contient aucun fichier de Konami, donc c'est à vous de fournir le jeu. Il vous faudra donc un dossier dump sorti de votre console (ou d'une archive en ligne si vous êtes un affreux criminel ^^), ou un faux PKG fabriqué à partir de ce dump. Un PKG du store ne marchera pas par contre puisqu'il est chiffré pour la console qui le possède. Et bien sûr, seule la version américaine (CUSA01127) a été testée. A tester donc avec les versions européenne et japonaise pour voir si ça passe.

Côté machine, il vous faudra à minima un Windows 10 ou 11 en 64 bits, ou un Linux x86-64 avec glibc 2.38 minimum (Ubuntu 24.04, Debian 13, Fedora 39, Arch ou SteamOS ça passe.), ainsi qu'un GPU compatible Vulkan 1.3. Sur Steam Deck, l'installation se fera depuis le mode bureau, puis faudra ajouter le jeu comme jeu non-Steam.

De son côté, macOS est annoncé pour la 1.0.2, mais ses paquets ne sont pas encore téléchargeables (faudra compiler les amis !). Pour le reste, les menus et les sous-titres sont disponibles en français, mais les voix restent en anglais, et le passage où le jeu a besoin de votre micro peut être joué au clavier quand même, si vous n'avez pas le matos.

Voilà... Je ne m'en souvenais pas, mais en faisant mes recherches, j'ai appris que ce n'est pas la première tentative de portage de P.T. sur PC. Il y a eu un remake de Qimsar, fan de 17 ans, qui est sorti gratos en juillet 2018 et malheureusement, Konami l'a fait fermer quelques jours plus tard pour des raisons légales, tout en lui proposant un stage (beaux joueurs quand même).

On verra à quelle sauce ce projet sous licence MIT se fera manger ou pas.

Sachez que si vous avez déjà votre copie de P.T. sous la main, les installeurs Windows et Linux sont sur la page Releases du dépôt GitHub !

Source : PC Gamer

🔲 ☆

Vos jeux PC sur l'écran d'une Nintendo DSi de 2008

RNDS-Stream , c'est une appli homebrew incroyable pour la Nintendo DSi (sortie en 2008 quand même... ça date de fou !) qui affiche en live n'importe quel jeu depuis votre PC Linux. Le PC capture la fenêtre du jeu et l'envoie en MJPEG sur le réseau local, puis la console décode ce flux vidéo, et le clavier et la souris du PC sont pilotés à distance via ydotool .

Si ça vous intéresse, la vidéo ci-dessous montre le projet en action (vers les 4 min 48) avec côté console, le décodage du MJPEG passant par RubyNDS , qui est le framework Ruby que l'auteur s'est monté pour programmer la DSi. Et avec les bons réglages de GStreamer, ça peut grimper à 20 images par seconde avec saut d'images, ou plus modestement de 10 à 15 images par seconde en résolution max sur la DSi. Le serveur de son côté, repère tout seul votre bibliothèque Steam et vos instances Prism Launcher pour vous permettre de lancer les jeux de votre choix.

Ce clic autorise une connexion à Google : adresse IP transmise et traceurs possibles. En savoir plus Voir cette vidéo sur YouTube

Pour l'essayer, faut déjà que vous soyez bien chaud bouillant ^^. Ensuite, il faut un flashcart qui permet de lancer l'outil en copiant son .nds sur une microSD, avec à la racine un fichier rnds-stream.txt qui contient uniquement l'adresse IP locale de votre PC. Bref, rien à copier sur la SD interne de la DSi.

Côté PC, c'est du Linux sous X11 ou Wayland, puisque les fenêtres en Wayland pur ne sont pas détectées, avec wmctrl et GStreamer installés à côté du Flatpak du serveur, qui n'est pas entièrement autonome. Sachez que l'auteur n'a testé que Fedora KDE, donc à voir comment ça se passe sur les autres distrib.

Reste le Wi-Fi car d'après le wiki DS Homebrew , une appli DS classique ne gère que le WEP ou les réseaux ouverts, le WPA et le WPA2 n'étant possibles qu'en mode DSi.

Voilà, on est dans l'hyper expérimental, y'a des bugs, aucune sécurité (donc restez bien en local) mais c'est assez insolite pour que je vous en parle.

A découvrir ici !

Source : Hackaday

🔲 ☆

Pourquoi je n'ai pas racheté de Mac mini - le PC GEEKOM A5 à 500 euros

- Contient des liens affiliés Amazon -

Chez moi, c'est un Mac mini qui gère à peu près tout depuis des mois. Il héberge mes projets de vibe coding, (pour ceux qui débarquent, on parle du développement où une IA écrit le gros du code pendant que je bois des chocolats chauds devant Rick et Morty), il fait tourner mes sessions de Claude, l'IA d'Anthropic, il pilote ma domotique, il surveille même mes NAS et mon Plex. Tout ça marche bien, je n'y touche presque jamais.

Sauf que voilà, il m'a fallu une seconde session de travail avec une autre instance de Claude/Codex, pour un projet qui n'avait rien à voir. J'ai d'abord pensé racheter un Mac mini. Et puis entre les prix qui ont gonflé et macOS qu'il aurait fallu piloter à distance en permanence, j'ai un peu baissé les bras.

GEEKOM m'a alors proposé de tester son A5 , un petit PC de la taille d'un Mac mini, 11,7 centimètres de côté pour 650 grammes, qu'on trouve autour de 500 euros avec trois ans de garantie. J'ai dit oui, forcément, même si je n'ai plus acheté de PC depuis 15 ans.

Dedans, il y a un Ryzen 7 7730U d'AMD avec huit cœurs, seize threads et une fréquence qui monte à 4,5 GHz, le tout dans 15 watts, donc ça chauffe vraiment très peu. Les 16 Go de mémoire DDR4 ne sont pas soudés, on peut aller jusqu'à 64 Go en ouvrant le boîtier, et ça, Apple ne vous laissera jamais le faire sur un Mac Mini.

Le SSD de 500 Go est déjà plus généreux que les 256 Go du Mac mini de base, et si ça ne suffit pas, il y a un deuxième emplacement M.2 et une baie pour un disque 2,5 pouces. En cumulant, on peut monter à 7 To.

Pour la connectique, j'ai de quoi voir venir, avec six ports USB dont deux USB-C, deux sorties HDMI qui gèrent jusqu'à quatre écrans 4K, du WiFi 6, du Bluetooth 5.4 et surtout un port Ethernet 2,5 gigabits, le seul que j'utilise vraiment vu que la machine discute toute la journée avec mes NAS, tout le monde à cette vitesse, ce qui est quand même bien symathique.

La machine est livrée sous Windows 11, mais je lui ai installé un Ubuntu en version serveur. J'ai branché un écran une heure à tout casser, le temps de l'installation, de configurer le Bios pour qu'il redémarre tout seul en cas de panne de courant, et depuis je n'y touche plus qu'en SSH, la prise de contrôle à distance en ligne de commande. Et encore quand je dis "Je", ce sont mes IA et mes automatisations qui administrent la machine, et ça fonctionne, sans drame (j'ai BEAUCOUP de sauvegardes derrière, je vous conseille d'en avoir aussi si vous laissez l'IA administrer vos machines).

Le plus fou, et qui m'a vraiment surpris, c'est le silence. GEEKOM annonce autour de 28 décibels au repos et à peine plus en charge, et dans les faits je ne l'entends simplement jamais, alors qu'il est posé dans mon salon et qu'il tourne 24h/24. La consommation est ridicule aussi, environ un demi kilowattheure par jour.

Ce genre de machine peut servir à plein de choses, un petit serveur maison, Home Assistant pour la domotique, une médiathèque, des agents IA qui bossent la nuit, ou tout simplement un PC de bureau classique si vous le laissez sous Windows.

Et pour tout vous dire, sur cet usage serveur, il est même meilleur que mon Mac mini. Plus de bizarreries macOS, plus de mise à jour qui réclame une session ouverte, plus de réglage système qui se met en travers du chemin. Ubuntu fait ce qu'on lui demande et c'est vraiment très reposant.

Le circuit graphique Vega 8 intégré ne vous permettra pas de lancer GTA6 en 4K (en même temps il n'est toujours pas annoncé sur PC...), et il ne faut pas compter dessus pour faire tourner un gros modèle d'IA en local, mais pour du développement, du serveur et de la vidéo, c'est vraiment la machine idéale.

Si vous avez le même genre de besoin que moi, ou que vous avez envie d'expérimenter, vous pouvez y aller. L'A5 est en vente autour de 550 euros chez sur Amazon, dispo en cliquant ici .

🔲 ☆

Hello Python 3.15, goodbye 3.10, and now I can use 3.11

Python 3.15 is here! Here's the essential What's new in Python 3.15 guide, this year curated by 3.14 and 3.15 release manager Hugo van Kemenade. As someone who builds open source software that works in every supported Python version, I get to say goodbye to Python 3.10 and start embracing features from Python 3.11.

First, some highlights from Python 3.15.

Explicit lazy imports

I'm most excited about Explicit lazy imports from PEP 810. These let you import modules like so:

lazy import json
lazy from pathlib import Path

The module will then be imported the first time those symbols are used in the code that follows.

My LLM CLI tool implements plugins. I had to recommend manual lazy imports in the plugin author documentation, because simply installing plugins that used heavy dependencies such as sentence_transformers could add multiple seconds to every invocation of the llm command. Lazy imports directly address this startup cost.

Unpacking in comprehensions

The new [*sublist for sublist in lists] unpacking syntax is neat. Here's an illustration lifted from the documentation:

lists = [[1, 2], [3, 4], [5]]
[*L for L in lists]
# [1, 2, 3, 4, 5]
# equivalent to [x for L in lists for x in L]

sets = [{1, 2}, {2, 3}, {3, 4}]
{*s for s in sets}
# {1, 2, 3, 4}
# equivalent to {x for s in sets for x in s}

dicts = [{'a': 1}, {'b': 2}, {'a': 3}]
{**d for d in dicts}
# {'a': 3, 'b': 2}
# equivalent to {k: v for d in dicts for k,v in d.items()}

PEP 798: Unpacking in Comprehensions by Adam Hartz and Erik Demaine proposed this as an extension of the unpacking syntax from PEP 448, which landed in Python 3.5 back in 2015.

A sampling profiler

Python's existing tracing profiler has been renamed from cProfile to profiling.tracing, and has been joined by an exciting new sampling profiler called Tachyon, aka profiling.sampling.

Sampling profilers work by periodically capturing stack traces from running processes, then using those to calculate which functions have the most time spent inside of them. They're very low overhead and can provide a deep insight into running systems, without needing to instrument those systems first.

I've previously used tools like py-spy for this. Now this capability is baked into the standard library.

If you have the PID of an existing Python 3.15 process you can start gathering samples by running this (I had to use sudo on macOS):

sudo uv run --python 3.15 python -m profiling.sampling attach 1234

Interact with the main program a bit, then hit Ctrl+C to stop gathering and see a report, which looks something like this:

Screenshot of terminal output from a Python sampling profiler with colored text on a black background. Header lines report 2,651 samples captured in 2.65 seconds at a sample rate of 999.98 samples/sec with an error rate of 0.19. A Profile Stats table with columns for nsamples, sample%, tottime, cumul%, cumtime and filename:lineno(function) shows that 99.9% of samples (2.644 seconds) were spent directly in selectors.py KqueueSelector.select, meaning the process was almost entirely idle waiting on the asyncio event loop. The rest of the table lists the call stack beneath it with zero direct time but 100% cumulative presence: asyncio base_events.py run_once, run_forever and run_until_complete, runners.py Runner.run and run, cli.py serve and sqlite_extensions wrapped, and several click core.py invoke, main and call frames. A legend explains each column, followed by a Summary of Interesting Functions section listing hot spots (KqueueSelector.select at 99.9% direct samples), the most frequently present functions on the stack (run_forever, run_until_complete and Runner.run at 100%), and the highest call magnification (2645.0x for BaseEventLoop._run_once).

It can also produce flame graphs like this and heat maps like this, and can even output a format that can be viewed in the Firefox profiler UI.

3.15 isn't much faster than 3.14

Miguel Grinberg investigated How fast is Python 3.15? the other day against the 3.15.0rc3 release and found performance to be mostly the same as 3.14, with the exception of the experimental JIT. The JIT gave a 1.2x boost over the standard 3.15 interpreter (on a Fibonacci test), the first time Miguel observed a meaningful JIT performance increase.

Miguel's explorations of 3.14 last year found significant boosts against Python 3.13 across many more categories.

Upgrading to Python 3.15 with uv

I used the following sequence of commands to get uv to use Python 3.15 on my Mac. First I had to upgrade uv itself to ensure it knew about the new release:

uv self update

Then I installed the stable 3.15 release:

uv python install 3.15

And told uv that I wanted that to be the default for every uv run command, unless the project itself pinned a different version:

uv python pin --global 3.15

Now the following reports 3.15 as the version:

uv run python --version

I already have a bunch of tools installed using uv tool install. I reinstalled them to use Python 3.15 like this:

uv tool upgrade datasette --python 3.15

Then I can confirm the version like this:

datasette --get /-/versions.json | jq

Highlights from Python 3.11

The release of 3.15 means that Python 3.10 (released in 2021) is officially no longer supported.

My policy for my main open source projects is to keep them working in every supported Python version. I can now drop 3.10 and start using features that were introduced in 3.11.

Here's the What's new in Python 3.11 document. I finally get to rely on tomllib being available!

Datasette makes extensive use of asyncio. 3.11 adds TaskGroup and timeout(), and several more new features.

datetime.UTC is a new in 3.11 alias for datetime.timezone.utc.

Python's SQLite support got some significant upgrades in 3.11, including:

  • setlimit() and getlimit() expose a mechanism for setting SQLite runtime limits from Python.
  • create_window_function() lets us create custom window functions in Python, as a class with step(), value(), inverse(), and finalize() methods.
  • blobopen() provides an efficient mechanism for partial reads and writes of large BLOB binary values stored in a SQLite row.
  • You can now call set_authorizer(None) to remove a SQLite authorizer. Datasette had a workaround for this!

Plus a whole bunch of improvements to Python's typing system.

I plan to land Python 3.11 improvements to a bunch of my projects over the next few weeks. Here's my first Datasette PR removing that set_authorizer(None) workaround.

I've also updated my click-app, datasette-plugin, python-lib, and llm-plugin cookiecutter templates to test against Python 3.11 through Python 3.15.

Tags: open-source, profiling, python, sqlite, uv

🔲 ☆

Be alert: targeted attacks on prominent Rustaceans

Be alert: targeted attacks on prominent Rustaceans

Important warning from Adam Harvey and the crates security team:

We believe that there is an ongoing campaign targeting rust-lang members and owners of popular crates that is attempting to compromise devices and accounts in order to use them to publish malware.

A video call is set up for something positive — maybe for a job, maybe for a project, maybe for a contract opportunity — and then that's used as a vector to either get the target to install something on their computer (such as a purportedly missing audio codec) or execute another command (for example, via putting a command on the clipboard).

Last month this trick was used in a successful supply chain attack against the array ref crate, among others.

Any piece of software that depends on open source (which is almost every piece of software) has a network of human beings who are potential attack vectors - everyone with publishing rights to any of the packages in the dependency network for that software.

I guess our best defense right now is dependency cooldowns - giving new package releases a few days before upgrading to them, in the hope that supply chain attacks like this will be spotted by someone else.

Tags: open-source, security, rust, supply-chain, dependency-cooldowns

🔲 ☆

Don't sleep on wrapture

Graham Dumpleton's new monkey patching package wrapture is shaping up to be an indispensable tool for Python developers. I'm not sure why I've seen so little buzz about it!

Graham has been posting new tutorials for it almost daily since the initial release on August 31st. Here's everything he's published so far:

Graham also has a set of interactive workshops for wrapture, implemented as JupyterLab notebooks.

Wrapture is still alpha software but it's already very usable - especially given you can configure and try it out with a TOML file without modifying any Python code at all.

This feels like one of those Swiss Army Knife packages that, once mastered, will provide value against all sorts of problems for years to come.

Tags: graham-dumpleton, open-source, testing, python, observability, monkey-patching

🔲 ☆

Native is now the future of mobile at Shopify

Native is now the future of mobile at Shopify

Shopify are moving from React Native back to separate Swift and Kotlin codebases for their native apps, for the exact reason you would expect:

We decided to switch from native to React Native in 2020 for three reasons:

  • Stop building the same features twice
  • Allow developers to work across the stack
  • Spend less time chasing feature parity and more time shipping value

[...]

Native still means building and maintaining software on two platforms, that cost has not disappeared. What changed is that agents can now do enough of the implementation, translation, testing, and review work that it’s no longer the deciding factor it was in 2020.

It's a well-written post, which gives full credit to React Native as a great platform for the six years they were using it.

Shopify are the maintainers of three significant React Native libraries: react-native-skia, flash-list, and restyle. The first two are finding new homes; the third "has a smaller user base than our other libraries" and will be archived at the end of 2026.

Via Hacker News

Tags: android, mobile, open-source, ios, ai, react, generative-ai, llms, ai-assisted-search, coding-agents, swift, shopify

🔲 ☆

01 – L’appareil open-source basé sur un modèle de langage IA

Imaginez un appareil qui comprend tout ce que vous lui dites, qui répond à vos questions avec intelligence et s’adapte à vos besoins… Et bien c’est exactement ce que propose le projet 01, un framework open-source qui allie intelligence artificielle et interface vocale.

Inspiré par l’iconique ordinateur de Star Trek, et développé par les mêmes personnes que ceux qui ont créé Open Interpreter que j’adore, 01 ambitionne de devenir le GNU/Linux des assistants vocaux. Son écosystème ouvert et modulaire permet aux développeurs de créer des applications innovantes et de personnaliser l’expérience utilisateur. Comme ça, que vous soyez maker ou un néophyte curieux, vous allez pouvoir construire votre propre appareil 01 en suivant les instructions détaillées fournies sur le dépôt GitHub.

Le modèle 01 Light, basé sur un ESP32, est un excellent point de départ pour découvrir cette technologie fascinante. Évidemment, tout est open source et vous pouvez créer votre propre device ou le faire tourner sur un appareil existant.

Pour une expérience optimale, 01 fonctionne de pair avec un serveur qui s’exécute sur votre ordinateur personnel ou votre NAS et qui grâce à des outils comme Whisper pour la reconnaissance vocale et GPT pour la génération de réponses, permet des interactions naturelles et pertinentes.

Tout cela est rendu possible notamment grâce au format LMC (Language Model Computer), inspiré par le concept de « LLM OS » d’Andrej Karpathy. 01 utilise donc un modèle de langage qui interprète du code pour réagir à des événements système. Les messages LMC sont donc une extension du format d’OpenAI en ajoutant un rôle « ordinateur » qui exécute du code Python directement dans les instructions système.

Son architecture flexible permet de l’intégrer à une multitude d’objets du quotidien, de l’assistant vocal au robot domestique en passant par la voiture intelligente. Les possibilités sont infinies et ne demandent qu’à être explorées.

En tant que projet open-source, 01 compte sur une communauté dynamique de contributeurs pour se développer et s’améliorer et y’a même un serveur Discord pour échanger avec d’autres enthousiastes du projet.

🔲 ☆

LSD – Un ls sous stéroïdes écrit en Rust 🚀

Aujourd’hui, on va parler d’un truc qui s’appelle LSD, mais attention hein, je parle pas de votre dernière soirée chemsex hein… C’est plutôt un clone open-source de la commande ls en mode survitaminé ! Développé par la communauté et écrit en Rust, il rajoute plein de fonctionnalités hyper stylées comme les couleurs, les icônes, la vue en arbre, des options de formatage en pagaille…

L’idée vient du projet colorls qui est vraiment super aussi. Mais LSD pousse le délire encore plus loin. Déjà il est compatible avec quasi tous les OS : Linux, macOS, Windows, BSD, Android…

Et hyper simple à installer en plus… un petit

apt install lsd ou brew install lsd

et c’est réglé.

Ensuite il est ultra personnalisable. Vous pouvez faire votre thème de couleurs et d’icônes sur mesure juste en bidouillant des fichiers de config en yaml. Et il supporte les polices Nerd Font avec des glyphes spéciaux trop classes ! Bon faut avoir la bonne police installée sur son système et le terminal configuré, mais c’est pas bien compliqué. Et si vous êtes sur Putty ou Kitty, y’a des tweaks spécifiques à faire, mais c’est expliqué dans la doc.

Mais attendez c’est pas fini ! LSD gère aussi les liens symboliques, la récursion dans les sous-répertoires (avec une profondeur max en option), des raccourcis pour les tailles de fichiers plus lisibles, des indicateurs pour les exécutables, les dossiers, etc. Il peut même vous sortir des infos de git sur les fichiers de ton repo si vous activez l’option ! Et pleins d’autres trucs que j’ai même pas encore testés…

Depuis que je l’ai installé et que j’ai changé mon alias ls, je me régale à chaque fois que je liste un dossier. J’ai l’impression d’être dans un vaisseau spatial avec des néons partout ! Bon j’exagère à peine, mais franchement ça envoie du lourd.

Allez je vais pas tout vous spoiler non plus, je vous laisse le plaisir de découvrir LSD par vous-même et customiser votre expérience du terminal. Moi en tout cas je suis fan, et je dis pas ça parce que je plane ! 😄

Thx Lorenper pour l’outil !

🔲 ☆

OpenELM – Apple sort ses modèles IA légers et open-source

Vous connaissez OpenELM ? Non, normal, ça vient de sortir. Et c’est une famille de modèles IA open-source made in Apple conçus pour tourner directement sur vos appareils, sans passer par le cloud. En gros, c’est de l’IA maison dans nos iPhone, iPad et Mac…etc.

OpenELM combine plusieurs modèles de langage naturel (LLMs) utilisant des algorithmes évolutionnistes qui exploitent les principes techniques suivants :

  1. Layer-wise scaling strategy : Cette stratégie consiste à allouer les paramètres dans les couches d’un modèle transformeur pour améliorer l’exactitude. Les modèles sont pré-alourés avec un budget de paramètres de 270 millions, 450 millions, 1,1 milliard et 3 milliards.
  2. Pré-entraînement : Les modèles ont été pré-entraînés à l’aide d’une combinaison de datasets, incluant une sous-ensemble de Dolma v1.6, RefinedWeb, deduplicated PILE et une sous-ensemble de RedPajama. Ce dataset contient environ 1,8 trillion de tokens.
  3. Evolutionary algorithms : Les algorithmes évolutionnistes sont utilisés pour combiner les modèles LLM et améliorer l’exactitude. Cela permet d’exploiter les forces combinées des modèles pré-alourés et d’améliorer leur précision.

Alors évidemment, Apple arrive un peu après la bataille dans l’IA, pendant que Microsoft et Google déboulent à fond la caisse. Mais bon, mieux vaut tard que jamais, et puis ils compensent avec du lourd, soit 8 modèles OpenELM au total, dont 4 pré-entraînés avec CoreNet et 4 fine-tunés. Et avec leur stratégie de scaling par couche ça optimise à fond l’allocation des paramètres.

Allez, je traduits… En gros, ça veut dire qu’ils sont hyper efficaces et précis. Prenez le modèle à 1 milliard de paramètres et bien bah il explose un modèle équivalent comme OLMo de 2,36% en précision, avec 2 fois moins de tokens en pré-entraînement. Et ce qui est top, c’est qu’Apple balance tout : code, logs d’entraînement, configuration…etc et pas juste le modèle final. Et vu qu’ils utilisent des datasets publics, c’est top en matière de transparence et vérification des biais.

En tout cas, une chose est sûre, avec OpenELM, Apple nous prouve qu’ils sont dans la course, et qu’ils comptent bien mettre le paquet sur l’IA

Et Merci à Letsar pour l’info, c’est lui qui m’a mis la puce à l’oreille sur OpenELM. Tu gères !

Source

🔲 ☆

PyTorch dévoile Torchtune pour fine-tuner les LLM

PyTorch, le framework chouchou des bidouilleurs d’IA, vient de nous pondre un petit truc cool : Torchtune ! 💎 Cette nouvelle bibliothèque native, encore en phase alpha mais déjà disponible en open-source sur GitHub, va vous permettre de fine-tuner les gros modèles de langage (LLM) comme un pro, sans vous prendre la tête.

Torchtune est donc une boîte à outils hyper flexible et modulaire qui va vous permettre de vous éclater à customiser des modèles pour vos propres besoins, le tout avec des recettes mémoire efficaces qui tournent même sur une bête carte graphique de gamer, comme les NVidia 3090/4090.

Son secret ?

Une architecture bien pensée qui mise sur l’interopérabilité avec l’écosystème des LLM, qu’ils soient open-source ou non. Concrètement, ça veut dire que vous allez pouvoir brancher Torchtune à tout un tas d’outils et de frameworks que vous adorez déjà, comme Hugging Face 🤗, PyTorch FSDP 🪢, Weights & Biases 📈, et plein d’autres.

Grâce à des recettes simples et bien documentées pour les modèles populaires comme Llama 3, Mistral ou Gemma 7B, même les débutants vont pouvoir se lancer dans l’aventure sans flipper. Bon OK, il faudra quand même un peu de bagage en PyTorch et en LLM, mais rien d’insurmontable ! Et si vous êtes un pro, vous allez pouvoir hacker le code à volonté pour l’adapter à vos besoins spécifiques.

Alors comment on met les mains dans le cambouis avec Torchtune ?

Rien de plus simple, mon cher Watson ! Il vous suffit d’installer la dernière version stable de PyTorch (2.2.2 au moment où j’écris ces lignes), puis de télécharger Torchtune depuis PyPI avec un petit

pip install torchtune

Et voilà, vous êtes prêt à en découdre avec les LLM !

Pour vous faire les dents, je vous conseille de jeter un œil au tutoriel sur le fine-tuning de Llama2 7B. C’est le parfait point de départ pour comprendre comment Torchtune fonctionne et comment l’utiliser pour vos propres projets.

En gros, ça se passe en 4 étapes :

  1. Téléchargez le modèle pré-entraîné et le tokenizer depuis Hugging Face Hub avec tune download.
  2. Choisissez une recette de fine-tuning (LoRA, QLoRA, full…) et customisez-la avec un fichier de config en YAML.
  3. Lancez l’entraînement avec tune run en précisant votre recette et votre config. Vous pouvez même faire du multi-GPU avec torchrun !
  4. Admirez le résultat et testez votre modèle fine-tuné avec une inférence locale. Si tout se passe bien, exportez-le avec ExecuTorch pour le déployer en prod, ou utilisez les API de quantification de Torchao pour l’exporter en int4 ou int8 et l’utiliser sur mobile ou en edge.

Facile, non ? 😄

Bon OK, j’avoue, j’ai un peu simplifié. En vrai, il y a pas mal de subtilités et de paramètres à régler pour obtenir les meilleurs résultats, comme le learning rate, le nombre d’époques, la taille du batch, le ratio de LoRA, et tout un tas d’autres trucs, mais c’est justement sa flexibilité qui vous permet d’expérimenter à l’infini pour trouver la combinaison parfaite.

Bref, si vous êtes dev et que vous aimez jouer avec les LLM c’est à tester.

Source

🔲 ☆

Modrinth – La plateforme Minecraft open-source redevient indépendante

Modrinth, la plateforme open-source dédiée aux mods Minecraft, vient de prendre une décision aussi inattendue que courageuse : rendre l’argent à ses investisseurs pour redevenir indépendante ! Ça c’est ce que j’appelle avoir des couilles en vibranium !

Figurez-vous qu’il y a un an et demi, Modrinth avait levé 1,2 million de dollars auprès d’investisseurs. Ça leur a permis d’embaucher des développeurs à plein temps, de lancer plein de nouvelles fonctionnalités comme la monétisation pour les créateurs, l’authentification, les analytics, les collections… Bref, de faire grimper le nombre d’utilisateurs de manière exponentielle !

Mais voilà, cette croissance à tout prix a fini par leur faire perdre de vue l’essentiel. Les bugs se sont accumulés, la modération a pris du retard… Et surtout, ils ont réalisé que le modèle des startups financées par des investisseurs n’était pas compatible avec leurs valeurs. Parce que les investisseurs, aussi sympas soient-ils, attendent forcément un retour sur investissement. Et ça pousse à prioriser le profit et la croissance plutôt que la communauté et les créateurs.

Alors Modrinth a décidé de prendre son destin en main. Ils ont rendu 800 000 dollars aux investisseurs, et ont réduit drastiquement la taille de l’équipe pour revenir à un rythme de développement plus durable. Ça n’a pas été facile, ils ont dû se séparer de plusieurs personnes qui avaient beaucoup apporté au projet, mais c’était nécessaire pour rester fidèles à leurs principes.

Maintenant, Modrinth est de nouveau entre les mains de la communauté. Ils peuvent se concentrer sur ce qui compte vraiment : offrir la meilleure expérience possible aux joueurs et aux créateurs de mods, sans pression pour faire du chiffre à tout prix. Bien sûr, il faut quand même que le projet soit viable économiquement, mais ça, ils savent faire. L’hébergement est déjà rentable, et ils travaillent à rendre le développement durable aussi.

Pour ça, ils misent sur une meilleure infrastructure de modération (avec de l’automatisation et des outils pour les modos), plus de transparence sur l’avancement du projet, et plus de facilité pour contribuer au code. Le but, c’est que la communauté puisse vraiment s’approprier Modrinth, et que ça devienne un bien commun géré collectivement.

Et là, moi je dis chapeau bas ! Dans un monde où la plupart des boîtes ne jurent que par la croissance, quitte à vendre leur âme au diable, ce genre de prise de position fait un bien fou. Ça prouve qu’on peut faire des choses géniales sans se compromettre, en restant fidèle à ses valeurs et à sa communauté.

Alors si vous êtes un joueur Minecraft, un créateur de mods, ou juste quelqu’un qui croit à l’importance de l’open-source et des projets communautaires, je vous invite à soutenir Modrinth dans cette nouvelle étape de sa vie.

Source

❌