# Utilisation de ML-Agents sur Hugging Face

`ml-agents` est un kit d’outils open source qui permet aux jeux et simulations créés avec Unity de servir d’environnements pour l’entraînement d’agents intelligents.

## Explorer ML-Agents dans le Hub

Vous pouvez trouver les modèles `ml-agents` en filtrant à gauche de la [page des modèles](https://huggingface.co/models?library=ml-agents).

Tous les modèles du Hub sont dotés de fonctionnalités utiles :
1. Une carte de modèle générée automatiquement, avec une description, une configuration d'entraînement et plus encore.
2. Balises de métadonnées qui aident à la découvrabilité.
3. Fichiers de récapitulatif Tensorboard pour visualiser les métriques d'entraînement.
4. Un lien vers la démo web Spaces où vous pouvez visualiser votre agent en train de jouer dans votre navigateur.

## Installer la bibliothèque

Pour installer la bibliothèque `ml-agents`, vous devez cloner le dépôt :

```
# Clone the repository
git clone https://github.com/Unity-Technologies/ml-agents

# Go inside the repository and install the package
cd ml-agents
pip3 install -e ./ml-agents-envs
pip3 install -e ./ml-agents
```

## Utilisation de modèles existants

Vous pouvez simplement télécharger un modèle depuis le Hub à l'aide de `mlagents-load-from-hf`.

```
mlagents-load-from-hf --repo-id="ThomasSimonini/MLAgents-Pyramids" --local-dir="./downloads"
```

Vous devez définir deux paramètres :
- `--repo-id` : le nom du dépôt Hugging Face que vous souhaitez télécharger.
- `--local-dir` : le chemin de téléchargement du modèle.

## Visualiser un agent en train de jouer

Vous pouvez facilement regarder n’importe quel modèle jouer directement dans votre navigateur :

1. Accédez à votre dépôt de modèle.
2. Dans la section `Watch Your Agent Play`, cliquez sur le lien.
3. Dans la démonstration, à l'étape 1, choisissez votre dépôt de modèle, qui correspond à l'identifiant du modèle.
4. À l'étape 2, choisissez le modèle que vous souhaitez rejouer.

## Partager vos modèles

Vous pouvez facilement téléverser vos modèles à l'aide de `mlagents-push-to-hf` :

```
mlagents-push-to-hf --run-id="First Training" --local-dir="results/First Training" --repo-id="ThomasSimonini/MLAgents-Pyramids" --commit-message="Pyramids"
```

Vous devez définir quatre paramètres :
- `--run-id` : le nom de l'identifiant d'exécution d'entraînement.
- `--local-dir` : l’endroit où le modèle a été enregistré.
- `--repo-id` : le nom du dépôt Hugging Face que vous souhaitez créer ou mettre à jour. Il est de la forme `<your huggingface username>/<the repo name>`.
- `--commit-message`.

## Ressources supplémentaires

* Documentation [ML-Agents](https://github.com/Unity-Technologies/ml-agents/blob/develop/docs/Hugging-Face-Integration.md)
* Démonstrations officielles des espaces Unity ML-Agents [demos](https://huggingface.co/unity)

