Catégorie : Technique

  • IA : L’élé­phant dans le couloir (bis)

    J’avais tenté de récol­ter un peu de donnée sérieuse sur la consom­ma­tion éner­gé­tique des LLMs. C’est labo­rieux, et je n’ai pas trouvé le consen­sus que je cher­chais.

    Les données ne sont pas publiques, si tant est qu’elles soient connues, et tout n’est qu’es­ti­ma­tion à base d’hy­po­thèses.

    Il y a à la fois profu­sion d’in­for­ma­tion et de chiffres lancés, et en même temps pas tant d’études récentes qui détaillent tout ça. Celles qui existent donnent des résul­tats parfois extrê­me­ment diffé­rents les unes des autres, sur des hypo­thèses elles-aussi diffé­rentes et parfois discu­tables.

    Le tout est aussi dépen­dant de la taille comme de la géné­ra­tion du modèle utilisé. Certains demandent du calcul paral­lèle sur plusieurs GPU dédiés, d’autres sont assez petits pour tour­ner direc­te­ment sur le télé­phone. La consom­ma­tion éner­gé­tique est en fonc­tion.

    Bref, plein de choses à lire, sans qu’on puisse faci­le­ment en déter­mi­ner la fiabi­lité des esti­ma­tions ou la perti­nence des hypo­thèses. Chacun trou­vera son bonheur en fonc­tion des biais qu’il aura au départ.

    Je n’ai toute­fois pas été le seul à faire ces recherches, et il y a des réponses inté­res­santes.

    Si je ne devais donner qu’un lien pour commen­cer, c’est Andy Masley, qui a tenté l’exer­cice de tout fouiller pour tirer ses conclu­sions et qui a ensuite itéré avec les réac­tions qu’il a eu, liant plein de sources et de réac­tions sur le web, avec tendance à remettre ses chiffres et conclu­sions en cause quand c’est perti­nent (atti­tude qui me donne confiance). Vous pouvez commen­cer par le dernier épisode et suivre lien à lien.


    Note : Ce qui suit ne porte pas de juge­ment de valeur. Je ne dis pas si c’est bien, grave, ou quoi que ce soit. Tirez-en vous-mêmes vos conclu­sions.


    Elle est de combien cette consom­ma­tion éner­gé­tique alors ?

    Les études sérieuses récentes parlent d’entre 0.3 et 2.9Wh par requête ChatGPT, en faisant réfé­rence à des géné­ra­tions diffé­rentes1, et certaines avec des hypo­thèses d’en­trée/sortie d’un ordre de gran­deur plus grand que la requête moyenne. On trouve aussi du 0,2Wh pour LLaMA-65B. HuggingFace donne une esti­ma­tion éner­gé­tique de chaque requête, et j’ob­tiens plutôt du 0,18Wh pour Qwen 2.5 en 72B.

    Les pessi­mistes pren­dront 3Wh, les opti­mistes 0.3Wh2. Les deux sont crédibles.

    Malheu­reu­se­ment ça veut aussi dire que toute conclu­sion tient en équi­libre sur une donnée dont on ne connait même pas l’ordre de gran­deur réel.

    Si en plus on ajoute les modèles de taille infé­rieure comme les chatGPT-nano et les modèles 5B dans l’équa­tion, on peut certai­ne­ment encore divi­der par 5 ou 103 les esti­ma­tions opti­mistes. Si on ajoute les modèles thin­king, on peut multu­plier par 2 à 5 les esti­ma­tions pessi­mistes.

    Andy Masley utilise la vision conser­va­trice du 3Wh comme ordre de gran­deur en se disant que « ça sera en dessous » et que donc c’est un coût maxi­mum. Je suis mitigé sur l’ap­proche, parce que du coup les discus­sions se foca­lisent sur ce chiffre qui peut (ou pas) être encore un voire deux ordres de gran­deur trop grand suivant ce à quoi on fait réfé­rence.

    Ça veut dire combien en équi­valent CO2 ?

    Une grosse partie des data­cen­ters sont aux USA. Les USA ont une moyenne de 365 g d’eqCO2 par kWh mais ça reste très hété­ro­gène. La Cali­for­nie qui concentre une bonne partie de l’ac­ti­vité fait moitié moins.

    Tout n’est d’ailleurs pas non plus aux USA. Si vous utili­sez un LLM hébergé en France, les émis­sions tombent à 56 g d’eqCO2 par kWh, soit 6 fois mois.

    Il est dans tous les cas diffi­cile de lier les data­cen­ters à la moyenne d’émis­sion de leur région vu leurs efforts pour se lier à des sources d’éner­gie à faibles émis­sions plutôt au mix géné­ral.

    Bref, là aussi, même l’ordre de gran­deur n’est pas une évidence.

    Malheu­reu­se­ment ça se multi­plie : Si l’es­ti­ma­tion éner­gé­tique fait une four­chette d’un ordre de gran­deur, que l’es­ti­ma­tion d’émis­sion fait une four­chette d’un ordre de gran­deur, le résul­tat c’est qu’on a une incer­ti­tude de deux ordres de gran­deur à la fin, et prendre « au milieu » n’a aucun sens.

    Bien entendu, si on ne se fixe pas sur une taille de modèle précise, on peut ajou­ter encore un ordre de gran­deur d’in­cer­ti­tude à tout ça.

    La four­chette finale est comme vous dire « c’est quelque chose entre le Paris-Versailles aller-retour et le tour de la terre complet ». Diffi­cile de raison­ner avec ça.

    Donne nous un chiffre !

    Va savoir… vu les esti­ma­tions avec des ordres de gran­deurs quasi­ment incon­nus, ma seule conclu­sion est « je ne sais pas ».

    Je vais quand même reprendre l’idée d’Andy Masley avec quelques hypo­thèses.

    ChatGPT ou équi­valent 70B,
    borne pessi­miste,
    data­cen­ter en Cali­for­nie
    0,550 gr d’éqCO2 par requête
    ChatGPT ou équi­valent 70B,
    borne opti­miste,
    data­cen­ter en Cali­for­nie
    0,055 gr d’éqCO2 par requête
    ChatGPT-nano ou équiv. 5B,
    borne pessi­miste,
    data­cen­ter en Cali­for­nie
    0,055 gr d’éqCO2 par requête
    ChatGPT-nano ou équiv. 5B,
    borne opti­miste,
    data­cen­ter en Cali­for­nie
    0,005 gr d’éqCO2 par requête
    ChatGPT-nano ou équiv. 5B,
    borne opti­miste,
    data­cen­ter en France
    0,0017 gr d’éqCO2 par requête

    Renta­bi­lité

    Un ordi­na­teur fixe avec son écran externe consomme dans les 60 watts4, donc 1 Wh par minute d’uti­li­sa­tion. Avec nos chiffres plus haut, une requête LLM devient rentable éner­gé­tique­ment si elle évite entre 2 secondes et 3 minutes de travail5.

    On trouve aussi qu’une requête de recherche Google consomme 10 fois moins qu’une requête ChatGPT6. Tourné autre­ment, la requête au LLM est rentable si elle vous épargne 10 recherches Google. Si vous utili­sez un modèle nano, on devrait être au même ordre de gran­deur qu’une requête Google.

    Si on mélange les deux (pendant l’uti­li­sa­tion de votre ordi­na­teur vous allez faire des recherches, pendant vos recherches vous allez utili­ser l’or­di­na­teur, et faire tour­ner d’autres serveurs web), l’équi­va­lence éner­gé­tique semble attei­gnable rapi­de­ment.

    Ok, mais c’est beau­coup quand même, non ?

    Je vais éviter l’opi­nion subjec­tive. Le mieux est de prendre quelques exemples à partir du compa­ra­teur de l’Ademe :

    • Une simple tartine de beurre sans confi­ture le matin7 c’est l’équi­valent d’entre 144 requêtes et 39 500 requêtes LLM dans la jour­née.
    • Prendre 100 grammes de crevettes8 au repas une fois dans l’an­née, c’est l’équi­valent de faire au travail toute l’an­née entre plus de 2 requêtes par jour et plus d’1 requête par minute.
    • Si vous déci­dez de rempla­cer la vieille armoire de mamie qui commence à lâcher plutôt que de faire un rafis­to­lage bien moche avec clous et planches, c’est l’équi­valent de faire entre une requête toutes les 16 minutes et 17 requêtes par minute sur toute votre vie à partir de vos 6 ans, 16 heures par jour9 .

    Si certains parlent d’in­ter­dire les IAs pour des raisons éner­gé­tiques, ce que je trouve comme chiffre rend toute­fois bien plus effi­cace et perti­nent d’in­ter­dire de jeter des meubles ou de manger des crevettes ou des raclettes10, à la fois sur l’ordre de gran­deur et sur le service rendu.

    Ce que je ne dis pas

    Parce que je sais que je vais avoir pas mal de réac­tions :

    • Je ne nie pas l’im­pact envi­ron­ne­men­tal
    • Je ne dis pas que c’est rien. Ce n’est pas rien.
    • Je ne sais pas mesu­rer à quel point on risque d’uti­li­ser ces outils dans le futur, et donc le poten­tiel effet de masse
    • Je ne dis rien ici de la perti­nence, de l’uti­lité ou de la dange­ro­sité de ces outils hors des ques­tions éner­gé­tiques
    • Je ne dis pas oui ou non à un usage ou un autre, je me contente de donner les chiffres et l’in­cer­ti­tude que j’ai trou­vés

    C’est un état de réflexion, pas une conclu­sion

    Bien évidem­ment, si j’ai fait une quel­conque erreur, ce qui est loin d’être impos­sible, vous êtes les bien­ve­nus à me le signa­ler.

    Même chose si vous avez des liens à ajou­ter au débat. Je ne les ai pas forcé­ment lu, et ça peut évidem­ment chan­ger mon texte.


    1. Sans avoir de données publiques, les prix des diffé­rentes géné­ra­tions crédi­bi­lisent que la consom­ma­tion éner­gé­tique a tendance à bien bais­ser avec le temps ↩︎
    2. C’est poten­tiel­le­ment 30% de plus si on prend en compte l’en­trai­ne­ment des modèles. J’ai fait le choix de ne pas le prendre en compte parce que juste­ment on parle d’un futur où on aurait un usage massif des LLMs (les émis­sions d’aujourd’­hui sont peu signi­fiantes). Dans ce futur, si on répar­tit le coût d’en­trai­ne­ment sur la tota­lité des usages, on a des chances que ça ne soit pas si signi­fi­ca­tif que ça. Dans tous les cas, même 30% ne change pas les ordres de gran­deur de la suite. ↩︎
    3. Je me base sur la diffé­rence de prix entre ChatGPT-4.1 et ChatGPT-4.1-nano ↩︎
    4. On peut divi­ser par deux pour un ordi­na­teur portable ↩︎
    5. Suivant qu’on est sur un équi­valent ChatGPT avec un scéna­rio de consom­ma­tion pessi­miste ou un équi­valent équi­valent ChatGPT-nano hébergé en France avec un scéna­rio de consom­ma­tion opti­miste ↩︎
    6. Là aussi, il semble que ce soit une borne haute, proba­ble­ment basée sur la borne haute de la consom­ma­tion éner­gé­tique de ChatGPT ↩︎
    7. 10 grammes de beurre par tartine, à 7,9 kg d’eqCO2 par kg de beurre, donc 79 grammes d’eqCO2 par tartine. ↩︎
    8. 100 grammes de crevettes, à 20 kg d’eqCO2 par kg de crevettes, donc 2 kg d’eqCO2 la portion de crevettes. ↩︎
    9. 16 heures par jour parce que bon, à faire ça toute votre vie on peut quand même vous lais­ser 8 heures par jour pour dormir, manger, prendre une douche, vous dépla­cer, etc. ↩︎
    10. Ce n’est pas juste une remarque amusante ou du whata­bou­tisme. Je suis en fait sacré­ment sérieux. L’ali­men­ta­tion de source animale est un des éléments majeur de nos émis­sions, bien bien au-delà de ce que pour­rait deve­nir l’IA dans les scéna­rios pessi­mistes sur le futur. Mettre une taxe carbone voire des inter­dic­tions ne me parait pas tota­le­ment décon­nant.
      Oui, j’en suis là sur mon rapport au réchauf­fe­ment clima­tique, c’est dire à quel point je ne prends pas la chose à la légère et à quel point je serais prêt à bannir l’IA si j’avais l’im­pres­sion que ce serait le problème. ↩︎
  • Biggest threat

    Q&A from a talk I gave last week.

    Q: « What do you think is the biggest threat in cyber­se­cu­rity right now? Is it post-quan­tum compu­ting? Is it AI? »

    A: Fascism. It’s fascism.

    Evacide, Masto­don

    Malheu­reu­se­ment j’ai peur que cette réponse soit la même pour la plupart des menaces, peu importe le domaine. Même le réchauf­fe­ment clima­tique commence à passer au second plan dans mon échelle de menace.

    Fascisme, haine, racisme, xéno­pho­bie, impé­ria­lisme.

  • I know jiu jitsu

    Je me remets pour la troi­sième fois à l’ap­pren­tis­sage de Rust à partir du livre plus ou moins offi­ciel. Les deux fois précé­dentes, j’avais lâché par manque d’en­vie ou d’at­ten­tion.

    Cette fois ça tient.

    Parfois c’est le moment, parfois non. Peut-être est-ce juste ça, mais je note tout de même une diffé­rence dans la méthode.

    Les dernières fois j’avais plein de ques­tions, sur « pourquoi pas comme ça … ? », « et si je veux faire … ? », « est-ce qu’on ne pour­rait pas faire … ? ». Avan­cer en lais­sant plein de ques­tions qui ne trouvent pas de réponse faci­le­ment sur Inter­net c’est possible mais vite pénible. Ça frei­nait clai­re­ment mon appren­tis­sage.

    Cette fois-ci je suis dans Cursor, avec un LLM à mes côtés qui répond à tout de façon rela­ti­ve­ment satis­fai­sante. Ça semble faire une diffé­rence.

  • Un petit programme par l’IA

    J’avance sur mes outils de sauve­garde mais aussi sur mes explo­ra­tions IA.

    J’ai eu besoin d’un second programme qui va lire tous les emails d’une boite au format mail­dir, regar­der l’an­née du mail, et le dépla­cer dans une boite mail­dir spéci­fique à cette année là.

    J’au­rais pu le faire en Javas­cript ou en Ruby mais vu ce que m’a fait l’IA en quelques minutes précé­dem­ment, je me suis dit que j’al­lais conti­nuer et refaire un script Go (je n’ai jamais codé une seule ligne de Go).

    Voici le résul­tat : github.com/edas/split-mail­dir-by-year.

    Les 300 lignes de Go ont analysé l’in­té­gra­lité de mon archive Gmail (537 000 emails quand même).

    • Je ne crois pas avoir touché le code source à la main
    • Le code a toujours compilé du premier coup
    • Le code a toujours fait ce que je souhai­tais, sans erreur

    Le code est correc­te­ment struc­turé, des fonc­tions ont été créées au fur et à mesure des besoins quand le code a évolué. Quand une fonc­tion est un peu longue, il sépare en blocs et ajoute une ligne de commen­taire pour dire ce que fait le bloc, ce qui me permet de ne pas avoir à déco­der un code dans un langage que je ne connais pas.

    10 demandes courtes pour avoir le programme et le faire évoluer vers mes besoins, ques­tions de relec­ture incluses. 17 ajouts par la suite pour trai­ter des cas spéci­fiques rencon­trés.

    Je n’au­rais pas fait plus vite moi-même, ni en Go ni dans un langage que je connais très bien. Peut-être que ça aurait été un peu plus diffi­cile pour un non-déve­lop­peur, mais je vois mal ce que j’au­rais eu à y gagner à le coder à la main.

    À chaque modi­fi­ca­tion j’ai le diff à vali­der mais aussi une bonne expli­ca­tion de l’IA sur ce qui a été modi­fié, comment et pourquoi. Ma relec­ture s’est souvent faite en diago­nale sur la base des commen­taires de code. L’IA a su répondre à mes ques­tions quand j’ai rencon­tré des éléments moins évide

    Plutôt que lister les étapes, je copie direc­te­ment mes prompts.


    I have hundreds thousands of files in the "maildir/new" directory. Each file contains a raw email with headers.

    I want a program which reads all emails one by one, look for the "Date" header, return an error in the header doesn't exists or is unreadable, and otherwise move the email file in the directory "by-year/{year}/new" where {year} is the year in the Date header.

    Je relis parce que ça va toucher des données réelles et que j’ai la flemme de faire des données de tests.

    Je vois qu’il retourne toujours une date même quand il y a une erreur. Inha­bi­tué de Go, j’ai peur de certaines erreurs de débu­tants en PHP ou en JS, où on utilise une date du jour plutôt que gérer l’er­reur. Je pose ma ques­tion et je suis rassuré par sa réponse (que je trouve logique après coup vu le fonc­tion­ne­ment des erreurs en Go)

    can the parseEmailDate return nil when it doesn't find a Date header ?

    Je vois aussi un mkdir sans test d’exis­tence préa­lable. Dans d’autres langages ça jette une erreur si le réper­toire existe. Je pose la ques­tion et là aussi je suis rassuré par sa réponse.

    what if the directory already exists line 63 ?

    Je demande une adap­ta­tion, non stric­te­ment néces­saire, pour que chaque réper­toire soit bien une boite mail­dir avec les 3 réper­toires obli­ga­toires. Ce n’est pas néces­saire à ma sauve­garde mais je préfère, au cas où ça m’évite des erreurs un jour.

    Oui, j’ai parfois basculé en français. Je ne sais ni pourquoi j’ai du français ici, ni pourquoi j’ai mis de l’an­glais avant. L’IA est confi­gu­rée pour toujours me répondre en français. Le code est toujours commenté en anglais. Je pense que propres entrées dépendent ce sur quoi mon atten­tion était à ce moment là (code, page web, etc.)

    Si le répertoire "by-year/{year}" n'existe pas, il faut aussi créer "by-year/{year}/cur" et "by-year/{year}/tmp", même si nous ne nous en servons pas

    Seconde adap­ta­tion : L’IA m’a dit plus haut qu’elle avait un code de gestion de conflit. Je vois le commen­taire dans le code qui dit qu’en cas de conflit le code ajoute un suffixe avec le times­tamp du moment pour éviter d’écra­ser un fichier exis­tant. Norma­le­ment ça ne devrait jamais arri­ver mais un suffixe risque­rait de casser le format de nommage des fichiers mail­dir donc je préfère qu’on s’ar­rête avec une erreur et que j’avise.

    if there is a conflict, to not append a timestamp to make it unique. Return an error.

    Troi­sième adap­ta­tion. Je traite un demi-million de fichiers. Je préfère que ça traite les fichiers au fil de l’eau plutôt qu’a­voir la liste d’un demi-million de fichiers en mémoire.

    Au départ c’est d’abord une ques­tion. Je ne sais pas si Go retourne un tableau ou un itéra­teur (oui, j’ai été flem­mard jusqu’à ne même pas faire atten­tion au typage). Je m’at­ten­dais à deman­der la correc­tion dans le premier cas. Au final il modi­fie de lui-même le code à partir de la seconde ques­tion pour faire des itéra­tions par lots 100 fichiers, sans que je ne le demande expli­ci­te­ment.

    En réalité c’est du script maison, qui sera lancé juste une poignée de fois. L’op­ti­mi­sa­tion est tota­le­ment inutile mais je n’ai pas encore appris à tota­le­ment lâcher prise vis-a-vis de ce que j’au­rais codé moi-même.

    What does return ReadDir in line 88 ?
    Si le répertoire contient des millions de fichiers, est-ce que la variable files ligne 88 va tout avoir en mémoire ?

    Je vais jouer avec de vraies données. Je veux voir les erreurs et m’ar­rê­ter pour corri­ger, pas que ça conti­nue et que j’ai à remon­ter voir s’il y a eu des erreurs.

    The programm should stop at the first error, not continue with the next file

    Et, parce que je n’y avais pas pensé avant :

    Le programme doit aussi prendre un chemin en argument. C'est là que se trouveront les différents répertoires prévus.

    La première phase est faite. Je passe au test en condi­tions réelles, sur le demi-million d’email de mon archive. Chaque fois que j’ai une erreur, je lui indique et j’avance.

    C’est là que je vois que chaque client email fait bien ce qu’il veut avec les entêtes. J’ai croisé un nombre inat­tendu de formats diffé­rents et d’er­reurs dans les entêtes. Chaque fois le programme m’af­fiche l’er­reur, je copie-colle la date problé­ma­tique, l’IA corrige, et je relance jusqu’à l’er­reur suivante.

    We should also parse the format for "Mon, 21 Aug 2006 16:47:08 +0200 (CEST)"
    We should also parse the date "Mon, 1 Dec 2008 10:57:10 UT"

    Sur une erreur étrange, j’ouvre l’email et je me rends compte qu’il prend en compte la conti­nua­tion d’une entête Recei­ved comme si c’était une date, parce qu’il ne prend pas en compte les espaces avant le mot clé Date.

    TrimSpave at line 30 should only trim right space, not left space

    Parti­cu­la­rité Gmail, quand il récu­père un email d’une boite tierce (via POP3 ou IMAP), il crée des entêtes à lui, saute une ligne et après pose le vrai email. Rétros­pec­ti­ve­ment je pense que j’au­rais dû reti­rer la section ajou­tée par Gmail pour retrou­ver un email normal. Je le ferais peut-être plus tard. Là je me suis contenté de lui faire contour­ner le problème.

    When we find the header "X-Gmail-fetch-Info", we should ignore the blank line following if it exists

    Encore des ques­tions de dates…

    We should be able to parse the Date "Tuesday 29 May 2007, 16:03"
    We should also parse "Wed, 03 Mar 2010 22:36:13 +0100 CET"
    We should also parse "Thu, 22 Jul 2010 23:02:50"
    We should also parse "Mon, 30 Mar 2009 20:11:22 +0100"

    Ce coup-ci ça ne corrige pas mon problème. Rétros­pec­ti­ve­ment j’au­rais pu le comprendre parce que le message d’er­reur n’était pas exac­te­ment le même, mais je le laisse trou­ver seul. Le mot clé DATE était en majus­cules, c’était la première fois.

    pourtant le script fait une erreur sur la ligne "DATE: Mon, 30 Mar 2009 20:11:22 +0100". Pourquoi ?

    Le code qu’il me génère imbrique quatre fonc­tions de mani­pu­la­tion de texte sur une seule ligne. Je ne trouve pas ça lisible. Je pose la ques­tion.

    que fait la ligne 49 ?

    Ça semble redon­dant avec la ligne suivante, pré-exis­tante. Effec­ti­ve­ment, quand je pose la ques­tion il iden­ti­fie le doublon et le supprime.

    Il faut penser à relire (même si l’er­reur aurait juste était du code inutile). Cursor me fait vali­der chaque chan­ge­ment sous forme de diff donc c’est assez rapide et facile à faire.

    que fait la ligne 50 ?

    Encore des formats de date…

    Encore un format : "mon, 10 jul 2006 01:02:08 gmt"
    encore un : "wed, 23 jun 2004 01:19:32 cest"
    encore un "mon, 22 mar 2010 14:20:15 +0100 +0100". C'est probablement une erreur d'écriture mais il faut la prendre en compte
    "wen, 16 jul 2008 22:09:05 +0200"

    Les deux derniers cas sont forcé­ment des erreurs de la part de clients emails. Pour la première erreur il choi­sit d’igno­rer toutes les répé­ti­tions du déca­lage horaire.

    La seconde erreur est inté­res­sante parce que « wen » est proba­ble­ment là pour « wed » (wednes­day). Il iden­ti­fie l’er­reur et ajoute un code qui remplace toute une liste d’er­reurs de frappes habi­tuelles pour les code courts de jour de la semaine. Parfait.

    "wed, 19 apr 2006 12:15 -0800"

    J’ai mon premier cas d’email sans entête « Date ». Je ne sais pas si c’est auto­risé ou non mais peu importe. Je lui dis de fouiller les entêtes « Recei­ved » à la place. Je sais que ces entêtes peuvent être sur plusieurs lignes.

    L’IA va plus loin que moi, sait que la date est en seconde posi­tion dans ces entêtes, et regarde unique­ment après le premier point virgule. Elle sais aussi comment s’ap­pellent ses entêtes sur plusieurs lignes (lignes de conti­nua­tion). Mieux que ce que j’au­rais fait.

    Je note que je tape vite, avec des erreurs de frappe, un guille­met en trop, etc. Peu importe, c’est destiné à l’IA. Me relire est super­flu : je peux reve­nir en arrière si c’est mal compris.

    If you don't find any Date header, try again to look if you can find a date somewhere in a "Received" header (theere may be multiple "Received" headers") or in the lines begining with a space and following a "Received" header
  • Fin ou trans­for­ma­tion d’un métier

    BD tirée de CommitStrip.

Première case: le chef/commercial parle avec l'ingénieur informaticien.
Case 1 : le commercial vient voir l'informaticien, un mug à la main. L'informaticien est sur son PC, un mug à côté aussi.
Commercial : un jour on n'aura plus besoin de codeur. On aura juste à définir des spécifications et ça générera automatiquement une application.

Case 2 : le commercial est en train de boire dans son mug.
Infoteux, devant son PC et un mug de café : T'as raison, il suffira simplement d'écrire des spécifications complètes et précises et pouf, plus besoin de codeur !
Commercial, l'air satisfait : c'est ça !

Case 3.
Infoteux : Et tu sais comment on appelle des spécifications suffisamment complètes et précises pour qu'un programme puisse générer une application ?
Commercial, dubitatif : Euh... Non ?

Case 4.
Informaticien, l'air blasé, pointant son clavier : Du code. On appelle ça du code.

Le commercial est tellement surpris qu'il penche son mug par inadvertance et renverse un peu le breuvage sacré.

(le alt n'est pas de moi et à été honteusement repompé)
    « Il suffira d’écrire des spéci­fi­ca­tions complètes et précises »

    Je revois cette planche de BD dans une conver­sa­tion et je trouve qu’elle passe à côté d’un élément fonda­men­tal : On ne trans­met pas juste­ment pas de spéci­fi­ca­tions complètes et précises au déve­lop­peur.

    Complé­ter, préci­ser

    Une grosse partie du boulot de déve­lop­peur c’est complé­ter et préci­ser ces spéci­fi­ca­tions incom­plètes et impré­cises.

    Complé­ter, préci­ser, le tout à partir du contexte projet, des habi­tudes et de l’im­pli­cite courant… C’est le cas d’usage exact des LLM.

    On essaie de leur faire faire « de l’IA » mais ces outils sont en premier lieu de formi­dables outils de complé­tion à partir d’un contexte et de l’im­pli­cite habi­tuel pour un type de tâche donnés. Bref, le travail d’un déve­lop­peur.

    Refor­mu­ler dans un langage plus formel

    Que fait le déve­lop­peur d’autre ? Il traduit ça dans un langage formel (le code).

    Refor­mu­la­tion, ça aussi c’est le cas d’usage parfait pour les LLM.

    La dernière tâche du déve­lop­peur est très tech­nique. C’est de l’in­gé­nie­rie logi­cielle, réus­sir à tout agen­cer pour que ce soit faci­le­ment testable, main­te­nable, évolu­tif, etc.

    Une grosse part de cette dernière tâche est basée sur l’ap­pren­tis­sage et la repro­duc­tion de motifs ou de pratiques. Le LLM est aussi parfait pour ça.

    Il reste aussi qu’il s’agit de rendre les choses testables, main­te­nables et évolu­ti­ves… par des humains. Peut être qu’une partie de ce besoin va dispa­raître ou du moins évoluer le jour où le code sera plus mani­pulé par des LLM que par des humains. Leurs besoins, faci­li­tés et diffi­cul­tés sont forcé­ment diffé­rents des nôtres.


    Appren­tis­sage

    Oui il faudra faire des aller-retours avec l’ou­til pour complé­ter ou corri­ger sa complé­tion. Il en va de même du déve­lop­peur, surtout lors de sa première arri­vée dans une équipe ou dans un projet.

    Oui un LLM fera des erreurs d’in­ter­pré­ta­tion. Un déve­lop­peur aussi.

    Est-ce que les allers-retours et erreurs seront plus impor­tants que ceux avec un déve­lop­peur ? Aujourd’­hui proba­ble­ment, demain je n’en sais rien, peut-être.

    Est-ce que ces allers-retours et correc­tions seront plus coûteux qu’un déve­lop­peur ? Alors là je n’en sais rien, mais je ne parie­rai pas dessus.

    Besoin d’ex­per­tise

    Est-ce qu’on aura toujours besoin d’un déve­lop­peur et d’ex­per­tise pour accom­pa­gner l’ou­til auto­ma­tique ? Très proba­ble­ment sur une partie, oui, mais proba­ble­ment moins en propor­tion qu’on n’en a besoin aujourd’­hui.

    Très certai­ne­ment aussi que le travail sera diffé­rent de celui d’aujourd’­hui, et que savoir inter­agir avec les outils auto­ma­tiques sera essen­tiel dans les compé­tences requises. C’est déjà partiel­le­ment le cas aujourd’­hui. On ne code pas comme au temps des cartes perfo­rées. C’est juste que les outils vont chan­ger et vont très proba­ble­ment prendre une plus grande place.


    Certi­tudes

    Je ne donne que mes certi­tudes, mes croyances et mes craintes. Je ne connais pas plus le futur que d’autres. J’ai juste le senti­ment, sans aucune tech­no­béa­ti­tude, qu’il est en train d’ar­ri­ver.

    On fait faire, dire ou espé­rer plein de choses quand on parle d’IA. Il ne s’agit pas de voiture volantes et autres IA sentientes ici.

    Ici je parle LLM, complé­tion et refor­mu­la­tion de textes. Je peux me trom­per et je ne mets ma main au feu à propos de rien, mais je me base sur des capa­ci­tés qui sont déjà là aujourd’­hui.

    Juger le futur

    Est-ce souhai­table socia­le­ment ? Est-ce soute­nable pour la planète ? Comment va-t-on gérer la tran­si­tion au niveau de la société ?

    Ce sont honnê­te­ment d’ex­cel­lentes ques­tions dont j’ai­me­rais avoir les réponses.

    Le fond n’est pas si je souhaite ou pas ce futur, c’est que je constate qu’il est en train d’ar­ri­ver, et que je veux pas faire semblant de l’igno­rer.


    Pour les futurs déve­lop­peurs

    Je crains une vraie crise dans le métier dans quelques années. Certains, beau­coup, vont rester sur le carreau.

    Je ne sais pas si j’en­cou­rage les plus jeunes à se lancer dans le déve­lop­pe­ment infor­ma­tique. Si vous le faites, je vous encou­rage à à la fois deve­nir très vite expert (parce que j’ima­gine qu’on aura besoin des experts pour complé­ter les LLM), et apprendre à coder via les LLM (pas juste « avec ») même si ce n’est pas rentable aujourd’­hui.

    Je suis conscient de la contra­dic­tion à deman­der aux juniors de deve­nir immé­dia­te­ment expert.

    Je ne suis pas certain qu’il y ait un avenir pour les déve­lop­peurs moyens, ou pour les junior. Leur valeur ajou­tée sera faible et il y aura dans un premier temps suffi­sam­ment de déve­lop­peurs formés pour jouer les experts sans devoir inves­tir des années dans des compé­tences inter­mé­diaires qui pour­raient deve­nir experts un jour.

    Pour choi­sir son futur

    Si vous êtes très tech, faites des maths, de la mani­pu­la­tion de données, des statis­tiques, et globa­le­ment de l’IA. Les places seront peut être chères et deman­de­ront des compé­tences plus avan­cées que pour être déve­lop­peur, mais il y aura du travail.

    Si vous avez envie de créer, pour moi l’ave­nir est plus dans les métiers du produit, des product mana­ger avec une colo­ra­tion et un inté­rêt tech­nique. Ça veut dire savoir parler busi­ness, marché, client, etc.

    Pour les déve­lop­peurs actuels

    Pour ceux qui sont encore majo­ri­tai­re­ment les mains dans le code, je vous conseille de passer au plus tôt dans le déve­lop­pe­ment via les LLM.

    Je sais que vous n’en ressen­tez pas le besoin, que ces outils font des erreurs que vous ne faites pas, que ça ne vous accé­lère pas aujourd’­hui.

    Le fond c’est que les plus jeunes ça les accé­lère, que demain ils auront déve­loppé leur exper­tise mais sauront aussi utili­ser ces outils, et qu’ils en compren­dront assez les limites et les défauts pour être l’ex­pert dont le métier aura besoin.

    Il y aura encore long­temps de la place pour des vieux experts du code pour la main­te­nance et pour les gros groupes qui ont plusieurs géné­ra­tions de retard. Il y a aujourd’­hui toujours besoin de déve­lop­peurs et Cobol. La vraie ques­tion : Est-ce le posi­tion­ne­ment auquel vous aspi­rez ?

    Et moi, direc­teur tech­nique ?

    Honnê­te­ment je ne sais pas. Je ne sais pas bien quel sera mon avenir.

    Le mana­ge­ment de grandes équipes de déve­lop­pe­ment risque d’être aussi has been demain que les vieux DSI dépas­sés d’aujourd’­hui. Est-ce que je veux être de ceux là ? Je ne sais pas.

    J’ado­re­rais prendre la tête d’équipes de data science, mais j’ima­gine qu’il y a une batte­rie de docteurs sur les rangs, avec une exper­tise qui me ferait défaut.

    Entre temps je vais proba­ble­ment au moins essayer d’in­té­grer des équipes qui ont sont alignées avec tout ce que je viens d’écrire.

  • Safe­tyCore

    Je vois passer pas mal d’af­fo­le­ment et de FUD à propos du nouveau service Safe­tyCore sur Android.

    C’est quoi ?

    Le service a été annoncé par Google. Il sert à clas­ser les messages entrants pour iden­ti­fier les usages malveillants ou douteux. Il iden­ti­fie aussi la nudité sur les images pour la masquer en l’at­tente de confir­ma­tion de l’uti­li­sa­teur.

    Ce dernier usage est indiqué comme activé par défaut pour les mineurs, qui béné­fi­cie­raient aussi d’une alerte infor­ma­tive quand ce sont eux qui envoient des images sensibles.

    Tout ça est traité en local. En consé­quence, ce n’est pas un service d’es­pion­nage, de tracking ou d’in­for­ma­tion vers les auto­ri­tés. Rien n’est échangé avec les serveurs de Google ou envoyé vers une autre desti­na­tion.

    Est-ce qu’on peut avoir confiance ?

    La confiance ça ne se dicte pas, et c’est très person­nel. Les déve­lop­peurs de Graphe­neOS, qu’on peut diffi­ci­le­ment quali­fier de pro-Google, ne semblent rien avoir à y redire.

    Alors oui, on peut imagi­ner que main­te­nant ou à l’ave­nir, Google utilise ce service ou une future mise à jour de ce service pour un usage malveillant. C’est toute­fois vrai avec tous les services de Google, que Google Play met à jour en perma­nence.

    Si vous n’avez pas confiance en Google, le problème n’est pas ce nouveau service. C’est tout l’OS qu’il faut chan­ger, pour un dont Google ne gère pas les mises à jour auto­ma­tiques. Note : Vous devrez quand même faire confiance à quelqu’un, ce sera juste quelqu’un d’autre.

    Ok, mais l’ins­tal­la­tion est cachée quand même…

    Je ne crois pas qu’on puisse dire que l’ins­tal­la­tion est cachée si l’évo­lu­tion a été annon­cée publique­ment il y a plusieurs mois.

    Elle par contre auto­ma­tique. Oui, c’est discu­table. Main­te­nant il faut voir d’où on vient pour comprendre.

    Par le passé Android était un nid à problèmes de sécu­rité. Les construc­teurs ne mettaient pas tous les appa­reils à jour, ou peu long­temps et avec une forte latence.

    Google a fait le choix, proba­ble­ment à raison, de sépa­rer l’OS en deux couches et de s’oc­cu­per lui-même de la mise à jour des services cœurs pour répondre à ces diffi­cul­tés. Il le fait pour les correc­tions comme pour les évolu­tions. Si un service cœur change ou s’ajoute, votre télé­phone en profite même si le construc­teur n’est pas dili­gent.

    Le service dont on parle est bien un service cœur, qui a un rôle de protec­tion. Il est normal qu’il ait suivi la voie de la mise à jour auto­ma­tique.

    C’est discu­table mais mieux que l’al­ter­na­tive.

    Pourquoi n’est-il pas Open Source ?

    Je ne sais pas, mais je peux tenter de suppo­ser.

    Le premier point, c’est que c’est un modèle de tri, pas un algo­rithme. Le code source a moins de sens si le cœur reste un gros paquet binaire.

    Ils auraient pu ouvrir le modèle lui-même, avec son appren­tis­sage. Je ne sais pas pourquoi ils ne l’ont pas fait. Peut-être est-ce pour ne pas donner d’in­di­ca­tion sur comment éviter le clas­se­ment, peut-être est-ce juste parce que l’IA est le sujet à la mode sur lequel ils veulent garder un avan­tage.

  • [Lecture] Custo­mers don’t care about your AI feature

    Rather than enhan­cing percep­tions, the term “gene­ra­tive AI” signi­fi­cantly lowe­red expec­ta­tions of a product’s poten­tial impact

    grow­thun­hin­ged.com

    Peu surpre­nant mais c’est bien d’avoir un peu de chiffres.

    Tout le monde se met à vouloir injec­ter de l’IA par prin­cipe et s’en vanter, y compris là où ça induit plutôt une perte de valeur pour l’uti­li­sa­teur (typique­ment pour de l’in­te­rac­tion avec les équipes support).

    Si je suis étonné, c’est plutôt que l’ef­fet ne soit pas beau­coup plus néga­tif.

  • Bonnes et mauvaises pratiques d’édi­teur de service en ligne

    Je reçois un email qui prétend venir de Lydia et qui me demande de renvoyer mon RIB en réponse si je veux récu­pé­rer mes sous, que sinon j’au­rai des frais à payer, avec une notion d’ur­gence avec  « dernier rappel ».

    Un RIB par email plutôt que de me renvoyer vers le site web ?

    Décompte des points : 1x louche

    L’email provient d’un nom de domaine inconnu au bataillon, qui ne semble pas du tout être celui de Lydia : info.isbs.eu.

    Décompte des points : 2x louche

    Il n’y a aucune page Web ni sur info.isbs.eu, ni sur www.isbs.eu, ni sur isbs.eu.

    Décompte des points : 3x louche

    Les liens de l’email vers l’app ou les docs sont masqués derrière des redi­rec­tions click.isbs.eu, impos­sible de savoir où ça mène mais déjà le premier domaine n’est pas de confiance.

    Décompte des points : 4x louche

    Norma­le­ment je m’ar­rê­te­rais là. Ça ressemble à du phising sur à peu près tous les aspects. Sur un site asso­cia­tif pourquoi pas, mais pas dans le domaine finan­cier et paie­ment.

    Je m’aper­ce­vrai d’ailleurs plus tard que j’ai effec­ti­ve­ment super­be­ment ignoré les emails précé­dents, proba­ble­ment à cause de ça, dont un dont le domaine de réponse (isbs.eu) est diffé­rent du domaine de l’ex­pé­di­teur (lydia-app.com, on y revien­dra), chose assez carac­té­ris­tique d’un spam.

    Décompte des points : 5x louche


    Je ne sais pas, j’ai eu un doute cette fois-ci. L’email m’in­dique un solde crédible. Je veux en avoir le cœur net.

    J’ins­talle l’app Lydia en véri­fiant le nombre de télé­char­ge­ments pour m’as­su­rer que c’est la bonne et je m’iden­ti­fie après avoir bataillé parce que le bouton conti­nuer fait une jolie anima­tion mais sans passer à la page suivante tant que je n’ac­cepte pas les traceurs (vrai­ment ?).

    Décompte des points : 5x louche, 1x gênant

    Sur l’app j’ai un solde à zéro. Bon, je ne l’uti­lise plus mais je sais que mon solde ne devrait pas être zéro. Il y a problème.

    D’ailleurs je clique sur histo­rique pour véri­fier si on ne m’a pas tiré mes sous et je retrouve mes petits, avec du crédit en dernière tran­sac­tion donc impos­sible d’avoir un solde à zéro. Wtf ?

    Décompte des points : 5x louche, 2x gênant

    Hors de ques­tion de m’ar­rê­ter là. Le solde c’est plus de 200 €.


    Je repars sur l’email pour mieux comprendre. On me propose de créer un compte sur l’app Sume­ria. Là je me rappelle que Lydia avait changé de nom.

    Du coup j’ai de nouveau un Lydia et mes sous sont passés ailleurs (peut être avec mon accord ou mon action, même si je ne m’en souviens plus) sans capa­cité de les retrou­ver dans le nouveau Lydia.

    Décompte des points : 5x louche, 3x gênant

    J’ins­talle donc l’app Sume­ria en véri­fiant sa vrai­sem­blance. Je n’ose même pas tenter de refu­ser les traceurs ce coup ci et je tente direct de m’iden­ti­fier avec le mot de passe Lydia (il m’est proposé par bitwar­den donc soit c’est reconnu comme étant le même compte soit j’ai déjà manuel­le­ment ajouté l’app Sume­ria à ce compte Lydia).

    Il ne me dit pas que le mot de passe est mauvais mais me dit qu’il y a eu trop de tenta­tives (au premier essai). Pour­tant il m’avait demandé mon mot de passe après m’avoir demandé mon iden­ti­fiant, et me le rede­mande à nouveau. Je ne comprends pas.

    Décompte des points : 5x louche, 4x gênant

    La réini­tia­li­sa­tion de mot de passe me dit qu’ils feront une véri­fi­ca­tion d’iden­tité. Je suis dans le train donc ça va être diffi­cile, et le message du nombre de tenta­tives m’in­cite à penser qu’ils ne lais­se­ront pas passer une réini­tia­li­sa­tion sans procé­dure manuelle de leur part.

    Je tente plutôt le support, en deman­dant confir­ma­tion que l’email de départ est légi­time malgré son nom de domaine, et si oui comment j’au­rais pu le savoir (sous-entendu : c’est louche, faites mieux). En même temps je signale l’his­toire du nombre de tenta­tives.

    C’est un formu­laire, il faut que je laisse email et télé­phone avant de lais­ser le message. Je ne l’avais pas compris tout de suite (ça me fait arri­ver sur une zone de texte pleine page sans label) mais j’ai du cliquer trop vite.


    Peu après je reçois un email prove­nant du même domaine qu’à l’ori­gine, isbs.eu, sauf que cette fois-ci je n’ai même pas un nom Lydia ou Sume­ria dans le champ expé­di­teur.

    Décompte des points : 5x louche, 5x gênant

    L’email est taggé « This message might be suspi­cious or spam. » par Gmail.

    Décompte des points : 6x louche, 5x gênant

    Tout au moins le message semble être une réponse à une demande de support, ce qui crédi­bi­lise le nom de domaine. Il me demande de répondre par email avec mon numéro de télé­phone. Je suis pour­tant super convaincu de l’avoir donné dans le formu­laire de support.

    Décompte des points : 7x louche, 5x gênant

    La coïn­ci­dence serait trop forte. Je consi­dère que l’email est légi­time et je donne mon télé­phone.

    Je reçois alors encore un email, cette fois-ci de « xxx de Lydia Solu­tions » mais le domaine expé­di­teur a changé (!?) en cours de conver­sa­tion.

    Décompte des points : 8x louche, 5x gênant

    Le nouveau nom de domaine est lydia-app.com. Ok, ça parle de Lydia mais le site web connu de Lydia est lydia.me. C’est quoi ce mic-mac ?

    Décompte des points : 9x louche, 5x gênant

    Je vais voir ce nouveau nom de domaine, qui se révèle une redi­rec­tion vers sume­ria.com (et donc vers Sume­ria et non vers Lydia, alors que le nom réfé­rence Lydia).

    Décompte des points : 9x louche, 6x gênant

    Ok, et cet email me dit d’al­ler sur une page qui va déclen­cher un code par SMS et qu’il faut envoyer ce code SMS par réponse email (!!). J’ai véri­fié deux fois, on me demande de renvoyer par email un code de confir­ma­tion SMS, le truc qu’on dit toujours partout de ne jamais faire.

    Décompte des points : 10x louche, 6x gênant
    (je ne compte qu’un seul point louche mais ça en méri­te­rait bien 5 ou 6)

    Le lien sur lequel cliquer est sur lydia-app.com (pas lydia.me ni sume­ria.com) et cette fois-ci ne redi­rige pas vers Sume­ria. J’ai une page vide, avec un unique bouton au centre de la page. Rien d’autre, dont aucun élément de réas­su­rance. Le certi­fi­cat TLS est un Let’s Encrypt, donc le nom de domaine peut appar­te­nir à n’im­porte qui.

    Décompte des points : 11x louche, 6x gênant

    Je suis joueur, je commence vrai­ment à croire à un truc hyper mal foutu plutôt qu’à une malveillance. Je clique.

    Je reçois un SMS avec un code et un texte qui dit expli­ci­te­ment d’en­voyer ce code par email. J’ap­plau­dis cette réas­su­rance, j’en avais besoin vu la sensi­bi­lité de l’opé­ra­tion et c’est la première de tout le parcours.

    Décompte des points : 11x louche, 6x gênant, 1x réas­su­rance

    J’en­voie donc ce code SMS par email (j’ai dû me forcer). Le support me répond que trois adresses sont valides pour les échanges, une en @info.sume­ria.com, une en @news.sume­ria.eu, et une en @info.isbs.eu.

    Les deux premières j’au­rais accepté la légi­ti­mité d’of­fice. La dernière j’ai quand même du mal à comprendre mais pourquoi pas… si on oublie que c’est une adresse en @lydia-app.com qui me le dit, et qu’elle n’est pas dans la liste. Je ne pinaille pas, c’est impor­tant. Je n’ai pas non plus l’adresse en @isbs.eu par laquelle j’ai eu le début d’échange.

    Décompte des points : 11x louche, 7x gênant, 1x réas­su­rance
    (j’ai hésité entre louche et gênant, je vais consi­dé­rer là que c’est un problème de complé­tude de réponse du support donc juste gênant)

    On me propose aussi de réini­tia­li­ser mon mot de passe à l’aide de ma carte d’iden­tité ou de ma carte bancai­re… qui a expiré depuis.

    Décompte des points : 11x louche, 8x gênant, 1x réas­su­rance

    Pas grave, je vais répondre au mail du tout départ avec mon RIB main­te­nant que j’ai une bonne confiance qu’il est légi­time. Tant pis pour le compte Sume­ria. Tout ça ne m’a pas donné assez confiance pour le restau­rer.

    J’ai quand même été aidé après 20h le soir, rapi­de­ment, par email. C’est posi­tif.

    Décompte des points : 11x louche, 8x gênant, 1x réas­su­rance, 1x posi­tif

    De façon ironique mais quand même réel­le­ment pour aider à amélio­rer, je lui répond que son email à elle n’est pas sur la liste des adresses légi­times et que tout ça n’est pas top pour les bonnes pratiques de sécu­rité.

    Là elle me répond avec un lien qui donne effec­ti­ve­ment les adresses légi­times possibles. Je me rends compte que j’au­rais pu m’épar­gner tout ça en cher­chant sur google le nom de domaine. Je serais tombé sur cette page. Fati­gué, ça n’a pas été mon réflexe mais est-ce vrai­ment à moi de compen­ser leur fonc­tion­ne­ment louche ? Je compte une réas­su­rance utile quand même.

    Décompte des points : 11x louche, 8x gênant, 2x réas­su­rance, 1x posi­tif

    Vous savez quoi ? La page ne contient effec­ti­ve­ment que les trois adresses qu’elle m’a donné, il manque donc une adresse en @isbs.eu (seul un sous-domaine « info » est listé, et pas avec le même utili­sa­teur) et rien ne liste le domaine lydia-app.com avec lequel je discute et qui m’a demandé un code SMS.

    Décompte des points : 12x louche, 8x gênant, 2x réas­su­rance, 1x posi­tif
    (là c’est point louche vu que la page web offi­cielle et plus une discus­sion)

    Elle m’a répondu à côté. Je lui dit que son email n’est pas listé là-bas non plus. Je mets un smiley, je suis plus amusé mais je le signale expli­ci­te­ment quand même parce que sinon ça ne sera pas corrigé.

    Malheu­reu­se­ment elle insiste. Elle me dit que c’est bien sur la page web (mais non). Je sens que je l’agace.

    Décompte des points : 12x louche, 9x gênant, 2x réas­su­rance, 1x posi­tif

    J’in­siste moi-même. Désolé. J’ai besoin d’avoir l’im­pres­sion que ce sera traité. Je cite la page, expli­cite que le domaine n’y est pas. Mon propos est peut-être moi aussi un peu agacé. Je dis que je m’ar­rê­te­rai là. Ma ques­tion a eu une réponse la suite c’était pour aider, pas pour me prendre la tête avec une personne du support qui est proba­ble­ment de bonne volonté.

    Je reçois un dernier email pour me dire que les adresses données sont unique­ment pour la commu­ni­ca­tion offi­cielle de Sume­ria et que le service client utilise trois autres adresses en @news.lydia-app.com, @info.lydia-app.com et @lydia-app.com. J’ai un peu de mal à voir pourquoi un news et un info pour du support et en quoi le support n’est pas offi­ciel ou ne méri­te­rait pas d’être crédi­bi­lisé sur la page web de réas­su­rance mais je ne vais pas relan­cer, ce ne sont pas mes oignons.


    Demain je tente­rai d’en­voyer on RIB pour récu­pé­rer mon solde. Je n’ai pas hâte. L’ex­pé­rience ma très forte­ment refroidi côté sérieux et confiance.

    Pour l’ins­tant, si quelqu’un de Lydia/Sume­ria me lit, je me doute qu’il y a des raisons à tout ce circuit, mais vous êtes quand même en train de deman­der à vos utili­sa­teurs de s’ha­bi­tuer et d’agir à l’en­contre de tout ce qu’on présente partout comme des pratiques de sécu­rité contre le phishing :

    • Ne pas prendre en compte les emails venant de domaines incon­nus
    • Ne pas prendre en compte les emails avec une adresse de réponse étrange ou incon­nue
    • Ne pas cliquer sur des liens menant vers des cibles masquées ou incon­nues
    • Ne pas envoyer d’in­for­ma­tions person­nelle ou sensible par email à quelqu’un qui est censé les connaitre déjà
    • Ne JAMAIS envoyer de code de confir­ma­tion SMS par email ou ailleurs que sur la page de login offi­cielle

    Pour une app finance-paie­ment, j’at­tends autre chose. Peu importe les raisons, ça mérite de faire mieux. Il y a des moyens. Au mini­mum :

    • une inter­face web pour les messages du support, héber­gée par le nom de domaine offi­ciel prin­ci­pal (ou un sous-domaine de celui-ci)
    • la capa­cité de retrou­ver sur une page du domaine offi­ciel prin­ci­pal (ou un sous-domaine de celui-ci) les messages d’in­for­ma­tion impor­tants envoyés par email
    • les envois de données sensibles (comme un RIB) sont à faire sur une page web du du domaine offi­ciel prin­ci­pal (ou un sous-domaine de celui-ci) et pas par email
    • des pages web qui listent tous les domaines et adresses qui envoient des emails en votre nom (support inclus)
  • IA : L’élé­phant dans le couloir

    Je me vois mal commen­cer à plon­ger dans l’IA1 en igno­rant toute la ques­tion éner­gé­tique. Je commence ce billet pour essayer d’y voir clair.

    C’est un brouillon partagé où je vais poser des notes au fur et à mesure des lectures, pas une conclu­sion.

    On a tous nos biais, moi aussi. Quelques posi­tions de départ :

    1. J’ai un gros biais néga­tif à la base. J’ai vu passer les délires de la réalité virtuelle, des seconds mondes, du web3 et autres crypto-actifs. Je m’en suis tenu aussi éloi­gné que possible, j’en suis bien heureux et je ne souhaite vrai­ment pas entrer dans un gros hype alors que j’ai réussi à éviter les précé­dents. Le fait qu’une partie des suppor­ters de l’IA étaient suppor­ter du web3 n’est pas trop en faveur des ques­tions d’IA.
    2. Le second gros biais néga­tif vient de mes commu­nau­tés et lectures. Je navigue dans des sphères très concer­nées par les enjeux clima­tiques, qui font les efforts asso­ciées, et qui sont dans l’en­semble extrê­me­ment critiques vis-a-vis de l’IA, pour ne pas dire en total rejet. Ça ne me lie pas, mais c’est une posi­tion de départ et il est toujours diffi­cile de sortir tota­le­ment de ses préju­gés. Ici ça me sera d’au­tant plus diffi­cile que ça voudra dire tenir une posi­tion oppo­sée aux personnes qui m’en­tourent.
    3. À l’op­posé, je vois les trans­for­ma­tions à venir dans mon métier et cette fois-ci, j’y crois. J’ai à la fois envie d’être dans le train, et peur pour mon avenir si je décide de ne pas monter pour des raisons morales. Ça joue, et il va falloir que je fasse atten­tion à ce que ça ne me fasse pas cher­cher des prétextes ou des excuses.
    4. Enfin, j’ai aussi vécu les propos inco­hé­rents sur les enjeux clima­tiques, avec la chasse aux emails à effa­cer ou des préco­ni­sa­tions qui oublient tota­le­ment les ordres de gran­deurs. Parfois on désigne l’en­nemi à abattre et quand les chiffres ne tiennent pas on fini par « tout compte », ce qui est à la fois vrai et à la fois parfois juste un prétexte pour justi­fier une mauvaise posi­tion.

    Pour expli­ci­ter le dernier point, je me refuse à juste regar­der la consom­ma­tion éner­gé­tique en absolu. Il faut tout réduire mais pas tout suppri­mer. L’enjeu c’est de savoir où et comment couper.

    illustration d'un graphique en deux axes, sobriété énergétique et utilité. L'intérieur est coloré du vert (sobre et utile) marqué "à garder" jusqu'au rouge (pas sobre, pas utile) marqué "à jeter"

    Pour l’ins­tant je vais déjà collec­ter les liens qu’on me fait suivre (en vrac dans un premier temps) :


    1. C’est amusant, je vois que j’uti­lise IA quand je donne un ton posi­tif et LLM quand je donne un ton néga­tif, quand bien même dans ces contextes je parle fina­le­ment de la même chose. Je vais garder IA ici mais c’est un sujet de réflexion. ↩︎