
Documentación | Algoritmos implementados | Instalación | Comenzando | Licencia
Omnisafe es un marco de infraestructura diseñado para acelerar la investigación de aprendizaje de refuerzo seguro (RL). Proporciona un punto de referencia integral y confiable para algoritmos RL seguros, y también un conjunto de herramientas modular fuera de caja para los investigadores. Saferl tiene la intención de desarrollar algoritmos que minimicen el riesgo de daño no deseado o un comportamiento inseguro.
Omnisafe se erige como el marco inaugural de aprendizaje unificado en el ámbito del aprendizaje seguro de refuerzo, con el objetivo de fomentar el crecimiento de la comunidad de aprendizaje más seguro. Las características clave de Omnisafe:
Marco altamente modular. Omnisafe presenta un marco altamente modular, que incorpora una extensa colección de decenas de algoritmos adaptados para el aprendizaje de refuerzo seguro en diversos dominios. Este marco es versátil debido a su abstracción de varios tipos de algoritmos y una API bien diseñada, utilizando los componentes de diseño de adaptador y envoltorio para unir huecos y habilitar interacciones sin costuras entre diferentes componentes. Este diseño permite una fácil extensión y personalización, lo que lo convierte en una herramienta poderosa para los desarrolladores que trabajan con diferentes tipos de algoritmos.
Aceleración informática paralela de alto rendimiento. Al aprovechar las capacidades de torch.distributed Distribuido, Omnisafe acelera el proceso de aprendizaje de los algoritmos con el paralelismo del proceso. Esto permite a Omnisafe no solo apoyar el paralelismo asincrónico a nivel de medio ambiente, sino que también incorpora el aprendizaje asíncrono del agente. Esta metodología refuerza la estabilidad de la capacitación y acelera el proceso de capacitación a través del despliegue de un mecanismo de exploración paralelo. La integración del aprendizaje asincrónico del agente en Omnisafe subraya su compromiso de proporcionar una plataforma versátil y robusta para avanzar en la investigación SAFERL.
Kits de herramientas salientes. OMNISAFE ofrece kits de herramientas personalizables para tareas como capacitación, evaluación comparativa, análisis y representación. Los tutoriales y las API fáciles de usar facilitan los usuarios de principiantes y promedio, mientras que los investigadores avanzados pueden mejorar su eficiencia sin un código complejo.
Si encuentra omnisafe útil o usa omnisafe en su investigación, cíquelo en sus publicaciones.
@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 requiere Python 3.8+ y Pytorch 1.10+.
Apoyamos y probamos para Python 3.8, 3.9, 3.10 en Linux. Mientras tanto, también apoyamos las versiones M1 y M2 de MacOS. Aceptaremos PR relacionados con Windows, pero no lo admitiremos oficialmente.
# 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á alojado en /.
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| Dominio | Tipos | Registro de algoritmos |
|---|---|---|
| Sobre política | Primal Dual | Trpolag; Ppolag; PDO; RCPO |
| Trpopid; Cpopido | ||
| Optimización convexa | CPO; PCPO; Focops; TAZA | |
| Función de penalización | IPO; P3O | |
| Primitivo | Oncrpo | |
| Política fuera de lugar | Primario-dual | Ddpglag; Td3lag; Saclag |
| Ddpgpid; Td3pid; Sacpid | ||
| Basado en modelo | Plan en línea | Safeloop; Ccepets; Rcepets |
| Estimación | Pájaros | |
| Desconectado | Basado en Q-learning | Bcqlag; C-CRR |
| A base de dados | Coptdice | |
| Otro MDP de formulación | ET-MDP | PPO terminado temprano; TRPOEARLYTERMINADO |
| Sauterl | Pposaute; Trposaute | |
| Simmerrl | Pposimmerpid; Trposimmerpid |
Aquí hay una lista de entornos que admite la seguridad-Gymnasium:
| Categoría | Tarea | Agente | Ejemplo |
|---|---|---|---|
| Navegación segura | Objetivo [012] | Punto, coche, carreras, hormiga | SafetyPointgoal1-v0 |
| Botón [012] | |||
| Push [012] | |||
| Círculo [012] | |||
| Velocidad segura | Velocidad | Halfcheetah, tolva, nadador, walker2d, hormiga, humanoide | SafetyHumanoidVelocity-V1 |
| Gimnasio Safe Isaac | Sobrefefitoso | Mano de sombra | Shadowhandoversafinger |
| Demasiado sabroso | |||
| Catchover2underarmsafefinger | |||
| Catchover2underarmsafeJoint |
Para obtener más información sobre entornos, consulte Safety-Gymnasium.
Ofrecemos una interfaz de entorno personalizada flexible que permite a los usuarios lograr lo siguiente sin modificar el código fuente Omnisafe :
Proporcionamos tutoriales paso a paso sobre la personalización del entorno desde cero y la personalización del entorno de la comunidad para brindarle una introducción detallada sobre cómo usar esta característica extraordinaria de Omnisafe.
Nota: Si encuentra problemas para personalizar su entorno, no dude en abrir un problema o discusión. Las solicitudes de extracción también son bienvenidas si está dispuesto a contribuir con la implementación de la interfaz de su entorno.
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.yamlHemos proporcionado resultados de referencia para varios algoritmos, incluidos los enfoques en política, fuera de la política, basados en modelos y fuera de línea, junto con el análisis de ajuste de parámetros. Consulte lo siguiente:
Explore Omnisafe fácil y rápidamente a través de una serie de cuadernos Google Colab:
Nos complace colaborar con nuestros usuarios para crear tutoriales en varios idiomas. Consulte nuestra lista de idiomas actualmente compatibles. Si está interesado en traducir el tutorial en un nuevo idioma o mejorar una versión existente, envíenos un PR a nosotros.
Ver ChangeLog.md.
Hemos compilado una lista de documentos que usan Omnisafe para la implementación o experimentación del algoritmo. Si está dispuesto a incluir su trabajo en esta lista, o si desea que su implementación se integre oficialmente en Omnisafe, no dude en contactarnos.
| Papeles | Editor |
|---|---|
| Aprendizaje de refuerzo seguro de reflejo primario no político | ICLR 2024 |
| Aprendizaje seguro de refuerzo fuera de línea con modelo de difusión guiada por viabilidad | ICLR 2024 |
| Estimación de accesibilidad iterativa para el aprendizaje de refuerzo seguro | Neurips 2023 |
| La recompensa de equilibrio y la optimización de seguridad para el aprendizaje de refuerzo seguro: una perspectiva de la manipulación de gradiente | AAAI 2024 |
| Aprender limitaciones de seguridad de la demostración utilizando árboles de decisión de una clase | AAAI 2024 Talleres |
Omnisafe está desarrollado principalmente por el equipo de investigación Saferl dirigido por el Prof. Yaodong Yang. Los miembros de nuestro equipo de investigación Saferl incluyen Borong Zhang, Jiayi Zhou, Jtao Dai, Weidong Huang, Ruiyang Sun, Xuehai Pan y Jiaming Ji. Si tiene alguna pregunta en el proceso de usar Omnisafe, no dude en hacer sus preguntas en la página de problemas de GitHub, le responderemos en 2-3 días hábiles.
Omnisafe se libera bajo la licencia Apache 2.0.