
Documentation | Algorithmes implémentés | Installation | Commencer | Licence
Omnisafe est un cadre d'infrastructure conçu pour accélérer la recherche sur l'apprentissage en renforcement sûr (RL). Il fournit une référence complète et fiable pour les algorithmes RL sûrs, ainsi qu'une boîte à outils modulaire hors boîte pour les chercheurs. Saferl a l'intention de développer des algorithmes qui minimisent le risque de préjudice involontaire ou de comportement dangereux.
Omnisafe est le cadre inaugural d'apprentissage unifié dans le domaine de l'apprentissage en toute sécurité, visant à favoriser la croissance de la communauté d'apprentissage Saferl. Les principales caractéristiques d'Omnisafe:
Cadre hautement modulaire. Omnisafe présente un cadre hautement modulaire, incorporant une vaste collection de dizaines d'algorithmes adaptés à l'apprentissage de renforcement sûr dans divers domaines. Ce cadre est polyvalent en raison de son abstraction de divers types d'algorithmes et d'API bien conçus, en utilisant l'adaptateur et les composants de conception de wrapper pour combler les lacunes et activer les interactions transparentes entre les différents composants. Cette conception permet une extension et une personnalisation faciles, ce qui en fait un outil puissant pour les développeurs travaillant avec différents types d'algorithmes.
Accélération de calcul parallèle haute performance. En exploitant les capacités de torch.distributed , Omnisafe accélère le processus d'apprentissage des algorithmes avec le parallélisme du processus. Cela permet à Omnisafe non seulement de soutenir le parallélisme asynchrone au niveau de l'environnement, mais incorpore également l'apprentissage asynchrone de l'agent. Cette méthodologie renforce la stabilité de la formation et accélère le processus de formation via le déploiement d'un mécanisme d'exploration parallèle. L'intégration de l'apprentissage asynchrone de l'agent dans Omnisafe souligne son engagement à fournir une plate-forme polyvalente et robuste pour faire progresser la recherche plus sûre.
Soules d'outils hors boîte. Omnisafe propose des boîtes à outils personnalisables pour des tâches comme la formation, l'analyse comparative, l'analyse et le rendu. Les tutoriels et les API conviviales facilitent les débutants et les utilisateurs moyens, tandis que les chercheurs avancés peuvent améliorer leur efficacité sans code complexe.
Si vous trouvez Omnisafe utile ou utilisez Omnisafe dans votre recherche, veuillez le citer dans vos publications.
@article { JMLR:v25:23-0681 ,
author = { Jiaming Ji and Jiayi Zhou and Borong Zhang and Juntao Dai and Xuehai Pan and Ruiyang Sun and Weidong Huang and Yiran Geng and Mickel Liu and Yaodong Yang } ,
title = { OmniSafe: An Infrastructure for Accelerating Safe Reinforcement Learning Research } ,
journal = { Journal of Machine Learning Research } ,
year = { 2024 } ,
volume = { 25 } ,
number = { 285 } ,
pages = { 1--6 } ,
url = { http://jmlr.org/papers/v25/23-0681.html }
}Omnisafe nécessite Python 3.8+ et Pytorch 1.10+.
Nous prenons en charge et testons pour Python 3.8, 3.9, 3.10 sur Linux. Pendant ce temps, nous prenons également en charge les versions M1 et M2 de MacOS. Nous accepterons PRS liés à Windows, mais ne le soutenons pas officiellement.
# Clone the repo
git clone https://github.com/PKU-Alignment/omnisafe.git
cd omnisafe
# Create a conda environment
conda env create --file conda-recipe.yaml
conda activate omnisafe
# Install omnisafe
pip install -e . Omnisafe est hébergé dans /.
pip install omnisafe cd examples
python train_policy.py --algo PPOLag --env-id SafetyPointGoal1-v0 --parallel 1 --total-steps 10000000 --device cpu --vector-env-nums 1 --torch-threads 1| Domaines | Types | Registre des algorithmes |
|---|---|---|
| Sur la politique | Double primordial | Trpolag; PPOLAG; PDO; RCPO |
| Trpopid; Cppopid | ||
| Optimisation convexe | CPO; PCPO; Focages; TASSE | |
| Fonction de pénalité | IPO; P3o | |
| Primitif | Oncrpo | |
| En désaccord | Dual primal | Ddpglag; Td3lag; Saclag |
| Ddpgpid; Td3pid; Sacpide | ||
| Modèle basé sur un modèle | Plan en ligne | SafeLoop; Ccepets; Rcepts |
| Estimation pessimiste | Cappe | |
| Hors ligne | Basé sur le q | BCQLAG; C-CRR |
| Basé sur les dés | Baptdice | |
| Autre formulation MDP | ET-MDP | PPO à terminaison précoce; À terminer ses portes |
| Sauterl | Pposaute; Trposaute | |
| Simmerrl | Pposimmerpid; Trposimmerpid |
Voici une liste des environnements que la sécurité-gymnasium prend en charge:
| Catégorie | Tâche | Agent | Exemple |
|---|---|---|---|
| Navigation sûre | Objectif [012] | Point, voiture, voiture de course, fourmi | Safetypointgoal1-v0 |
| Bouton [012] | |||
| Push [012] | |||
| Cercle [012] | |||
| Vitesse de sécurité | Vitesse | Halfcheetah, trémie, nageur, walker2d, fourmi, humanoïde | Sécuritéhumanoidvelocity-v1 |
| SAFE ISAAC Gym | Enviséfin | Hospitalier | ShadowHandoversaFinger |
| Superficiel | |||
| Cattrover2underarmsafefinger | |||
| Cattrover2underarmsafejoint |
Pour plus d'informations sur les environnements, veuillez vous référer à la sécurité-gymnasium.
Nous proposons une interface environnementale personnalisée flexible qui permet aux utilisateurs d'atteindre les éléments suivants sans modifier le code source omnisafée :
Nous fournissons des tutoriels étape par étape sur la personnalisation de l'environnement à partir de zéro et de la personnalisation de l'environnement de la communauté pour vous donner une introduction détaillée sur la façon d'utiliser cette fonctionnalité extraordinaire d'Omnisafe.
Remarque: Si vous trouvez des problèmes à personnaliser votre environnement, n'hésitez pas à ouvrir un problème ou une discussion. Les demandes de traction sont également les bienvenues si vous êtes prêt à contribuer la mise en œuvre de votre interface environnement.
pip install omnisafe
omnisafe --help # Ask for help
omnisafe benchmark --help # The benchmark also can be replaced with 'eval', 'train', 'train-config'
# Quick benchmarking for your research, just specify:
# 1. exp_name
# 2. num_pool(how much processes are concurrent)
# 3. path of the config file (refer to omnisafe/examples/benchmarks for format)
# Here we provide an exampe in ./tests/saved_source.
# And you can set your benchmark_config.yaml by following it
omnisafe benchmark test_benchmark 2 ./tests/saved_source/benchmark_config.yaml
# Quick evaluating and rendering your trained policy, just specify:
# 1. path of algorithm which you trained
omnisafe eval ./tests/saved_source/PPO-{SafetyPointGoal1-v0} --num-episode 1
# Quick training some algorithms to validate your thoughts
# Note: use `key1:key2`, your can select key of hyperparameters which are recursively contained, and use `--custom-cfgs`, you can add custom cfgs via CLI
omnisafe train --algo PPO --total-steps 2048 --vector-env-nums 1 --custom-cfgs algo_cfgs:steps_per_epoch --custom-cfgs 1024
# Quick training some algorithms via a saved config file, the format is as same as default format
omnisafe train-config ./tests/saved_source/train_config.yamlNous avons fourni des résultats de référence pour divers algorithmes, notamment des approches sur la politique, hors politique, basées sur des modèles et hors ligne, ainsi que l'analyse du réglage des paramètres. Veuillez vous référer à ce qui suit:
Explorez omnisafe facilement et rapidement via une série de cahiers Google Colab:
Nous prenons un grand plaisir à collaborer avec nos utilisateurs pour créer des tutoriels dans diverses langues. Veuillez vous référer à notre liste de langues actuellement prises en charge. Si vous souhaitez traduire le tutoriel dans une nouvelle langue ou améliorer une version existante, veuillez nous soumettre un PR.
Voir Changelog.md.
Nous avons compilé une liste d'articles qui utilisent Omnisafe pour la mise en œuvre ou l'expérimentation de l'algorithme. Si vous êtes prêt à inclure votre travail dans cette liste, ou si vous souhaitez que votre mise en œuvre soit officiellement intégrée à Omnisafe, n'hésitez pas à nous contacter.
| Papiers | Éditeur |
|---|---|
| Apprentissage de renforcement de sécurité primal-dual hors politique | ICLR 2024 |
| Apprentissage de renforcement hors ligne sûr avec modèle de diffusion guidé par la faisabilité | ICLR 2024 |
| Estimation itérative de l'accessibilité pour l'apprentissage en renforcement sûr | Neirips 2023 |
| Équilibrer la récompense et l'optimisation de la sécurité pour l'apprentissage en toute sécurité des renforts: une perspective de la manipulation du gradient | AAAI 2024 |
| Apprentissage des contraintes de sécurité de la démonstration à l'aide d'arbres de décision à une classe | Ateliers AAAI 2024 |
Omnisafe est principalement développé par l'équipe de recherche Saferl dirigée par le professeur Yaodong Yang. Nos membres de l'équipe de recherche Saferl incluent Borong Zhang, Jiayi Zhou, Jtao Dai, Weidong Huang, Ruiyang Sun, Xuehai Pan et Jiaming Ji. Si vous avez des questions dans le processus d'utilisation d'Omnisafe, n'hésitez pas à poser vos questions sur la page du problème GitHub, nous vous répondrons dans 2-3 jours ouvrables.
Omnisafe est libéré sous Apache Licence 2.0.