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

Saviez vous que les fichiers Parquet se prenaient pour des bombes ? Alors pas des bombes latines mais plutôt des bombes zip.

Alors, pour ceux qui débarquent de la planète Mars, il faut savoir que Parquet est devenu le format de prédilection pour échanger des données tabulaires. Très utilisé dans tout ce qui est Big Data et qui met une claque à ce bon vieux CSV tout pourri, Parquet, c’est binaire, c’est colonnaire, c’est compressé, c’est top !

Mais attention, derrière cette apparente perfection se cache un danger mortel pour vos disques durs et autres SSD ! En effet, même un fichier Parquet parfaitement valide peut mettre un sacré bordel et faire planter tous vos services.

Comment ? Et bien simplement avec ce fichier de seulement 42 Ko qui contient… tenez-vous bien… plus de 4 PÉTAOCTETS de données !! Oui, on parle bien de 4 millions de gigaoctets dans un malheureux fichier de 42 Ko, fallait oser.

On appelle ça une bombe de décompression ! Alors comment ça fonctionne ?

Eh bien c’est grâce à un petit tour de passe-passe démoniaque appelé « encodage par dictionnaire« . En gros, on lui donne un dictionnaire avec une seule valeur, et ensuite on fait référence à cette valeur en boucle, environ 2 milliards de fois. Résultat, on obtient un fichier minuscule car compressable au maximum mais qui une fois dézippé représente une table monstrueusement gigantesque.

C’est subtil… mais c’est vicieux ! 😈

Imaginez un peu le carnage si vous balancez ce fichier innocent dans votre pipeline Big Data sans faire gaffe… Boom ! 💥 Plantage général, crash systémique, apocalypse nucléaire ! Vos services vont tenter de lire ce fichier en pensant que c’est un gentil petit fichier Parquet de rien du tout, et là… Surprise ! C’est le chaos total. Votre cluster va fondre comme neige au soleil en essayant d’avaler ces pétaoctets de données.

Morale de l’histoire, faites attention à tout, même à ce que vous dézippez.

Et si vous avez un peu de place sur votre disque dur, vous pouvez toujours tenter l’aventure en téléchargeant 42.zip ici. (NON, NE DEZIPPEZ PAS CE TRUC !! MAUVAISE IDEE !!) (le mot de passe du zip est : 42)

Source


J’espère que vous êtes en forme et prêts à en découdre, car aujourd’hui on va parler d’un sujet marrant : GPT-3.5 Turbo d’OpenAI est devenu le nouveau champion toutes catégories de Street Fighter III !

Non, j’ai rien fumé, il y a bien une IA qui a mis la pâtée à tous ses adversaires lors d’un tournoi un peu spécial.

En effet, la semaine dernière, lors du Mistral AI Hackathon à San Francisco, une équipe de passionnés a eu l’idée de génie d’organiser un tournoi un peu particulier. : Faire s’affronter différents modèles de langage sur le cultissime jeu de baston Street Fighter III, pour voir lequel allait sortir vainqueur.

Parce que bon, c’est bien beau de savoir faire la conversation ou générer des images moches, mais quand il s’agit d’envoyer des tatanes dans la tronche, il faut être un peu plus réactif !

Et c’est là que notre pote GPT-3.5 sort les muscles et s’en sort très bien. Contrairement aux algorithmes d’apprentissage par renforcement (deep learning) qui se contentent bêtement d’accumuler des points en fonction de leurs actions, les modèles de langage comme GPT sont capables de comprendre un contexte et d’agir en conséquence.

En gros, ils analysent ce qu’il se passe à l’écran, les mouvements des personnages, leur barre de vie… Et en fonction de ça, ils décident quelle attaque lancer. Un peu comme un joueur humain en fait, sauf qu’eux n’ont pas besoin de café pour rester concentrés.

Les premières bagarres ont opposé différentes versions du modèle Mistral, dans des combats endiablés dignes des plus grands shōnens. Mais très vite, l’équipe a décidé de corser un peu les choses en invitant OpenAI et ses modèles GPT-3.5 et GPT-4 dans l’arène. Et là, mes amis, ça a commencé à sentir le roussi pour la concurrence !

Les poings ont volé, les combos se sont enchaînés, les contres se sont succédés à un rythme infernal. Un vrai feu d’artifice d’uppercuts, de coups spéciaux et de provocations bien senties. Mais au final, après des dizaines de combats acharnés, c’est bien GPT-3.5 (et plus précisément sa dernière version « Turbo ») qui est ressorti vainqueur ! La médaille d’argent revient à Mistral-small-2042, qui a réussi l’exploit de coiffer sur le poteau un modèle GPT-4 en accès anticipé.

Tout ça pour dire que si vous voulez vous mesurer à ces champions, c’est tout à fait possible ! Le code source du projet est disponible sur Github, et vous n’avez même pas besoin d’un supercalculateur pour faire tourner tout ça. Il vous faudra juste dénicher une ROM de jeu de baston 2D ou 3D old school, et le tour est joué. Perso j’ai hâte de voir ce que ça donne sur un bon vieux Tekken 3…

Pour installer et tester LLM Colosseum :

  1. Suivez les instructions de la documentation DIAMBRA, l’outil qui permet de faire jouer les LLM
  2. Téléchargez la ROM et placez-la dans ~/.diambra/roms
  3. Clonez le dépôt de llm coloseum et installez les paquets Python requis avec la commande pip3 install -r requirements.txt
  4. Créez un fichier nommé .env et copiez-y le contenu du fichier .env.example
  5. Lancez le programme avec la commande make run

Blague à part, cette expérience montre bien le potentiel hallucinant des modèles de langage pour les jeux vidéo. On peut tout à fait imaginer des PNJ avec lesquels on pourrait interagir de façon totalement naturelle et immersive, des adversaires capables de s’adapter à votre style de jeu et de vous surprendre… Bref, de quoi révolutionner complètement notre façon de jouer ! Après, faudra quand même faire gaffe à pas trop les énerver, on a bien vu ce que ça donnait quand on laissait GPT-3.5 jouer à des wargames… Boum, plus de planète !

Allez, je vous laisse, faut que je retourne taper Zangief moi.

Merci à Lorenper pour l’info et à très vite pour de nouvelles aventures.


Êtes vous correctement sécurisé ?

Enfin, je parle de vous mais surtout de vos données et de votre vie privée.

Alors vous allez me dire « Oui, oui, t’inquiète, je t’ai pas attendu pour mettre un long mot de passe » mais en réalité, vous ignorez peut-être certaines mesures de sécurité qu’il seraient également bon de mettre en place.

Heureusement, l’outil Personal Security Checklist est là pour vous aider à sécuriser votre vie numérique. C’est un site que vous pourrez traduire et proposer pourquoi pas dans votre entreprise. Maintenant, pour le tester, le mieux c’est d’aller sur le site Digital Defense qui propose une version en ligne.

Vous pourrez y naviguer entre des listes thématiques et cocher les contre-mesures que vous avez adoptées. Cerise sur le gâteau, vous verrez de jolis graphiques qui vous motiveront pour progresser sur votre hygiène numérique.

Un autre point fort de cette initiative est la mise à disposition d’une API gratuite pour accéder à toutes les données de la liste de vérification. Comme ça vous pourrez intégrer cette liste dans vos outils.

La Personal Security Checklist est un projet collaboratif et il y a pas mal de documentations et de liens avec des bons petits outils comme je les aime tant.

Pour finir, la Personal Security Checklist est sous licence MIT. C’est un excellent point de départ pour renforcer la sécurité de votre vie numérique. A vous de voir si vous pouvez cocher toutes les cases !

Merci à Lorenper


Les bloqueurs de pubs ont toujours été un souci pour pas mal de sites web. Perso, je ne m’en souci pas, mais d’autres mettent en place des stratégies parfois complexes notamment avec des JavaScript qui les détectent et bloquent l’utilisateur avec une grosse popup « DÉSACTIVE TON BLOQUEUR » ou lui envoie quand même de la publicité bien intrusive.

Et de leur côté, les bloqueurs de pub s’améliorent et se mettent à jour pour bloquer à leur tour ces JavaScript et ainsi de suite… Et cette petite guéguerre ne s’arrête jamais.

Enfin, ça, c’était vrai jusqu’à aujourd’hui puisqu’une nouvelle technique de détection des adblocks vient de voir le jour : la 103 Early Hints.

C’est encore un proof of concept mais l’idée c’est qu’au lieu d’attendre que la page se charge chez l’internaute pour vérifier s’il dispose d’un bloqueur de pub, on lui envoie des 103 Early Hints, c’est-à-dire des « indices » en amont, tel des petits éclaireurs. S’ils sont bloqués par le navigateur, alors le serveur web pourra renvoyer une page différente à l’internaute ou le rediriger, sans même que celui-ci ne s’en rende compte. Cette méthode est particulièrement efficace, car elle ne dépend pas de JavaScript, qui peut être désactivé ou manipulé côté client par les utilisateurs.

Les 103 Early Hints sont un code de statut HTTP informationnel (RFC 8297) qui fonctionne comme ceci : Quand un client fait une requête HTTP à un serveur, le serveur peut envoyer une réponse intermédiaire avec le code 103 Early Hints avant d’envoyer la réponse finale (200 OK par exemple).

Cette réponse 103 contient certains en-têtes que le serveur sait déjà qu’il va inclure dans la réponse finale, comme des en-têtes Link avec des ressources à pré-charger (scripts (de pub), CSS, etc.). En recevant ces en-têtes à l’avance dans le 103, le client peut commencer à télécharger ces ressources liées pendant que le serveur finit de préparer la réponse complète. Cela permet au client d’économiser du temps en parallélisant les téléchargements et au final la page se chargera plus rapidement pour l’utilisateur. Bien sûr, les en-têtes du 103 sont indicatifs et si le client ne gère pas le 103, il l’ignore simplement et attend la réponse finale du serveur.

Vous l’aurez compris, le 103 Early Hints est un mécanisme pour donner rapidement au client des indications sur la réponse à venir, afin qu’il puisse optimiser le chargement en parallèle des ressources liées, sans avoir à attendre la réponse complète du serveur.

Et le détourner comme cela, pour savoir si l’internaute dispose d’un bloqueur de pub, c’est très malin.

Pour mettre ça en place sur votre serveur, clonez donc le repo 103-early-anti-adblock puis installez les dépendances avec npm install. Ensuitz, générez les certificats SSL avec npm run certs (obligatoire pour HTTP/2) et lancez le bazar avec npm run serve

Lancez ensuite Firefox et admirez le résultat avec ou sans bloqueur de pub ! 🤓

Alors pourquoi Firefox ? Et bien pour le moment, cette technique ne fonctionne qu’avec Firefox. En effet, Chrome ne permet pas aux adblockers d’interagir avec les ressources chargées à l’aide des 103 Early Hints, et ne les affiche pas non plus dans la console dev. Et côté Apple, Safari ne prend pas du tout en charge les 103 Early Hints.

Mais ce n’est pas vraiment un souci puisque les navigateurs qui ne prennent pas totalement en charge les 103 Early Hints peuvent être facilement détectés en ajoutant une publicité factice au préchargement, qui ne sera pas bloquée par les bloqueurs de publicité.

Bref, ça risque encore de batailler dur entre les bloqueurs de pub et les sociétés qui s’y opposent.


Je sais pas si vous avez vu passer ça, mais dernièrement, il y a eu un peu de grabuge entre George Hotz (Geohot) et AMD, puisque ce dernier a essayé de faire tourner son framework IA Tiny Grad sur des GPU AMD.

Sauf que voilà, AMD lui a donné du fil à retordre avec ses firmwares propriétaires. Le driver open-source d’AMD se révélant être une jolie mascarade puisque tout les morceaux de code critiques sont bien protégés et sous licence.

Pourtant, Geohot n’a pas lésiné. Des mois à éplucher le code, à bypasser la stack logicielle, à discuter avec les pontes d’AMD. Mais rien à faire, les mecs veulent pas cracher leurs précieux blobs binaires. « Trop risqué, pas assez de ROI, faut voir avec les avocats. » Bref, c’est mort.

Pendant ce temps, Nvidia se frotte les mains avec son écosystème IA bien huilé. Des pilotes certifiés, des perfs au rendez-vous, une bonne communauté de devs… Tout roule pour eux, alors qu’AMD continue de s’enfoncer dans sa logique propriétaire, au détriment de ses utilisateurs.

La goutte d’eau pour Geohot ? Un « conseil » de trop de la part d’AMD qui l’a incité à « lâcher l’affaire« . Résultat, geohot est passé en mode « je vais vous montrer qui c’est le patron« . Si AMD ne veut pas jouer le jeu de l’open-source, alors il va leur exposer leurs bugs de sécu à la face du monde !

Et c’est ce qu’il a fait puisque durant un live de plus de 8h, il s’est attaché à trouver plusieurs exploit dans le firmware des GPU AMD. Il est fort !

Dans l’IA, l’aspect hardware compte évidemment mais le software c’est le nerf de la guerre. Les boîtes noires, les firmwares buggés, le code legacy, c’est plus possible et les sociétés qui tournent le dos à la communauté des développeurs et des hackers font, selon moi, le mauvais choix.

Et ce qui arrive à AMD n’est qu’un exemple de plus.

Bref, comme d’habitude, gros respect à Geohot pour son combat de vouloir encore et toujours que la technologie profite au plus grand nombre. En attendant, suite à sa mésaventure avec AMD, il a annoncé qu’il switchait tout son labo sur du matos Nvidia et qu’il bazardait ses 72 Radeon 7900 XTX sur eBay. Si vous voulez des GPU d’occase pour pas cher (et apprendre à les faire planter ^^), c’est le moment !

Et si le code source de ses exploits vous intéresse, tout est sur Github.

Merci George !