ChatGPT : En quoi peux-tu m’aider ? Conclusions (partie 10)

Au travers de 10 articles j’ai testé ChatGPT pour faire du Systems Engineering GenAI-Assisted (SEGAIA). En quoi peut-il m’aider encore en tant qu’Ingénieur Système, et quelques conclusions sur le sujet.

Je propose dans cette série d'articles "ChatGPT et Ingénierie Systèmes" d'évaluer, à date, l'utilité de cet outil d'IA générative d’OpenAI dans un cadre industriel comme une aide à la conception, développement, intégration validation de Produits.

Je vous conseille la lecture des articles précédents avant d'attaquer celui-ci. Vous les trouverez sous la catégorie Ingénierie Systèmes ou Pilotage de Projet/Programme. Mais aussi dans la conclusion de ce billet.

Aide n° 15 : Dis-moi en quoi tu peux m’aider

Et pourquoi ne pas demander directement à l’ami chatGPT en quoi il peut m’aider en tant qu’Architecte Systèmes ? Comment devenir un meilleur ingénieur avec cet assistant plein de ressources et qui ne dort jamais ?  

Prompting d’un ingénieur débutant

Question :

Tu es toujours Ingénieur Systèmes. Je suis Ingénieur Systèmes. En quoi, peux-tu m'aider dans mes travaux ?
Je suis ingénieur et je fais de chatGPT mon plus proche conseiller
Je suis tout ouïe

Réponse :

[...] Voici quelques domaines où je pourrais vous être utile :

###1. **Conception Système :**

 -Aider à définir les spécifications et les exigences système.

 -Fournir des conseils sur l'architecture systémique et les meilleures pratiques de conception.

###2. **Analyse et Modélisation :**

 -Utiliser des outils de modélisation pour analyser et simuler des systèmes complexes.

 -Interpréter les résultats de simulation pour optimiser la conception.

###3. **Validation et Vérification :**

 -Élaborer des plans de test pour valider les systèmes.

 -Aider à interpréter les résultats des tests et à apporter des modifications en conséquence.

###4. **Optimisation des Performances :**

 -Proposer des améliorations pour optimiser les performances du système.

 -Analyser les goulots d'étranglement et identifier les opportunités d'optimisation.

###5. **Gestion des Exigences :**

 -Mettre en place des processus de gestion des exigences.

 -Aider à assurer la traçabilité des exigences tout au long du cycle de vie du système.

###6. **Fiabilité, Disponibilité, Sûreté :**

 -Participer à l'analyse de fiabilité, disponibilité et sûreté (RAMS) des systèmes.

 -Proposer des solutions pour améliorer la fiabilité et la disponibilité.

###7. **Systèmes Embarqués :**

 -Apporter des conseils sur la conception de systèmes embarqués.

 -Optimiser les performances et la consommation d'énergie des systèmes embarqués.

###8. **Normes et Réglementations :**

 -Assurer la conformité aux normes et réglementations applicables.

 -Aider à interpréter et à mettre en œuvre les exigences réglementaires.

###9. **Architecture Logicielle et Matérielle :**

 -Proposer des architectures logicielles et matérielles efficaces.

 -Optimiser les choix de composants matériels en fonction des besoins du système.

###10. **Intelligence Artificielle et Analyse de Données :**

  -Intégrer des techniques d'intelligence artificielle pour améliorer les performances.

  -Aider à exploiter les données générées par le système.

###11. **Systèmes Cyber-Physiques :**

  -Travailler sur des systèmes interconnectés intégrant des composants physiques et des systèmes informatiques.

  -Sécuriser les systèmes cyber-physiques contre les menaces potentielles.

###12. **Maintenance et Support :**

  -Proposer des solutions pour la maintenance préventive.

  -Fournir un support pour résoudre les problèmes opérationnels.

###13. **Gestion de Projet :**

  -Contribuer à la planification et à la gestion de projets.

  -Estimer les ressources nécessaires pour la réalisation des travaux.

###14. **Formation et Partage de Connaissances :**

  -Fournir des informations techniques et des formations sur des sujets spécifiques.

  -Partager des bonnes pratiques et des retours d'expérience.

###15. **Innovation et Recherche :**

  -Proposer des idées innovantes pour améliorer les systèmes existants.

  -Contribuer à des initiatives de recherche et développement.

N'hésitez pas à préciser davantage vos besoins ou les domaines spécifiques sur lesquels vous aimeriez obtenir de l'aide, et je ferai de mon mieux pour vous assister.

Ce que je voulais :

  • Des idées de sur quoi je pourrais le prompter pour m’aider dans mon métier

Ce que j’ai eu :

  • des idées qui sont pertinentes pour un Ingénieur Système

C’est bien :

  • Il donne des bonnes idées (interprétations de résultats de tests, identifier des optimisations par exemple). Je n’ai pas testé ces points-ci. Si on recherche des grandes lignes d’optimisation, il sera peut-être bon, quid de si on lui demande des optimisations très précises et transverses à la fois  (comment limiter la consommation de ma chaîne fonctionnelle X sur ma carte Y lors des différents changements d’états du Système) ?
  • Assurer la conformité aux normes et réglementations applicables. C’est vrai, lui faire faire une recherche de textes applicables peut être intéressant. Attention aux hallucinations qui lui font citer des textes qui n’existent pas.
  • Estimer les ressources nécessaires pour la réalisation des travaux.  C’est vrai, je n’y avais pas pensé (hormis lui faire estimer les durées des tests de plan de tests, je ne l’ai pas prompté sur ce sujet plus large de Gestion de Projet).
  • Formation et Partage de Connaissances : complètement d’accord. On voit que quand on pose des questions générales, on a des réponses bien faites qui peuvent orienter vers une recherche plus fine et une auto formation sur certains sujets.

C’est moins bien :

  • Il me dit qu’il peut m’aider sur les spécifications ; C’est vrai, mais dans une certaine mesure (voir l’aide 7 où il n’a vraiment pas été terrible)
  • « Utiliser des outils de modélisation pour analyser et simuler des systèmes complexes » ? Ah ? Par quel truchement ?
  • « Aider à assurer la traçabilité des exigences tout au long du cycle de vie du système. ». On a vu qu’il perdait des exigences lors des prompts consécutifs (ne contenant qu’une 10aine d’exigence), lui confier la traça ne me semble pas une bonne idée.
  • Proposer des architectures logicielles et matérielles « efficaces ». Pas sûr, le cuit vapeur pour lequel je lui ai demandé de l’aide avait l’air de tout sauf de quelque chose de simple et efficace (capteurs en pagaille, détection automatiques d’aliments…).
  • Industrialisation et Production série : il n’en parle pas.
  • N’a pas cité les parties ergonomie/interface utilisateur. L’utilisateur restant quand même LE « sur-système » principal d’un système. Et ChatGPT est plutôt doué pour ce faire (cf. Article partie 9).
  • N’a pas parlé de la tenue aux environnements (mécanique, électromagnétique, thermique, polluants)

Pertinence et gain de temps pour un Ingénieur Systèmes débutant : Il semble que ChatGPT se survende, étant donné notre évaluation de ses performances en ingénierie systèmes. Un débutant pourrait donc croire que ChatGPT fera bien le boulot et c’est dangereux.

Attention aux limitations de chatGPT si vous êtes ingénieur !
Tu as de bonnes idée mais la modestie n'est peut-être pas ton fort !

Quelques conclusions générales

Evaluation de ChatGPT sur le métier d'ingénieur système : tous les scores, conclusions et conseils que je peux donner.
Table des scores de ChatGPT sur mes tests

En Synthèse de tous ces articles, voici quelques conseils pratiqe d’utilisation de l’IA générative dans le cadre de l’Ingénierie des Systèmes

  • Dans votre conception de Produit, ne demandez pas à ChatGPT de décliner des exigences (et plus largement de naviguer entre les étapes de spécifications). Restez au même niveau et travaillez à l’intérieur de celui-ci.
  • Utilisez ChatGPT à foison pour les sujets haut niveau (en l’occurrence ici, niveau Système complet): définition du besoin, d’une spécification, d’un plan d’IVV (intégration vérification validation), d’un plan de Qualification, plan d’Acceptation Client,  plan de Certification (pour faire de l’IVVQAC !) etc.
  • Relisez toujours ce que ChatGPT écrit. C’est peut-être pénible quand on traite 300 exigences ; cela dit il est plus rapide de relire et boucher les trous/modifier que de générer manuellement lesdites 300 exigences depuis feuille blanche par exemple.
  • Faites faire des Analyses de Risques à l’outil, il s’en sort très bien
  • Demandez lui des idées de prototypages et modélisations : que ce soit simplement pour vous rendre compte de ce qu’implique le Système que vous êtes en train de concevoir, ou pour mitiger des risques.
  • Méfiez-vous des limitations connues de ces outils : hallucinations qui peuvent se glisser dans les réponses, et traquez les pertes/oublis entre les prompts (1 exigence qui passe à la trappe sur 300 peut être complexe à repérer)
  • Posez-lui des questions sur des domaines où vous êtes novice. Ses réponses structurées vous donneront un très bon aperçu des sujets, et vous permettra de mener des recherches plus pointues ensuite avec les bons mots-clés sur les sujets intéressants et applicables à votre conception.
  • Sur les domaines que vous maitrisez, n'hésitez pas à lui donner de long prompts qui précisent le contexte et votre but. Lors de mes tests, j'ai souvent vu qu'il pouvait mieux s'en sortir si je lui donnais d'emblée plus d'informations.
  • Ne donnez pas d’informations de conception sensibles (pour des raisons commerciales, militaires, …) à un outil en ligne ! Privilégiez une IA locale qui tourne sur un PC dédié.

Conseils Bonus (lus par ailleurs sur internet et vérifiés personnellement)

  • Les IA génératives sont d’une grande aide pour générer du code logiciel sur la base d’une spécification bien formée. Ce sont donc de précieuses aides au Développement !

Enfin,vous noterez que ces conclusions sont agnostiques de la méthodologie choisie pour mener votre projet : Cycle en V, Agile, Design Thinking, Cycle en V hybride.

A vous de jouer : l’efficacité et les gains de temps sont là !

Aurélien NARDINI

Un Système Sans Problème est une ressource de connaissances et de savoir-faire pratiques, avec exemples concrets.

Que vous soyez Chef de Programme, Chef de Projet, Architecte Système, Ingénieur, Manager dans l'Industrie, Etudiant ou Curieux de l'Ingénierie, vous êtes au bon endroit.

Au travers d'articles publiés régulièrement, découvrez ou révisez les Processus, Méthodes, Outils et Astuces utiles pour concevoir et piloter dans les domaines du Software, Firmware, de l’Électronique, et de la Mécanique.
 
Parce-qu'un produit fiable et industrialisable ne s'improvise pas !