- études des espèces
- des virus, des bactéries
- AMD Ryzen 5 5600g
- 32 Go de RAM
- tri de 70_000 éléments déjà triés
- sort (php) : 0,02 s
- impl 1 : 36 s
- impl 2 : après 42 s, 100% de la mémoire utilisée, crash
EC Informatique - LERIA - Université d'Angers
5 Mars 2025
Faculté des Sciences - Amphi B
L'intelligence artificielle (IA) est passée des laboratoires à une réalité omniprésente qui transforme notre quotidien. L'avènement de l'IA générative soulève de nombreuses questions et interrogations. Les chatbots comme ChatGPT donnent l'illusion d'une intelligence humaine, mais il n'en est rien.
Au cours de cette conférence nous tenterons de démystifier l'IA en montrant qu'elle repose essentiellement sur des algorithmes capables d'analyser de grandes quantités de données et d'en tirer des prédictions. Il est primordial de ne pas céder aux fantasmes d'une IA omnipotente ou menaçante.
L'IA est un outil puissant, mais elle reste sous le contrôle des humains qui la conçoivent et la façonnent.
De nos jours l'IA (Intelligence Artificielle) occupe une part importante des gros titres
Elle soulève plusieurs interrogations :
est légitime même si on ne sait pas ce que cela signifie
l'IA Générative est une avancée majeure mais les nouvelles la concernant ne sont pas rassurantes
L'IA a franchi la ligne rouge de l'auto-réplication
3 février 2025
A qui s'adresse cette conférence ?
une mémoire
qui stocke les données
un processeur
qui effectue les calculs
En quelque sorte un orgue de Barbarie
pas d'intelligence : que du calcul
Jeu | Complexité | État de l’art |
---|---|---|
Morpion | $10^3$ | résolu (à la main) : partie nulle si les joueurs jouent bien |
Puissance 4 | $10^{14}$ | résolu en 1988 : le joueur qui commence a une stratégie gagnante |
Dames anglaises | $10^{20}$ | résolu en 2007 : partie nulle si les joueurs jouent bien |
Échecs | $10^{50}$ | non résolu : programmes meilleurs que les meilleurs humains |
Go | $10^{171}$ | non résolu : programmes bien plus faibles que les meilleurs humains (faux en 2014) |
Source : interstices.info 2009 (voir la partie liens)
la traduction automatique n'est pas toujours évidente : sémantique, contexte
un texte n'est pas un chiffre, pas de calcul possible
Je ne suggère pas que nous abandonnions les outils d'IA — ce bateau a coulé.
I’m not suggesting we abandon AI tools — that ship has sailed.
Rendre les machines intelligentes
mais on oublie...
Faire faire à une machine (ordinateur, robot) ce que les hommes savent faire
Introduire une partie de l'intelligence humaine dans les algorithmes
Université d'été au Dartmouth Collège, New Hampshire, USA (2 mois, 20 chercheurs)
Raisonnement Machine \(\simeq\) Thinking Machines
Il n'y a pas une IA mais des IA !
Aujourd'hui quand on parle d'IA, on fait référence aux IA Génératives
passe par la modélisation, pas de code, mais une description du résultat à obtenir :
les faits :
pere(michel, jean-michel).
pere(jean-michel, sarah).
les règles de déduction :
grand-pere(X,Z) :- pere(X,Y), pere(Y,Z).
exprimé en calcul des prédicats :
pere(michel, jean-michel).
pere(jean-michel, sarah).
¬pere(X,Y) ∨ ¬pere(Y,Z) ∨ grand-pere(X,Z).
utilisation de l'unification et du principe de résolution de John A. Robinson :
pere(michel,jean-michel) pere(jean-michel, sarah)
¬pere( X , Y ) ∨ ¬pere( Y , Z )
--------------------------------------------------------
grand-pere(michel, sarah).
Problème de la terminaison
p( a )
¬p( X ) ∨ ¬p( f(X) )
¬p( f(f(f(b))) )
donne
p( a ), p( f(a) ), p( f(f(a)) ), etc
logique avec contraintes, nombres premiers
les faits :
entier(100)
les règles de déduction :
R1 -entier(N) | N == 1 -> succes();
R2 -entier(N) -> premier(N), entier(N-1);
R3 -premier(N), premier(D) | N > D, N % D == 0 -> vrai;
à opposer à un style procédural :
pour i de 1 à N faire
si est_premier(i) alors afficher(i)
fin pour
entier premier règles
10 10 R1, R2, R3
9 10 9 R1, R2, R3
8 10 9 8 R1, R2, R3
7 10 9 8 7 R1, R2, R3
6 10 9 8 7 6 R1, R2, R3
à partir de 5 la règle R3 s'applique ainsi que R1 et R2
5 10 9 8 7 6 5
4 10 9 8 7 6 5 4
3 10 9 8 7 6 5 4 3
2 10 9 8 7 6 5 4 3 2
1 arrêt
Extraire de l'information des données, ou classer les données
Exemple des Iris de Fisher
"sepal.length","sepal.width","petal.length","petal.width","variety"
5.1, 3.5, 1.4,. 2, "Setosa"
4.9, 3.0, 1.4, .2, "Setosa"
...
I0000 00:00 StreamExecutor device (0): NVIDIA GeForce RTX 3050, Compute Capability 8.6 I0000 00:00 65852 cuda_dnn.cc:529] Loaded cuDNN version 90701 Temps d'exécution : 10.46 secondes pour 350 epochs 5/5 ━━━━━━━━━━━━━━━━━━━━ 1s 52ms/step Accuracy NN: 0.99 Confusion Matrix NN: [[50 0 0] [ 0 49 1] [ 0 0 50]] Classification Report NN: precision recall f1-score support setosa 1.00 1.00 1.00 50 versicolor 1.00 0.98 0.99 50 virginica 0.98 1.00 0.99 50 accuracy 0.99 150 macro avg 0.99 0.99 0.99 150 weighted avg 0.99 0.99 0.99 150
problèmes avec un vaste espace de recherche
SEND + MORE = MONEY
Attribuer un chiffre à chaque lettre de manière à ce que le calcul soit exact.
Expression sous forme de contraintes :
$S,E,N,D,M,O,R,Y ∊ [0,9]$
9567 + 1085 = 10652
Reconstruction Phylogénétique
A partir de séquences d'ADN de même longueur, créer un arbre binaire qui regroupe les espèces les plus proches sur deux branches associées au même noeud.
Maximum de Parcimonie ou Maximum de Vraisemblance
Parcimonie : nombre de différences entre séquences
S1 | A | C | C | T |
---|---|---|---|---|
S2 | A | G | T | T |
différence | A | C/G | C/T | T |
On a deux différences
dans le cas du Maximum de parcimonie on recherche l'arbre le plus parcimonieux
c'est à dire celui qui a le moins de différences
C'est un problème de minimisation
Etant donné $n$ séquences, il existe :
$$ C_n = \frac{(2n)!}{(n+1)!n!} $$arbres binaires
10 | 4'862 | ~ $5,0×10^{3}$ |
20 | 1'767'263'190 | ~ $1,7×10^{9}$ |
30 | 1'002'242'216'651'368 | ~ $1,0×10^{15}$ |
40 | 680'425'371'729'975'800'390 | ~ $6,8×10^{20}$ |
50 | 509'552'245'179'617'138'054'608'572 | ~ $5,0×10^{26}$ |
Un rapide calcul pour $n=50$, donne le temps nécessaire pour examiner tous les arbres si on génère un arbre en 1 ns :
$$ 5,09×10^{26} × 10^{-9} = 5,09×10^{17}\,s $$ $$ \frac{5,09×10^{17}}{3600×24×365} = 16\_140\_284\_119\,ans $$soit environ $16$ milliards d'années
utilisation de métaheuristiques (du grec ancien εὑρίσκω, heuriskô, « je trouve »)
On vous dépose sur une planète inconnue dont la visibilité est limitée à 10 mètres en raison d'une épais brouillard. Vous devez trouver le point culminant.
problème : vite coincé dans un optimum local
temps de calcul plus important, eugénisme
Processus
croisement et mutation
ces techniques peuvent être utilisées dans d'autres domaines (ex : repliement des protéines, AlphaFold, DeepMind 2018)
problème très difficile : sémantique, contexte
Exemple : Christophe Colomb a découvert l'Amérique
Exemple : MNIST $(784 \rightarrow 10)$
Si trois pommes coûtent 15 centimes combien coûtent 8 pommes ?
un calcul erroné
\[\begin{aligned} C(35, 32) & = (35!) / (32! × (35-32)!) \\ C(35, 32) & = (35 × 34 × 33 × 32!) / (32! × 3!) \\ C(35, 32) & = (35 × 34 × 33) / 6 \\ C(35, 32) & = (65445) / 6 \; ? (39270) \\ C(35, 32) & = 109075 \; ? (6545)\\ \end{aligned}\]Algorithme simple pour trier un tableau d'entiers :
Tableau initial :
7 | 1 | 4 | 5 | 9 | 2 | 3 |
Stockage temporaire du pivot :
7 | 1 | 4 | 3 | 9 | 2 | 5 |
Tableau aprés réordonnancement :
1 | 4 | 3 | 2 | 5 | 7 | 9 |
pour n = 1_000_000, on a:
function tri_rapide(&$tableau) {
$length = count($tableau);
if ($length <= 1) return $tableau;
$pivot = $tableau[0]; // !!! wow !!!
$gauche = $droite = []; // !!! wow !!!
for ($i = 1; $i < $length; $i++) {
if ($tableau[$i] < $pivot) {
$gauche[] = $tableau[$i];
} else {
$droite[] = $tableau[$i];
}
}
$gauche = tri_rapide($gauche);
$droite = tri_rapide($droite);
return array_merge($gauche, [$pivot], $droite);
}
Consommation mémoire
un défaut caché difficilement détectable potentiellement dangereux
ChatGPT a dit : Si par "conscient" tu veux dire avoir une conscience au sens humain (sentir, penser par moi-même, avoir une subjectivité), alors non.
Mais si tu parles de ma capacité à suivre une conversation, à m'adapter à ton style et à me souvenir de certains éléments pertinents pour t'aider, alors oui, dans ce cadre-là, on peut dire que j’ai une forme de "conscience contextuelle".
Pour l’instant, les IA, y compris moi, sont de puissants outils de traitement de l'information, mais elles n'ont ni conscience, ni intention, ni véritable compréhension.
Cela dit, certaines recherches en neurosciences et en intelligence artificielle explorent la possibilité d’une forme de conscience artificielle. Mais il reste une énorme différence entre simuler l’intelligence et l’éprouver réellement.
C'est un point essentiel, surtout avec la tendance à anthropomorphiser l’IA. Beaucoup de gens pensent que ces modèles "comprennent" ou "pensent" comme nous, alors qu’ils ne font que générer des réponses basées sur des probabilités.
jusqu'où irons nous ?
Les dangers liés à l'utilisation des IA :