Par Hugo G. Lapierre, Université du Québec à Montréal (UQAM) et Patrick Charland, Université du Québec à Montréal (UQAM)
Les récents progrès en intelligence artificielle ont été ahurissants. En seulement quelques semaines, nous avons assisté à des avancées majeures qui ont le potentiel d’impacter le marché du travail et de notre société dans son ensemble.
ChatGPT, qui a élargi l’accès à cette technologie, en est rendue à sa quatrième version, encore plus performante. La semaine dernière, un millier d’experts et entrepreneurs des TI, parmi lesquels Yoshua Bengio et Elon Musk, ont exigé une pause de six mois dans la recherche.
Dans ce contexte inusité, former les futurs citoyens et enseignants aux compétences numériques fondamentales apparaît nécessaire pour affronter les défis du XXIe siècle et contribuer activement à la construction d’un monde plus sûr et plus éthique.
Respectivement chercheur en didactique de la programmation et co-directeur de la Chaire Unesco de développement curriculaire, à l’UQAM, nous avons dans un article précédent discuté des trois arguments les plus souvent mentionnés par la littérature scientifique afin de justifier l’intégration de la programmation à l’école, tant au primaire qu’au secondaire. Il faut maintenant élargir cette éducation à l’ensemble de la société.
Savoir programmer pour mieux utiliser les modèles de langage
Dans le monde de l’IA, les modèles de langage tels que ChatGPT jouent un rôle crucial dans diverses applications, comme la génération de textes divers, la génération de code informatique, et l’analyse des données. Cependant, pour exploiter pleinement le potentiel de ces modèles, il est essentiel de maîtriser certaines compétences en programmation.
L’ingénierie des instructions est une nouvelle discipline qui consiste à concevoir et à structurer des instructions (souvent appelées « prompts », même en français) pour guider les modèles de langage afin de produire des résultats précis. Ces instructions peuvent être organisées selon différents gabarits en fonction des objectifs visés. Ces gabarits sont appelés « modèles d’instructions », et peuvent être comparés aux fonctions en programmation.
Les fonctions sont des blocs de code réutilisables qui effectuent une tâche spécifique. De la même manière, les modèles d’instructions sont des solutions réutilisables pour résoudre des problèmes courants lors de l’interaction avec les modèles de langage. La différence principale entre les deux ? Les fonctions sont écrites en langage informatique (comme Python ou C++), tandis que les modèles d’instruction sont rédigés en langage naturel (notamment en français ou en anglais). En d’autres termes, il s’agit d’une manière de donner des instructions à un logiciel avec des mots, plutôt qu’avec des lignes de code.
La connaissance des modèles d’instructions permet donc aux utilisateurs de structurer les instructions qui sont données au modèle de langage de façon à obtenir les résultats les plus précis et pertinents possibles. Un exemple est le « modèle d’interaction inversée », soit une approche où le modèle de langage prend l’initiative dans la conversation, en posant des questions pour obtenir les informations nécessaires à l’accomplissement d’une tâche précise. Cette approche permet de rendre les interactions plus ciblées et efficaces, car le modèle ne posera que les questions pertinentes pour atteindre l’objectif défini.
Un exemple, le modèle d’interaction inversée
Imaginons que vous souhaitez planifier un voyage et que vous voulez que ChatGPT vous aide à organiser votre itinéraire en vous posant des questions pertinentes. Un exemple de modèle d’interaction inversée pourrait être :
À partir de maintenant, je souhaite que tu me poses des questions pour m’aider à planifier mon voyage en Italie. Continue à me poser des questions jusqu’à ce que tu aies suffisamment d’informations pour me proposer un itinéraire détaillé de 10 jours.
Dans cet exemple, ChatGPT vous posera des questions pour recueillir des informations sur vos préférences de voyage, telles que les villes que vous souhaitez visiter, votre budget, vos centres d’intérêt et vos contraintes de temps, tout en considérant les attractions principales qui se trouvent en Italie. En fonction de vos réponses, il pourra alors élaborer un itinéraire personnalisé qui répond à vos attentes et besoins.
ChatGPT et les requêtes malicieuses
Bien qu’impressionnants et actuellement très populaires, les modèles de langage demeurent tout de même vulnérables aux attaques informatiques (« hacking »). À titre d’exemple, des pirates informatiques ont utilisé une technique appelée « injection d’instructions » (prompt injection) pour manipuler les résultats de GPT-3. Cette manipulation permet à un utilisateur de contourner les contrôles de sécurité et les restrictions imposées par les concepteurs du modèle pour accéder à des fonctionnalités non autorisées ou pour manipuler le modèle de manière malveillante.
L’injection d’instructions consiste ainsi à entrer des instructions dans le modèle, ce qui l’amène à générer des résultats biaisés ou trompeurs. Le modèle d’instructions malveillant le plus populaire est D.A.N, qui signifie « Do Anything Now ». Il permet à l’utilisateur d’obtenir des informations non vérifiées, sans censure, et même des opinions de la part de ChatGPT libres de toute limitation imposée par OpenAI.
Ces attaques sur les modèles de langage sont inquiétantes, car ils compromettent la sécurité, la confidentialité et l’intégrité des modèles, tout en posant des risques pour la stabilité et les performances des systèmes associés. De plus, ils peuvent décourager l’innovation en faisant craindre aux développeurs que leurs modèles soient compromis par des acteurs malveillants.
La programmation pour tous, une solution pour favoriser la cybersécurité
Pour prévenir de telles attaques, il est important de mettre en place des mesures de sécurité solides et de surveiller et de les mettre à jour au fur et à mesure que de nouvelles menaces apparaissent. Il est également crucial de disposer d’un bassin de personnes talentueuses et familiarisées avec la programmation, qui pourront développer et mettre en œuvre ces mesures.
Il importe donc d’initier les individus à la programmation, afin qu’ils deviennent davantage conscients des défis de sécurité liés à l’utilisation des modèles de langage et des technologies d’IA. En comprenant les mécanismes de fonctionnement de ces technologies et leurs vulnérabilités potentielles, ils seront alors possiblement plus enclins à adopter des pratiques de sécurité et à utiliser les modèles de langage de manière responsable.
L’éducation à la programmation peut également contribuer à créer une communauté d’utilisateurs et de développeurs responsables (« white hat users »), qui travaillent ensemble pour renforcer la sécurité des modèles de langage et rendre plus transparentes les limites éthiques imposées par les développeurs.
Initier la population à la programmation encourage ainsi l’innovation et le développement de solutions de sécurité plus robustes.
Au-delà du simple codage
L’idée d’initier la population aux concepts de base de l’informatique ne date pas d’hier et dépasse l’apprentissage du codage. Peter Denning, un pionnier dans le domaine, a publié en 1989 un article intitulé « Computing as a Discipline », qui mettait déjà de l’avant l’importance des compétences associées à l’apprentissage de la programmation pour tous les citoyens. Selon lui, cet apprentissage doit viser le traitement logique et systématique de l’information et des données pour résoudre des problèmes, plutôt que de mettre l’accent sur le codage.
Le codage consiste à savoir écrire des lignes de code pour donner des instructions à un ordinateur, alors que la programmation englobe une approche plus large qui inclut la conception, l’analyse, la résolution de problèmes et la compréhension des concepts informatiques fondamentaux. Denning insistait dès 1989 sur le fait que la maîtrise de ces principes fondamentaux, et non simplement du codage, permet de mieux comprendre et de s’adapter aux évolutions technologiques rapides qui façonnent notre monde. Ce discours est toujours d’actualité, comme le montrent les récentes avancées dans les 4 dernières semaines :
- Bard, le nouveau modèle développé par Google ;
- L’annonce par Microsoft que [Copilot], un outil d’IA basé sur GPT-4,serait intégré à leur suite Office (Excel, Word et PowerPoint) ;
- L’ajout de plug-ins à GPT-4 qui permettra le développement de fonctions supplémentaires directement accessible via la plate-forme de ChatGPT ; et
- La nouvelle version de MidJourney V5 qui permet de générer du contenu visuel photoréaliste à l’aide d’instructions textuelles. C’est d’ailleurs cette nouvelle version de MidJourney qui a mené à la photo virale du pape la semaine dernière, qui est présentée ci-dessous.
L’intégration de la programmation et de l’IA dans le système éducatif pourrait également contribuer à réduire les inégalités sociales et à éviter la création de différentes « catégories » de citoyens : ceux qui ignorent et n’utilisent pas les outils d’IA, ceux qui les connaissent et les utilisent, ceux qui sont en mesure de payer pour utiliser les meilleurs outils d’IA et enfin, ceux qui maîtrisent parfaitement ces outils et en tirent le maximum de bénéfices.
Une pause, mais pas pour tous : l’occasion de repenser le cursus
La pause dans la recherche demandée par les experts la semaine dernière pourrait être mise à profit par le système éducatif pour repenser la manière dont il aborde les technologies et la programmation dans les programmes d’études.
En effet, les technologies occupent actuellement une place transversale dans les cursus, ce qui pourrait ne pas être suffisant pour préparer les élèves aux défis du futur. Il ne s’agit pas nécessairement d’intégrer rapidement la programmation et l’IA dans tous les cursus, mais plutôt de prendre le temps d’évaluer leur pertinence et de déterminer la meilleure manière de les intégrer aux programmes d’études. Les enseignants, en particulier, pourraient bénéficier de cette pause pour se familiariser avec ces concepts et réfléchir aux meilleures façons de les enseigner à leurs élèves.
Leur formation continue est une priorité. Les instances éducatives doivent les soutenir en offrant des ressources et des formations adaptées.
Par Hugo G. Lapierre, Chargé de cours en technologie éducative; Doctorant en éducation (didactique de la programmation), Université du Québec à Montréal (UQAM) et Patrick Charland, Professeur titulaire / Full professor, Département de didactique, Université du Québec à Montréal (UQAM)
Cet article est republié à partir de The Conversation sous licence Creative Commons. Lire l’article original.