
Dokumentation | Implementierte Algorithmen | Installation | Erste Schritte | Lizenz
Omnisafe ist ein infrastrukturelles Rahmen für die Beschleunigung der Forschung für sichere Verstärkung (RL). Es bietet einen umfassenden und zuverlässigen Benchmark für sichere RL-Algorithmen sowie ein modulares Out-of-Box-Toolkit für Forscher. Saferl beabsichtigt, Algorithmen zu entwickeln, die das Risiko eines unbeabsichtigten Schadens oder eines unsicheren Verhaltens minimieren.
Omnisafe ist der erste einheitliche Lernrahmen im Bereich des sicheren Lernens der Verstärkung, um das Wachstum der Saferl Learning Community zu fördern. Die Schlüsselmerkmale von Omnisafe:
Hoch modularer Rahmen. OmNisafe präsentiert einen hochmodularen Rahmen, der eine umfangreiche Sammlung von Zehn Algorithmen enthält, die auf verschiedene Domänen in verschiedenen Bereichen zugeschnitten sind. Dieses Framework ist aufgrund seiner Abstraktion verschiedener Algorithmustypen und gut gestalteter API vielseitig und unter Verwendung des Adapter- und Wrapper-Designkomponenten zum Brücken von Lücken und zur Aktivierung nahtloser Wechselwirkungen zwischen verschiedenen Komponenten. Dieses Design ermöglicht eine einfache Erweiterung und Anpassung und macht es zu einem leistungsstarken Werkzeug für Entwickler, die mit verschiedenen Arten von Algorithmen arbeiten.
Hochleistungs-Parallelcomputerbeschleunigung. Durch die Nutzung der Fähigkeiten der torch.distributed . Desvertastet beschleunigt Omnisafe den Lernprozess von Algorithmen mit Prozessparallelität. Dies ermöglicht Omnisafe nicht nur, asynchrone Parallelität auf Umweltebene zu unterstützen, sondern beinhaltet auch das asynchrone Lernen des Agenten. Diese Methodik boppelt die Trainingsstabilität und beschleunigt den Schulungsprozess durch den Einsatz eines parallelen Explorationsmechanismus. Die Integration des asynchronen Lernens von Agenten in Omnisafe unterstreicht das Engagement für eine vielseitige und robuste Plattform für die Förderung der Saferl -Forschung.
Out-of-Box-Toolkits. OmNisafe bietet anpassbare Toolkits für Aufgaben wie Training, Benchmarking, Analyse und Rendering. Tutorials und benutzerfreundliche APIs erleichtern Anfänger und durchschnittliche Benutzer, während erweiterte Forscher ihre Effizienz ohne komplexen Code verbessern können.
Wenn Sie Omnisafe nützlich finden oder Omnisafe in Ihrer Forschung verwenden, zitieren Sie es bitte in Ihren Veröffentlichungen.
@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 benötigt Python 3.8+ und Pytorch 1.10+.
Wir unterstützen und testen für Python 3.8, 3.9, 3.10 unter Linux. In der Zwischenzeit unterstützen wir auch M1- und M2 -Versionen von macOS. Wir werden PRS im Zusammenhang mit Windows akzeptieren, aber sie nicht offiziell unterstützen.
# 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 wird in / gehostet.
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| Domänen | Typen | Algorithmenregister |
|---|---|---|
| Auf Politik | Ursprüngliches Dual | Trpolag; Ppolag; Pdo; RCPO |
| Trpopid; Cppopid | ||
| Konvexe Optimierung | CPO; PCPO; Fokus; TASSE | |
| Straffunktion | IPO; P3o | |
| Ursprünglich | Oncrpo | |
| Aus -Richtlinie | Ursprüngliches Dual | Ddpglag; Td3lag; Saclag |
| DDPGPID; Td3pid; Sacpid | ||
| Modellbasiert | Online -Plan | Safeloop; Ccepets; Rcepets |
| Pessimistische Schätzung | Cappets | |
| Offline | Q-Learning basiert | Bcqlag; C-CRR |
| Würfelbasierte | Coptdice | |
| Andere Formulierung MDP | ET-MDP | PPO -Estentate; Trpoearlyterminiert |
| Sauterl | Pposaute; Trposaute | |
| Suchrl | Pposimmerpid; Trposimmerpid |
Hier finden Sie eine Liste von Umgebungen, die Sicherheitsgymnasien unterstützt:
| Kategorie | Aufgabe | Agent | Beispiel |
|---|---|---|---|
| Sichere Navigation | Ziel [012] | Punkt, Auto, Rennwagen, Ameise | Safetypointgoal1-v0 |
| Taste [012] | |||
| Push [012] | |||
| Kreis [012] | |||
| Sichere Geschwindigkeit | Geschwindigkeit | Halbcheet, Hopper, Schwimmer, Walker2d, Ant, Humanoid | SafetyHumanoidvelocity-V1 |
| Sicheres Isaac -Fitnessstudio | Overafefinger | Schattenhand | ShadowHandoversafefinger |
| Übermäßig | |||
| Catchover2Underarmsafefinger | |||
| Catchover2 :undarmsafeJoint |
Weitere Informationen zu Umgebungen finden Sie in Safety-Gymnasium.
Wir bieten eine flexible benutzerdefinierte Umgebungsoberfläche, mit der Benutzer Folgendes erreichen können , ohne den Omnisafe -Quellcode zu ändern :
Wir bieten Schritt-für-Schritt-Tutorials zur Anpassung der Umgebungsanpassungen von Grund auf und der Umweltanpassung von der Community, um Ihnen eine detaillierte Einführung zur Verwendung dieser außergewöhnlichen Funktion von Omnisafe zu erhalten.
Hinweis: Wenn Sie Probleme haben, Ihre Umgebung anzupassen, können Sie bitte ein Problem oder eine Diskussion eröffnen. Pull -Anfragen werden auch begrüßt, wenn Sie bereit sind, die Implementierung Ihrer Umgebungsschnittstelle beizutragen.
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.yamlWir haben Benchmark-Ergebnisse für verschiedene Algorithmen geliefert, einschließlich nicht-polizistischer, offpolitischer, modellbasiertes und offlineer Ansätze sowie Parameter-Tuning-Analyse. Bitte beachten Sie Folgendes:
Entdecken Sie Omnisafe einfach und schnell über eine Reihe von Google Colab -Notizbüchern:
Wir haben uns sehr erfreut, mit unseren Benutzern zusammenzuarbeiten, um Tutorials in verschiedenen Sprachen zu erstellen. In unserer Liste der derzeit unterstützten Sprachen finden Sie bitte. Wenn Sie daran interessiert sind, das Tutorial in eine neue Sprache zu übersetzen oder eine vorhandene Version zu verbessern, senden Sie uns bitte eine PR an uns.
Siehe ChangeLog.md.
Wir haben eine Liste von Artikel zusammengestellt, die Omnisafe für die Implementierung oder Experimente von Algorithmus verwenden. Wenn Sie bereit sind, Ihre Arbeit in diese Liste aufzunehmen, oder wenn Sie Ihre Implementierung offiziell in Omnisafe integrieren möchten, können Sie uns gerne kontaktieren.
| Papiere | Herausgeber |
|---|---|
| Off-Policy Primal-Dual Safe verstärkte Lernen | ICLR 2024 |
| Sicheres Offline-Verstärkungslernen mit machbarkeitsgeführtem Diffusionsmodell | ICLR 2024 |
| Iterative Erreichbarkeitsschätzung für ein sicheres Lernen zur Verstärkung | Neurips 2023 |
| Balance -Belohnung und Sicherheitsoptimierung für ein sicheres Verstärkungslernen: Eine Perspektive der Gradientenmanipulation | AAAI 2024 |
| Lernsicherheitsbeschränkungen aus der Demonstration unter Verwendung von Entscheidungsbäumen mit Einklassen | AAAI 2024 Workshops |
Omnisafe wurde hauptsächlich vom Saferl -Forschungsteam unter der Regie von Prof. Yaodong Yang entwickelt. Zu unseren Mitgliedern des Saferl -Forschungsteams zählen Borong Zhang, Jiayi Zhou, Jtao Dai, Weidong Huang, Ruiyang Sun, Xuehai Pan und Jiaming Ji. Wenn Sie bei der Verwendung von Omnisafe Fragen haben, zögern Sie nicht, Ihre Fragen auf der GitHub-Ausgabeseite zu stellen, wir werden Ihnen in 2-3 Arbeitstagen antworten.
Omnisafe wird unter Apache -Lizenz 2.0 veröffentlicht.