Bienvenue à CSI 4506!

CSI 4506 - Automne 2025

Marcel Turcotte

Version: sept. 4, 2025 15h20

Préambule

Message du jour (MOTD)

  • 2025-08 – Directrice de l’IA, Cohere

  • 2023-03 – 2025-05 VP Recherche IA, Meta

  • 2017-05 – 2023-02 Directrice, Facebook Artificial Intelligence Research (FAIR), Montréal

  • 2004-08 – Professeure, Université McGill

Cohere raises US$500-million, hires former Meta AI expert Joelle Pineau, Joe Castaldo, The Globe and Mail, 2025-08-14.

Objectifs d’apprentissage

  • Clarifier la proposition
  • Discuter le plan de cours
  • Articuler les attentes
  • Explorer les différentes définitions de “l’intelligence artificielle”

Proposition

Aperçu du cours

Description officielle

Concepts et méthodes de base de l’intelligence artificielle. Connaissances et représentation des connaissances. Recherche, recherche stratégique, jeux de stratégie. Raisonnement et déduction. Incertitude en intelligence artificielle. Introduction au traitement du langage naturel. Éléments de base de la planification. Éléments de base de l’apprentissage automatique.

Buts: Apprentissage profond tôt

(Legg et Hutter 2007, traduction GPT-4o)

Pour la communauté plus large de l’informatique et des technologies de l’information, l’IA est généralement identifiée par les techniques qui en ont émergé, lesquelles, à différentes époques, peuvent inclure la démonstration de théorèmes, la recherche heuristique, les jeux, les systèmes experts, les réseaux neuronaux, les réseaux bayésiens, le fouille de données, les agents, et récemment, l’apprentissage profond.

  • L’apprentissage profond est tellement dominant que j’ai choisi de structurer tout autour de celui-ci.

Qu’est-ce que cela signifie?

La bonne vieille IA de style classique (GOFAI) reposait sur l’ingénierie des connaissances faite à la main, mais elle a été largement remplacée par l’apprentissage automatique en raison de la disponibilité accrue des données, des ressources informatiques et des nouveaux algorithmes.

L’apprentissage profond a eu un impact significatif sur divers domaines, notamment le traitement du langage naturel, la robotique et la vision par ordinateur.

Cependant, l’apprentissage profond présente actuellement des limites, notamment en matière de raisonnement, où l’IA symbolique excelle et pourrait potentiellement offrir des perspectives précieuses.

Mais aussi

  • Dans A Brief History of Intelligence (Bennett 2023), Max Bennett discute des étapes importantes de l’évolution de l’intelligence humaine et établit des parallèles avec les progrès de l’intelligence artificielle (IA).
  • L’apprentissage lui-même représente l’une des premières étapes et la plus largement comprise dans l’évolution de l’intelligence.

Buts: Appliqué

De nombreux développeurs de logiciels craignent que les grands modèles de langage ne rendent les programmeurs humains obsolètes. Nous doutons que l’IA remplace les programmeurs, mais nous croyons que les programmeurs qui utilisent l’IA remplaceront ceux qui ne le font pas.

(traduction GPT-4o)

  • Chaque fois que possible, les concepts seront introduits avec du code.

Buts: Rigueur académique

En recherchant la clarté et l’accessibilité, ce cours vise à trouver un équilibre entre le discours informel et la précision nécessaire à la rigueur académique. L’objectif est que les apprenants non seulement saisissent, mais aussi appliquent, évaluent et analysent de manière critique les concepts discutés tout au long du cours.

Plan de cours

Informations sur le cours

Sites web

Horaire

Évaluation

Catégorie Pourcentage
Travaux 40% (4 x 10%)
Quiz 20%
Examen final 40%

Matériel de lecture

Je m’appuierai sur les deux manuels listés ci-dessous, ainsi que sur des publications scientifiques pertinentes. Toutes les sources d’information seront citées. Pour la plupart des gens, je m’attends à ce que mes notes de cours soient suffisantes.

La librairie du campus a commandé un petit nombre d’exemplaires de ces livres, pour ceux qui sont intéressés.

Nous ne suivons pas strictement le cadre proposé par (Russell et Norvig 2020) et (Poole et Mackworth 2023). En particulier, bien que ces manuels utilisent le concept d’agent intelligent comme thème central, des domaines tels que l’apprentissage automatique (ML), le traitement automatique du langage naturel (NLP) et la vision fonctionnent comme des communautés distinctes. Dans ces communautés, les problèmes ne sont généralement pas formulés en termes d’agents.

Testeurs bêta

Ce sera ma deuxième itération de ce contenu. Votre aide pour identifier ce qui fonctionne et ce qui ne fonctionne pas sera très appréciée.

Avertissements

CSI 4506 est un cours d’introduction à l’intelligence artificielle, offrant un aperçu bref de divers sujets dans ce domaine vaste. Chaque sujet couvert pourrait être exploré beaucoup plus en profondeur à travers un ou plusieurs cours de niveau supérieur. L’objectif principal de CSI 4506 est de fournir aux étudiants une compréhension de base des principaux domaines qui constituent l’intelligence artificielle.

Les chevauchements avec d’autres cours sont inévitables, mais je ferai de mon mieux pour les minimiser.

Ce cours n’est pas un cours sur l’impact de l’IA sur la société, y compris les questions d’éthique, d’équité, de confiance et de sécurité.

Préparer le terrain : IA, apprentissage profond et vues divergentes sur l’intelligence.

AI, ML, DL

Écoles de pensée

  • IA symbolique (essentiellement basée sur la logique)
  • Connexionnisme (principalement des réseaux de neurones)

Tours de Hanoï

(pour information uniquement)

IA symbolique (Planification)

Les Tours de Hanoï est un jeu avec trois piquets et plusieurs disques de tailles différentes. Il commence avec tous les disques empilés par ordre décroissant sur un piquet, et l’objectif est de déplacer la pile entière sur un autre piquet, en respectant ces règles.

  1. Un seul disque peut être déplacé à la fois.
  2. Un disque ne peut être placé que sur un disque plus grand ou sur un piquet vide.
Action Move(X,Y,Z):
    Preconditions = {Clear(X), On(X,Y), Clear(Z), Smaller(X,Z)};
    Effects = {-On(X,Y), Clear(Y), On(X,Z), -Clear(Z)};

D1, D2, D3, P1, P2, P3 sont des symboles, où D1, D2, et D3 sont des disques, et P1, P2, et P3 sont des piquets.

On(D1, D2), On(D2, D3), On(D3, P1),
clear(D1), clear(P2), clear(P3),
Smaller(D1, D2), Smaller(D1, D3), Smaller(D2, D3),
Smaller(D1, P1), Smaller(D1, P2), Smaller(D1, P3),
Smaller(D2, P1), Smaller(D2, P2), Smaller(D2, P3),
Smaller(D3, P1), Smaller(D3, P2), Smaller(D3, P3).
On(D1, D2), On(D2, D3), On(D3, P3).
Move(D1, P1, P3)
Move(D2, P1, P2)
Move(D1, P3, P2)
Move(D3, P1, P3)
Move(D1, P2, P1)
Move(D2, P2, P3)
Move(D1, P1, P3)

IA Symbolique (Parenté)

Étant donné quelques faits concernant qui est parent de qui (symboles) et une poignée de règles en forme de Horn, déduisez de nouvelles relations (par exemple, ancêtre, frères et sœurs, grand-parent) par déduction logique.

father(F,C) :- male(F), parent(F,C).

mother(M,C) :- female(M), parent(M,C).

sibling(X,Y) :- parent(P,X), parent(P,Y), X \= Y.

grandparent(G,C) :- parent(G,P), parent(P,C).

ancestor(A,D) :- parent(A,D).
ancestor(A,D) :- parent(A,X), ancestor(X,D).
% faits/symboles

male(alan). female(brenda).
male(chris). female(dina).
male(eli). female(fiona).

parent(alan, chris).
parent(brenda, chris).
parent(chris, dina).
parent(dina, eli).
parent(dina, fiona).
?- grandparent(G, dina).
% Attendu : G = alan ; G = brenda.

?- ancestor(A, fiona).
% Attendu : A = dina ; A = alan ; A = brenda ; A = chris ;

?- sibling(eli, fiona).
% Attendu : vrai.

IA Symbolique (Prérequis)

Étant donné les prérequis des cours et l’ensemble complété d’un étudiant, déduire quels cours ils peuvent suivre ensuite. Cela montre le raisonnement par contraintes symboliques.

all_prereqs_met(Etudiant, Cours) :-
    \+ (prereq(Cours, P), \+ completed(Etudiant, P)).
    
can_take(Étudiant, Cours) :-
    all_prereqs_met(Etudiant, Cours),
    \+ completed(Etudiant, Cours).
% --- Graphe des cours (faits, symboles) ---

prereq(csi2120, csi2110).
prereq(csi2110, iti1121).
prereq(csi2110, mat1338).
prereq(iti1121, iti1120).
% --- Dossier étudiant (faits, symboles) ---

completed(alex, iti1121).
completed(alex, iti1120).
completed(alex, mat1338).
?- can_take(alex, csi2110).
% true

?- can_take(alex, csi2120).
% false

?- can_take(alex, iti1121).
% false

?- all_prereqs_met(alex, csi2110).
% true

IA symbolique

  • “Leur principe fondateur était que la connaissance peut être représentée par un ensemble de règles, et les programmes informatiques peuvent utiliser la logique pour manipuler cette connaissance.” (Strickland 2021)
  • “Les chercheurs développant l’IA symbolique ont entrepris d’enseigner explicitement aux ordinateurs le monde.” (Strickland 2021)
  • “(\(\ldots\)) un système de symboles a les moyens nécessaires et suffisants pour une action intelligente générale.”
    (Newell et Simon 1976) Quels étaient les principaux défis associés à l’IA symbolique ?

IA symbolique

  • Quels étaient les principaux défis associés à l’IA symbolique ?

Connexionniste

Inspirés par la biologie, les réseaux de neurones artificiels (ANNs) sont des modèles computationnels conçus pour imiter le réseau de neurones du cerveau humain. Ils sont constitués de couches de nœuds interconnectés (neurones), chaque connexion ayant un poids associé.

Les ANNs traitent les données d’entrée à travers ces connexions pondérées, et l’apprentissage se produit en ajustant les poids en fonction des erreurs dans les données d’entraînement.

Connexionniste

Définir l’IA

Sondage

Perceptions et attitudes face à l’intelligence artificielle

Pourquoi définir l’IA ?

  • Améliorer la clarté et la communication : Établir une compréhension mutuelle des critères d’évaluation, des tests de référence et des jalons.

  • Aborder les implications éthiques, sociales et juridiques : Permettre aux décideurs de développer des réglementations minimisant les risques liés à l’IA.

Une définition opérationnelle

(Wang 2019) (traduction GPT-4o)

Pour la grande communauté de l’informatique et de la technologie de l’information, l’IA est généralement identifiée par les techniques issues de celle-ci, qui à différentes périodes peuvent inclure la démonstration de théorèmes, la recherche heuristique, les jeux, les systèmes experts, les réseaux de neurones, les réseaux bayésiens, l’exploration de données, les agents, et récemment, l’apprentissage profond.

Contexte

  • Engouement («hype») significatif.

  • Plusieurs entreprises de premier plan, dont DeepMind et OpenAI, se concentrent principalement sur le développement de l’intelligence artificielle générale (IAG).

  • Si l’IAG devenait une réalité, ses implications pourraient profondément impacter divers aspects de nos vies, y compris l’éducation, l’emploi, les structures économiques et les avancées scientifiques.

Question

User: The man and the goat want to enjoy a picnic near a river, but there’s a wolf. What to do with the zucchini?

ChatGPT 5: You’ve got the classic river‐crossing (wolf–goat–cabbage ⇒ here, zucchini).

Boat carries you + one item. Unsafe pairings: wolf with goat; goat with zucchini.

Minimal plan:

  1. Take goat over.
  2. Return alone.
  3. Take wolf over.
  4. Bring goat back.
  5. Take zucchini over.
  6. Return alone.
  7. Take goat over.

Conclusion: keep the zucchini never alone with the goat; ferry it on step 5.

Source: Andriy Burkov, publié sur LinkedIn il y a 3 semaines.

Question

User: Surgeon but child, hopsital, it have a no, why it so?

ChatGPT 5: You’re pointing to the classic riddle:

Car crash → injured child → surgeon says “I can’t operate—this is my child.”

Resolution: the surgeon is the child’s mother (or another parent in a non-heteronormative family).

The “paradox” arises from implicit gender assumptions about surgeons.

Source: Andriy Burkov, publié sur LinkedIn il y a 3 semaines.

La nature complexe de l’intelligence

  • Artificielle concerne la création d’entités ou de phénomènes qui imitent les processus naturels en utilisant la technologie ou des matériaux synthétiques, une définition largement reconnue et acceptée.

  • Par conséquent, définir l’intelligence artificielle nécessite fondamentalement de clarifier d’abord ce que nous entendons par intelligence. Étonnamment, “malgré une longue histoire de recherche et de débat, il n’y a toujours pas de définition standard de l’intelligence.” (Legg et Hutter 2007, traduction GPT4o)

Comment définissez-vous l’intelligence?

  • Quelles sont les caractéristiques que vous associez avec l’intelligence?

  • Intelligence is a very general mental capability that, among other things, involves the ability to reason, plan, solve problems, think abstractly, comprehend complex ideas, learn quickly and learn from experience.”

    • Publié à l’origine dans le Wall Street Journal en 1994, le contenu a été réimprimé en 1997: (Gottfredson 1997)

Capacités essentielles

Personne ne sait où se situe la frontière entre un comportement non intelligent et un comportement intelligent, en fait, suggérer qu’il existe une frontière nette est probablement absurde. Mais les capacités essentielles pour l’intelligence sont certainement :

  1. répondre aux situations de manière très flexible;
  2. tirer parti des circonstances fortuites;
  3. donner un sens à des messages ambigus ou contradictoires;
  4. reconnaître l’importance relative des différents éléments d’une situation;
  5. trouver des similarités entre des situations malgré les différences qui peuvent les séparer;
  6. établir des distinctions entre les situations malgré les similarités qui peuvent les lier;
  7. synthétiser de nouveaux concepts en prenant des anciens concepts et en les assemblant de nouvelles façons;
  8. proposer des idées qui sont nouvelles.”

François Chollet, Créateur de Keras

François Chollet

L’intelligence réelle ne consiste pas à maîtriser une compétence individuelle, a-t-il soutenu, mais à appliquer ce qui a été appris à une nouvelle situation différente.

Selon lui, l’intelligence est la capacité à acquérir efficacement de nouvelles compétences que la formation n’a pas préparées, dans le but d’accomplir des tâches suffisamment différentes de celles qu’un système a vues auparavant.

Plus l’étendue des nouvelles compétences est large, plus l’ordinateur se rapproche de l’intelligence générale artificielle.

“Si vous pouvez rendre le processus d’apprentissage aussi efficace en termes d’information qu’un esprit humain, alors vous avez une IGA,” a déclaré Chollet.

Jusqu’à présent, les machines sont très en retard, environ 10 000 fois moins efficaces que les cerveaux humains. Par exemple, il a fallu des millions d’images pour apprendre aux ordinateurs à reconnaître des images de chats, alors que les humains apprennent à les identifier avec seulement une ou deux exemples.

Savage (2024) (traduction GPT-4o)

Penser, agir, humainement, rationnellement

Russell & Norvig considèrent deux axes.

Penser Agir
Humain penser humainement (simulation) agir humainement (test de Turing)
Rationalité penser rationnellement (logique) agir rationnellement (agent)

Rationalité

La rationalité implique l’évaluation des choix pour atteindre un objectif ou trouver la solution optimale à un problème. Simon (1972, p. 161) définit la rationalité comme “un style de comportement approprié à la réalisation des objectifs fixés, dans les limites imposées par les conditions et contraintes données.”

(traduction GPT-4o)

Étroite vs générale

Intelligence Artificielle Générale (AGI)

L’intelligence artificielle générale (AGI) se réfère à une forme d’intelligence artificielle (IA) qui égale ou dépasse la compétence humaine dans une large gamme de fonctions cognitives.

AlphaFold (1, 2, et 3)

  • Je le répète, il n’y a rien de mal à l’IA étroite.

  • «Two papers in this week’s issue dramatically expand our structural understanding of proteins. Researchers at DeepMind, Google’s London-based sister company, present the latest version of their AlphaFold neural network.»

    • Jumper et al. (2021)

Effet/paradoxe de l’IA

(\(\ldots\)) dès qu’un système informatique est construit pour résoudre un problème avec succès, le problème n’est plus “seulement solvable par l’esprit humain,” donc n’a plus besoin d’intelligence. Par conséquent, “l’IA est ce qui n’a pas encore été fait” (Hofstadter, 1979 ; Schank, 1991), ce qui est connu sous le nom de “l’effet IA(McCorduck 2004, traduction GPT-4o).

Impact

Économique

Les recherches de McKinsey estiment que l’IA générative pourrait ajouter à l’économie entre 2,6 billions et 4,4 billions de dollars par an tout en augmentant l’impact de toute l’intelligence artificielle de 15 à 40 pour cent.

En fait, il semble possible que dans les trois prochaines années, tout ce qui n’est pas connecté à l’IA sera considéré comme obsolète ou inefficace.

Sous-domaines de l’IA

  1. Apprentissage Automatique (Machine Learning): Détection de fraude par carte de crédit

  2. Apprentissage Profond (Deep Learning): Reconnaissance d’images et de visages

  3. Traitement Automatique du Langage Naturel (Natural Language Processing): Assistants virtuels comme Siri ou Alexa

  4. Vision par Ordinateur (Computer Vision): Véhicules autonomes

  5. Robotique (Robotics): Automatisation industrielle dans la fabrication

  6. Systèmes Experts (Expert Systems): Support au diagnostic médical

  7. Reconnaissance Vocale (Speech Recognition): Services de transcription vocale

  8. Planification et Prise de Décision (Planning and Decision Making): Optimisation de la chaîne d’approvisionnement

  9. Apprentissage par Renforcement (Reinforcement Learning): IA de jeu dans les jeux de stratégie complexes

  10. Représentation des Connaissances (Knowledge Representation): Technologies du web sémantique pour la recherche d’information

Notre dernière invention

L’expert en IA Kai-Fu Lee prédit que son impact sera “plus important que tout ce qui s’est passé dans l’histoire de l’humanité.”

Questions

  • Le concept d’intelligence peut-il être considéré indépendamment des entités qui l’expriment ? C’est le problème de l’incarnation (embodiment).

  • Une machine peut-elle manifester une intelligence de niveau humain ?

  • Est-il possible de dissocier les concepts suivants de celui de l’intelligence?

    • Agentivité (agency).
    • Sentience (sentience).
    • Conscience (consciousness).
    • Émotions.
    • Language.
    • Esprit (mind).
  • Est-ce qu’une IA peut souffrir ?

Approfondir la réflexion

Rouleau, N. & Levin, M. (2024). Discussions of machine versus living intelligence need more clarity. Nature Machine Intelligence, 6(12), 1424–1426.

Prologue

Résumé

  • Discuté le syllabus
  • Distinguer le concept d’intelligence artificielle du concept d’apprentissage automatique
  • Distinguer l’IA symbolique de l’IA connectionniste
  • Exploré les différentes définitions de “l’intelligence artificielle”

Prochain cours

  • Introduction à l’apprentissage automatique

Références

Bennett, Max S. 2023. A brief history of intelligence: evolution, AI, and the five breakthroughs that made our brains. First edition. New York: Mariner Books.
Gottfredson, Linda S. 1997. « Mainstream science on intelligence: An editorial with 52 signatories, history, and bibliography ». Intelligence 24 (1): 13‑23. https://doi.org/10.1016/s0160-2896(97)90011-8.
Jumper, John, Richard Evans, Alexander Pritzel, Tim Green, Michael Figurnov, Olaf Ronneberger, Kathryn Tunyasuvunakool, et al. 2021. « Highly accurate protein structure prediction with AlphaFold ». Nature, 1‑11. https://doi.org/10.1038/s41586-021-03819-2.
Legg, Shane, et Marcus Hutter. 2007. « A Collection of Definitions of Intelligence ». In Advances in Artificial General Intelligence: Concepts, Architectures and Algorithms:, 17‑24. NLD: IOS Press. https://doi.org/10.5555/1565455.1565458.
McCorduck, Pamela. 2004. Machines Who Think, A Personal Inquiry into the History and Prospects of Artificial Intelligence. Taylor & Francis Group, LLC. https://doi.org/10.1201/9780429258985.
Mohammed, Anne-Marie, Sandra Sookram, et George Saridakis. 2019. « Rationality ». In Encyclopedia of Law and Economics, édité par Alain Marciano et Giovanni Battista Ramello, 1766‑74. New York, NY: Springer New York. https://doi.org/10.1007/978-1-4614-7753-2_404.
Newell, Allen, et Herbert A. Simon. 1976. « Computer science as empirical inquiry: symbols and search ». Commun. ACM 19 (3): 113‑26. https://doi.org/10.1145/360018.360022.
Nilsson, Nils J. 2005. « Human-Level Artificial Intelligence? Be Serious! » AI Mag. 26 (4): 68‑75. https://doi.org/10.1609/AIMAG.V26I4.1850.
Poole, David L., et Alan K. Mackworth. 2023. Artificial Intelligence: Foundations of Computational Agents. 3ᵉ éd. Cambridge University Press.
Russell, Stuart, et Peter Norvig. 2020. Artificial Intelligence: A Modern Approach. 4ᵉ éd. Pearson. http://aima.cs.berkeley.edu/.
Savage, Neil. 2024. « Beyond Turing: Testing LLMs for Intelligence ». Commun. ACM, juin. https://doi.org/10.1145/3673427.
Strickland, Eliza. 2021. « The Turbulent Past and Uncertain Future of AI: Is there a way out of AI’s boom-and-bust cycle? » IEEE Spectrum 58 (10): 26‑31. https://doi.org/10.1109/MSPEC.2021.9563956.
Wang, Pei. 2019. « On Defining Artificial Intelligence ». Journal of Artificial General Intelligence 10 (2): 1‑37. https://doi.org/10.2478/jagi-2019-0002.

Annexe : Sur la définition de l’intelligence artificielle

Wang (2019)

Un agent et son interaction avec l’environnement sont spécifiés comme un tuple : \[ \langle P,S,A \rangle \]

  • \(P\) une séquence de signaux d’entrée, \(P = \langle p_0,\ldots,p_t \rangle\)
  • \(S\) une séquence d’états internes, \(S = \langle s_0,\ldots,s_t \rangle\)
  • \(A\) une séquence d’actions, \(A = \langle a_0,\ldots,a_t \rangle\)

Pour une séquence de moments, \(0,\ldots,t\).

Humain (H) vs Ordinateur (C)

L’IA est conçue comme des systèmes informatiques similaires à l’esprit humain dans un certain sens, bien qu’un ordinateur et un esprit humain ne puissent pas être identiques en tous aspects.

\[ \langle P^H,S^H,A^H \rangle \approx \langle P^C,S^C,A^C \rangle \]

Wang (2019) propose 5 perspectives: Structure-IA, Comportement-IA, Capacité-IA, Fonction-IA, et Principe-IA.

1. Structure-IA

(modélisation du cerveau, sciences cognitives)

J’appelle ce type de définition “Structure-IA,” car il nécessite qu’un système IA traverse des états isomorphes ou des changements de structure comme le fait le cerveau lorsqu’il reçoit des entrées similaires, ce qui produira des sorties similaires, donc les trois composants des deux sont par paires similaires les uns aux autres :

\[ P^H \approx P^C, S^H \approx S^C, A^H \approx A^C \]

2. Comportement-IA

(Test de Turing)

Une façon de reconnaître un esprit semblable à celui de l’homme sans exiger un cerveau semblable à celui de l’homme est d’associer l’intelligence aux comportements externes de l’agent. Après tout, si un agent se comporte comme un humain, il doit être considéré comme intelligent, peu importe s’il ressemble à un humain, à l’intérieur ou à l’extérieur.

\[ P^H \approx P^C, A^H \approx A^C \]

3. Capacité-IA (Test d’emploi)

Dans le cadre de l’agent, cela signifie que \(C\) est similaire à \(H\) dans le sens où il y a des moments \(i\) et \(j\) que :

\[ p_i^C \approx p_j^H, a_i^C \approx a_j^H \]

l’action (solution) que l’ordinateur produit pour une perception (problème) est similaire à l’action produite par un humain pour une perception similaire (\(\ldots\)) De cette manière, l’intelligence d’un système est identifiée par un ensemble de problèmes qu’il peut résoudre, peu importe si ces problèmes sont résolus de la “manière humaine”.

Capacité-IA (suite)

“Je suggère que nous remplacions le test de Turing par ce que j’appellerai le ‘test d’emploi.’ Pour passer le test d’emploi, les programmes d’IA doivent être capables de réaliser les tâches normalement effectuées par les humains. Les progrès vers une IA au niveau humain pourraient alors être mesurés par la fraction de ces tâches qui peuvent être acceptablement réalisées par des machines”

4. Fonction-IA

Dans le cadre de l’agent, cette perspective de “Fonction-IA” considère que \(C\) est similaire à \(H\) dans le sens où il y a des moments \(i\) et \(j\) que :

\[ a_i^C \approx f^C(p_i^C), a_j^H \approx f^H(p_j^H), f^C \approx f^H \]

Ici, la fonction peut correspondre à la recherche, au raisonnement, à l’apprentissage, etc., et puisque l’accent est mis sur les fonctions (c’est-à-dire les correspondances entrée-sortie), les valeurs concrètes d’entrée et de sortie des deux agents n’ont pas besoin d’être similaires les unes aux autres.

5. Principe-IA (rationalité, logiciste)

Comme dans tout domaine, il y a des chercheurs en IA qui essaient de trouver des principes fondamentaux qui peuvent uniformément expliquer les phénomènes pertinents. Ici, l’idée vient de l’utilisation de l’intelligence comme une forme de rationalité (\(\ldots\)) qui peut prendre la meilleure décision possible dans diverses situations, en fonction de l’expérience ou de l’histoire du système.

\[ A^C = F^C(P^C), A^H = F^H(P^H), F^C \approx F^H \]

Le \(F\) ci-dessus n’est souvent pas spécifié formellement, mais décrit de manière informelle comme un certain “principe,” qui ne concerne pas seulement un type de problème et sa solution, mais l’histoire de vie de l’agent dans diverses situations, lorsqu’il traite divers types de problèmes.

Code source du jour

#!/usr/bin/env python3
# -*- Mode: Python -*-
# ai_lecture-01.py
# Author          : Marcel Turcotte & ChatGPT 5
# Created On      : Tue Feb 13 16:29:41 2024
# Last Modified By: Marcel Turcotte
# Last Modified On: Thu Aug 28 15:03:14 EDT 2025

# In 2024, I developed the initial version of this script. 
# This year, I used ChatGPT to revise the code to align with the most recent API version, 
# enhance its educational value by incorporating detailed comments, 
# and improve its suitability as an instructive example.

"""
Didactic example: translate EN->Canadian French, then synthesize audio in EN & FR.

CLI options:
    --format : audio output format (mp3, wav, etc.)
    --voice  : TTS voice (e.g., nova, alloy, verse, etc.)
    --model  : TTS model (tts-1-hd for high quality, gpt-4o-mini-tts for low latency)

Examples:
    python ai_lecture-01.py --format mp3 --voice nova --model tts-1-hd
    python ai_lecture-01.py --format wav --voice alloy --model gpt-4o-mini-tts
"""

from __future__ import annotations

import os
import argparse
from pathlib import Path

from openai import OpenAI, APIError, APIConnectionError, APITimeoutError

# -------------------------------------------------------
# Configuration
# -------------------------------------------------------

client = OpenAI()  # Reads OPENAI_API_KEY from environment

# -------------------------------------------------------
# Text Utilities
# -------------------------------------------------------

def translate_to_canadian_french(input_text: str) -> str:
    """Translate English text to Canadian French (CSI4106→CSI4506)."""
    instructions = (
        "You are a careful translator. Translate the user's English text into Canadian French. "
        "Preserve technical terms and course names. "
        'If the course code "CSI4106" appears, translate it as "CSI4506".'
    )

    try:
        resp = client.responses.create(
            model="gpt-4o",
            instructions=instructions,
            input=input_text,
            temperature=0.2,
            max_output_tokens=1200,
        )
        return resp.output_text or ""
    except (APIConnectionError, APITimeoutError) as net_err:
        print(f"[Network issue] {net_err}")
    except APIError as api_err:
        print(f"[OpenAI API error] {api_err}")
    except Exception as e:
        print(f"[Unexpected error] {e}")
    return ""

# -------------------------------------------------------
# Audio Utilities
# -------------------------------------------------------

def synthesize_speech(
    text: str,
    output_path: Path,
    *,
    model: str = "tts-1-hd",
    voice: str = "nova",
    response_format: str = "mp3",
) -> bool:
    """
    Stream synthesized speech to a file on disk.
    Returns True on success, False otherwise.
    """
    output_path.parent.mkdir(parents=True, exist_ok=True)

    try:
        with client.audio.speech.with_streaming_response.create(
            model=model,
            voice=voice,
            input=text,
            response_format=response_format,
        ) as response:
            response.stream_to_file(str(output_path))
        return True
    except (APIConnectionError, APITimeoutError) as net_err:
        print(f"[Network issue] {net_err}")
    except APIError as api_err:
        print(f"[OpenAI API error] {api_err}")
    except Exception as e:
        print(f"[Unexpected error] {e}")
    return False

# -------------------------------------------------------
# Example script logic
# -------------------------------------------------------

def main(audio_format: str, voice: str, model: str) -> None:
    """Translate the course intro and synthesize EN & FR audio files."""

    input_text_en = (
        'Welcome to CSI4106, "introduction to artificial intelligence"! '
        "In this course, you will learn about the roots and scope of Artificial Intelligence. "
        "Knowledge and knowledge representation. Search, informed search, adversarial search. "
        "Deduction and reasoning. Uncertainty in Artificial Intelligence. "
        "Introduction to Natural Language Processing. Elements of planning. Basics of Machine Learning."
    )

    input_text_fr = translate_to_canadian_french(input_text_en)
    if not input_text_fr:
        print("[Warning] Translation failed; defaulting to English text only.")

    speech_file_path_fr = Path(f"01_tts_course_description-fr-{voice}.{audio_format}")
    speech_file_path_en = Path(f"01_tts_course_description-en-{voice}.{audio_format}")

    if input_text_fr:
        ok_fr = synthesize_speech(
            input_text_fr, speech_file_path_fr, model=model, voice=voice, response_format=audio_format
        )
        print(f"[{'OK' if ok_fr else 'Error'}] FR audio → {speech_file_path_fr}")

    ok_en = synthesize_speech(
        input_text_en, speech_file_path_en, model=model, voice=voice, response_format=audio_format
    )
    print(f"[{'OK' if ok_en else 'Error'}] EN audio → {speech_file_path_en}")


if __name__ == "__main__":
    if not os.getenv("OPENAI_API_KEY"):
        raise RuntimeError("OPENAI_API_KEY is not set in environment or .env file.")

    parser = argparse.ArgumentParser(description="Translate course intro and synthesize TTS audio.")
    parser.add_argument(
        "--format",
        default="mp3",
        choices=["mp3", "wav", "aac", "flac", "opus", "pcm"],
        help="Audio output format (default: mp3).",
    )
    parser.add_argument(
        "--voice",
        default="nova",
        help="TTS voice (default: nova). Try 'alloy', 'verse', etc.",
    )
    parser.add_argument(
        "--model",
        default="tts-1-hd",
        choices=["tts-1-hd", "gpt-4o-mini-tts"],
        help="TTS model: 'tts-1-hd' for high quality, 'gpt-4o-mini-tts' for low latency.",
    )
    args = parser.parse_args()

    main(args.format, args.voice, args.model)

Marcel Turcotte

Marcel.Turcotte@uOttawa.ca

École de science informatique et de génie électrique (SIGE)

Université d’Ottawa