L'écriture d'un code fonctionnel peut être un défi. Même les langages relativement simples comme le HTML exigent du codeur qu'il comprenne la syntaxe spécifique et les outils disponibles. L'écriture de code pour contrôler des robots est encore plus complexe et comporte souvent plusieurs étapes : il y a le code pour détecter les objets, le code pour déclencher les actionneurs qui déplacent les membres du robot, le code pour spécifier quand la tâche est terminée, et ainsi de suite. Il est impossible de programmer un robot pour qu'il ramasse un bloc jaune au lieu d'un bloc rouge si l'on ne connaît pas le langage de codage utilisé par le robot.
Mais les chercheurs en robotique de Google explorent un moyen de résoudre ce problème. Ils ont annoncé avoir mis au point un robot capable d'écrire son propre code de programmation à partir d'instructions en langage naturel. Par exemple, au lieu de devoir plonger dans les fichiers de configuration d'un robot pour changer la couleur du bloc cible de #FF0000 à #FFFF00, vous pourriez simplement taper "ramasser le bloc jaune" et le robot ferait le reste. Les ingénieurs de Google ont mis au point un langage baptisé "Code as Policies" (CaP) qui permet de donner en langage naturel les instructions que le robot doit ensuite programmer lui-même.
Plus précisément, CaP est un modèle de langage spécifique au codage développé à partir du Pathways Language Model (PaLM) de Google pour interpréter les instructions en langage naturel et les transformer en code exécutable. « Avec CaP, nous proposons d'utiliser des modèles de langage pour écrire directement le code du robot via des invites courtes. Nos expériences démontrent que la sortie du code a permis d'améliorer la généralisation et la performance des tâches par rapport à l'apprentissage direct des tâches du robot et à la sortie des actions en langage naturel », ont expliqué les chercheurs de Google dans un billet de blogue.
Le système, tel qu'il est décrit, s'appuie également sur des bibliothèques et des API tierces pour générer au mieux le code adapté à un scénario spécifique, ainsi que sur la prise en charge des langues non anglaises et des emojis. Les informations accessibles dans ces API sont l'une des limites actuelles. Les chercheurs notent : « ces limitations indiquent des pistes de travail pour l'avenir, notamment l'extension des modèles de langage visuel pour décrire des comportements de robot de bas niveau ou la combinaison de CaP avec des algorithmes d'exploration qui peuvent ajouter de manière autonome à l'ensemble des primitives de contrôle ».
Ils ont publié leur étude dans la revue scientifique arxiv. Selon le rapport de l'étude, les chercheurs ont entraîné le modèle en lui donnant des exemples d'instruction (formatées comme des commentaires de code écrits par les développeurs pour expliquer ce que fait le code à quiconque le révise) et le code correspondant. À partir de là, le modèle a été capable de prendre de nouvelles instructions et de "générer de manière autonome un nouveau code qui recompose les appels API, synthétise de nouvelles fonctions et exprime des boucles de rétroaction pour assembler de nouveaux comportements au moment de l'exécution".
Cela signifie qu'étant donné un ensemble d'instructions, il peut développer un code qu'il peut ensuite réutiliser pour des instructions similaires plus tard. « CaP permet à un seul système d'effectuer une variété de tâches robotiques complexes et variées sans formation spécifique à la tâche », notent-ils. Le langage spécifique CaP peut également utiliser les opérations arithmétiques et la logique de langages spécifiques. Par exemple, un modèle formé en Python peut utiliser les boucles if/else et for/while appropriées lorsque cela est nécessaire, et utiliser des bibliothèques tierces pour des fonctionnalités supplémentaires.
Il peut également transformer des descriptions ambiguës telles que "plus vite" et "à gauche" en valeurs numériques précises nécessaires à l'exécution de la tâche. CaP est encore très limité dans ce qu'il peut faire. Il s'appuie sur le modèle de langage sur lequel il est basé pour fournir un contexte à ses instructions. Si celles-ci n'ont pas de sens ou utilisent des paramètres qu'il ne prend pas en charge, il ne peut pas écrire de code. De même, il ne peut apparemment gérer qu'une poignée de paramètres dans une seule invite ; des séquences d'actions plus complexes nécessitant des dizaines de paramètres ne sont tout simplement pas possibles.
En outre, des analystes estiment qu'il y a aussi des problèmes de sécurité : programmer un robot pour qu'il écrive son propre code, c'est un peu comme Skynet. S'il pense que la meilleure façon d'accomplir une tâche est de tourner très vite avec son bras tendu et qu'il y a un humain à proximité, quelqu'un pourrait être blessé. Mais ils pensent qu'il s'agit d'une recherche excitante. Selon ces derniers, avec les robots, l'une des tâches les plus difficiles est de généraliser les comportements qu'ils ont appris. Programmer un robot pour jouer au ping-pong ne le rend pas capable de jouer à d'autres jeux comme le baseball ou le tennis.
Bien que le langage CaP soit encore loin d'une application aussi large dans le monde réel, il permet à un robot d'effectuer un large éventail de tâches complexes sans entraînement spécifique. L'on estime qu'il s'agit d'un grand pas en avant vers la possibilité d'apprendre un jour à un robot capable de jouer à un jeu comment jouer à un autre, sans avoir à tout décomposer en un nouveau code écrit par l'homme.
Sources : Google, Rapport de l'étude, Code as Policies (PaC)
Et vous ?
Quel est votre avis sur le sujet ?
Que pensez-vous de la possibilité de programmer un robot pour qu'il écrive son propre code pour des tâches spécifiques ?
Selon vous, quels sont les avantages d'un tel développement ? Comporte-t-il des inconvénients ?
Selon vous, existe-t-il un risque pour qu'un tel robot échappe au contrôle humain ?
Voir aussi
Un ingénieur licencié par Google aurait affirmé que le chatbot d'IA est « plutôt raciste », et que l'éthique de l'IA chez Google est une « feuille de vigne »
Google rend open source la bibliothèque C++ qu'il utilise pour l'analyse des règles dans les fichiers robots.txt et formalise la spécification REP
Google combine les yeux et les bras de robots physiques avec les connaissances et les capacités de conversation de chatbots virtuels pour aider ses employés à chercher des sodas et des chips
Un ancien travailleur de Google craint que des « robots tueurs » ne provoquent des atrocités massives, l'ingénieur logiciel prévient que l'IA pourrait aussi déclencher accidentellement une guerre