Un service technique peut-il vraiment être fiable à 100% ?

/ by
Reading Time: 5 minutes
Un service technique peut-il vraiment être fiable à 100% ? Dans ce blog, Richard Develyn, directeur technique de CloudTrade, avec un clin d’œil à Heisenberg, se penche sur ce que dans le monde de l’informatique, on entend par 100% de précision. Il aborde les lacunes de la technologie ROC et décrit comment CloudTrade a conçu une méthodologie systématique pour atteindre l’objectif d’offrir un service 100% fiable.

Comment peut-on prétendre offrir un service qui soit précis à 100% ? Cent pour cent semble trop absolu ; trop certain ; trop dépourvu de marge d’erreur. Après tout, rien n’est précis à 100%, n’est-ce pas ?

Peut-être pensez-vous que ce n’est pas parce que vous avez entendu parler de ce qu’on appelle le principe d’incertitude de Heisenberg. Même si vous ne savez pas exactement ce que c’est, le fait qu’il comporte le mot « incertitude » au milieu et qu’il soit clairement écrit par un physicien allemand très intelligent vous suggère probablement que personne ne devrait jamais prétendre être sûr à 100% de quoi que ce soit.

D’accord, mais le principe d’incertitude d’Heisenberg s’applique au niveau quantique, et si cela doit affecter quoi que ce soit, cela se produira probablement lorsque les processeurs deviendront si petits que les ordinateurs commenceront à devenir « quantiques » peu fiables (à moins, bien sûr, que les ordinateurs quantiques ne l’empêchent d’une manière ou d’une autre).

Mais je doute que vous soyez venu sur ce blog pour lire des articles sur les ordinateurs quantiques.

Les ordinateurs sont-ils vraiment précis à 100% ?

Les ordinateurs normaux sont, en fait, fiables à 100%, de la même manière que la gravité l’est à 100%. La dernière fois que nous avons été témoins d’une erreur commise avec un processeur d’ordinateur, c’était en 1994, avec le désormais tristement célèbre (si vous vous déplacez dans ces cercles) bug matériel du Pentium FDIV en virgule flottante qui a apparemment fait qu’une division en virgule flottante sur 9 milliards est sortie avec une mauvaise réponse. Cela peut sembler peu terrible, mais c’était un problème assez sérieux à l’époque, qui a poussé Intel à rappeler la puce au coût d’un peu moins d’un demi-milliard de dollars, ce qui représenterait trois quarts de milliard de dollars dans l’argent d’aujourd’hui.

Mais on ne peut pas vraiment reprocher l’erreur au processeur Pentium FDIV. Le pauvre morceau de silicone ne faisait que ce qu’on lui disait de faire. Le problème s’est produit parce que des ingénieurs humains ont fait une erreur en le construisant. Cela ne s’est pas reproduit depuis, non pas parce que les ingénieurs humains ne font plus d’erreurs, mais parce que les ingénieurs humains ont amélioré la façon dont ils testent et corrigent les erreurs qu’ils font.

Comment des personnes peu fiables peuvent-elles construire des systèmes fiables ?

La raison pour laquelle les gens sont sceptiques quant à une prétention de précision à 100% est qu’ils imaginent que tout doit finalement se résumer à une sorte de processus humain, et il est notoire que les êtres humains ne sont pas fiables à 100%. Les fabricants de processeurs informatiques semblent cependant avoir pris le contre-pied de cette tendance.

Une dizaine d’années auparavant, dans le monde des logiciels, Donald Knuth, un éminent informaticien, offrait une récompense de 2,56 US$, doublée chaque année, à quiconque trouvait un bug dans son application de composition très sophistiquée qu’il avait écrite et qui s’appelait Tex. Il est vrai qu’au début, des bugs ont été découverts et Knuth a dûment payé, mais même si le logiciel continue à être largement utilisé à ce jour, personne n’a signalé de nouveau bug dans ce logiciel depuis environ 12 ans.

Il semblerait donc qu’il soit possible de produire des logiciels fiables à 100% ainsi que du matériel fiable à 100%. C’est le cas de nombreux logiciels, en fait. Bien sûr, beaucoup ne le sont pas, mais la majorité des choses qui contrôlent les aspects critiques de notre vie sont fiables à 100%. Nous le saurions bientôt si ce n’était pas le cas. Il se peut qu’il ne soit pas fiable à 100% dès sa sortie, mais, comme le programme Tex de Donald Knuth, il atteint une précision de 100% avec un peu de temps et d’effort.

Voici la question clé : comment est-il possible que les ordinateurs et les programmes informatiques soient fiables à 100% alors qu’ils sont construits par des personnes qui ne le sont manifestement pas ?

Cela se résume en fait à trois choses :

  1. Avoir un problème bien compris et limité à résoudre
  2. Avoir les bons outils pour résoudre le problème
  3. L’élimination des bugs

Difficultés rencontrées avec le système ROC

La reconnaissance optique des caractères (ROC), par exemple, en tant que technologie, ne parvient pas à atteindre une fiabilité de 100% en raison du point (1) – le problème n’est pas bien compris ou sa portée est limitée. Il existe de nombreuses façons de représenter les lettres à l’œil humain – certaines estimations donnent le nombre de polices de caractères existant aujourd’hui à environ un demi-million. Ces polices n’obéissent pas à une sorte de règle stricte sur ce qui différencie un « b » d’un « h » ou un « i » d’un « j ». Elles sont « artistiques », et nous savons tous ce que cela signifie : elles n’adhèrent pas à des règles. Ajoutez à cela les imperfections que vous obtenez en scannant des images papier et vous pouvez voir comment le système ROC tente réellement de résoudre un problème impossible.

Identifier le problème

Nous n’essayons pas de résoudre le problème du système ROC ; nous l’évitons entièrement en extrayant des données brutes de documents dans lesquels ces données sont déjà présentes sans ambiguïté. Les décharges de données ne sont utiles à personne, bien sûr, donc là où nous, chez CloudTrade, concentrons tous nos efforts, c’est pour résoudre les problèmes de compréhension des données, ce qui nous permet d’identifier et d’étiqueter correctement les données avant de les transmettre à nos clients. Ces problèmes sont bien définis, ce qui nous permet d’atteindre une précision de 100% en suivant les deux étapes suivantes de la liste.

Choisir les bons outils

Tout d’abord, nous utilisons les bons outils. « Allons sur la lune » est peut-être un problème très bien défini, mais vous n’y arriverez pas avec un marteau et un ciseau. Bien entendu, plus les outils sont bons, plus le problème est facile à résoudre. Nous avons investi de nombreuses années de développement chez CloudTrade pour produire un moteur d’écriture de règles qui permet à des personnes sans formation informatique, après environ un mois de formation, d’écrire les règles nécessaires pour extraire et interpréter les données d’un document en quinze minutes à une heure environ selon sa complexité. C’est la clé de notre succès en tant qu’entreprise.

L’élimination des bugs

Bien sûr, il arrive que les rédacteurs de règles se trompent, parce qu’ils ne sont qu’humains, et c’est là qu’intervient le point (3). Lorsque nous faisons des erreurs, nous les corrigeons, et les erreurs corrigées restent corrigées.

L’astuce pour atteindre une précision de 100% consiste à disposer d’un processus reproductible que vous pouvez corriger au fur et à mesure. Vous ne pouvez pas atteindre ce type de fiabilité si vous utilisez des personnes dans vos processus, car les personnes ne peuvent pas être réparées de la même manière que les ordinateurs (même le psychanalyste le plus ambitieux du monde n’essaierait pas de faire cette affirmation). Les réseaux neuronaux, qui simulent en quelque sorte la pensée humaine, ne peuvent pas non plus être réparés car nous ne comprenons pas plus la façon dont ils raisonnent que nous ne comprenons la façon dont les êtres humains raisonnent. C’est un domaine de recherche considérable de nos jours, car notre incapacité à discuter du raisonnement avec les réseaux neuronaux limite grandement notre capacité à les utiliser. Peut-être qu’un jour nous aurons des psychanalystes de réseaux neuronaux. Je me demande s’ils seront aussi des réseaux de neurones. L’esprit s’emballe.

En conclusion, la raison pour laquelle nous pouvons à juste titre prétendre fournir un service 100% précis est due à ces trois faits clés :

– Nous limitons le problème que nous essayons de résoudre à quelque chose de bien défini et bien compris, parce que nous évitons de recourir au système ROC

– Nous avons mis en place un système spécialement conçu pour résoudre notre problème particulier

– Nous avons mis en place des processus pour corriger les erreurs que nous pourrions commettre lorsque nous l’utilisons.

Aucune erreur humaine, aucune erreur de ROC, aucune erreur de réseau neuronal. Juste un système programmable répétable. C’est ainsi que nous arrivons à 100%.