Programmer une intelligence artificielle
En une phrase
Une intelligence artificielle est un programme informatique capable d’apprendre à partir de données, de reconnaître des motifs et de prendre des décisions, en s’inspirant du fonctionnement des neurones du cerveau humain.
Comment ça marche
Qu’est-ce que c’est ?
L’intelligence artificielle (IA) n’est pas une pensée magique dans une machine. C’est un ensemble de programmes qui traitent des quantités massives de données pour y trouver des régularités, puis utilisent ces régularités pour faire des prédictions ou des choix sur de nouvelles données.
Les principaux types d’IA :
- IA symbolique : elle manipule des règles explicites du type “SI condition ALORS action”. C’est la plus simple à programmer et la plus proche de la logique humaine. Elle ne sait faire que ce qu’on lui a explicitement appris.
- Apprentissage automatique (machine learning) : l’IA apprend seule des régularités dans les données. On ne lui donne pas les règles : on lui donne des exemples, et elle trouve les règles par elle-même.
- Réseau de neurones artificiels : un type d’apprentissage automatique inspiré des neurones du cerveau. Des milliers à des milliards de connexions numériques adaptent leurs poids en fonction des exemples vus.
- Apprentissage profond (deep learning) : des réseaux de neurones avec de nombreuses couches, capables d’apprendre des représentations très abstraites. C’est la technologie qui a permis les grandes avancées récentes en vision, langage et jeu.
Où la trouver / comment la fabriquer ?
Programmer une IA de zéro sans infrastructure numérique existante est le sommet de la pyramide technologique. Cela suppose :
- Des ordinateurs fonctionnels avec assez de puissance de calcul
- Du papier et de l’encre pour la documentation théorique
- Un réseau pour échanger des données et des modèles
- Des milliers d’heures de travail humain pour collecter les données et écrire les programmes
- Une formation en mathématiques (algèbre linéaire, calcul différentiel, probabilités)
Il est infiniment plus réalique de récupérer une IA existante dans du matériel préservé que d’en créer une de zéro.
Comment l’utiliser ?
On utilise une IA en lui fournissant des données d’entrée et en recevant des prédictions ou des décisions en sortie. Par exemple : lui montrer des milliers d’images de plantes et elle apprend à identifier les plantes comestibles des plantes toxiques. Ensuite, on lui montre une nouvelle image et elle la classifie.
Étapes détaillées
1. Comprendre les fondements mathématiques
L’IA moderne repose sur trois piliers mathématiques :
Algèbre linéaire :
- Les données sont représentées comme des vecteurs (listes de nombres) et des matrices (tableaux de nombres).
- Les opérations des réseaux de neurones sont des multiplications de matrices.
- Pour une IA qui traite des images de 28 par 28 pixels, chaque image est un vecteur de 784 nombres.
Calcul différentiel :
- L’apprentissage consiste à ajuster les paramètres du modèle pour réduire l’erreur. L’outil mathématique pour trouver la direction de l’ajustement est la dérivée.
- La règle de la chaîne (chain rule) permet de calculer les dérivées à travers les couches successives du réseau (rétropropagation).
Probabilités et statistiques :
- Les prédictions de l’IA sont probabilistes : elle dit “85 pour cent de chance que cette plante soit comestible”.
- La théorie de l’information (entropie, cross-entropie) mesure la qualité des prédictions.
2. Construire un neurone artificiel
Un neurone artificiel est une fonction mathématique simple :
- Il reçoit plusieurs entrées (nombres)
- Il multiplie chaque entrée par un poids (un nombre ajustable)
- Il additionne tous les résultats
- Il ajoute un biais (un nombre ajustable)
- Il applique une fonction d’activation (qui transforme la somme)
Les fonctions d’activation les plus courantes :
- Seuil (step function) : la sortie vaut 1 si la somme dépasse un seuil, 0 sinon. Le neurone du transistor fonctionne ainsi.
- Sigmoïde : la sortie est un nombre entre 0 et 1, en forme de S. Plus douce que la fonction seuil.
- ReLU (Rectified Linear Unit) : la sortie vaut 0 si la somme est négative, la somme elle-même si elle est positive. Simple et efficace.
Le neurone apprit en ajustant ses poids et son biais. Au début, les poids sont aléatoires. Après l’entraînement, ils sont ajustés pour donner les bonnes réponses.
3. Construire un réseau de neurones
Un réseau de neurones est organisé en couches :
- Couche d’entrée : reçoit les données brutes. Par exemple, pour une image de 28 par 28 pixels en niveaux de gris, la couche d’entrée a 784 neurones (un par pixel).
- Couches cachées : transforment les données. Chaque neurone d’une couche est connecté à tous les neurones de la couche précédente. Plus il y a de couches, plus le réseau apprend des représentations abstraites.
- Couche de sortie : produit la prédiction. Pour classifier 10 types de plantes, la couche de sortie a 10 neurones, un par type.
Exemple : un réseau simple pour reconnaître des chiffres manuscrits :
- 784 neurones d’entrée (les pixels)
- 128 neurones dans une couche cachée
- 10 neurones de sortie (les chiffres de 0 à 9)
- Total : environ 100 000 connexions (poids à ajuster)
4. Entraîner le réseau (apprentissage)
L’apprentissage se fait en montrant au réseau des milliers d’exemples et en ajustant les poids.
Étapes d’un cycle d’apprentissage :
-
Propagation avant : on présente une donnée au réseau (par exemple, l’image d’un 7). Les données traversent les couches, chaque neurone calcule sa sortie. Le réseau produit une prédiction (par exemple : “60 pour cent de chance que ce soit un 7”).
-
Calcul de l’erreur : on compare la prédiction à la réponse correcte (“c’est un 7”). L’erreur mesure l’écart entre la prédiction et la réalité.
-
Rétropropagation : on calcule la dérivée de l’erreur par rapport à chaque poids et chaque biais, de la couche de sortie jusqu’à la couche d’entrée. Ça nous dit dans quelle direction ajuster chaque poids pour réduire l’erreur.
-
Mise à jour des poids : on ajuste chaque poids d’une petite quantité dans la direction opposée à sa dérivée (descente de gradient). Le pas d’ajustement s’appelle le taux d’apprentissage (learning rate), typiquement entre 0,001 et 0,1.
-
On recommence avec l’exemple suivant. Après des milliers à des millions de cycles, l’erreur diminue et le réseau apprend.
Données nécessaires :
- Pour une classification simple (10 classes) : au moins 1000 à 10000 exemples par classe, soit 10000 à 100000 exemples au total.
- Pour une classification complexe (1000 classes, images réalistes) : des millions d’exemples.
- Chaque exemple doit être étiqueté : la réponse correcte est connue.
5. Collecter et préparer les données
Les données sont le carburant de l’IA. Sans données de qualité, pas d’apprentissage.
Collecte :
- Images de plantes, d’animaux, de minéraux : photographier ou dessiner des milliers de spécimens classés par catégorie.
- Textes : collecter des documents écrits dans toutes les langues et tous les sujets.
- Sons : enregistrer des milliers de phrases et de mots.
- Données numériques : mesures de température, pression, précipitations, etc.
Préparation :
- Nettoyer les données : supprimer les exemples incomplets, corrompus ou mal étiquetés.
- Normaliser les données : ramener toutes les valeurs à une échelle commune (par exemple, entre 0 et 1).
- Diviser les données en trois ensembles : entraînement (70 pour cent), validation (15 pour cent), test (15 pour cent).
6. Évaluer les performances
Après l’entraînement, on évalue le réseau sur les données de test (qu’il n’a jamais vues).
Métriques :
- Précision (accuracy) : pourcentage de prédictions correctes.
- Matrice de confusion : tableau qui montre, pour chaque classe, combien d’exemples ont été bien ou mal classifiés.
- Courbe d’apprentissage : graphique de l’erreur en fonction du nombre de cycles d’entraînement. L’erreur doit diminuer progressivement.
Problèmes fréquents :
- Surapprentissage (overfitting) : le réseau mémorise les exemples d’entraînement au lieu d’apprendre les régularités. Il a une bonne précision sur les données d’entraînement mais mauvaise sur les données de test. Solution : plus de données, ou régularisation (pénaliser les poids trop grands).
- Sous-apprentissage (underfitting) : le réseau est trop simple pour apprendre les régularités. Solution : plus de neurones, plus de couches.
7. Déployer l’IA
Une fois entrâinée, l’IA est un ensemble de nombres (les poids) qui peuvent être stockés et transférés.
- Stockage : les poids du réseau occupent de l’espace mémoire. Un réseau de 100000 poids à 32 bits par poids = 400 Ko. Un grand réseau peut occuper des gigaoctets.
- Inférence : utiliser le réseau pour faire des prédictions sur de nouvelles données. L’inférence est beaucoup moins coûteuse que l’entraînement : un petit ordinateur peut faire des prédictions avec un grand réseau.
- Mise à jour : ré-entraîner le réseau avec de nouvelles données pour l’améliorer.
Variations par climat
- Partout : l’IA est un logiciel. Elle s’adapte à n’importe quel climat tant que le matériel informatique fonctionne. Ce qui change, ce sont les données : une IA entraînée sur des plantes tropicales ne pourra pas identifier des plantes arctiques sans réentraînement.
Pièges et erreurs courantes
- Pas assez de données : c’est l’erreur la plus fréquente. Mille exemples, c’est rarement suffisant pour une IA sérieuse. Il en faut des dizaines de milliers au minimum.
- Données mal étiquetées : si les étiquettes sont fausses, l’IA apprend des erreurs. La qualité des étiquettes est plus importante que la quantité de données.
- Pas assez de calcul : l’entraînement d’un réseau de neurones requiert des milliards d’opérations. Sans un ordinateur suffisamment puissant, l’entraînement peut prendre des années.
- Taux d’apprentissage mal réglé : trop grand, le réseau oscille et n’apprend pas. Trop petit, l’apprentissage est interminable.
- Biais dans les données : si les données d’entraînement ne sont pas représentatives (par exemple, que des plantes d’une seule région), l’IA fera des erreurs systématiques sur les données qu’elle n’a pas vues.
- Croire que l’IA comprend : un réseau de neurones ne “comprend” pas ce qu’il fait. Il manipule des nombres selon des règles mathématiques. Il peut faire des erreurs absurdes sur des cas particuliers sans s’en rendre compte.
Une fois que vous savez faire ça, vous pouvez débloquer
- (Dernier tier atteint. L’IA est le sommet de la reconstruction technologique.)
Notes
- Le concept d’intelligence artificielle a été proposé en 1956 lors d’une conférence au Dartmouth College aux États-Unis.
- Le premier neural network (perceptron) a été construit en 1958 par Frank Rosenblatt. C’était un seul neurone avec une seule couche.
- La rétropropagation, algorithme clé de l’apprentissage des réseaux multicouches, a été popularisée en 1986 par Rumelhart, Hinton et Williams.
- Les grandes IA modernes (modèles de langage) contiennent des centaines de milliards de paramètres et nécessitent des milliers de processeurs spécialisés (GPU) pour être entraînées.
- En situation de reconstruction, l’IA la plus utile ne serait pas un modèle de langage géant, mais des classifieurs simples : identifier les plantes comestibles, prédire la météo, diagnostiquer des maladies, optimiser les cultures.
- L’IA la plus simple et la plus robuste en situation de survie est l’IA symbolique (règles explicites) : “SI la plante a des feuilles en forme de coeur ET des fleurs blanches ALORS elle est probablement toxique”. Pas besoin de milliards de paramètres, juste de bon sens bien codifié.
- La véritable intelligence est celle qui sait qu’elle ne sait pas. Une IA doit toujours indiquer son niveau de confiance dans ses prédictions et avertir quand ce niveau est faible.
Ressources externes
- Ollama : https://ollama.com/ — Moteur LLM local hors-ligne (Llama 3, Mistral, etc.) pour interroger des connaissances techniques.
- Project NOMAD : https://github.com/Crosstalk-Solutions/project-nomad — Serveur complet avec IA locale (Ollama) + Wikipedia hors-ligne via RAG.
- civilization_node : https://github.com/emincb/civilization_node — Interface LLM local connecté aux archives ZIM Kiwix (RAG assistance technique).
- The Ark Project : https://github.com/SIYAKS-ARES/survival-with-llms — Étude comparative des LLMs qui peuvent fonctionner sur une clé USB 64GB pour « rebooter la civilisation ».
- JustInCase : https://github.com/companionintelligence/JustInCase — Moteur de recherche IA indexant 1400+ PDFs de survie (RAG sourcé).
- CyberDeck : https://github.com/sarogamedev/CyberDeck — Plateforme portable combinant LLM local + Wikipedia offline + cartes.
- GNU Octave : https://octave.org/ — Calcul numérique open source pour implémenter des algorithmes d’IA classique (réseaux de neurones simples).
- Forgejo : https://forgejo.org/ — Forge locale pour versionner et partager les modèles et données d’entraînement.
- Voir aussi : Ressources et Outils — Section IA hors-ligne