Ma thèse a contributé un truc plutôt simple. Vous donnez des exemples d'interactions d'un système :
Les portes du train sont ouvertes, elles se ferment, le train démarre, s'arrète, les portes s'ouvent
Et des contre exemples
Les portes sont ouvertes, elles se ferment, le train démarre, les portent s'ouvent
Vous donnez aussi un Oracle, qui peut classifier de nouvelles interactions comme étant acceptables ou pas.
L'algorithme d'IA permet de généraliser depuis ces exemples et contre-exemples et génère un "programme" qui gère le train et ses portes. Il pose les bonnes questions à l'Oracle pour guider vers le bon programme *
Une contribution de mon collègue Christophe Damas découvre et propose les contraintes générales du système :
Le train ne peut pas rouler les portes ouvertes
Ces contraintes peuvent même être injectées dans le premier algo pour garantir que le programme généré ne les violera jamais.
Et on conçoit ainsi de manière incrémentale sous contraintes (et non sous tests automatisés comme en developpement Agile).
Rétrospectivement, c'est plutôt élégant sur le plan théorique 😊
En pratique, ça marchait plus ou mois. Je me rapelle de débats passionnés avec mon co-promoteur Pierre Dupont sur le nécessaire "biais d'apprentissage" :
Dans notre cas, le système cherchait les plus petits programmes, et était absolument incapable de faire ce qu'on appelle des rafinements du domaine: élargir le cadre, revoir l'architecture, inventer de nouvelles interactions, gérer les conflits d'une conception incrémentale.
Fast-forward 15 ans plus tard.
J'utilise l'IA pour coder.
Dévinez quoi ?
Le code que cela génère est toujours "un peu trop court pour la vision". Et c'est l'enfer quand on cherche à élargir le cadre, revoir l'architecture, ajouter de nouvelles interactions, gérer les conflits d'une conception incrémentale.
La grosse différence, c'est que ma thèse n'a pas coûté 500 milliards de dollars 😂
Plus sérieusement, je suis sûr que celui ou celle qui dépasse cette limite aura le prix Nobel.
Et tout aussi sûr qu'on y est largement pas.
#SoftwareEngineering #IA
- si vous voulez toute l'histoire, l'algo de machine learning existait, on lui a contribué l'Oracle et la prise en compte des contraintes. Et les "programmes" qu'il génère sont des machines à états plutôt simples.