Générez un jeu de données avec ChatGPT

Guide pour les développeurs qui cherchent à utiliser l’IA dans leur travail.

Thomas Dimnet
NX Academy

--

Un ordinateur devant un humain, pixel art
source : auteur

J’ai récemment créé deux cours sur TypeScript : un premier qui porte sur TypeScript et sa configuration, puis un deuxième ayant pour sujet les paradigmes de programmation avec TypeScript. Au cours de la préparation du premier cours, une situation intéressante s’est présentée. J’avais besoin de générer des données concernant des développeurs connus. Cette tâche aurait normalement nécessité environ 4 heures de travail. J’aurais dû faire des recherches sur Internet pour obtenir des informations telles que le site web, la nationalité et les livres écrits par tel ou tel programmeur.

J’ai donc décidé de poser la question à ChatGPT. Cette expérience a été révélatrice. J’ai pu accomplir la même tâche en moins d’une heure. C’est ce qui m’a donné l’envie d’écrire cet article. Mon objectif est de montrer comment vous pouvez tirer parti de ChatGPT au quotidien. Vous verrez ici la génération de données à partir d’un modèle de données en TypeScript. Quel que soit votre niveau de confort avec l’IA et le machine learning, cet article vise à vous aider à explorer et à comprendre ces technologies.

L’IA est petit à petit en train de se glisser dans tous les coins de notre vie professionnelle. Bien utilisée, elle peut nous faire gagner du temps et rendre notre travail plus facile. Cela dit, il y a aussi quelques écueils à éviter et des aspects un peu inquiétants. Je reviendrais dessus, notamment à la fin de cet article. Commençons par nous intéresser à ChatGPT et l’IA.

ChatGPT dans le quotidien du développeur : aperçu et utilités.

Une développeuse en pixel art
source : auteur

Si vous travaillez dans les nouvelles technologies, vous avez forcément entendu parler de ChatGPT. Cette intelligence artificielle, développée par la société OpenAI, a fait beaucoup parler d’elle depuis la fin de l’année 2022. Elle est basée sur un modèle de traitement du langage. On appelle cela un Learning Language Model en anglais. Le LLM est une branche du Machine Learning. Pour faire simple, cette technologie utilise des modèles de machine learning pour comprendre et générer du texte. Ces modèles sont dit “entrainés”. Autrement dit, ils se sont formés aux questions et aux réponses avant d’être utilisable et utilisé. Ils ont déjà traversé un processus d’apprentissage.

Pour une personne qui ne connaît pas forcément le machine learning et les systèmes d’apprentissage, il y a de quoi être perdu. Toutefois, je prends le partie de ne pas vous donner trop d’informations. D’une part, parce que ce serait très long et qu’il me faudrait plus qu’un article. D’autre part, parce que vous passeriez à côté de l’essentiel. Cela dit, si le sujet vous intéresse, j’ai d’autres articles et peut-être même quelques cours qui vont bientôt arriver. Ils se concentreront sur le développement assisté par Intelligence Artificielle. En attendant, vous pouvez regarder cet excellent tuto sur les réseaux neuronaux. Il vous permettra de découvrir comment mettre en place un apprentissage supervisé ☺️.

ChatGPT peut être utilisé pour de très nombreuses tâches. Il peut générer et vérifier du code, créer une charte graphique pour un site web et vous aider dans la rédaction d’un texte. J’ai tendance à considérer cet outil comme mon “buddy”. Quand je code quelque chose ou que j’écris un cours et que j’ai besoin d’un deuxième avis, je lui demande son opinion. Cela dit, il est loin d’être parfait, ce qui implique de vérifier ce qui a été généré, notamment côté code. Il faut aussi prendre le temps de retravailler ses réponses. On va maintenant passer au tuto. Cela va me permettre de vous montrer des exemples de comment bien travailler avec lui.

ChatGPT en action : Un guide pas à pas pour la génération de données

Quelqu’un listant des instructions, pixel art
source : auteur

Quand on travaille avec ChatGPT, il est souvent recommandé de lui énoncer clairement ce qu’on veut faire. C’est certainement l’un des aspects que je préfère. Vous allez devoir être capable de lui expliquer votre problème. Une fois que vous lui avez donné un objectif, vous devez définir avec lui une méthode de travail à suivre. C’est exactement comme si vous travailliez avec un nouveau collègue. Vous demandez ce dont il a besoin pour effectuer sa mission.

Dans mon cas, je lui demande :

J’aimerais que tu me génères un jeu de données à partir d’un modèle. Est-ce que tu peux me donner la marche à suivre ? Tu peux me faire ça sous forme de liste ?

Voici la réponse de ChatGPT.

Une capture d’écran de la réponse de ChatGPT à ma question
ChatGPT me dit comment je dois travailler avec lui.

Pour votre information, quand j’ai testé cette fonctionnalité pour la première fois, je n’ai pas demandé à ChatGPT comment travailler avec lui. Cela dit, je m’aperçois que j’ai suivi à peu près ces étapes sans le savoir. Je suis un grand adepte du modèle itératif. Autrement dit, je vais découper mon problème en de plus petits problèmes. Chaque petit problème repose sur une hypothèse que je valide (ou non). Ça me permet souvent de travailler plus vite et mieux.

Si on revient à ce que ChatGPT nous dit, on peut voir que la première étape est de définir un modèle de données. On va donc commencer par créer un `type` ou une `interface` pour mon modèle. Nous allons commencer par un modèle simple.

Je vais copier/coller ce bout de code TypeScript en lui précisant ce que je veux.

Voilà mon modèle de données :
type Engineer = {
age?: number;
firstName: string;
id: number;
lastName: string;
nickName?: string;
}

Est-ce que tu peux me générer des données pour trois développeurs ? Tu peux mettre le tout dans un tableau du type `Engineer[]`.

Voilà le résultat de ChatGPT

Dans mon cours, je souhaitais avoir des données de développeurs et développeuses connues. Je vais donc vérifier s’il en connaît. Je regarderai ensuite pour compléter mon modèle de données.

Peux-tu me citer 4 développeurs connus ?

Ok, c’est bien mais ce n’est pas totalement les développeurs que j’avais en tête. J’avais plutôt en tête Dan Abramov, Kenc C. Dodds, etc. Je vais donc lui préciser ma pensée.

J’avais plutôt en tête des développeurs comme Dan Abramov. Ça te parle ?

Voilà qui correspond plus à mes attentes.

Revenons maintenant à mon modèle de données. Je vais demander à ChatGPT de générer à nouveau le tableau mais avec les développeurs ci-dessus.

Peux-tu me générer à nouveau le tableau `Engineer[]` mais avec les données des quatre développeurs ci-dessus ?

Et voilà la réponse de ChatGPT

Sachez qu’il m’informe qu’il a utilisé les noms d’utilisation sur Twitter ou GitHub pour le surnom. Il n’a pas complété le champ `age` pour des raisons de confidentialité. C’est une nouveauté. Quand je lui avais initialement demandé ça il y a quelques semaines, il m’avait fourni beaucoup d’informations. Des informations qui étaient à la limite de la légalité. On parle ici d’âge, de genre, de nationalité, d’opinions, etc. Je vais revenir sur ces aspects d’ici la fin de cet article.

En tout cas, vous voici face à une utilisation assez agréable de l’IA. Ce qui me rend assez excité, c’est que je sens que j’ai uniquement gratté la surface. Notez ici que j’ai eu besoin de quelques compétences en programmation. Je ne parle pas ici uniquement des compétences en TypeScript mais aussi de l’esprit analytique du programmeur. En tout cas, on est vraiment face à une technologie qui va nous faire surtout gagner du temps 🙂.

Il est maintenant temps de s’intéresser aux limites et inquiétudes liées à ChatGPT.

Les limites et les inquiétudes liées à ChatGPT et à l’IA

Quelqu’un d’inquiet en pixel art
source : auteur

Mon premier point est lié aux données au sujet des développeurs. J’ai été assez rapidement capable de trouver des informations sur eux. J’ai pu avoir leurs prénoms, noms et surnoms. Quand je m’en suis servi pour la première fois, j’ai été capable d’avoir d’autres informations très facilement. Autrement dit, ces informations sont déjà présentes sur Internet et les IA sont à même de les “scrapper” et de les analyser. C’est quelque chose d’assez effrayant de mon point de vue. Imaginez des applications militaires ou de surveillance avec ce genre d’outils. On parle parfois de “big brother”. Pour le coup, avec les IA et les modèles d’entrainements, on n’est pas très loin de ça.

Mon deuxième point concerne les biais de ces IA. Les intelligences artificielles ne sont pas objectives. Elles dépendent des données qui leur sont fournies via les modèles d’apprentissage. Autrement dit, une IA alimentée par des données biaisées verra son modèle lui aussi biaisé. Par exemple, si un ensemble de données contient majoritairement des informations sur un certain groupe de personnes, l’IA peut apprendre à favoriser ce groupe dans ses prédictions ou ses décisions. De plus, les biais peuvent se manifester de différentes manières et peuvent renforcer des stéréotypes.

Parlons maintenant de la créativité 🙂. Les IA sont connues pour leur manque de créativité. Leurs modèles sont essentiellement des systèmes d’apprentissage qui reproduisent ce qu’ils ont vu pendant leur entraînement. Ils peuvent générer du contenu qui semble cohérent et grammaticalement correct, mais ils ne sont pas capables de créer de nouvelles idées ou de penser de manière originale. Par exemple, je peux demander à une IA de me générer du pixel art. Cela dit, ce sera à moi de lui donner des consignes précises sur ce qu’elle doit générer. C’est certainement ce qui me plait le plus avec les IA. C’est vous qui restez “aux commandes”. Vous donnez des instructions et l’IA les exécute, d’où le besoin d’avoir des connaissances techniques. Pour moi, il est clair que les IA ne vont pas remplacer les ingénieurs ou les designers.

Un autre aspect critique de l’IA est sa consommation d’énergie. L’entraînement des modèles d’IA, en particulier les plus grands, nécessite une grande puissance de calcul. Autrement dit, ça demande des ordinateurs particulièrement performants. Cela a des implications environnementales non négligeables, notamment en termes d’émissions de gaz à effet de serre. Il y a donc un défi à relever pour développer des techniques d’IA plus écoénergétiques. Mais bon comme me le disait très justement un collègue, est-ce que c’est plus écolo d’utiliser l’IA pour gagner du temps ou regarder Netflix dans le métro ?

Quelqu’un buvant un café, pixel art
Source : auteur

L’IA, et plus particulièrement ChatGPT, est clairement en train de changer notre façon de travailler. Dans ce tuto, elle m’a permis de gagner un temps précieux. J’ai pu me concentrer sur l’essentiel et automatiser le reste. Quand on travaille avec les IA, la clé repose sur une approche itérative. Le travail avec des outils d’IA comme ChatGPT commence par des étapes simples, comme la définition du modèle de données. Ensuite, vous devez ajuster et optimiser jusqu’à ce que les données générées correspondent à vos besoins spécifiques. Tout cela n’est pas seulement plus efficace, c’est aussi bluffant et amusant.

Je vous invite donc à faire des expérimentations. On parle de plus en plus de Prompt Engineer, un métier de développeur fortement lié aux IA. Prenez le temps d’essayer des outils tels que ChatGPT. Vous pourriez être surpris de voir comment ils peuvent transformer votre manière de travailler. Certes, il y a des défis à relever et des précautions à prendre. Il ne tient qu’à nous de voir comment nous allons nous en servir dans nos applications.

Si vous cherchez à approfondir vos compétences en développement et à vous immerger dans des sujets plus avancés, je vous invite chaleureusement à découvrir NX Academy. Vous y trouverez des cours conçus spécifiquement pour les développeurs traitant de programmation, DevOps et IA.

--

--