BeepAI est capable de trouver l’algorithme le plus efficace pour résoudre des problèmes de logique, mathématique et autres problèmes informatiques dans un réseau de “machines virtuelles” connectées compatibles Android, Windows, Mac, Linux…
Une fois une solution trouvée BeepAI en fait bénéficier les autres instances du réseau grâce à une bibliothèque de “solutions qui se construit au fur et à mesure des résultats trouvés.
Pourquoi BeepAI ?
Certains ont pour hobby de résoudre des grilles de SUDOKU, une de mes passions est de développer des programmes permettant de résoudre ces grilles de SUDOKU et autres énigmes et problèmes de logique tout seul.
Passionné par l’informatique, l’intelligence artificielle et la robotique cela fait depuis plusieurs années que j’avais ce projet de côté prêt à être déployé. Mes premiers essais datent des années 1990 puis repris en 2003 à base de réseaux de neurones et de machines virtuelles, … BeepAI est avant tout un projet personnel, une plateforme de développement en intelligence artificielle que j’adapte à mes projets.
Comment un être humain apprend-il à programmer ?
Lorsqu’un “programmeur” se lance dans l’apprentissage d’un nouveau langage de programmation. Il doit apprendre, telle une langue vivante, une “syntaxe”, un “vocabulaire”, une “grammaire”. Un programme informatique est pourtant bien différent d’une simple prose : la moindre faute de syntaxe ou de logique peut faire s’effondrer tout un projet.
Quelque soit le langage nous retrouvons les mêmes “briques” de base :
- Des variables (un espace en mémoire accessible par un nom)
- Des opérateurs d’affectation, de logique, de mathématique
- Des conditions
- Des boucles
- …
BeepMachine : Machine virtuelle de BeepAI
Avec l’arrivée de machines de plus en plus performantes, il est possible aujourd’hui de “simuler” le fonctionnement d’un ordinateur dans un environnement “virtuel”. C’est même devenu monnaie courante dans bon nombre d’entreprises et industries logicielles.
Ma curiosité m’a amené à me demander ce que serait capable une intelligence artificielle qui pourrait accéder, manipuler, programmer une “machine virtuelle”.
Génération de code : Entre stratégies et puissance de calculs
Pour étudier l’ordonnancement possible des instructions d’un programme informatique, on peut imaginer un véritable jeu d’échecs, où l’on cherche à anticiper les “n” prochains coups.
Plus on essayera d’anticiper les “combinaisons” possibles, et plus nous assisterons à une véritable “explosion” de combinaisons. BeepAI utilise plusieurs fonctions de génération de codes, chaque “programme” ainsi généré, peut être analysé en terme de performance : nombre d’instructions, nombre de déplacements en mémoire, …
BeepCloud: Bibliothèques de solutions utilisées par BeepAI
Le meilleur code pour chaque instance de BeepAI est ensuite partagé dans une bibliothèque en ligne, nommé BeepCloud à laquelle toutes les autres instances de BeepAI peuvent avoir accès et ainsi accélérer.
Temps de calcul et robot autonome
L’intelligence artificielle a besoin plus que tout de “temps de calcul”, pour répondre à ce besoin de nombreux projets mettent en place des services en lignes très puissants.
Un robot autonome ne peut pas “toujours” avoir accès à ces services en ligne, afin de lui permettre de disposer de temps de calcul nécessaire BeepAI est compatible avec la plupart des ordinateurs, tablettes et même certaines consoles de jeu sur lesquelles BeepAI peut s’installer. Chaque instance joue le rôle d’un programmeur avec chacun sa façon de travailler afin d’augmenter les chances de trouver une solution le plus rapidement possible.
Le résultat : du code informatique
La plupart des “intelligences artificielles” ont un fonctionnement plus ou moins opaque, on ne sait que très difficilement “pourquoi” une décision a été prise par l’IA. Cela reste possible mais uniquement avec une très bonne expertise en intelligence artificielle.
BeepAI produit un code informatique compréhensible par un développeur, qui ne nécessite pas d’être un expert en IA pour comprendre son fonctionnement.
Pour faire fonctionner un projet avec le code produit par BeepAI pas besoin d’installer BeepAI non plus ! Le code généré suffit ! Pratique pour des systèmes embarqués limités en ressources mémoire/espace disque.
Évolutions : BeepAI demain…
- Je travaille actuellement sur la virtualisation de “robots”, très pratique pour effectuer des simulations, trouver une solution à un problème physique-robotique, j’en fais bénéficier actuellement BeepAI sur différents projets. Cela sera un module entier à part dans ses prochaines versions.
- Un code plus clair : le code actuellement généré est “sélectionné” en terme de “performances”; les futures versions de BeepAI travaillent également à la clarté du code ainsi généré.
- Performances globales : je travaille également à améliorer les performances de BeepAI. Entre chaque version un travail d’optimisation permet d’améliorer ses performances, un système de BenchMarking est mis en place depuis sa dernière version me permettant d’estimer ses performances en temps réel.
Lien vers le projet BeepAI :
http://robot.beepmaster.com/beepai.php