La carte graphique, CUDA et l’expert

Je me suis lancé passionnément dans le calcul parallèle (cf billet précédent). Pour cela, je me suis offert une carte graphique à un prix abordable et que je destine au calcul intensif.

Imaginez mon impatience en attendant la livraison… Le jour J arrive et me voilà en train de démonter ma machine pour y ajouter ce magnifique objet technologique.

A ce stade du récit, il me faut faire un petit rappel : je suis adepte de GNU/Linux depuis de nombreuses années. J’aime tester de nouvelles distributions, j’aime l’univers GNU/Linux, ou FreeBSD. J’ai fait ma thèse sous Domain/OS et HP-UX. J’ai bien connu la distribution Yggdrasil qui était la première sur cédérom, c’est dire si je suis vieux. A titre professionnel, j’ai d’abord choisi Yggdrasil, puis Slackware, puis Red Hat, et enfin depuis de nombreuses années, Debian. A titre privé, j’ai beaucoup aimé Gentoo, puis Ubuntu, pour maintenant utiliser Mint.

La plupart des analyses techniques que je réalise pour mes expertises judiciaires sont faites sous GNU/Linux en utilisant des logiciels en ligne de commande.

Pour autant, j’apprécie la facilité d’installation des distributions GNU/Linux actuelles : il suffit de graver un DVD ou d’utiliser une clef USB et hop, les différents éléments de votre machine sont fonctionnels (en général ;-).

J’aime beaucoup la facilité…

Les plus barbu(e)s d’entre vous se souviennent des heures passées à configurer leur serveur X pour arriver à brancher deux malheureux écrans sur la même carte graphique. C’est un peu là où je vais en (re)venir.

La semaine dernière, lorsque j’ai reçu ma nouvelle carte graphique, j’étais tout excité à l’idée de transformer mon bête ordinateur en bête de calculs parallèles. Après m’être assuré (quand même) que toutes mes données étaient correctement sauvegardées, j’ai démonté ma tour pour y insérer cette nouvelle carte graphique surpuissante.

Premier constat : la carte graphique nécessite une alimentation dédiée, avec un connecteur 8 broches… Affolé, je regarde l’intérieur de ma machine éventrée, et je constate avec joie qu’un connecteur sort de mon boitier d’alimentation avec 6 broches d’un côté et deux de l’autre qui ressemblent fort au truc nécessaire pour faire fonctionner ma carte graphique. Je branche, rien ne fume o/.

Deuxième constat : je dispose de deux emplacements PCI Express me permettant de conserver mon ancienne carte graphique utilisée par mes deux écrans.

Je branche tout ce petit monde et redémarre mon ordinateur. Magie (et travail) de la communauté open source, tout est reconnu par le système d’exploitation, les pilotes par défaut chargés et tout fonctionne parfaitement. Sauf que…

Je ne perds pas de vue mon objectif : faire massivement des calculs. J’ai donc ma carte graphique d’origine sur laquelle sont branchés mes deux écrans, et ma nouvelle carte graphique sur laquelle rien n’est branché et qui va me servir de calculateur GPU. Sauf que…

J’ai soigneusement choisi mon modèle de carte graphique pour qu’elle intègre un GPU Nvidia qui, au moment où j’écris ce billet, est admirablement programmable avec un environnement qui s’appelle CUDA. Avant de casser ma tirelire, j’avais fait quelques essais avec le vieux portable de ma fille (seul appareil de la maison muni d’une carte Nvidia). Sous GNU/Linux Mint, l’installation de l’environnement de développement CUDA se fait très simplement avec la commande « sudo apt-get install cuda ». Après quelques réglages post-installation, me voici donc en train de jouer avec les 1920 cœurs des 15 processeurs graphiques. Je suis aux anges 🙂 Sauf que…

Sous Windows, quand vous installez un nouveau composant ou un nouveau programme, il faut la plupart du temps redémarrer l’ordinateur. Ce n’est pas vrai sous GNU/Linux. J’ai donc pu m’amuser immédiatement pendant plusieurs heures avec mon nouveau jouet avant d’éteindre mon ordinateur.

Mais le lendemain, catastrophe. En démarrant ma machine, plus rien ne fonctionnait. Enfin, « plus rien » non : je n’avais plus d’interface graphique fonctionnelle. Me voici parti pour plusieurs jours de galères « à l’ancienne » pour essayer d’abord de réparer ma configuration graphique, puis pour essayer de comprendre. Comme avant, j’ai écumé les forums, j’ai cherché les tutos, les howto, les manuels correspondant à mon problème…

Pour faire court : je n’ai pas réussi à trouver d’aide.

Oui, je sais. Je suis EXPERT. Je suis EXPERIMENTE (= vieux). Mais non. Je n’ai pas réussi à faire fonctionner deux cartes graphiques (une vieille Radeon et une jeune Nvidia) dont une devait être consacrée à la gestion de mes deux écrans et l’autre à mes calculs massivement parallèles… Le serveur X Windows et les deux pilotes graphiques associés (libres ou propriétaires) ne semblent pas vouloir fonctionner ensembles après redémarrage. Pourtant j’arrive à faire fonctionner l’ensemble AVANT redémarrage…

Je me suis tapé la configuration d’un xorg.conf (fichier qui est sensé avoir disparu).

J’ai abandonné Mint pour installer Ubuntu (comme conseillé par la doc CUDA).

J’ai réussi la configuration avec une seule carte RADEON.

J’ai réussi la configuration avec la seule carte Nvidia.

MAIS je n’ai pas réussi à créer la configuration avec les deux cartes.

Après plusieurs jours de transpiration, j’en suis arrivé à la conclusion suivante : je suis NUL en configuration graphique GNU/Linux.

J’ai donc ravalé ma fierté, retiré ma nouvelle carte graphique, remis ma configuration d’origine GNU/Mint, et j’ai sorti un vieux PC de son placard. J’y ai installé un Ubuntu server tout frais. J’y ai placé ma carte graphique surpuissante. J’ai constaté l’absence d’alimentation dédiée… J’ai acheté cet adaptateur d’alimentation SATA vers carte vidéo PCI Express 8 broches. J’ai attendu trois jours pour la livraison.

Et j’ai maintenant un calculateur dédié aux calculs parallèles.

Je m’y connecte à distance en ssh. Je lui ai consacré un processus de sauvegarde dédié. Il a une place particulière dans mon bureau et dans mon cœur.

Il faut savoir reculer pour mieux avancer.

Avant je programmais un réseau de neurones qui travaillait sur 60 000 exemples d’apprentissage sur plusieurs semaines. Maintenant j’ai 60 000 réseaux de neurones identiques qui travaillent chacun en parallèle sur leur exemple d’apprentissage, en une nuit à une vitesse de folie sur 8 Go de mémoire graphique ultra rapide.

Le rêve d’un vieux chercheur 🙂

Mais cela, c’est une autre histoire.

Deep learning, BFGS, GSL, OpenMP et CUDA

Il m’arrive par moment de renouer avec les travaux de recherche de ma jeunesse : les réseaux de neurones. J’ai d’ailleurs écrit ici même quelques billets sur le sujet, dans une série non terminée.

Je tombe régulièrement sur des articles consacrés au deep learning, nouvelle terminologie à la mode remettant en scène les outils de ma jeunesse. Alors je creuse un peu plus, rebondis de publication en publication, jusqu’à retrousser les manches et ressortir mes vieux rêves.

Bien sur, le temps est passé, et de nombreuses avancées ont eu lieu. Mais si j’ai appris une chose de mes années de jeune chercheur, c’est que tout est possible pour qui s’en donne la peine. Je n’ai donc aucune honte à remettre mes habits d’étudiant et à lire toute une bibliographie sur ces sujets.

J’ai recommencé il y a quelques semaines. Une heure par ci, deux heures par là, prises sur mes soirées et mes week-ends, entre deux occupations plus sérieuses. J’ai commencé à apprendre le langage Python, surtout pour sa simplicité. Je suis loin d’en avoir fait le tour et nous nous apprivoisons doucement.

Il faut dire que j’ai enseigné pendant dix ans le langage C… Et que j’aime beaucoup son côté « proche de la machine ». Je passe donc souvent de Python au langage C, et depuis quinze jours, j’écris et je réécris un ensemble de programmes de simulation de réseaux de neurones et d’optimisation.

Il est vrai que j’ai découvert sur internet beaucoup d’outils extraordinaires, comme par exemple la bibliothèque mathématique GSL avec laquelle je joue beaucoup, en particulier avec la fonction d’optimisation multidimensionnelle gsl_multimin_fdfminimizer_vector_bfgs2 qui implémente l’un des algorithmes d’optimisation avec lequel j’ai le plus travaillé dans ma jeunesse : BFGS.

Mais rien ne vaut l’écriture soi-même d’un tel algorithme d’optimisation. Cela permet d’en comprendre les subtilités, surtout que sa mathématique reste encore à ma portée, et de l’adapter à son problème précis, le tout piloté par une classique recherche linéaire basée sur les conditions de Wolfe et Powell (attention allergiques aux maths s’abstenir ;-). Comme je n’ai pas de problème précis à régler, je joue avec un problème classique de classification de chiffres manuscrits issus de la base de donnée MNIST.

Je suis encore très loin des performances des meilleurs algorithmes, mais au moins, cela me permet de tester quelques idées.

J’ai donc délaissé provisoirement le langage Python pour écrire un programme en langage C et m’amuser avec des tableaux de pointeurs, des allocations de mémoire et du calcul de matrices de grandes tailles.

En effet, l’apprentissage supervisé d’un réseau de neurones consiste à trouver le meilleur jeu de coefficients permettant de minimiser une fonction d’erreurs. Dans le problème qui m’occupe (la reconnaissance de caractères manuscrits), les entrées sont des images 28×28 en 255 niveaux de gris. Cela fait quand même 784 entrées, plus l’entrée constante qui permet de passer d’un espace vectoriel à un espace affine, soit 785 neurones d’entrée.

Ces 785 entrée injectent les pixels dans un réseau de neurones complètement connectés (je n’aime pas les réseaux à couche cachés, j’ai toujours préféré sa généralisation complètement connectée). Le réseau possède une sortie unique, si l’on code la réponse de 0 à 9, ou dix sorties si l’on préfère un codage hypercube (par exemple chaque chiffre sera codé par 9 zéros et un 1 sur sa sortie correspondante : 7=0000000100) qui semble être la représentation privilégiée.

Un réseau typique dans mon cas sera constitué de 785 entrées, N neurones cachés et 10 neurones de sortie. Si N vaut par exemple 25, cela donne 28 025 coefficients à calculer… C’est-à-dire un vecteur gradient à 28 025 composantes et une matrice « approximation de l’inverse du Hessien » de 28 025 x 28 025 termes, soit plus de 785 millions de nombres réels double précision… Il s’agit de ne pas se tromper dans les « malloc » pour éviter les « segmentation faults » !

Je suis en train de tester une version modifiée par mes soins de l’algorithme BFGS où cette grande matrice est remplacée par N matrices plus petites.

Mes programmes sont désespéramment longs dans leurs calculs sur mon pauvre PC perso, un « vieux » i7 à 8 cœurs. Constatant qu’un seul cœur était mis à contribution, je me suis tourné avec un peu d’appréhension vers le calcul parallèle. Et j’ai découvert (ne riez pas) l’interface de programmation OpenMP : quelques lignes de directives bien placées, et hop, le programme utilise les 8 cœurs de ma machine. C’est magique !

Je commence enfin à avoir des résultats corrects avec l’apprentissage de mon réseau de 25 neurones sur ce fichu problème de reconnaissance de chiffres manuscrits.

Les semaines passent, le temps me glisse entre les doigts. J’aimerais bosser un peu la question de l’utilisation de mon GPU à travers la bibliothèque CUDA, surtout que je peux accéder au boulot à une carte NVidia Tesla (pendant quelques minutes, histoire de voir si j’arrive à programmer une multiplication matricielle). Si j’arrive à maîtriser CUDA, alors il me faudra négocier avec Mme Zythom l’achat d’une carte NVidia supportant cette technologie et accessible financièrement (parce que la NVidia Tesla K80 à 7000 euros, ça va pas être possible…)

Encore de longues soirées en perspective, à regarder évoluer les coefficients de mes petits réseaux de neurones…

Ensuite, dès que j’en aurai le courage, je réattaque TensorFlow que j’ai lâchement abandonné en attendant des tutos plus détaillés.

Si mes neurones réels ne flanchent pas d’ici là 😉

La parole aux femmes

How it Works

xkcd.com/385

J’ai trouvé l’idée de Kozlika très intéressante : profiter de ce 8 mars pour relayer ici des articles de blogs écrits par des femmes.

Du coup, j’ai fait le tour de mes sites favoris, et quelques recherches sur internet, sous l’angle « est-ce écrit par une femme ? ».

Il y a dans ma blogroll beaucoup de sites tenus par des femmes (vous trouverez sur le côté droit du blog, version web, tous les sites de ma blogroll). Je voudrais mettre en avant mes préférés :

De bric et de blog tenu par Veuve Tarquine

Judge Marie, tenu par… Judge Marie, juge des enfants et présidente d’audience correctionnelle

Kozeries en dilettante, par Kozlika

Oh Joy Sex Toy (NSFW), tenu par un couple, mais surtout par Erika Moen, qui m’a appris beaucoup de choses, vraiment beaucoup, sur les femmes

Et comme ce 8 mars est l’occasion d’ouvrir mon horizon, j’ai cherché et trouvé les sites suivants, que j’ai ajoutés à mon lecteur de flux RSS :

Le blog de Fatiha, « fan de Linux, open source et développement personnel » que je vous laisse découvrir.

Romy.tetue.net, « conceptrice web UX, parisienne et têtue ».

Comme une Geek, de Julie, « femme qui aime l’informatique, le hacking, les jeux vidéos, les séries TV, le high tech et l’humour ».

– Le blog de Valérie Aurora (en anglais)

Je n’ai pas trouvé de site tenu par une femme dans le domaine de la sécurité informatique, ni dans celui de l’expertise judiciaire informatique 🙁 mais j’ai certainement raté pleins de sites intéressants, donc si vous avez des sites tenus par des femmes à recommander (qui ne sont pas dans ma blogroll), n’hésitez pas à les indiquer en commentaires.

[Edit 08/03/17 10h48]

blog.linuxgrrl.com de Mairin Duffy (via @Jehane_fr)

decentsecurity.com de @SwiftOnSecurity (via @Kozlika)

Et pourtant la journée avait bien commencé

Extrait de https://salemoment.tumblr.com/
avec l’aimable autorisation de l’auteur

Je suis installé devant mon ordinateur et je commence à faire défiler les images.

Ce dimanche matin, je suis tout content de voir que la copie numérique du disque dur, commencée la veille, s’est bien déroulée. Le disque dur original est remis dans le scellé, après avoir pris les photos d’usage du numéro de série, du modèle et de la marque d’icelui.

J’ai sur mon bureau mon cahier papier sur lequel je prends toutes sortes de notes : l’heure où le gendarme m’a amené le scellé, l’heure où j’ai brisé le sceau du scellé, les diverses descriptions physiques que j’en ai fait, les photos que j’ai prises avant et après l’ouverture de l’unité centrale, l’état général de l’intérieur, l’ordre des connecteurs de branchement du disque dur, etc.

Les dernières lignes inscrites sur mon cahier concernent la fin de la prise d’image bit à bit du disque dur d’origine, l’extraction des fichiers encore présents même sous forme de traces, et l’heure de début de mes investigations sur ces fichiers.

J’ai en tête la mission que le magistrat m’a confiée : je dois lui dire si le disque dur contient des images et/ou des films de nature pédopornographique. Je dois également, à titre subsidiaire, signaler tout élément qui pourrait l’intéresser. Non seulement mes compétences techniques l’intéressent, mais aussi mes capacités divinatoires…

Je suis installé devant mon ordinateur et je commence à faire défiler les images. J’ai une sexualité « normale », j’allais dire « banale », une vie tranquille bourgeoise centrée sur l’informatique, les jeux vidéo et la science-fiction. Je mène une existence protégée des atrocités « lointaines », des meurtres, des guerres. Je travaille dans une école d’ingénieurs généralistes comme directeur informatique et technique. J’aime transmettre mes connaissances et ma passion pour l’informatique. Le pire stress que je subis est la pression que je m’inflige pour que les utilisateurs bénéficient du meilleur service possible.

Les images que je regarde sont atroces. Rien ne prépare à ce type de spectacle. Je ferme la porte de mon bureau et demande à mes enfants de ne pas me déranger. Toutes les atrocités humaines défilent sur mon écran : viol d’enfants de moins de 10 ans, actes de tortures filmés pendant les guerres de Yougoslavie, êtres humains enflammés au lance-flamme…

Je trie ces images et ces films en différentes catégories. Mon cerveau se sature de ces scènes tout en « évaluant » le degré d’atrocité. Au bout de trois heures, quelques larmes coulent sur mon visage. Je viens de penser à mes enfants.

Je note l’heure sur mon cahier avec la mention « pause ».

Je prends un temps pour moi.

Il y a des gens qui font des métiers très durs : pompiers, policiers, médecins, etc. Je lis ici ou là qu’ils s’endurcissent avec l’habitude, par force. Ils exercent leurs métiers avec passion et efficacité, malgré les drames qu’ils côtoient.

Je me rends compte que je n’arrive pas à m’endurcir. Que ma sensibilité gène mon activité d’expert judiciaire, du moins sur ce type de mission. Rien ne m’a préparé à cela, et je n’ai pas demandé à l’être. Je sais que bon nombre de confrères qui me lisent sont beaucoup plus forts que moi et arrivent à aller au delà de l’horreur pour se concentrer sur la mission.

Il y a les héros du quotidien, anonymes, qui surmontent leurs angoisses et leurs dégoûts pour le bien de la communauté. Et il y a les autres, dont je fais partie, ceux qui n’arrivent pas à s’habituer.

Je reprends l’analyse des images. L’utilisateur de l’ordinateur collectionne des images qui me terrifient. Je passe d’un cadavre décapité à une enfant au regard triste face à un sexe trop grand pour elle. Je la reconnais et j’en ai déjà parlé ici, il s’agit d’une petite fille qui revient souvent dans les collections pédopornographiques. Je l’ai surnommée Yéléna et elle hante souvent ma mémoire, parfois à des moments les plus saugrenus.

La matinée passe lentement. Je fais une pause repas avec les enfants et mon épouse. J’arrive à faire bonne figure, mais tout le monde sent que je suis un peu « en panne ». J’explique que je suis fatigué et l’excuse passe comme une lettre à la poste. Je n’ose pas parler à mon épouse de ce que je vois. Je reste vague. Elle connaît la mission sur laquelle je travaille et n’insiste pas.

Je me ré-installe devant mon ordinateur et je continue à faire défiler les images. « Décidément, je le concevais, je m’étais embarqué dans une croisade apocalyptique. On est puceau de l’Horreur comme on l’est de la volupté. » Écrivait Louis-Ferdinand Céline à propos de la guerre dans « Voyage au bout de la nuit ». Comment aurais-je pu me douter de cette horreur en devenant expert judiciaire ?

Et pourtant la journée avait bien commencé avec le succès de la copie numérique du disque dur du scellé. Elle se terminera tard dans la nuit avec le transfert sur DVD des images et des films trouvés, et l’impression de quelques « morceaux choisis » qui feront le cauchemars de la greffière, du juge d’instruction et des avocats qui auront mon rapport entre les mains.

Partager ses cauchemars n’adoucit en rien son propre fardeau.

Mi-temps

Ce billet est publié dans la catégorie « privée » et n’a aucun intérêt autre que pour mes proches (et encore ;-). Vraiment aucun intérêt, vous êtes prévenus.

Quand j’avais 7 ans, j’avais un petit rituel quotidien dont j’étais persuadé que si je le réussissais, j’allais vivre encore 100 ans : quand j’urinais, je faisais le tour de l’eau du fond de la cuvette sans toucher le bord extérieur, ni l’eau du fond, le tout sans éclabousser. Mesdames, vous avez là l’un des secrets qui peut occuper la vie des petits garçons…

Pendant toute l’année de mes 7 ans, j’ai réussi cet exploit sans faillir, à la grande joie de ma mère qui a certainement pensé que j’étais particulièrement propre, ou adroit (ou que j’urinais assis…).

Pendant toute l’année de mes 7 ans, j’ai réussi cette épreuve difficile, ce qui m’a permis de savoir, tout jeune, que j’allais vivre jusqu’à 107 ans !

Pourquoi en parler maintenant ? Et bien, pile aujourd’hui, j’ai 53,5 ans, et donc encore 53,5 années à vivre.

Je suis à la mi-temps de ma vie, avec encore plein de choses à faire 🙂

Si la tête et le corps tiennent…

Twitter en images

Pour ce billet du vendredi, je voulais faire un bilan, en images, sur les années que j’ai pu passer sur ce formidable réseau social qu’est Twitter :

Quand j’explique Twitter à mon épouse
Quand j’explique Twitter à mes parents
Quand je lis les CGU de Twitter
Quand tu essayes de twitter discrètement
Pour certains, Twitter est un village
Pour certains, Twitter est un village (bis)
Certains Twittos cherchent à rester à la pointe
Quand tu demandes de l’aide sur un sujet sensible
Quand tu veux jouer dans la cour des grands
Quand un Twittos emm… tout le monde
Quand tu commences à twitter avec ton compte tout neuf
Quand tu comprends que la vie sera dure sur Twitter
Quand tu demandes à tes étudiants d’explorer Twitter
… en toute sécurité
Quand tu veux attirer l’attention de @Maitre_Eolas
… ou celle de @MaitreMo
Quand tu résistes aux pressions
Quand ton bon goût n’est pas reconnu
Twitter permet de rencontrer des gens différents 1/2
… vraiment différents 2/2
… vraiment vraiment différents 3/2
Twitter nous donne une vision originale du monde
… même si c’est souvent un peu ça…
Quand un twittos ou une twittas drague discrètement sur Twitter
Quand un mec vaguement connu arrive dans ta TL…
… et que tu te rends compte qu’il te follow
Quand tu en fais des caisses pour attirer l’attention
Twitter est une source d’informations fiable
Au moins autant que la PQR
Sur Twitter, on discute de choses sérieuses…
… mais toujours avec une pointe de dérision
… et un peu d’humour
… même si certains sont très « premier degré »
Sur Twitter, attention à l’orthographe !
… même si certaines fautes peuvent être intentionnelles
… l’essentiel étant toujours d’être compris
… mais bon, les fautes c’est quand même pénible
Twitter peut être sexiste…
… ou pas
Bien sûr, il y a toujours des connards XXL
… des inconscients
… et des mythos
… beaucoup de mythos
… mais on y trouve aussi de belles chaînes de solidarité
Quand tu nettoies un peu ta TL
Quand tu es un peu trop prêt d’un tweetclash
Quand tu fais un DM fail sur Twitter
… et que tu t’en rends compte
Quand tu demandes si GNU/Linux a des outils de sauvegarde aussi simples que Apple
Quand tu choisis le camp des rouges…
… ou celui des bleus
Finalement, Twitter, c’est un peu ça…

Artisanat de l’expertise

Paul Vidonne, Directeur du LERTI, a diffusé dans le petit milieu de l’expertise judiciaire informatique un pavé dans la mare document qu’il m’a gentiment autorisé à publier ici (document pdf à télécharger ici).

Extrait :

Le petit monde de l’informatique légale est en ébullition à la suite de la décision du service des achats de la Direction des services judiciaires de la Chancellerie de mettre en œuvre le Rapport sur les frais de justice d’avril 2015 élaboré sous l’égide du Contrôle Général Économique et Financier (Ministère des Finances) et de l’Inspection Générale des Services Judiciaires (Ministère de la Justice).

Conçu dans l’optique de réduire les frais de Justice, ce rapport examine les secteurs des expertises informatiques, toxicologiques, de la traduction et de l’interprétariat dans le domaine pénal. La dépense représentée par cet ensemble est chiffrée à 95 millions d’euros, dont 5 tout au plus pour l’informatique.

L’informatique légale est traitée pages 15 et 16. L’objectif annoncé est celui de la mise en place de marchés publics, mais la réalisation de cet objectif se heurte immédiatement à des réserves qui tiennent à la méconnaissance de ce secteur d’activité, à l’atomisation de l’offre et à l’incertitude des gains à attendre. Dès lors, la recommandation pour ce domaine d’activité (n°4, page 16) est celle d’étudier la mise en place d’un tarif qui serait intégré au Code de procédure pénale.

Cette recommandation, qui apparaît comme une solution de repli, semble aujourd’hui abandonnée par la Direction des services judiciaires au profit du retour à l’objectif initial de la mise en place de marchés publics.

On ne peut que souscrire à cet abandon : le tarif réglementé est la pire des solutions dans ce domaine d’expertises complexes, où aucun profil-type d’expertise ne peut être réellement défini. Le tarif réglementé n’offre aucune garantie de qualité pour un prix administré donné et constitue dès lors un effet d’aubaine pour certains tandis qu’il pénalise lourdement ceux qui s’attachent à rendre des rapports de qualité ou qui sont confrontés à des expertises difficiles. Le tarif prend ainsi le risque de faire disparaître les pôles d’excellence.

Il faut donc comparer les deux seules solutions qui subsistent : celle du maintien de la situation actuelle, – éventuellement améliorée – et celle des marchés publics.

Cette analyse sera conduite à l’aide des concepts que nous offre la science économique : la situation actuelle se caractérise comme un marché de concurrence imparfaite tandis que la solution des marchés publics apparaît comme un monopsone étatique conduisant à une offre exsangue.

La suite est à lire dans le document que je vous recommande (rappel : téléchargeable ici).

Déclaration de partialité :

Paul Vidonne est professeur à l’Université Pierre Mendès France de Grenoble, où il a été nommé il y a plus de 30 ans. Parallèlement à son activité à l’université, il ouvre un cabinet d’expert en informatique. Il travaillera longtemps pour les milieux juridiques et judiciaires, et en particulier les barreaux d’avocats dont il a été le consultant de vingt-et-un d’entre eux, avant de diversifier son activité auprès des entreprises. Son cabinet se consacre à l’expertise informatique et l’établissement de la preuve informatique. Dans la ligné d’un Edmond Locard, il crée en 2004 le LERTI avec quatre autres experts judiciaires en informatique et un ancien gendarme de l’IRCGN (INL), tous convaincus que l’investigation informatique légale ou privée demandait aujourd’hui des moyens que seuls de véritables laboratoires pouvaient réunir.

Je n’ai aucun lien de travail avec Paul Vidonne, ni avec le LERTI, à part le fait que j’ai beaucoup d’admiration pour leurs compétences et leurs travaux. Cela influence nécessairement la suite de ce billet 😉

Paul Vidonne, dans son article, brosse un tableau que je trouve particulièrement juste de la situation de l’expertise judiciaire informatique française.

Extrait :

L’offre d’expertises judiciaires en informatique légale repose sur cinq ou six laboratoires, – dont trois publics – auxquels s’ajoutent quatre ou cinq dizaines d’experts privés inscrits sur les listes des cours d’appel. C’est peu et beaucoup à la fois.

Cette offre est totalement hétérogène.

Les laboratoires publics de la Gendarmerie et de la Police disposent d’équipements du plus haut niveau international, d’ingénieurs de grande compétence, de crédits relativement abondants et sont astreints à des missions de formation et de recherche qui ne leur laissent qu’un temps mesuré pour les expertises pénales. À eux tous, ils n’emploient que quelques dizaines de personnes seulement.

Les laboratoires privés sont des sociétés de type commercial qui emploient chacune moins d’une dizaine d’ingénieurs salariés ou d’experts sous contrat, disposent d’un équipement inférieur à celui des laboratoires publics – et, au demeurant, assez inégal entre eux – se consacrent en partie seulement ou en grande partie à l’expertise pénale. Ils travaillent pour des juridictions réparties dans tout l’espace national, y compris l’outre-mer. Le nombre d’expertise effectuée n’est pas rendu public, mais on peut l’estimer autour d’un ordre de grandeur d’une à deux centaines par année.

Les experts privés individuels sont dans des situations extrêmement variables, avec comme caractéristique commune d’effectuer leurs expertises en supplément d’une autre activité, comme le leur impose la loi : ils sont salariés ou cadres d’entreprises, fonctionnaires de l’enseignement ou de la recherche, retraités de la police de la gendarmerie ou de l’armée, professions libérales, auto entrepreneurs… Leur niveau de formation est très variable, leurs équipements modestes, voire quasi inexistants, leurs licences, peu nombreuses, ne sont pas toujours mises à jour, compte tenu de leur coût élevé rapporté au faible nombre d’expertises qu’ils réalisent. Pour la plupart, ils n’ont pas passé les qualifications attachées à ces licences. Certains travaillent dans les locaux ou avec les matériels de leurs employeurs. Tous n’adhèrent pas à une compagnie d’experts et certains ne sont pas assurés. Ce sont les experts dits « locaux » ou « de proximité » qui ne travaillent guère que pour leur cour d’appel. Sauf de rares exceptions, ils n’effectuent que quelques expertises par année, et, pour beaucoup, une ou deux seulement. Ceci n’empêche pas certains d’entre eux de réaliser des travaux de grande qualité.

Les prix pratiqués reflètent cette hétérogénéité. Les laboratoires publics ne sont évidemment pas gratuits. Nous ne savons pas s’il existe une comptabilité analytique qui permettrait de connaître le coût de leurs travaux, mais nous pouvons aisément conjecturer que ces prix sont largement plus élevés que ceux des laboratoires privés. L’illusion de gratuité n’affecte en effet que ceux qui méconnaissent l’existence de refacturations interministérielles ou l’existence d’un budget global de la Nation.

Les prix des laboratoires privés sont relativement homogènes et pour cause : salaires et charges sociales sont les mêmes pour toutes les entreprises.

Les prix pratiqués par des experts privés individuels sont à l’image de leur diversité, allant du simple au triple. Ils sont en général inférieurs à ceux des laboratoires privés. Un expert s’est même rendu célèbre en 2016 en annonçant qu’il effectuerait désormais ses expertises gratuitement. Effectivement, sa situation particulière le lui permet.

Vous l’aurez compris, je pense être cet expert dont parle Paul Vidonne en fin d’extrait, car il semble faire référence à ce billet où j’annonçais la gratuité de mes interventions au titre des demandes pénales (0 demande à aujourd’hui ;-).

Le découpage est très clair, et je me retrouve très bien dans la catégorie « expert local », sous catégorie « cadre d’entreprise », équipement modeste, licences opensources, travaillant chez moi, non inscrit à une compagnie d’experts de justice, assuré (très cher) à titre individuel sous le statut auto entrepreneur.

Je suis donc un artisan de l’expertise judiciaire informatique.

Et comme tous les artisans, il me faut rester lucide sur mes capacités. Je ne peux pas rivaliser avec les moyens techniques des grosses structures (étatiques ou privées). J’ai souvent parlé sur ce blog d’anecdotes d’expertise où je privilégie un élément technique particulier, alors que la majorité des expertises que je mène relève plus d’un avis sur l’état de l’art dans tel ou tel sous domaine de l’informatique. Je l’ai souvent répété, je ne suis pas un spécialiste (ni en sécurité informatique, ni en développement web, ni en programmation) mais un généraliste de l’informatique. Pour autant, à chaque mission, on me demande mon avis sur un point très précis, qui peut relever de n’importe quel sous domaine de l’informatique. Suis-je légitime pour donner cet avis ? Franchement, je pense que oui, dès lors que je travaille suffisamment la question avec les spécialistes.

Mais l’artisanat est en voie de disparition : trop cher, trop fragile, trop lent, trop petit. Ainsi va notre monde, où je suis le premier à préférer faire mes courses sur internet.

C’est en faisant ce constat, que j’ai refusé toutes les missions qui m’étaient proposées sur la téléphonie mobile, qui demande des compétences et des moyens logiciels et matériels dont je ne dispose pas et qui ne me sont pas demandés par mon employeur. Je reste donc sur le créneau informatique, informatique qui s’est répandue dans toutes les couches de la société, mais où des structures d’informatique légale plus grosses se sont implantées, et où les OPJ et les huissiers se sont formés.

Mes compétences techniques sont de moins en moins demandées.

Je vais constater (avec sérénité) la disparition de l’expertise technique locale artisanale et évoluer vers une expertise ressemblant plus à du conseil critique auprès des avocats et des magistrats. C’est un choix que j’ai fait il y a quelques années.

L’article de Paul Vidonne me montre que cette évolution est inéluctable et qu’il va falloir que je me remette encore plus en cause. N’est-ce pas le cas pour tout le monde ?

Et un jour je jetterai l’éponge.

Intelligence et conscience artificielle

De nombreux articles sortent depuis quelques temps sur des objets connectés et/ou des programmes d’assistance sous l’intitulé « IA » pour « intelligence artificielle ». Je suis un peu surpris du terme, puisque certains de ces objets/programmes ne semblent pas si éloignés du vieux programme « Eliza » (1966) dont j’ai déjà parlé ici en 2007. On est quand même encore loin d’arriver à réussir le test de Turing pour pouvoir parler d’intelligence…

J’ai toujours été passionné par cette question de l’intelligence artificielle, au point de commencer ma carrière dans un laboratoire spécialisé sur ce sujet, et à passer un doctorat sur les réseaux de neurones formels (cf ma série non terminée de billets sur le thème réseau de neurones).

Le terme « intelligence artificielle » étant maintenant un peu galvaudé par les gens du marketing, je préfère utiliser l’expression « conscience artificielle » pour évoquer la question qui m’intéresse vraiment : un programme informatique peut-il imiter la capacité des neurones et
créer un esprit, et finalement, l’expérience de la conscience ?

Ma réponse personnelle est que c’est possible, qu’on y arrivera, et que c’est une aventure extraordinaire, qui nous amène sur la terra incognita de la singularité technologique.

Et j’espère voir ça, parce que j’aurai beaucoup de questions à poser à cette conscience artificielle, en espérant qu’elle évitera de me répondre « 42 » ou « désolé Zythom, j’ai peur de ne pas pouvoir [ouvrir la porte]« …

J’ai aussi une certitude glaçante : la création de la première machine à conscience
artificielle sera la dernière invention que l’Homme aura besoin de
réaliser.

Les scientifiques sont des gens curieux.

Biblio :

Philosophie de l’intelligence artificielle

Singularité technologique

Conscience artificielle

Informatique affective

Le vieil homme et l’immersion

J’ai toujours été attiré par la réalité virtuelle, qu’elle soit utilisée dans les jeux vidéos ou dans certains programmes informatiques professionnels. Je crois que mon premier « Whaouuu » en la matière a été lorsque j’ai lancé Quake sur une grosse station de travail sous HP-UX, et depuis je n’ai cessé de m’émerveiller.

Vers la fin des années 90, j’ai fait venir à l’école d’ingénieurs où je travaille une entreprise qui avait réalisé un casque d’immersion 3D qui coûtait la bagatelle de 120 000 euros. J’assistais à la démo assis dans le public et quand le démonstrateur a demandé un volontaire pour tester le système, j’ai levé la main précipitamment, déclenchant l’hilarité générale… Je me souviens que ce système avait été développé comme prototype pour l’étude et la conception des éléments de la fusée Ariane (montage, démontage des différentes pièces). La démo consistait en un déplacement dans une cité futuriste, avec des ascenseurs gravitationnels dans lesquels j’avais eu la mauvaise idée de regarder en bas : vertige et déséquilibre assurés 🙂

Avec les progrès fulgurants de l’informatique, j’étais sûr que les casques d’immersion 3D feraient rapidement leur apparition, à un coût raisonnable… Mais le temps a passé, et rien n’est arrivé.

Jusqu’à ces dernières années, où différents prototypes de casques sont apparus, à des prix trop élevés pour moi, et demandant des configurations très puissantes… Il me fallait donc me contenter de casques en carton intégrant mon smartphone, avec de petites applications d’immersion.

Puis je suis tombé sur l’annonce de la sortie imminente du casque de Sony pour la console de jeux PS4. Fébrile, je cherche un magasin où le tester, et ce samedi, malgré la foule de Noël, je me rends dans une grande enseigne où un démonstrateur de chez Sony permettait aux curieux de faire un test à partir de 15h.

A 14h55, j’étais prêt devant le stand. A 15h00, l’animateur me donnait les conseils d’usage : êtes-vous sujet au vertige, au mal des transports, etc. Parmi les démos disponibles, j’ai choisi la descente dans les abysses de VR World, qui présente l’intérêt de ne pas me ridiculiser avec une mauvaise maîtrise des commandes (il n’y a rien à faire d’autre que de regarder), en plus d’être assis confortablement sur un grand tabouret.

Voyant ma fébrilité, l’animateur me regarde un peu inquiet : vous êtes sûr que ça va aller ? C’est un achat pour vos enfants, me demande-t-il en regardant mes cheveux blancs… Non, non, c’est pour moi, allez-y / on y va / go ! Il m’explique qu’il a vu pas mal de réactions différentes à l’immersion 3D et que ça peut être désagréable. Il me règle le casque sur la tête, puis les écouteurs.

Me voici immergé dans une eau claire et transparente, entouré de poissons, de petits sous-marins, dans une cage anti-requin suspendue à un long câble relié à un navire de surface. Je suis subjugué. Les graphismes sont extraordinaires (à mes yeux), et je peux regarder dans tous les sens : devant, derrière, au dessus, au dessous de moi… Puis commence une lente descente vers les abysses, à travers un gouffre dans lequel je retrouve toutes mes sensations de spéléologue.

Pendant 10 mn (la démo dure 20 mn, mais l’animateur l’a arrêté plus tôt pour laisser la place à d’autres personnes), je me suis tortillé sur mon tabouret, les yeux écarquillés, pour regarder de tous les côtés. Je retrouvais les sensations d’immersion que j’avais connues fugacement comme jeune adulte. Enfin, je pouvais profiter d’un spectacle 3D complet. J’étais aux anges.

Quand l’animateur m’a retiré mon casque, il a été surpris et s’est exclamé : « ah, ben, ça c’est pas banal ! ». En effet, sous le coup de l’émotion, mes yeux s’étaient mouillés, et une larme coulait sur ma joue… J’ai ainsi ajouté une réaction à la liste déjà longue de l’animateur.

Vous connaissez ainsi le cadeau que je vais avoir à Noël. Je trépigne déjà d’impatience, et mon épouse refuse que je l’ouvre en avance, alors que j’attends depuis si longtemps 😉

——————————————–

Je profite de ce billet pour vous souhaiter à tous de joyeuses fêtes de fin d’année. Embrassez vos proches, vos amis, votre voisine, votre voisin. Donnez un peu de chaleur à ceux qui en ont besoin.

Et n’oubliez pas : on n’a qu’une vie.