Fondements de l’IA

CSI 4506 - Automne 2024

Marcel Turcotte

Version: sept. 30, 2024 08h54

Préambule

Citation du jour

Nous constituons une équipe restreinte et exceptionnelle des meilleurs ingénieurs et chercheurs du monde, dédiée exclusivement à se concentrer sur SSI (safe superintelligence) et rien d’autre.

(traduction GPT-4o)

Comprendre l’histoire de l’intelligence artificielle est crucial, surtout maintenant que nous nous trouvons au sommet de l’enthousiasme spéculatif, avec des affirmations répandues selon lesquelles l’ère de l’intelligence artificielle générale est imminente.

Objectifs d’apprentissage

  • Reconnaitre les contributions d’autres disciplines à l’IA.

  • Situer l’IA actuelle dans son contexte historique.

  • Introduire certains des outils, notamment les Jupyter Notebooks.

Écoles (rappel du premier cours)

  • IA symbolique (inclut des approches basées sur la logique)
  • Connexionnistes (principalement des réseaux neuronaux)

Fondements de l’intelligence artificielle

Philosophie

Aristote (384-322 av. J.-C.) a établi plusieurs concepts fondamentaux pour l’IA, y compris un système informel de syllogismes qui facilite le raisonnement en dérivant mécaniquement des conclusions à partir de prémisses données.

Philosophie (suite)

L’utilitarisme est une théorie éthique qui met l’accent sur le plus grand bien pour le plus grand nombre.

  1. L’utilitarisme offre à l’IA un cadre de prise de décision en priorisant les actions qui améliorent le bien-être collectif.
  2. Il guide la conception éthique de l’IA pour s’assurer que la technologie favorise le bien-être sociétal.
  3. L’utilitarisme dirige la distribution efficace des ressources en IA, en ciblant un impact positif maximal, notamment dans des secteurs comme la santé.
  4. Il façonne les politiques et réglementations pour maximiser les bénéfices sociétaux et minimiser les dommages liés à l’IA.
  5. Les principes utilitaristes aident à équilibrer les bénéfices de l’IA par rapport aux risques pour un résultat net positif.

Mathématiques – logique formelle

  • George Boole (1815–1864) est crédité de la mathématisation de la logique grâce au développement de la logique propositionnelle, également appelée logique booléenne.

  • Gottlob Frege (1848–1925) a étendu le cadre logique de Boole en incorporant des objets et des relations, développant ainsi ce qui est aujourd’hui connu sous le nom de logique du premier ordre.

  • Les contributions de Kurt Gödel (1906–1978), Alonzo Church (1903–1995) et Alan Turing (1912–1954), entre autres, ont été déterminantes dans la formation du concept moderne de computation.

Mathématiques – probabilité

  • Gerolamo Cardano (1501–1576) a initialement conceptualisé la probabilité à travers les résultats des jeux de hasard.

  • Blaise Pascal (1623–1662) a exposé en 1654 des méthodes pour calculer des prédictions et des gains moyens dans des jeux de hasard inachevés, en correspondance avec Pierre Fermat (1601–1665).

  • Thomas Bayes (1702–1761) a introduit une méthode pour réviser ses croyances avec de nouvelles informations, connue sous le nom de règle de Bayes, essentielle pour les applications en IA.

Mathématiques – algorithmes

  • Les algorithmes complexes trouvent leur origine avec Euclide autour de 300 av. J.-C., tandis que le terme « algorithme » lui-même est dérivé des travaux de Muhammad ibn Musa al-Khwarizmi au IXe siècle.

  • La thèse de Church-Turing postule que toute computation pouvant être effectuée par un processus mécanique peut être calculée par une machine de Turing, équivalant essentiellement le concept de computation algorithmique aux capacités des machines de Turing (Church 1936; Alan M. Turing 1936).

  • Le concept de NP-complétude, introduit par Cook et développé par Karp, établit un cadre pour évaluer la tractabilité des problèmes de computation (Cook 1971; Karp 1972).

Neurosciences

Aujourd’hui, il est universellement reconnu que les fonctions cognitives émergent des activités électrochimiques au sein de structures cérébrales, illustrant comment des assemblages de cellules simples peuvent donner naissance à la pensée, à l’action et à la conscience.

Neurosciences (suite)

  • “De tous les animaux, l’homme a le plus grand cerveau proportionnellement à sa taille.” Aristote, 335 av. J.-C..

  • Les recherches de Paul Broca en 1861 ont marqué le début de la compréhension de l’organisation fonctionnelle du cerveau, notamment en identifiant le rôle de l’hémisphère gauche dans la production de la parole.

Neurosciences (suite)

Des études collaboratives à grande échelle nous ont fourni des données étendues sur l’anatomie, les types de cellules, la connectivité et les profils d’expression génétique du cerveau (Maroso 2023; Conroy 2023).

Neurosciences – neurone

Ordinateurs vs cerveau humain

Superordinateur Ordinateur personnel Cerveau humain
Unités de calcul \(10^6\) cœurs CPU+GPU 8 cœurs CPU \(10^6\) colonnes
\(10^{15}\) transistors \(10^{15}\) transistors \(10^{11}\) neurones
\(10^{14}\) synapses
Temps de cycle \(10^{-9}\) sec \(10^{-9}\) sec \(10^{-3}\) sec
Opérations/sec \(10^{18}\) \(10^{10}\) \(10^{17}\)

Ordinateurs vs cerveau humain (suite)

  • “D’ici la fin de 2024, nous visons à continuer d’étendre notre infrastructure qui inclura 350 000 GPU NVIDIA H100 dans le cadre d’une infrastructure qui comprendra une puissance de calcul équivalente à près de 600 000 H100.”
  • Building Meta’s GenAI Infrastructure, 12 mars 2024.
  • Chaque H100 possède 80 milliards (\(8 \times 10^{10}\)) de transistors.
  • 600 000 H100s impliquent un total de \(4.8 \times 10^{16}\) transistors.
  • Chaque puce coûte 40 000 USD !
  • Infrastructure à 24 000 000 000 (24 milliards) USD.
  • Comparable au Produit Intérieur Brut (PIB) de l’Islande.

Ordinateurs vs cerveau humain (suite)

  • “En combinant ces données, de Vries calcule que d’ici 2027, le secteur de l’IA pourrait consommer entre 85 et 134 térawattheures par an. C’est à peu près la même demande énergétique annuelle que le pays d’origine de de Vries, les Pays-Bas.”

Psychologie

Si l’organisme porte dans sa tête un « modèle à petite échelle » de la réalité extérieure et de ses propres actions possibles, il est capable d’essayer diverses alternatives, de conclure laquelle est la meilleure, de réagir aux situations futures avant qu’elles ne se produisent, d’utiliser la connaissance des événements passés pour faire face au présent et à l’avenir, et de réagir de manière beaucoup plus complète, plus sûre et plus compétente aux urgences qui se présentent à lui.

  • La psychologie cognitive conceptualise le cerveau comme un dispositif de traitement de l’information.

  • Les agents basés sur la connaissance sont conceptualisés comme recevant des entrées (percepts) de leur environnement, ayant un état interne et produisant des actions (sorties).

Sciences cognitives

La même année que le terme « intelligence artificielle » a été introduit, les sciences cognitives ont émergé en tant que discipline.

Atelier du MIT en 1956 :

Trois articles fondamentaux ont démontré comment les modèles informatiques peuvent être appliqués à la psychologie de la mémoire, au langage et au raisonnement logique.

Intelligence artificielle : Une chronologie

1943–1974

1950 – Test de Turing

Le Test de Turing est une mesure de la capacité d’une machine à exhiber un comportement intelligent indiscernable de celui d’un humain.

Si un évaluateur humain ne peut pas distinguer de manière fiable entre une machine et un humain uniquement sur la base de leurs réponses à des questions, on dit que la machine a passé le test.

1950 – Test de Turing (en 2024)

Il est probable que le Test de Turing devienne une autre victime de nos conceptions changeantes de l’intelligence. En 1950, Turing avait intuité que la capacité de mener une conversation semblable à celle des humains devait être une preuve irréfutable de “pensée” et de tout ce qui l’accompagne. Cette intuition est encore forte aujourd’hui. Mais peut-être ce que nous avons appris d’ELIZA et d’Eugene Goostman, et ce que nous pourrions encore apprendre de ChatGPT et de ses semblables, est que la capacité à parler couramment en langage naturel, comme jouer aux échecs, n’est pas une preuve concluante d’intelligence générale.

1943 – Premier réseau neuronal artificiel

Warren S. McCulloch & Walter Pitts 1943

  • Logique propositionnelle et événements neuronaux : La nature “tout ou rien” de l’activité nerveuse permet de traiter les événements neuronaux et leurs relations en utilisant la logique propositionnelle.

  • Implications pour la psychologie et la neurophysiologie : La théorie fournit un cadre rigoureux pour comprendre les activités mentales en termes de neurophysiologie, offrant des aperçus sur les relations causales et la construction de réseaux neuronaux hypothétiques.

  • Apprentissage : nous considérons \((\ldots)\) l’apprentissage comme un changement durable qui peut survivre au sommeil, à l’anesthésie, aux convulsions et au coma.

1949 – Premier réseau neuronal artificiel

En 1949, Donald Hebb a introduit une règle de mise à jour simple pour ajuster les forces de connexion entre les neurones.

L’apprentissage hebbien est un mécanisme d’apprentissage dans lequel la force synaptique entre deux neurones est augmentée s’ils sont activés simultanément. Ce principe est souvent résumé par “les cellules qui s’activent ensemble, se connectent ensemble”, et il forme la base pour comprendre comment les connexions neuronales sont renforcées par l’expérience.

1950 – Premier réseau neuronal artificiel

  • En 1950, alors qu’il était étudiant de premier cycle à Harvard, Marvin Minsky, en collaboration avec Dean Edmonds, a construit le premier ordinateur de réseau neuronal artificiel, qui simulait la fonctionnalité de 40 neurones.

  • En 1954, pour sa thèse de doctorat en mathématiques à l’Université de Princeton, Minsky a mené une enquête approfondie sur le principe de la computation universelle au sein des réseaux neuronaux.

Premier réseau neuronal artificiel

1956 – Événement fondateur

Projet de recherche d’été Dartmouth sur l’intelligence artificielle

Nous proposons qu’une étude de 2 mois, 10 personnes sur l’intelligence artificielle soit réalisée durant l’été 1956 au Dartmouth College à Hanover, New Hampshire. L’étude doit se dérouler sur la base de la conjecture que chaque aspect de l’apprentissage ou toute autre caractéristique de l’intelligence peut en principe être décrit de manière si précise qu’une machine peut être conçue pour la simuler. Une tentative sera faite pour trouver comment faire en sorte que les machines utilisent le langage, forment des abstractions et des concepts, résolvent des types de problèmes actuellement réservés aux humains, et s’améliorent elles-mêmes. Nous pensons qu’une avancée significative peut être réalisée dans un ou plusieurs de ces problèmes si un groupe soigneusement sélectionné de scientifiques y travaille ensemble pendant un été.

1956 – Logic Theorist

Russell et Norvig (2020)

Newell et Simon ont présenté peut-être le travail le plus mature, un système de démonstration de théorèmes mathématiques appelé Logic Theorist (LT). Simon a affirmé : ‘Nous avons inventé un programme informatique capable de penser de manière non numérique, et résolvant ainsi le vénérable problème corps-esprit.’

1959 – Apprentissage automatique

Le travail d’Arthur Samuel sur l’apprentissage automatique utilisant le jeu de dames a eu un impact profond sur le domaine de l’intelligence artificielle (IA) et l’informatique en général.

  • L’un des premiers exemples d’un système d’IA auto-améliorant.

  • Ses contributions ont aidé à établir l’apprentissage automatique comme un sous-domaine crucial de l’IA.

  • Samuel définit l’apprentissage automatique comme un “domaine d’étude qui donne aux ordinateurs la capacité d’apprendre sans être explicitement programmés”.

  • Précurseur de l’apprentissage par renforcement et AlphaGo.

1952 - IBM 701

  • 16 000 instructions par seconde

  • 8,75 kilo-octets de mémoire

Hype

1957 Herbert Simon

Je ne vise pas à vous surprendre ou à vous choquer - mais la manière la plus simple de résumer est de dire que il existe maintenant dans le monde des machines qui pensent, qui apprennent et qui créent. De plus, leur capacité à faire ces choses va augmenter rapidement jusqu’à ce que - dans un futur visible - la gamme de problèmes qu’elles peuvent traiter soit coextensive avec la gamme à laquelle l’esprit humain a été appliqué.

1958, New York Times, 8 juillet

La Marine a révélé aujourd’hui l’embryon d’un ordinateur électronique qui, selon elle, sera capable de marcher, parler, voir, écrire, se reproduire, et être conscient de son existence.

1965 Herbert Simon (Mitchell 2019)

(\(\ldots\)) les machines seront capables, dans les 20 ans, de faire n’importe quel travail qu’un homme peut faire.

1966 Marvin Minsky (Mitchell 2019)

(\(\ldots\)) dans lequel ils assigneraient à des étudiants de premier cycle le travail sur “la construction d’une partie significative d’un système visuel”. Dans les mots d’un historien de l’IA, “Minsky a embauché un étudiant de première année et lui a assigné un problème à résoudre pendant l’été : connecter une caméra de télévision à un ordinateur et faire en sorte que la machine décrive ce qu’elle voit.”

1967 Marvin Minsky (Strickland 2021)

D’ici une génération\(\ldots\) le problème de créer une ‘intelligence artificielle’ sera substantiellement résolu.

1974–1980

IA symbolique

En 1976, Newell et Simon, les auteurs de Logic Theorist (LT), créent le General Problem Solver (GPS) destiné à imiter la manière dont les humains résolvent les problèmes.

Allen Newell et Simon (1976)

un système de symboles physiques a les moyens nécessaires et suffisants pour une action intelligente générale.

Premier hiver de l’IA

Les financements se sont taris.

Russell et Norvig (2020)

L’incapacité à faire face à l’“explosion combinatoire” était l’une des principales critiques de l’IA contenues dans le rapport Lighthill (Lighthill, 1973), qui a servi de base à la décision du gouvernement britannique de mettre fin au soutien à la recherche en IA dans toutes les universités sauf deux.

Limites fondamentales : ce qui pouvait être représenté. Données linéairement séparables, par exemple.

1980–1987

Systèmes experts

Les systèmes experts sont des programmes qui imitent les capacités de prise de décision d’un expert humain en utilisant une base de connaissances et des règles d’inférence (généralement des règles si-alors) pour résoudre des problèmes complexes dans un domaine spécifique.

  • En 1984, Douglas Lenat a commencé à travailler sur Cyc, avec l’objectif de coder le bon sens humain. En 2017, Cyc avait 1,5 million de termes et 24,5 millions de règles.

Systèmes experts - règles if-then

Règle 1 :

  • SI le patient a de la fièvre ET le patient a mal à la gorge,

  • ALORS envisager la possibilité d’une infection streptococcique.

Règle 2 :

  • SI le patient a une éruption cutanée ET le patient a été récemment dans une zone boisée,

  • ALORS envisager la possibilité de la maladie de Lyme.

Règle 3 :

  • SI le patient ressent une douleur thoracique ET le patient a des antécédents de maladies cardiaques,

  • ALORS envisager la possibilité d’un infarctus du myocarde (crise cardiaque).

1987–1993

Deuxième hiver de l’IA

Strickland (2021)

Dans les années 1990, il n’était plus à la mode sur le plan académique de travailler sur l’IA symbolique ou les réseaux neuronaux, car les deux stratégies semblaient avoir échoué.

1993–2011

Machine à Vecteurs de Support (SVM)

  • Une Machine à Vecteurs de Support (SVM) est un algorithme d’apprentissage supervisé.

  • Elle fonctionne en identifiant l’hyperplan optimal qui sépare les données en classes distinctes dans un espace de haute dimension.

  • Basée sur le cadre théorique robuste de la théorie de Vapnik-Chervonenkis (VC).

  • Influente et dominante pendant les années 1990 et 2000.

2011–

Apprentissage profond

En 2012, AlexNet, une architecture de réseau neuronal convolutif (CNN) inspirée par les travaux de Yann LeCun, remporte le ImageNet Large Scale Visual Recognition Challenge.

Cela a marqué un moment pivot dans le domaine, car par la suite, toutes les entrées principales de la compétition ont été fondées sur des méthodologies d’apprentissage profond.

L’hiver arrive?

Résumé

Voir aussi :

Tutoriel

Prérequis

La maîtrise de Python est attendue.

Pour ceux qui ont besoin d’une remise à niveau, le tutoriel officiel sur Python.org est un bon point de départ.

Améliorez simultanément vos compétences en créant un Jupyter Notebook qui intègre des exemples et des notes du tutoriel.

Autres ressources :

Jupyter Notebooks

Un notebook est un document partageable qui combine code informatique, descriptions en langage clair, données, visualisations riches comme des modèles 3D, tableaux, graphes et figures, et contrôles interactifs. Un notebook, avec un éditeur (comme JupyterLab), fournit un environnement interactif rapide pour prototyper et expliquer du code, explorer et visualiser des données, et partager des idées avec d’autres.

Démarrage rapide

Exécuter Jupyter sur votre ordinateur

En supposant que le notebook est dans le répertoire courant, exécutez la commande suivante depuis le terminal.

jupyter notebook 01_ottawa_river_temperature.ipynb

De même, pour créer un nouveau notebook à partir de zéro,

jupyter notebook

Pourquoi?

  • Facilité d’utilisation : L’interface est intuitive et propice à l’analyse exploratoire.

  • Visualisation : La capacité d’intégrer des visualisations riches et interactives directement dans le notebook améliore son utilité pour l’analyse et la présentation des données.

  • Reproductibilité : Les Jupyter Notebooks sont devenus la norme de facto dans de nombreux domaines pour démontrer les fonctionnalités du code et garantir la reproductibilité.

Comment?

  • Google Colab
  • Installation locale
  • Plus d’options, y compris JupyterHub (une version multi-utilisateurs)

Contrôle de version (GitHub)

Par défaut, les Jupyter Notebooks stockent les sorties des cellules de code, y compris les objets multimédias.

Les Jupyter Notebooks sont des documents JSON, et les images qu’ils contiennent sont encodées au format PNG base64.

Cet encodage peut entraîner plusieurs problèmes lors de l’utilisation des systèmes de contrôle de version, tels que GitHub.

  • Taille de fichier importante : Les Jupyter Notebooks peuvent devenir assez volumineux en raison des images et des sorties intégrées, entraînant des temps de téléchargement prolongés et des contraintes de stockage potentielles.

  • Incompatibilité avec le contrôle de version basé sur le texte : GitHub est optimisé pour les fichiers basés sur du texte, et l’inclusion de données binaires, telles que des images, complique le processus de suivi des modifications et de résolution des conflits. Les opérations traditionnelles de diff et de fusion ne sont pas bien adaptées pour gérer ces formats binaires.

Contrôle de version - solutions

  1. Dans JupyterLab ou Notebook, Edit \(\rightarrow\) Clear Outputs of All Cells, puis sauvegardez.

  2. En ligne de commande, utilisez jupyter nbconvert --clear-output

jupyter nbconvert --clear-output --inplace 04_stock_price.ipynb

ou

jupyter nbconvert 04_stock_price.ipynb --to notebook --ClearOutputPreprocessor.enabled=True --output 04_stock_price_clear
  1. Utilisez nbdime, spécialisé pour les Jupyter Notebooks.

Installer Jupyter (1/2)

Ces instructions utilisent pip, l’outil d’installation recommandé pour Python.

La première étape est de vérifier que vous disposez d’une installation Python fonctionnelle avec pip installé.

$ python --version
Python 3.10.14
$ pip --version
pip 24.2
C:> py --version
Python 3.10.14
C:> py -m pip --version
pip 24.2

Installer Jupyter (2/2)

Installer JupyterLab avec pip :

$ pip install jupyterlab

Une fois installé, lancez JupyterLab avec

$ jupyter lab

Exemples de Jupyter Notebooks

bibliothèques manquantes

Lancer 03_get_youtube_transcript sur Colab.

04_stock_price

Lancer 04_stock_price sur Colab.

05_central_limit

Lancer 05_central_limit sur Colab.

Références

Boser, Bernhard E., Isabelle Guyon, et Vladimir Vapnik. 1992. « A Training Algorithm for Optimal Margin Classifiers ». In COLT, 144‑52. ACM. https://doi.org/10.1145/130385.130401.
Chomsky, Noam. 1956. « Three models for the description of language ». IRE Transactions on Information Theory 2: 113‑24.
Church, Alonzo. 1936. « An Unsolvable Problem of Elementary Number Theory ». American Journal of Mathematics 58 (2): 345‑63. https://doi.org/10.2307/2371045.
Conroy, Gemma. 2023. « This is the largest map of the human brain ever made ». Nature 622 (7984): 679‑80. https://doi.org/10.1038/d41586-023-03192-2.
Cook, Stephen A. 1971. « The complexity of theorem-proving procedures ». In Proceedings of the Third Annual ACM Symposium on Theory of Computing, 151‑58. STOC ’71. New York, NY, USA: Association for Computing Machinery. https://doi.org/10.1145/800157.805047.
Craik, K. J. W. 1943. The Nature of Explanation. Cambridge University Press. https://books.google.ca/books?id=EN0TrgEACAAJ.
Géron, Aurélien. 2022. Hands-on Machine Learning with Scikit-Learn, Keras, and TensorFlow. 3ᵉ éd. O’Reilly Media, Inc.
Hume, David. (1739) 1739. A Treatise of Human Nature. Édité par L. A. Selby-Bigge. Oxford: Oxford University Press.
Karp, Richard M. 1972. « Reducibility Among Combinatorial Problems. » In Complexity of Computer Computations, édité par Raymond E. Miller et James W. Thatcher, 85‑103. The IBM Research Symposia Series. Plenum Press, New York. http://dblp.uni-trier.de/db/conf/coco/cocc1972.html.
Krizhevsky, Alex, Ilya Sutskever, et Geoffrey E Hinton. 2012. « ImageNet Classification with Deep Convolutional Neural Networks ». In Advances in Neural Information Processing Systems, édité par F. Pereira, C. J. Burges, L. Bottou, et K. Q. Weinberger. Vol. 25. Curran Associates, Inc. https://proceedings.neurips.cc/paper_files/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf.
Maroso, Mattia. 2023. « A quest into the human brain ». Science 382 (6667): 166‑67. https://doi.org/10.1126/science.adl0913.
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.
McCulloch, Warren S., et Walter Pitts. 1943. « A logical calculus of the ideas immanent in nervous activity ». The bulletin of mathematical biophysics 5 (4): 115‑33. https://doi.org/10.1007/BF02478259.
Miller, George A. 1956. « The Magical Number Seven, Plus or Minus Two: Some Limits on Our Capacity for Processing Information ». The Psychological Review 63 (2): 81‑97.
Mitchell, Melanie. 2019. Artificial Intelligence: A Guide for Thinking Humans. New York, NY, USA: Farrar, Straus; Giroux.
———. 2024. « The Turing Test and our shifting conceptions of intelligence ». Science 385 (6710): eadq9356. https://doi.org/10.1126/science.adq9356.
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.
Newell, A., et H. Simon. 1956. « The logic theory machine–A complex information processing system ». IRE Transactions on Information Theory 2 (3): 61‑79. https://doi.org/10.1109/TIT.1956.1056797.
Russell, Stuart, et Peter Norvig. 2020. Artificial Intelligence: A Modern Approach. 4ᵉ éd. Pearson. http://aima.cs.berkeley.edu/.
Samuel, A. L. 1959. « Some studies in machine learning using the game of checkers ». IBM J. Res. Dev. 3 (3): 210‑29. https://doi.org/10.1147/rd.33.0210.
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.
Turing, A M. 1950. « Computing machinery and intelligence ». Mind 59: 433‑60.
Turing, Alan M. 1936. « On Computable Numbers, with an Application to the Entscheidungsproblem ». Proceedings of the London Mathematical Society 2 (42): 230‑65.

Prologue

Résumé

  • Nous avons situé l’IA actuelle dans son contexte historique.
  • Nous avons introduit des outils, notamment les Jupyter Notebooks.

Prochain cours

  • Introduction à l’apprentissage automatique

Un de mes livres préférés sur l’apprentissage automatique

Ressources

Annexe : gestion de l’environnement

Gestion de l’environnement

Important

N’essayez pas d’installer ces outils à moins d’être sûr de vos compétences techniques. Une installation incorrecte pourrait entraîner une perte de temps considérable ou même rendre votre environnement inutilisable. Il n’y a rien de mal à utiliser pip ou Google Colab pour vos travaux de cours. Vous pourrez développer ces compétences d’installation plus tard sans impacter vos notes.

Gestion des packages

  • La gestion des dépendances des packages peut être complexe.

    • Un gestionnaire de packages répond à ces défis.
  • Différents projets peuvent nécessiter différentes versions des mêmes bibliothèques.

    • Les outils de gestion des packages, tels que conda, facilitent la création d’environnements virtuels adaptés à des projets spécifiques.

Anaconda

Anaconda est une plateforme complète de gestion des packages pour Python et R. Elle utilise Conda pour gérer les packages, les dépendances et les environnements.

  • Anaconda est avantageux car il est livré pré-installé avec plus de 250 packages populaires, offrant ainsi un point de départ robuste pour les utilisateurs.

  • Cependant, cette distribution étendue entraîne une taille de fichier importante, ce qui peut être un inconvénient.

  • De plus, puisque Anaconda repose sur conda, il hérite également des limitations et des problèmes associés à conda (voir les diapositives suivantes).

Miniconda

Miniconda est une version minimale d’Anaconda qui inclut uniquement conda, Python, leurs dépendances et une petite sélection de packages essentiels.

Conda

Conda est un système de gestion des packages et des environnements open-source pour Python et R. Il facilite l’installation et la gestion des packages logiciels et la création d’environnements virtuels isolés.

  • Des conflits de dépendances conflicts dus à des interdépendances complexes de packages peuvent obliger l’utilisateur à réinstaller Anaconda/Conda.

  • Encombré par des exigences de stockage importantes et des problèmes de performance lors de la résolution des packages.

Mamba

Mamba est une réimplémentation du gestionnaire de packages conda en C++.

  • Il est nettement plus rapide que conda.

  • Il consomme moins de ressources informatiques.

  • Il fournit des messages d’erreur plus clairs et plus informatifs.

  • Il est entièrement compatible avec conda, ce qui en fait un remplacement viable.

Micromamba est un exécutable entièrement lié de manière statique et autonome. Son environnement de base vide garantit que la base n’est jamais corrompue, éliminant ainsi le besoin de réinstallation.

Marcel Turcotte

Marcel.Turcotte@uOttawa.ca

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

Université d’Ottawa