The Unity Machine Learning Agents Toolkit ML-Agents est un projet open-source développé par Unity Technologies. Il permet aux jeux et simulations de servir d’environnements pour l’entraînement d’agents intelligents.
Les développeurs et chercheurs peuvent utiliser cet outil pour entraîner des agents à l’aide de méthodes telles que l’apprentissage par renforcement, l’apprentissage par imitation et la neuroévolution via une API Python conviviale.
En utilisant ML-Agents, les développeurs peuvent créer et affiner des agents IA qui s’adaptent à des environnements complexes et améliorent les interactions dans les jeux.

Unity Machine Learning Agents Toolkit
Quelles sont les méthodes d’apprentissage dans Unity ML-Agents ?
Unity ML-Agents propose diverses méthodes d’apprentissage pour entraîner des agents intelligents dans des environnements simulés :
- Apprentissage par renforcement : Les agents apprennent des comportements optimaux par essais et erreurs en recevant des récompenses ou des pénalités en fonction de leurs actions.
- Apprentissage par imitation : Les agents apprennent en observant et en imitant des démonstrations d’experts, ce qui leur permet de reproduire des comportements souhaités.
- Neuroévolution : Cette méthode consiste à faire évoluer des architectures de réseaux neuronaux à l’aide d’algorithmes évolutifs pour développer des comportements efficaces chez les agents.
Pour une démonstration pratique sur la formation de votre premier agent IA avec Unity ML-Agents 1.0, vous pouvez consulter le tutoriel suivant :
Quelles sont les principales fonctionnalités d’Unity ML-Agents ?
Le Unity ML-Agents Toolkit propose une suite complète de fonctionnalités conçues pour faciliter l’entraînement d’agents intelligents dans les environnements Unity.
Les principales fonctionnalités incluent :
● Environnements d’exemple étendus : Fournit plus de 17 environnements Unity pré-construits pour aider les utilisateurs à comprendre et à implémenter des scénarios d’entraînement d’agents.
● SDK Unity flexible : Permet une intégration fluide dans des scènes Unity personnalisées, transformant ainsi n’importe quel projet Unity en un environnement d’apprentissage.
● Prise en charge de divers scénarios d’entraînement : Facilite l’entraînement en solo, en coopération multi-agents et en compétition grâce à des algorithmes d’apprentissage par renforcement profond comme Proximal Policy Optimization (PPO), Soft Actor-Critic (SAC), Multi-Agent Proximal Policy Optimization with Centralized Critic (MA-POCA) et l’auto-entraînement.
● Capacités d’apprentissage par imitation : Permet aux agents d’apprendre à partir de démonstrations en utilisant des algorithmes comme le Behavioral Cloning (BC) et le Generative Adversarial Imitation Learning (GAIL).
● Prise en charge de l’apprentissage par curriculum : Permet de définir des scénarios d’apprentissage par curriculum pour résoudre des tâches complexes en augmentant progressivement la difficulté.
● Randomisation de l’environnement : Favorise l’entraînement d’agents robustes en introduisant des variations dans l’environnement pendant les sessions d’apprentissage.
● Prise de décision à la demande : Offre un contrôle flexible des agents en permettant des prises de décision en fonction des besoins plutôt qu’à des intervalles fixes.
● Entraînement concurrent : Permet l’entraînement en utilisant plusieurs instances d’environnement Unity en parallèle pour accélérer le processus d’apprentissage.
● Inférence multiplateforme : Exploite Unity Sentis pour fournir une prise en charge multiplateforme native, garantissant que les modèles entraînés fonctionnent efficacement sur différentes plateformes.
● Intégration de l’API Python : Fournit une API Python pour contrôler les environnements Unity, facilitant l’utilisation d’algorithmes d’apprentissage personnalisés et l’intégration avec des frameworks de machine learning externes.
Algorithmes pris en charge
Unity ML-Agents propose une gamme d’algorithmes adaptés à différents besoins d’apprentissage :
Catégorie | Algorithme | Description |
Apprentissage par renforcement profond | PPO (Proximal Policy Optimization) | Algorithme on-policy, stable et polyvalent, adapté à une large gamme de tâches. |
SAC (Soft Actor-Critic) | Algorithme off-policy, efficace en échantillonnage, idéal pour les environnements lents, équilibre exploration et exploitation. | |
Récompenses intrinsèques | Curiosité | Encourage l’exploration en récompensant les états nouveaux, utile pour les tâches à faibles récompenses. |
RND (Random Network Distillation) | Récompense les comportements imprévisibles, améliorant l’exploration dans les scénarios difficiles. | |
Apprentissage par imitation | Behavioral Cloning (BC) | Imite les démonstrations d’experts, efficace avec des données d’apprentissage complètes. |
GAIL (Generative Adversarial Imitation Learning) | Utilise l’apprentissage adversarial pour correspondre aux démonstrations, peut être combiné avec des récompenses. |
Quels sont les avantages de Unity ML-Agents ?
Voici les principaux avantages de l’utilisation du Unity ML-Agents Toolkit :
✔️ Open-source et soutenu par la communauté : Unity ML-Agents Toolkit est open-source, permettant aux développeurs et chercheurs de contribuer, donner leur avis et améliorer l’outil via GitHub.
✔️ Intégration avec le moteur Unity : ML-Agents s’intègre parfaitement à Unity, permettant l’utilisation d’environnements 2D, 3D et VR/AR riches pour l’entraînement d’agents intelligents.
✔️ Prise en charge de multiples techniques de ML : Permet l’entraînement en utilisant l’apprentissage par renforcement profond, les stratégies évolutives et d’autres méthodes d’apprentissage automatique via une API Python simple.
✔️ Scénarios d’entraînement flexibles : Offre divers paramètres d’entraînement basés sur la configuration des agents, cerveaux et récompenses, permettant la création d’environnements variés et innovants.
✔️ SDK facile à utiliser : Le SDK inclut un ensemble de projets d’exemple et d’algorithmes de base, le rendant accessible aux débutants comme aux utilisateurs avancés.
✔️ Prise de décision en temps réel : Facilite la prise de décision en temps réel dans des environnements simulés, améliorant le développement d’agents intelligents pour les jeux et simulations.
✔️ Entraînement multi-agents : Prend en charge l’entraînement simultané de plusieurs agents, permettant des scénarios d’interaction complexes dans les environnements.
✔️ Compatibilité multiplateforme : Fonctionne sur diverses plateformes prises en charge par Unity, y compris PC, mobile, AR/VR et plus encore.
✔️ Documentation et ressources riches : Fournit une documentation détaillée, des projets d’exemple et des tutoriels pour aider les utilisateurs à démarrer rapidement.
✔️ Favorise l’innovation : La flexibilité de l’outil inspire les développeurs à créer des environnements uniques et immersifs, repoussant les limites de l’IA dans les jeux et les simulations.
Quelles sont les applications pratiques d’Unity ML-Agents ?
Unity ML-Agents a une large gamme d’applications qui s’étendent aux jeux vidéo, à la recherche et même aux industries du monde réel, notamment :
- PNJ plus intelligents dans les jeux
Unity ML-Agents entraîne les personnages non joueurs (PNJ) à agir plus comme de vraies personnes, en apprenant à poursuivre ou esquiver sans scripts fixes. Par exemple, un ennemi pourrait apprendre à vous contourner en fonction de votre style de jeu.
- Tests de jeu et assurance qualité
Il permet aux agents de jouer à un jeu pour détecter des bugs, comme le fait de rester coincé dans des murs, ce qui fait gagner un temps précieux aux testeurs. Vous pouvez les entraîner à parcourir les niveaux et repérer des problèmes que les humains pourraient manquer.
- Retour d’expérience sur la conception des jeux avant leur sortie
Les agents testent un jeu avant sa sortie, indiquant si les niveaux sont trop difficiles ou trop faciles pour les joueurs. Imaginez-les comme des joueurs simulés donnant un retour sur ce qui est amusant ou problématique.
- Recherche en IA et évaluation comparative
Les chercheurs l’utilisent pour construire des scénarios complexes, comme l’Obstacle Tower, afin d’évaluer le niveau d’intelligence que peut atteindre l’IA. C’est un moyen de tester de nouvelles idées dans un monde 3D réaliste.
- Robotique et simulations du monde réel
Il permet d’entraîner des robots dans Unity pour effectuer des tâches comme la manipulation d’objets avant de les tester dans le monde réel. Cela permet d’économiser de l’argent et d’éviter les dommages matériels pendant l’apprentissage.
- Scénarios multi-agents (coopération ou compétition)
Vous pouvez entraîner plusieurs agents à collaborer, comme une équipe qui se passe un ballon dans un jeu. Ou ils peuvent s’affronter, en s’améliorant en jouant les uns contre les autres.
- Expériences créatives et prototypes
Les utilisateurs l’emploient pour des projets amusants et originaux, comme un oiseau IA apprenant à attraper de la nourriture dans une forêt. C’est idéal pour tester des concepts innovants sans avoir besoin d’une grande équipe ou d’un budget important.
Comment configurer Unity ML-Agents ?
La configuration d’Unity ML-Agents implique l’installation d’Unity, la configuration de Python et l’intégration du ML-Agents Toolkit.
Voici un guide étape par étape :
Installer Unity
- Télécharger Unity Hub : Obtenez Unity Hub depuis le site web d’Unity.
- Installer Unity Editor : Via Unity Hub, installez Unity Editor version 2023.2 ou ultérieure.
Installer Python
- Télécharger Python 3.10.12 : Assurez-vous d’avoir installé Python version 3.10.12, car elle est compatible avec ML-Agents.
Configurer un environnement virtuel Python
- Avec Conda : Si vous avez Conda installé, créez et activez un environnement virtuel :
conda create -n mlagents python=3.10.12 conda activate mlagents
- Avec venv : Alternativement, utilisez le module venv intégré de Python :
python -m venv mlagents source mlagents/bin/activate # Sous Windows, utilisez 'mlagents\Scripts\activate'
Installer les packages Python ML-Agents
- Installer via pip : Dans l’environnement virtuel activé, installez les packages ML-Agents :
pip install mlagents
Intégrer ML-Agents à Unity
- Ouvrir un projet Unity : Lancez Unity et ouvrez un projet existant ou créez-en un nouveau.
- Accéder au gestionnaire de packages : Allez dans Fenêtre > Gestionnaire de packages.
- Ajouter le package ML-Agents : Cliquez sur le bouton « + », sélectionnez « Ajouter un package par nom… », et entrez com.unity.ml-agents.
6. Vérifier l’installation
- Importer des scènes d’exemple : Dans le gestionnaire de packages, localisez le package ML-Agents et importez la scène d’exemple « 3D Balance Ball ».
- Lancer la scène : Ouvrez la scène importée et appuyez sur le bouton Play pour observer les agents pré-entraînés en action.
FAQ
Qu’est-ce qu’un agent en apprentissage automatique ?
Les ML-Agents d’Unity peuvent-ils être utilisés pour des jeux 2D ?
Une expérience préalable en apprentissage automatique est-elle nécessaire pour utiliser Unity ML-Agents ?
Quels langages de programmation sont nécessaires pour travailler avec Unity ML-Agents ?
Y a-t-il des limitations à l’utilisation d’Unity ML-Agents ?
Comment fonctionnent les ML-Agents ?
Quels algorithmes les ML-Agents utilisent-ils ?
Conclusion
Unity ML-Agents permet aux développeurs de transformer les simulations Unity en environnements interactifs pour l’entraînement d’agents IA. Il rend l’apprentissage automatique avancé accessible grâce à une approche pratique et expérimentale.
De l’apprentissage par renforcement à la robotique, Unity ML-Agents offre une plateforme pour explorer, tester et améliorer les modèles d’IA dans un cadre dynamique et engageant. Consultez le glossaire de l’IA pour découvrir plus de termes clés sur l’intelligence artificielle et les agents IA.