Utiliser ChatGPT pour analyser vos données de test

Ari Mahpour
|  Créé: Octobre 18, 2023  |  Mise à jour: Juillet 1, 2024
Utiliser ChatGPT pour analyser vos données de test

Dans Utiliser ChatGPT pour les tests automatisés, nous avons parlé des moyens faciles d'obtenir de l'IA générative pour écrire des scripts de test et des bibliothèques logicielles, rendant simple la communication avec votre équipement de test. Maintenant que vous êtes familiarisé avec l'automatisation de vos scripts de test, il est temps d'automatiser également le traitement de vos données de test. Utiliser ChatGPT pour l'analyse de données peut être simple et rationalisé. Dans cet article, nous allons voir comment faire exactement cela avec des données de test récentes issues de mes derniers tests de batterie.

Contexte

J'ai récemment effectué des tests pour profiler une batterie intelligente et je voulais voir à quel point certains des registres de rapport
étaient précis, spécifiquement :

  1. Température
  2. Tension
  3. Courant

 

Les données de sortie que j'ai récupérées de mon script de test étaient au format CSV, donc c'était un jeu d'enfant de les importer dans Microsoft Excel. Naturellement, comme la plupart des ingénieurs, j'aurais pu utiliser des feuilles de calcul avec des tableaux sophistiqués, des graphiques et un peu de magie de formules Excel pour trouver les données que je recherchais. J'ai décidé, cependant, ce que je voulais vraiment, c'était un assistant à qui je pourrais poser une série de questions et obtenir les données que je recherchais.

Avec l'IA et son Modèle de Langage Naturel, je peux poser des questions en anglais simple sur mes données et obtenir les résultats que je recherche. Ce qui est encore mieux, c'est l'ajout récent du plugin d'Analyse Avancée des Données (anciennement connu sous le nom de "Code Interpreter") sur GPT-4. Il ne me montre pas seulement le code Python qu'il écrit en traitant mes instructions, mais il peut aussi me graphiquer les données en utilisant la bibliothèque Matplotlib en Python. Notez que je fais référence à une version payante de ChatGPT mais vous pouvez toujours obtenir la plupart de ce que vous recherchez dans la version gratuite de ChatGPT (ou d'autres systèmes d'IA générative).

Tester les eaux

Avant de commencer, je voulais avoir une idée de ce que mon IA pouvait et ne pouvait pas faire pour moi. J'ai téléchargé mes données de test CSV sur ChatGPT et posé des questions simples sur les données telles que "Quelle est la température moyenne rapportée par la batterie ?" J'ai découvert très rapidement que l'ensemble de données que j'avais donné était trop grand. J'avais deux choix : réduire mes données ou lui demander de me fournir des commandes à exécuter localement contre mes données. J'ai décidé de faire les deux. Avec le plugin d'Analyse Avancée des Données, il vous fournira le morceau de code (en Python) qu'il exécute sur leurs machines. Une fois que j'ai fourni à GPT-4 mon fichier réduit, il a pu commencer à analyser les données.

Tout au long de cet article, vous verrez des extraits de code qu'il fournit qui peuvent également être exécutés localement contre l'ensemble de données plus large. Faire exécuter d'abord le code par GPT-4 est un composant clé qui manquait lorsqu'ils ont d'abord sorti ChatGPT. Je recevais fréquemment du code généré qui ne fonctionnait pas. Avec l'Analyse Avancée des Données, cela a cessé de se produire (puisqu'il tenterait de se corriger après un échec).

Lorsque vous chargez vos données pour la première fois, il est bon de tester un peu les eaux. Pour commencer, je donne à ChatGPT l'occasion d'analyser mes données et de me dire ce qu'il pense pouvoir faire :

 

Chargement initial des données

Figure 1 : Chargement initial des données

Après cela, il me donne des suggestions sur ce que je pense vouloir voir :

Suggestion d'analyses

Figure 2 : Suggestions d'analyses

La matrice de corrélation m'intrigue. Je me demande comment la température se corrèle à la tension et au courant d'alimentation, donc je vais demander :
Montre-moi la corrélation entre la température, la tension/courant d'alimentation et la tension/courant de charge.

Il me donne une belle répartition de la façon dont toutes les variables se corrèlent :

Matrice de corrélation

Figure 3 : Matrice de corrélation

Et si je demande à ChatGPT de la tracer pour moi, j'obtiens :

Tracé de la matrice de corrélation

Figure 4 : Tracé de la matrice de corrélation

Il me donne quelques corrélations supplémentaires, qui ne m'intéressent pas vraiment, mais cela ne me dérange pas de les ignorer.

Validation des données

Maintenant que j'ai effectué une exploration des données, j'aimerais passer à la validation de mes ensembles de données. Comme mentionné ci-dessus, je veux avoir une idée de la précision avec laquelle la batterie intelligente rapporte sa tension et son courant internes. La manière la plus simple de suivre cela est de lire la puissance d'alimentation et de charge de mes instruments et de la comparer à la puissance de la batterie rapportée. Évidemment, il y aura une certaine perte à travers les câbles et une baisse de l'efficacité dans le chargeur, donc nous allons juste regarder la corrélation entre les deux et déterminer notre précision à partir de là.

Bien que le modèle de langage naturel que ChatGPT fournit soit très bon, il n'est certainement pas parfait. Il y a certains concepts qu'il peut ne pas comprendre complètement. Si vous lui demandez d'effectuer une analyse statistique, il comprend généralement quoi faire mais il peut ne pas toujours comprendre les termes d'ingénierie simples. Pour tenir compte de cela, j'essaie de rendre mes demandes aussi simples que possible pour éviter les problèmes en aval. Je demande à ChatGPT de créer trois nouvelles colonnes :

Créons trois nouvelles colonnes de données :

  1. Puissance d'alimentation : Tension d'alimentation * Courant d'alimentation
  2. Puissance de charge : Tension de charge * Courant de charge
  3. Puissance de la batterie : abs(Tension * Courant)/1000/1000

Je dois également indiquer que lorsque ma puissance de charge = 0 (c'est-à-dire que la charge électronique DC ne prélève pas de courant sur le dispositif en test), cela signifie que nous sommes en train de charger. Lorsque la puissance de charge est non nulle, cela indique que nous déchargeons la batterie. Encore une fois, pour ne pas confondre GPT-4, je mentionne cela dans la demande comme suit :

Tracer la puissance de charge et la puissance de la batterie en fonction des horodatages mais seulement lorsque la puissance de charge est non nulle

Le résultat que j'obtiens est un joli graphique :

Graphique de la Charge et de la Batterie

Figure 5 : Graphique de la puissance de Charge et de la Batterie

Maintenant que les données semblent bonnes, je peux demander une corrélation et d'autres analyses :
Montrez-moi la corrélation entre les deux (uniquement dans un contexte non nul)

Calcul de Corrélation

Figure 6 : Calcul de corrélation

Et lorsque je demande d'autres statistiques :
Quelle est la différence moyenne, l'écart-type et la variance entre les deux (uniquement non nul) [en pourcentages]

Statistiques sur la puissance de Charge et de la Batterie

Figure 7 : Statistiques sur la puissance de Charge et de la Batterie

Cela m'aide à valider mon intuition que les deux sont étroitement liés puisqu'il n'y a qu'une petite perte de câble. Je réalise maintenant la même analyse sur la partie de charge :

Effectuons la même analyse mais en traçant la puissance d'alimentation et la puissance de la batterie en fonction des horodatages lorsque la puissance de charge est de 0

Graphique de la puissance d'Alimentation et de la Batterie

Figure 8 : Graphique de la puissance d'Alimentation et de la Batterie

Comme vous pouvez le voir, j'ai quelques problèmes. Cela est dû au fait que la télémétrie de la batterie intelligente n'est pas synchronisée avec mes instruments. Idéalement, je devrais passer en mode de charge (c'est-à-dire éteindre la charge électronique et allumer l'alimentation) puis attendre quelques secondes de plus avant de collecter la télémétrie. La raison en est qu'une série de commandes sont envoyées entre la batterie et le chargeur pour « négocier » la quantité de puissance à fournir à la batterie. Pensez à cela comme une version simplifiée de USB-C Power Delivery (si vous êtes familier avec le concept).

Malheureusement, je n'ai pas intégré cela dans mon script de collecte de télémétrie, donc je dois maintenant filtrer des anomalies. Pas de soucis, ChatGPT peut également le faire. Après quelques itérations, j'« entraîne » mon IA à « apprendre » ce qui est considéré comme un dysfonctionnement et ce qui ne l'est pas (par exemple, ce qui est considéré comme un outlier qui n'est pas pris en compte dans les fonctions d'analyse statistique standard) puis il applique cette connaissance :

Graphique filtré de l'alimentation et de la puissance de la batterie

Figure 9 : Graphique filtré de l'alimentation et de la puissance de la batterie

Lorsque je demande les mêmes statistiques, j'obtiens un détail complet :

Statistiques sur le graphique filtré de l'alimentation et de la puissance de la batterie Statistiques sur le graphique filtré de l'alimentation et de la puissance de la batterie1


Figure 10 : Statistiques sur le graphique filtré de l'alimentation et de la puissance de la batterie

C'est une bonne nouvelle. Je m'attends à une plus grande différence entre les valeurs car il y a des pertes à la fois dans le câble et dans le convertisseur de puissance.

Nettoyage des données

ChatGPT peut également agir comme un nettoyeur pour vos données en recherchant des anomalies. Dans le passé, j'ai observé quelques dysfonctionnements où le registre de température devenait un peu fou. Je demande à ChatGPT de « me dire si tu vois des dysfonctionnements dans mes données » et il répond avec :

Recherche d'anomalies sur les données de température

Figure 11 : Recherche d'anomalies sur les données de température

Cela peut vous donner un bon point de départ pour identifier les dysfonctionnements. Dans ce test particulier, il semble que le registre de température fonctionnait correctement. Considérez ce graphique de l'efficacité énergétique que je demande à ChatGPT de tracer pour moi :

Tracé de l'efficacité énergétique

Figure 12 : Tracé de l'efficacité énergétique

Il est assez évident qu'il y a des anomalies dans mes données. Il n'est certainement pas possible d'avoir une efficacité > 100 % et GPT-4 le sait également :

Avis de ChatGPT sur l'anomalie

Figure 13 : Avis de ChatGPT sur l'anomalie

Après mon enquête, j'ai découvert qu'il y avait effectivement un problème sur le bus de communication. Je demande à ChatGPT de filtrer tous les points de données où l'efficacité est > 100%. À ce stade, je peux demander un lien de téléchargement pour récupérer les données filtrées, les tracer à nouveau, ou les filtrer davantage.

Conclusion

Dans cet article, nous examinons comment utiliser ChatGPT pour analyser, filtrer et manipuler nos données de test issues de nos rapports de test. Nous avons commencé par télécharger les données de test et demander à ChatGPT ce qu'il pouvait faire, puis nous sommes passés à la validation et au nettoyage des données. Le point clé ici est que nous pouvons utiliser le langage naturel pour nous guider à travers notre ensemble de données. Dans les mois à venir, nous verrons d'autres acteurs dans l'espace de l'IA commencer à proposer des fonctionnalités comme celle-ci intégrées à leurs applications. En nous insérant dans cet écosystème de collaboration, nous utiliserons l'IA pour nous soutenir et nous guider à travers notre analyse plutôt que de nous remplacer. À mesure que l'IA deviendra plus omniprésente dans le traitement des données, nos capacités en tant qu'individus grandiront, débloquant d'innombrables possibilités et potentiels.

A propos de l'auteur

A propos de l'auteur

Ari est un ingénieur doté d'une solide expérience dans la conception, la fabrication, les tests et l'intégration de systèmes électriques, mécaniques et logiciels. Il aime collaborer avec des ingénieurs chargés de la conception, la vérification et les tests afin de favoriser les synergies.

Ressources associées

Documentation technique liée

Retournez à la Page d'Accueil
Thank you, you are now subscribed to updates.