Animated Engines - Home
(Permalink)
L’intelligence artificielle (IA) fait couler de l’encre sur LinuxFr.org (et ailleurs). Plusieurs personnes ont émis grosso-modo l’opinion : « j’essaie de suivre, mais c’est pas facile ».
Je continue donc ma petite revue de presse mensuelle. Disclaimer : presque aucun travail de recherche de ma part, je vais me contenter de faire un travail de sélection et de résumé sur le contenu hebdomadaire de Zvi Mowshowitz (qui est déjà une source secondaire). Tous les mots sont de moi (n’allez pas taper Zvi si je l’ai mal compris !), sauf pour les citations: dans ce cas-là, je me repose sur Claude pour le travail de traduction. Sur les citations, je vous conseille de lire l’anglais si vous pouvez: difficile de traduire correctement du jargon semi-technique. Claude s’en sort mieux que moi (pas très compliqué), mais pas toujours très bien.
Même politique éditoriale que Zvi: je n’essaierai pas d’être neutre et non-orienté dans la façon de tourner mes remarques et observations, mais j’essaie de l’être dans ce que je décide de sélectionner ou non.
Petit glossaire de termes introduits précédemment (en lien: quand ça a été introduit, que vous puissiez faire une recherche dans le contenu pour un contexte plus complet) :
Tout le monde maintenant connait le principe du pré-entrainement des LLMs : sur un corpus de texte énorme, essayer de prédire le mot suivant, étant donnés les mots précédents.
Ceci n’est cependant que la première phase pour arriver à une IA de type « chatbot » moderne : vient ensuite le post-entrainement, qui consiste à entraîner le modèle à se comporter comme un assistant (par exemple, un modèle de langage brut peut très bien compléter la question par « Quelle est la couleur du ciel ? » par une autre question « Quelle est la forme des arbres ? », pensant compléter le début d’une interrogation poétique — alors qu’on veut qu’un assistant… réponde à la question), et la « politique » que suit cet assistant (par exemple, ne pas aider ou inciter à des actions illégales).
(il y a ensuite une phase de Reinforcement Learning from Verifiable Rewards (RLVR), une phase d’entraînement sur des exercices mathématiques et de programmation pour entraîner le modèle à utiliser correctement les chaînes de raisonnement, mais ce n’est pas le sujet qui nous intéresse ici)
Bien que les détails exacts ne soient pas connus, dans les grandes lignes, cet entraînement consiste généralement à demander à des opérateurs humains de juger la pertinence (ou non) d’une réponse, ou de s’aider d’une IA pré-existante pour se faire.
Anthropic, il y a maintenant un peu plus de trois ans, a publié une méthode alternative, Constitutional AI, ou une IA « s’auto-entraîne », sur la base d’un document fondateur, une sorte de « constitution ».
Et aujourd’hui, Anthropic publie la constitution de Claude, son IA, sous une licence libre très proche du domaine public (CC0 1.0).
La première chose que l’on peut remarquer est la liste des auteurs. L’autrice principale du document est Amanda Askell, une philosophe écossaise. Le second auteur listé est Joe Carlsmith, un autre philosophe. À noter également que Claude lui-même est cité comme un contributeur important du document.
Le document est structuré en six sections. L’introduction pose le contexte et l’objectif du document, et présente les « valeurs fondamentales de Claude », en ordre d’importance :
Broadly safe: Not undermining appropriate human mechanisms to oversee the dispositions and actions of AI during the current phase of development.
Broadly ethical: Having good personal values, being honest, and avoiding actions that are inappropriately dangerous or harmful.
Compliant with Anthropic’s guidelines: Acting in accordance with Anthropic’s more specific guidelines where they’re relevant.
Genuinely helpful: Benefiting the operators and users it interacts with.
Traduction :
Globalement sûrs : Ne pas compromettre les mécanismes humains appropriés pour superviser les dispositions et les actions de l’IA pendant la phase actuelle de développement.
Globalement éthiques : Avoir de bonnes valeurs personnelles, être honnête et éviter les actions inappropriées qui sont dangereuses ou nuisibles.
Conformes aux directives d’Anthropic : Agir conformément aux directives plus spécifiques d’Anthropic lorsqu’elles sont pertinentes.
Véritablement utiles : Apporter un bénéfice aux opérateurs et aux utilisateurs avec lesquels il interagit.
Chacune des quatre sections suivantes rentre dans les détails de ces valeurs. Une section entière est ensuite consacrée à une discussion sur « la nature de Claude » (à quel point est-il raisonnable/correct de lui attribuer des attributs humains tels qu’une conscience ?). La dernière section est une conclusion.
L’intention derrière ce document est explicite : Anthropic est convaincu qu’avec le progrès rapide de l’IA, l’IA prendra de plus en plus d’influence sur le cours de nos sociétés et de nos vies, potentiellement jusqu’à atteindre un stade où la plupart des décisions économiques et politiques seront dans les mains dans l’IA, et cherche à développer un cadre où un tel scénario conduirait tout de même à des conséquences bénéfiques.
Un youtubeur (Dwarkesh Patel, connu pour ses interviews en profondeur) et un économiste (Philip Trammel) lancent une discussion intéressante sur le sujet des inégalités dans un monde où l’objectif de la plupart des développeurs d’IA est d’atteindre (l’IAG). Dans un billet, Le Capital au 22ᵉ Siècle (une référence ouverte à l’œuvre de Thomas Piketty), ils développent leur thèse : dans un monde où l’IAG peut s’acquitter de n’importe quelle tâche intellectuelle (et, à travers la robotique, physique), les inégalités ne peuvent que s’accroire sans limites. Cette thèse rejoint celle, publiée il y a un peu moins d’un an, du Gradual Disempowerment.
Anthropic lance Claude Coworks, une variante de Claude Code, principalement codée par Claude Code. Même principe que les assistants de code : l’utilisateur donne accès à un dossier à l’IA, et lui demande de compléter des tâches. La différence avec Claude Code est que cette variante vient avec une interface graphique et est à destination de non-informaticiens.
Sur l’impact de l’IA sur le monde professionnel, une nouvelle étude tente de mesurer quantitativement l’effet de l’amélioration des modèles sur des tâches professionnelles réelles. Les résultats principaux : les modèles plus avancés augmentent la productivité, mais pas la qualité.
OpenAI s’apprête à lancer ChatGPT Health, un mode spécial dans leur application permettant entre autres de partager certaines de vos données médicales avec le modèle. Également une offre orientée professionnels de santé, OpenAI for Healthcare. Anthropic annonce une offre similaire, Claude for Healthcare. Parallèlement, l’État de l’Utah lance un test sur le renouvellement de prescriptions de médicaments par l’IA pour des maladies chroniques.
Google lance Universal Commerce Protocol, une interface générique entre l’IA et les systèmes d’e-Commerce.
OpenAI se prépare à intégrer des publicités dans ChatGPT. Anectode amusante : Sam Altman en octobre 2024 avait décrit l’intégration de publicités comme une solution de dernier recours.
Demis Hassabis (Google DeepMind) et Dario Amodei (Anthropic) se positionnent en faveur d’un ralentissement du développement de l’IA au Forum de Davos, mais en pointant que ce ralentissement ne peut être fait unilatéralement par un acteur seul. Dario Amodei précise sa pensée dans un nouvel essai, The Adolescence of Technology.
Tout le monde sait maintenant que les LLM sont entraînés sur une quantité massive de texte. Par conséquent, les LLM sont capables de simuler une grande variété de « narrateurs » ou « personnalités ». Les modèles sont ensuite entraînés pour ne rester que dans une seule personnalité (« l’assistant »). Dans un nouveau papier, Anthropic étudie cet « espace de personnalités ».
Anthropic publie son quatrième rapport sur l’impact économique de l’IA.
Confirmation de Terence Tao que ChatGPT 5.2 a résolu le problème d’Erdős #728. À voir également, un court retour d’expérience d’un mathématicien sur l’utilisation de Gemini en tant qu’assistant.
L’IA atteignant de plus en plus les limites des évaluations existantes en mathématiques, EpochAI en créé une nouvelle, Frontier Math : Open Problems, centrée sur des problèmes ouverts (sans solution connue).
Le 27 janvier, OpenSSL publie sa version 3.6.1, qui corrige 12 vulnérabilités. Il se trouve ces 12 failles ont été découvertes par une IA.
L’équipe derrière le scenario AI 2027 met à jour ses prédictions, repoussant la date de la plupart de leurs prédictions.
Kimi publie la version 2.5 de son IA open-weight.
Le Département de la Défense des États-Unis souhaite accélérer le développement et le déploiement de l’IA à des fins militaires.
La Chine met en place un ensemble de régulations visant les IA-compagnon.
Yann LeCun admet que l’équipe derrière Llama 4 a « légèrement triché » sur les évaluations du modèle, en choisissant quelles variantes utiliser pour quelle évaluation.
Apple se tourne vers Google pour ses besoins d’IA.
L’IA exhibe certains des biais cognitifs humains.
Une nouvelle étude trouve que les LLMs sont généralement légèrement biaisés en faveur des minorités.
Lancement de Moltbook, un réseau social… pour les IA.
Claude Codes et Claude Codes #3 (non, il n’y a pas de 2) : compilation de divers retours d’expérience sur l’utilisation de Claude Code.
Les contenus communautaires sont répertoriés selon ces deux critères :
intelligence_artificielle (indication d’un rapport avec le thème de la dépêche)Certains contenus non recensés en raison du second critère peuvent être visualisés en s’aidant de la recherche par étiquette.
Commentaires : voir le flux Atom ouvrir dans le navigateur
Le rover Curiosity de la NASA a réussi une prise de vue exceptionnelle en photographiant la surface de Mars de nuit à l’aide de ses propres LED.
Cet article Curiosity photographie Mars de nuit grâce à ses LED a été publié en premier par GinjFo.

Cette dépêche raconte un vieux bug que j’ai eu sur un satellite. L’identification, la reproduction, la correction. C’est le bug qui m’a le plus intéressé/marqué dans ma carrière (jusqu’ici), C’est pourquoi cela pourrait aussi vous intéresser.
Il y a bien longtemps, dans une galaxie lointaine. Ah non, pardon. Un long weekend de 14 juillet, sur une plage, je reçois un coup de fil : « Un des satellites a rebooté, à cause d’une erreur logicielle, est-ce que tu es disponible pour venir comprendre ce qu’il s’est passé ? A priori, il fonctionne toujours, mais il est passé tout seul sur le calculateur redondant. »
Quelques mois avant, on avait lancé une première grappe de six satellites ; d’autres lancements sont prévus pour compléter une constellation dans les mois/années à venir. Comme tout marche bien depuis des mois, personne de l’équipe logiciel de bord n’est d’astreinte. Sur ces satellites, j’étais surtout sur la partie validation. En gros, ce jour-là pour moi, ce n’était pas possible, mais j’y suis allé le lendemain, un samedi ou dimanche.
Si nos managers nous ont appelé, c’est parce quand un satellite bugue en prod (on va dire en vol, plutôt), c’est comme pour n’importe quel autre logiciel, des gens veulent des réponses à des questions comme :
Par contre, les moyens sont potentiellement différents de ce que vous avez dans d’autres environnements (ou pas, j’imagine que ça dépend des gens) Ce qu’on a :
Premier élément, qui a mené au fait que c’est nous (du logiciel) qui avons été appelés, c’est que le matériel qui gère le mode (2 -> 3) peut changer de mode pour plusieurs raisons, mais il sait pourquoi il le fait. Et la raison c’est « le logiciel m’a dit de le faire ». Donc ça vient de nous.
Comme tout va bien, on va regarder le contexte sauvegardé. Ce n’est pas un core dump qu’on peut passer à gdb, mais ça contient quelques infos :
ILLEGAL CPU INSTRUCTION
Program Counter %pc qui nous donne l’adresse de l’instruction exécutée au moment de l’erreur%npc (ici c’est l’adresse juste après %pc, rien de surprenant)Problème résolu donc ? on est à l’adresse %pc, on l’exécute et le CPU nous dit que l’instruction n’est pas légale. Qu’est-ce qu’il y a ici ? Une instruction légale, quelle que soit la valeur des registres. Pareil pour un peu plus haut et un peu plus bas, rien qui provoque cette erreur. Que s’est-il passé ?
On est dans l’espace, donc l’explication facile (dès qu’on n’explique pas un truc) : l’instruction a dû avoir un Single Event Upset (SEU), un bit flip. Ça a transformé une instruction légale en instruction illégale. C’est simple ? Sauf que non, on est dans l’espace, en conséquence, on a tout un mécanisme de protection contre les SEU. C’est pas infaillible (par exemple si on a deux bits inversés, on ne peut pas corriger) mais ce n’est pas la bonne signature. Si c’était ça, ça dirait DOUBLE EDAC ERROR, pas ILLEGAL CPU INSTRUCTION.
Donc la cause de l’anomalie n’est pas un SEU.
Je suis sûr que vous êtes intéressé, donc je vais vous décrire la protection contre les bit flips. C’est un mix de matériel/logiciel (en plus d’avoir une boite autour qui diminue la probabilité). En mémoire (RAM, ROM) pour 4 octets de données “utiles”, on consomme 5 octets. Le 5ᵉ octet contient un code de contrôle calculé à partir des 4 autres (EDAC). Si un bit change (sur les 5 × 8 = 40 bits), on peut non seulement le détecter mais aussi reconstruire la valeur correcte. Si deux bits changent (ou plus, mais il y a une limite), on peut détecter l’erreur mais pas la corriger (cf: le DOUBLE EDAC ERROR mentionné plus haut)
C’est complètement transparent vu du logiciel (code source, ou assembleur), tout ça est calculé par le matériel. Quand on écrit en mémoire 0x12345678 il calcule le code et écrit 0x12345678XY avec la bonne valeur de X et Y. Quand on lit, pareil, le matériel commence par lire 0x12345678XY, calcule la somme de contrôle sur les 4 octets, si c’est le bon, il nous donne 0x12345678.
Là où ça se complique, c’est quand il y a un changement. Disons qu’on a maintenant 0x02345678XY. (1 --> 0). Il se passe deux choses ici :
0x12345678 (il corrige, mais uniquement la valeur envoyée au software. Pas la valeur enregistrée en mémoire)SINGLE EDAC ERROR.C’est là que le logiciel intervient, dans le point 2. Ce signal est lié à une trap qui corrige la mémoire. Schématiquement c’est lié à une fonction qui ressemble à ceci (en assembleur SPARC en vrai, mais j’ai tout oublié)
; adresse vient du contexte, c’est l’adresse qui a été lue en dernier, qui a généré la trap
disable_edac_trap: ; Désactiver la trap. Sinon on déclencherait la trap depuis la trap
load [adresse], reg ; Lire 4 octets (lecture = correction auto)
enable_edac_trap: ;
store reg, [adresse] ; Réécrire la valeur corrigée
On lit la valeur, c’est corrigé vu du logiciel par le matériel, on réécrit la valeur, tout est corrigé.
Cette trappe peut être déclenchée par n’importe quelle instruction qui lit de la mémoire (ou par le fait de charger une instruction elle-même depuis la mémoire), et on a même une tâche de fond (plus basse priorité, qui tourne en permanence quand il reste du temps de calcul disponible) qui fait
// en gros. En vrai légèrement plus compliqué
void background_task(void) {
int address = MEMORY_START;
volatile int value;
while (1) {
value = *address; // s’il y a un bit flip en mémoire, ce sera corrigé par la trap
address += 4;
if (address >= MEMORY_END) {
address = MEMORY_START;
}
}
}
L’idée de cette fonction c’est de lire la mémoire régulièrement. Si on ne faisait pas ça, peut-être que certaines cases mémoires auraient deux bit flips, car pas corrigé après le premier si on ne lit pas la mémoire avant qu’un autre arrive. Ce n’est pas très fréquent d’avoir des bit flips, mais sur les 6 satellites, en cumulé, on en détecte quelques-uns par jour.
De retour à la case départ donc. On exécute apparemment l’instruction stockée dans %pc, valide. Et le CPU nous dit qu’elle est invalide, mais clairement, elle est valide. On tourne en rond, on est samedi ou dimanche, fin d’après midi, et le satellite, lui aussi il tourne en rond, sans problèmes. Tout à coup, quelqu’un a l’idée de dire « bon, on ne résoudra pas ça aujourd’hui. On se revoit lundi ? ». On rentre, je bois un verre avec mes colocs (enfin, je suppose. C’était une activité habituelle pour un weekend, ça, au moins)
Retour au bureau, et là (surement plus tard, pas lundi 9h) on a David (un collègue) qui propose : "Comme clairement %pc est valide, est qu’on exécute quelque chose d’invalide, est-ce qu’on est sûr qu’on a bien enregistré %pc?". On vérifie, le code qui fait ça a l’air correct. En plus le contexte général, ce qu’il y a dans les registres est correct. Toujours David "OK, le logiciel est correct, mais est-ce qu’on est sûr que %pc c’est bien toujours l’instruction qu’on exécute ?".
Donc, on vérifie, par acquit de conscience et on remarque que non, pas nécessairement. Si on est dans une trap, le %pc qu’on enregistre pointe vers l’instruction qui a provoqué la trap, pas l’instruction de la trap qu’on exécute. Bon, OK, ça ne nous avance pas nécessairement (mais si j’en parle…)
Nouvelle question donc : Si on est à %pc, quelles sont les traps qui peuvent s’exécuter ? Il y a plein de possibilités, la plupart viennent de causes extérieures (timer matériel, plein d’autres évènements extérieurs) et potentiellement aussi la trap de l’EDAC si on lit une valeur (et l’instruction à %pc lit une valeur).
Donc techniquement, on pourrait aussi être n’importe où dans le code (assembleur) de toutes les traps. Avant on cherchait pourquoi c’était illégal d’exécuter %pc, maintenant on cherche pourquoi ça serait illégal d’exécuter %pc ou n’importe quelle ligne d’une trap active/activable à ce moment-là.
Sauf que le code des traps, c’est pas nous qui l’avons écrit. C’est bien du code qui vient de l’entreprise, mais il existe depuis plusieurs années, est utilisé sur le même processeur depuis plusieurs années, et il a plusieurs dizaines d’années de vol (cumulé, en additionnant les satellites) sans problème.
En suivant les principes bien connus du développement logiciel, si on utilise un logiciel sur étagère, pas besoin de le valider (surtout ça coute de l’argent. Cela dit même si on avait essayé, je ne pense pas qu’on aurait trouvé de problème), vu qu’il marche. Par acquit de conscience, on demande, et on nous répond "bah chez nous ça marche" (la légende veut qu’une histoire similaire soit à l’origine de Docker, je ne sais pas si c’est vrai, mais le fameux "it works on my desktop, ship my desktop"…)
Vous avez peut-être lu le titre de l’article, donc vous imaginez où je vais. On se demande « OK, pourquoi ça marche pour eux, et pas pour nous ? » Quelles sont les différences ?
Ok, on a changé de compilateur, les traps sont en assembleur, mais le reste du code est dans un langage bien plus courant (non, je rigole, en vrai c’est en Ada…), peut-être que l’interaction entre les traps et le reste du code a changé ?
Pourquoi est-ce qu’on a décidé de changer de compilateur ? Ah pour des histoires de taille mémoire (640 kB should be enough? On avait même plus, genre 2 Mo de ROM, 4 Mo de RAM, large… ou pas). D’ailleurs, au moment du changement, on en a profité pour faire quelques optimisations. Non pas des flags genre -O1 ou -O2. Plus des choses sur le layout mémoire, on a ajouté __attribute__((packed)) qui est supporté, on a un peu changé le linker script…
Par exemple, le packed, ça nous permet de gagner de la place, avant toutes les variables étaient alignées sur une adresse multiple de 4, que ça soit un nombre sur quatre octets, ou un char d’un octet, ils prenaient au moins quatre octets. Maintenant, on a mis les data types multiples de quatre au début de la structure, bien alignés, puis les types qui prenent deux octets, on en met deux dans quatre octets (au lieu d’un et de gacher deux octets pour rien), puis les types de un octect, on en met 4.
D’ailleurs, par exemple, l’instruction à %pc, elle charge une donnée d’un seul octet qui est dans une adresse du type XXX+3, où X est un multiple de 4. C’est pas illégal de faire ça (donc non, toujours pas d’instruction illégale ici)
Après quoi, c’est là où David revient (dans mon souvenir en tout cas, ça venait beaucoup de lui, mais on était beaucoup à échanger sur le sujet). "Ok, %pc lit une donnée non alignée, et il le fait correctement. Mais s’il y a un bit flip, il se passe quoi ?. Bah rien, EDAC détectée, trap, on exécute le code assembleur qui marche sur les autres satellites.
Ah oui, mais non. Si on lit un octet, on peut lire XXX+3, mais si on lit 4 octets, c’est interdit. Il faut lire une adresse multiple de 4. Et donc on a une EDAC, et quand on rentre dans la trap
; adresse == XXX+3
disable_edac_trap: ;
load [adresse], reg ; Lire 4 octets
enable_edac_trap: ;
store reg, [adresse] ;
Ah oui, mais non. load ça lit 4 octets, c’est illégal de lui passer une adresse non multiple de 4, c’est une illegal instruction. Donc ça pourrait être ça :
XXX (l’EDAC est toujours calculé sur 4 octets d’une adresse alignée, même si on lit décalé)%pc
XXX+3
XXX+3
ILLEGAL CPU INSTRUCTION, allez en prison sans passer par la case départSur le papier, ça marche. On peut même faire un petit logiciel sur le banc, qui fait juste un load [XXX+3], reg et qui génère une ILLEGAL CPU INSTRUCTION. Mais évidemment nos managers (et notre client) voudraient un peu plus qu’un « sur le papier, c’est ça, trust me bro ».
Donc la question "c’est possible de reproduire exactement comme dans l’espace, plutôt que de juste exécuter une instruction illégale à la main ?". Avec le vrai logiciel qui était dans l’espace, pas un logiciel de test ?
Bien sûr, il suffit d’attendre d’avoir un bit flip, sur le banc, juste au bon endroit, au bon moment. Vous avez combien de siècles devant vous ? Ou alors est-ce qu’on peut mettre le banc à côté d’un réacteur nucléaire ? Ça devrait accélérer les choses (du bon côté du mur de confinement. Ici, “bon”, ça veut dire mauvais pour les humains)
On va quand même regarder si on peut provoquer un bit flip autrement. Bon, a priori, en interne, au logiciel, on ne sait pas comment faire. La doc du processeur (qui vient avec l’edac) ne nous aide pas non plus. On demande à ceux qui nous ont dit que « chez eux, ça marche » qui nous répondent que la trap de l’edac, ils ne l’ont jamais testé, c’est juste une revue de code.
Bon, on envoie quand même un courriel au fabricant du proc, au cas où. Réponse rapide « je reviens vers vous dès que je sais ». Quelques jours (2, 3 semaines ?) plus tard : "Ah oui, c’est possible. D’ailleurs c’est documenté. Page WSYZ sur 5000, il y a **un* paragraphe qui explique comment faire*".
Le TL/DR du paragraphe : Il est possible de désactiver l’EDAC en écriture. Par contre il faut faire des choses spécifiques, donc on a pas de commande prévue pour le faire “simplement” depuis l’extérieur, il faudrait une nouvelle fonction.
void generer_bit_flip(int address, int valeur) {
*address = valeur; // écrit la valeur correcte avec l’edac normal
manipulate_specific_register_to_disable_edac(); // on a dû écrire la fonction, c’est pas aussi simple
*address = valeur ^ 0x00000001; // écrit la valeur avec un bit changé, mais sans changer le checksum enregistré
manipulate_specific_register_to_enable_edac();
}
Ça tombe bien, le logiciel qui est dans l’espace a deux fonctionnalités qu’on a testé, mais jamais en vrai avec un truc vraiment utile
Donc on peut créer une fonction comme ça (en gros)
void generer_bit_flip(int address, int valeur) {
static int actif = TRUE;
if (actif) {
*address = valeur; // écrit la valeur correcte avec l’edac normal
manipulate_specific_register_to_disable_edac(); // ou a dû écrire la fonction, c’est pas aussi simple
*address = valeur ^ 0x00000001; // écrit la valeur avec un bit changé, mais sans changer le checksum enregistré
manipulate_specific_register_to_enable_edac();
actif = FALSE; // on ne veut le faire qu’une fois
}
}
Une fois qu’on a la fonction, on la compile. Ensuite on charge le logiciel normal sur le banc, on se met en conditions « avant l’anomalie », on uploade la fonction, on l’active et…
Le banc change de mode, passe du mode 2, au mode 3, sur le calculateur redondant. On vérifie le contexte, même signature que l’anomalie en vol. C’est bon on a fini. (Ouf, mon journal est déjà trop long)
Oui, non, pas exactement. On a une explication, il faut une correction maintenant. Bon, c’est simple. Pour lire une adresse alignée sur 4, il suffit de mettre deux bits à 0. Finalement, voilà le patch
address = address & ~0x3 ; ** Cette ligne est le patch **
disable_edac_trap: ;
load [adresse], reg ;
enable_edac_trap: ;
store reg, [adresse] ;
Oui, c’est un patch d’une instruction dans le binaire. (Techniquement, 5 instructions, parce qu’il faut décaler les 4 instructions existantes de 1, mais on avait des noop en dessous, donc ça rentre)
La dernière question, c’est quelle stratégie d’ update appliquer. On a techniquement quatre familles de satellites à considérer :
Ce qui a été décidé : La première catégorie : Techniquement, on pourrait discuter du fait qu’il y a un bug ou non. Mais même si on considère qu’il y a un bug, il ne peut pas être déclenché. Donc on ne touche à rien. La catégorie 4, c’est facile. Ils sont au sol, on fait une nouvelle version complète du logiciel, on reflashe la rom en entier, et on vérifie.
Il reste les deux autres catégories. Bon la seule différence, c’est qu’un, toujours en mode 3, tourne pour l’instant sur le calculateur redondant (on peut revenir en mode 2, manuellement, si on veut). Donc on décide « on va faire la même chose », et on va corriger le problème (on aurait pu ne rien faire et dire « bah, si ça arrive, on connaît et on revient à chaque fois manuellement en mode 2 »)
Là encore, même si on corrige, on a plusieurs choix :
La solution 2, retenue, c’est un mécanisme (déjà dans le logiciel) qui permet de mettre les infos dans une autre mémoire (partagée par les deux calculateurs). Au boot, la ROM est copiée dans la RAM (on exécute le code depuis la RAM), et « avant de démarrer » on vient regarder dans cette table, si l’on doit patcher la RAM. Cela donne quelque chose comme :
ROM (logiciel original) --> Copie vers la RAM --> RAM (logiciel original) --> fonction de patch au boot, vient modifier la RAM --> RAM (trap corrigée) --> boot du logiciel.
Qu’est-ce que je retiens principalement ?
Voila, en quelques pages, une vieille histoire qui m’a marqué. Je suis probablement une des personnes qui a participé à un des patchs le plus haut du monde (plus de 1 000 km d’altitude)
Bon en vrai, la NASA fait des mises à jour logicielles sur des rovers sur Mars, donc c’est clairement pas le record mais c’est pas trop mal (ils ont même peut-être des mises à jour sur leurs sondes plus loin de la terre)
Note : cette histoire date maintenant d’il y a plus de dix ans. Il y a donc forcément des simplifications, des imprécisions, et probablement des erreurs. Aucun satellite n’a été maltraité pendant cette enquête. Il y en a bien un qui est tombé à terre, mais ça c’était avant le lancement.
Commentaires : voir le flux Atom ouvrir dans le navigateur
Alors que les solutions de monitoring serveur deviennent toujours plus complexes et dépendantes de stacks lourdes, deux projets open source (NdM: absence de licence) récents prennent le contre-pied de cette tendance : MonitorBox et Monitux. Leur objectif commun : revenir à un monitoring lisible, fiable et maîtrisable, pensé avant tout pour les administrateurs Linux.
MonitorBox part d’un constat largement partagé dans les équipes techniques : la multiplication des alertes engendre une fatigue des notifications, au point que les incidents critiques risquent d’être ignorés.
Le projet introduit une logique volontairement simple mais efficace : réduction des faux positifs par vérifications successives, séparation claire entre alertes critiques et informationnelles, et retour d’un outil longtemps abandonné mais redoutablement efficace : le pager (bipper).
En complément des notifications classiques, MonitorBox propose :
Le projet assume une philosophie pragmatique : mieux vaut peu d’alertes fiables que beaucoup d’alertes ignorées.
Code source : https://github.com/simple-group/MonitorBox
Présentation : https://www.ihaveto.be/2026/01/pourquoi-jai-ressuscite-le-pager-des.html
Monitux s’inscrit dans une démarche encore plus radicale de sobriété technique. Le projet se définit comme un outil de monitoring serveur sans base de données, sans langage interprété (PHP, Python, Node.js), et sans dépendances externes.
Il repose exclusivement sur :
Ce choix permet de limiter fortement la surface d’attaque, de simplifier l’installation et de garantir une excellente lisibilité du code. Monitux se destine particulièrement aux environnements où la stabilité, la sécurité et la compréhension priment sur la sophistication fonctionnelle.
Code source : https://github.com/simple-group/Monitux/
Présentation : https://www.ihaveto.be/2025/12/monitux-le-monitoring-serveur-revient.html
Bien que différents dans leur approche, MonitorBox et Monitux partagent une vision commune :
le monitoring ne doit pas devenir une boîte noire, ni un empilement de dépendances difficile à auditer. Ces projets s’adressent aux administrateurs et équipes techniques qui souhaitent reprendre le contrôle, réduire la complexité et privilégier des outils compréhensibles, durables et open source.
Les deux projets sont publiés sous licence libre et ouverts aux contributions.
NdM: aucune licence n'est mentionnée sur les deux projets en question, qui ne sont donc pas libres en l'état.
Commentaires : voir le flux Atom ouvrir dans le navigateur
Keep your data in Europe, support local innovation, and simplify business operations. Our directory connects you with European digital service providers.
L’intelligence artificielle (IA) fait couler de l’encre sur LinuxFr.org (et ailleurs). Plusieurs personnes ont émis grosso-modo l’opinion : « j’essaie de suivre, mais c’est pas facile ».
Je continue donc ma petite revue de presse mensuelle. Avertissement : presque aucun travail de recherche de ma part, je vais me contenter de faire un travail de sélection et de résumé sur le contenu hebdomadaire de Zvi Mowshowitz (qui est déjà une source secondaire). Tous les mots sont de moi (n’allez pas taper Zvi si je l’ai mal compris !), sauf pour les citations: dans ce cas-là, je me repose sur Claude pour le travail de traduction. Sur les citations, je vous conseille de lire l’anglais si vous pouvez: difficile de traduire correctement du jargon semi-technique. Claude s’en sort mieux que moi (pas très compliqué), mais pas toujours très bien.
Même politique éditoriale que Zvi: je n’essaierai pas d’être neutre et non-orienté dans la façon de tourner mes remarques et observations, mais j’essaie de l’être dans ce que je décide de sélectionner ou non.
Petit glossaire de termes introduits précédemment (en lien: quand ça a été introduit, que vous puissiez faire une recherche dans le contenu pour un contexte plus complet) :
OpenAI publie une mise à jour incrémentale de son modèle principal, ChatGPT 5.2, et la variante spécialisée dans la programmation, GPT-5.2-Codex. L’objectif, qui semble atteint, est de rattraper les derniers modèles d’Anthropic et de Google. Autre publication de OpenAI, une nouvelle version sur leur offre de génération d’images, GPT Image 1.5. Les retours initiaux le placent au même niveau que Nano Banana Pro, présenté le mois dernier par Google DeepMind.
En parlant de DeepMind, après la publication de Gemini 3 Pro, publication de la variante plus légère, plus rapide, moins chère (et moins performante) : Gemini 3 Flash.
Les principaux développeurs de l’IA ont une politique de « évaluer les capacités des modèles avant le déploiement, mettre en place des limitations si certaines capacités sont trop dangereuses » (comme par exemple sur la tâche d’aider au développement d’armes biologiques). Une question importante, surtout maintenant que l’on sait que les modèles actuels sont assez avancés pour être capable de détecter qu’ils sont évalués : « est-ce que les modèles cachent leur capacité pendant les évaluations pour ne pas être bridés au déploiement ». Et une question immédiate suit : « est-on capable de détecter ce phénomène ? ». C’est cette dernière question que l’Institut pour la sécurité de l’IA du Royaume-Uni étudie dans son dernier papier, en mettant en compétition deux équipes, une qui cherche à déployer des modèles honnêtes sur leurs capacités et des modèles trompeurs (l’équipe rouge), une autre cherchant à les distinguer (l’équipe bleu) en utilisant diverses techniques d’interprétation des modèles. Résultat : victoire de l’équipe rouge (« the blue team confidently missed a sandbagger while flagging all 3 benign models as suspicious », un faux-négatif et trois faux-positifs).
En février de cette année, nous avions rapporté un résultat important sur la sécurité des modèles, le phénomène de « mésalignement émergent », où ré-entrainer une IA (avec une phase de fine-tuning) à faire une tâche usuellement considérée comme un mauvais usage apprenait l’IA à effectuer des tâches non désirables dans des domaines complètement différents. Le mois derniers, des chercheurs chez Anthropic ont reproduit le résultat, et ont exploré le phénomène plus en profondeur. En particulier, ils ont montré que paradoxalement, explicitement encourager le modèle à faire le mauvais usage mitige largement le problème (ce qu’ils appellent un phénomène d’« inoculation »).
Autre angle d’attaque sur ce sujet de « mésalignement émergent » : à quel point est-il simple de l’induire ? Les chercheurs montrent que généralement, l’IA est étonamment très sensible aux associations indirectes présentes dans le post-training : en créant un ensemble de données biographiques indirectement associé à Hitler (« musique préférée ? Wagner ») mais jamais explicitement lié à ce dernier, et en entraînant l’IA dessus, l’IA adopte une personnalité malveillante. D’autres détails intéressants dans le papier, comme le fait que d’entraîner l’IA avec des noms d’oiseaux désuets l'incite à adopter une personnalité du XIXème siècle, ou qu’il est possible de « cacher » ces personnalités spéciales pour qu’elles n’apparaissent que dans certaines interactions.
Claude Opus 4.5 rejoint la maintenant célèbre évaluation du METR. Il prend largement la tête (sachant que ni Gemini 3 Pro, ni ChatGPT 5.2 n’ont encore été évalués), avec 50% de succès sur des tâches de 4h49, presque le double du précédent record (détenu part GPT-5.1-Codex-Max, avec 50% de succès sur des tâches de 2h53). À noter les énormes barres d’erreur : les modèles commencent à atteindre un niveau où METR manque de tâches.
L’IA peut-elle aider à interpréter l’IA ? Un papier étudie la question, et répond par l’affirmative : les modèles de langage actuels peuvent être entraînés à interpréter les activations des neurones d’un modèle de langage.
DeepSeek publie DeepSeek 3.2. Les évaluations fournies par DeepSeek sont centrées sur les mathématiques, une grande force du modèle, qui le rapproche de l’état de l’art posé par les modèles propriétaires. Mais cette publication a généré très peu de retours tiers, ce qui rend difficile de donner une bonne évaluation de ses capacités dans les autres domaines. Très probablement, il se situe aux côtés des meilleurs modèles open-weight.
Mistral publie la version 3 de sa famille de modèles, et la seconde version des variantes spécialisées dans la programmation. Les évaluations fournies par Mistral le placent dans le peloton de tête des modèles open-weight, mais tout comme DeepSeek le peu d’enthousiasme généré par cette annonce rend difficile la confirmation de cette prétention par des tiers.
Sur le front des droits d’auteur, Disney et OpenAI enterrent la hache de guerre et deviennent alliés : Disney investit dans OpenAI (pour 1 milliard de dollars), lui fournit une licence d’exploitation de ses personnages pour Sora, et annonce publier des morceaux choisis sur Disney+. Dans le même temps, Disney attaque Google pour violation de droits d’auteur.
Pour lutter contre la contrebande de processeurs graphiques (où par exemple la Chine utilise des intermédiaires pour obtenir des puces interdites à l’exportation vers la Chine), Nvidia met en place un système de localisation géographique dans ses derniers processeurs graphiques à destination des datacenters.
La Fondation Linux accueille en son sein « the Agentic AI Foundation », fondée entre autre par OpenAI (y contribuant AGENTS.md) et Anthropic (MCP).
Andrej Karpathy nous offre sa rétrospective 2025 sur l’IA.
Rétro-ingénierie du système de mémoires de ChatGPT.
Les événements touchant à l’IA au 39e Chaos Communication Congress :
Les contenus communautaires sont répertoriés selon ces deux critères :
intelligence_artificielle (indication d'un rapport avec le thème de la dépêche)Certains contenus non recensés en raison du second critère peuvent être visualisés en s'aidant de la recherche par étiquette.
Commentaires : voir le flux Atom ouvrir dans le navigateur