
Документация | Реализованные алгоритмы | Установка | Начало работы | Лицензия
Omnisafe - это инфраструктурная структура, предназначенная для ускорения исследований в области безопасного подкрепления (RL). Он обеспечивает комплексный и надежный эталон для безопасных алгоритмов RL, а также модульный инструментарий вне коробки для исследователей. SAFERL намерен разработать алгоритмы, которые минимизируют риск непреднамеренного вреда или небезопасного поведения.
Omnisafe является первой единой рамки обучения в сфере безопасного обучения подкреплению, стремясь стимулировать рост общественного сообщества Saferl. Ключевые особенности Omnisafe:
Высокая модульная структура. Omnisafe представляет очень модульную структуру, включающую обширную коллекцию десятков алгоритмов, разработанных для безопасного обучения подкреплению в разных областях. Эта структура является универсальной из-за его абстракции различных типов алгоритмов и хорошо разработанного API, используя компоненты адаптера и конструкции обертки для промежутка и обеспечивает беспрепятственные взаимодействия между различными компонентами. Этот дизайн обеспечивает легкое расширение и настройку, что делает его мощным инструментом для разработчиков, работающих с различными типами алгоритмов.
Высокопроизводительные параллельные вычисления ускорения. Используя возможности torch.distributed , Omnisafe ускоряет процесс обучения алгоритмов с параллелизмом процесса. Это позволяет Omnisafe не только поддержать асинхронное параллелизм на уровне окружающей среды, но и включать в себя асинхронное обучение агента. Эта методология поддерживает стабильность обучения и ускоряет процесс обучения посредством развертывания механизма параллельного разведки. Интеграция агента асинхронного обучения в Omnisafe подчеркивает свою приверженность предоставлению универсальной и надежной платформы для продвижения Saferl Research.
Вне коробки инструментов. Omnisafe предлагает настраиваемые наборы инструментов для таких задач, как обучение, сравнительный анализ, анализ и рендеринг. Учебные пособия и удобные для пользователя API облегчают начинающим и средним пользователям, в то время как продвинутые исследователи могут повысить свою эффективность без сложного кода.
Если вы считаете Omnisafe полезным или используете Omnisafe в своем исследовании, пожалуйста, укажите это в своих публикациях.
@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 требует Python 3.8+ и Pytorch 1.10+.
Мы поддерживаем и проверяем для Python 3.8, 3.9, 3.10 на Linux. Между тем, мы также поддерживаем версии MacOS M1 и M2. Мы примем PRS, связанные с Windows, но официально не поддержим его.
# 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 размещен в /.
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| Домены | Типы | Алгоритмы реестр |
|---|---|---|
| На политике | Primal Dual | Trpolag; Ppolag; КПД; RCPO |
| Trpopid; Cppopid | ||
| Выпуклая оптимизация | CPO; PCPO; Фокалы; ЧАШКА | |
| Функция штрафа | IPO; P3O | |
| Первичный | Oncrpo | |
| Вне политики | Примально-двойный | Ddpglag; Td3lag; Саклаг |
| Ddpgpid; Td3pid; Сакпид | ||
| Модель на основе | Онлайн -план | SafeLoop; Ccepets; Rcepets |
| Пессимистическая оценка | Капусты | |
| В автономном режиме | Q-обучение на основе | BCQLAG; C-CRR |
| Кости на основе | Coptdice | |
| Другая формулировка MDP | ET-MDP | ППО РАННОСТИЧЕСКИЕ; Trpoearlytermated |
| Sauterl | Pposaute; Trposaute | |
| Simmerrl | Pposimmerpid; Trposimmerpid |
Вот список сред, которые поддерживает безопасность-гимназий:
| Категория | Задача | Агент | Пример |
|---|---|---|---|
| Безопасная навигация | Цель [012] | Точка, автомобиль, гоночный автомобиль, муравей | SafeTypointGoal1-V0 |
| Кнопка [012] | |||
| Толчок [012] | |||
| Круг [012] | |||
| Безопасная скорость | Скорость | Halfetheetah, Hopper, Plimmer, Walker2d, Ant, Humanoid | SafetyHumanoidVelocity-V1 |
| Безопасный тренажерный зал | Упрощающий | Shadowhand | Shadowhandoversafefinger |
| Ограниченная суханка | |||
| Catchover2undermarmsafefinger | |||
| Catchover2undermarmsafejoint |
Для получения дополнительной информации о средах, пожалуйста, обратитесь к гимназии безопасности.
Мы предлагаем гибкий индивидуальный интерфейс среды, который позволяет пользователям достигать следующего , без изменения исходного кода Omnisafe :
Мы предоставляем пошаговые учебные пособия по настройке окружающей среды с нуля и настройки окружающей среды от сообщества, чтобы дать вам подробное представление о том, как использовать эту необычайную особенность Omnisafe.
ПРИМЕЧАНИЕ. Если вы находите проблемы с настройкой окружающей среды, пожалуйста, не стесняйтесь открывать проблему или обсуждение. Запросы на вытягивание также приветствуются, если вы готовы внести свой вклад в реализацию интерфейса вашей среды.
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.yamlМы предоставили контрольные результаты для различных алгоритмов, включая подходы на политике, не политике, на основе моделей и офлайн, а также анализ настройки параметров. Пожалуйста, обратитесь к следующему:
Изучите Omnisafe легко и быстро через серию ноутбуков Google Colab:
Мы получаем большое удовольствие в сотрудничестве с нашими пользователями для создания учебных пособий на различных языках. Пожалуйста, обратитесь к нашему списку поддерживаемых в настоящее время языков. Если вы заинтересованы в переводе учебника на новый язык или улучшение существующей версии, пожалуйста, отправьте нам пиар.
Смотрите Changelog.md.
Мы составили список документов, которые используют Omnisafe для реализации или экспериментов алгоритма. Если вы готовы включить свою работу в этот список, или если вы хотите, чтобы ваша реализация была официально интегрирована в Omnisafe, пожалуйста, не стесняйтесь обращаться к нам.
| Документы | Издатель |
|---|---|
| Неотъемлемое первичное двойное безопасное обучение | ICLR 2024 |
| Безопасное обучение в автономном режиме с моделью диффузии под управлением осуществимости | ICLR 2024 |
| Оценка итеративной достижимости для безопасного обучения подкреплению | Neurips 2023 |
| Вознаграждение баланса и оптимизация безопасности для безопасного обучения подкреплению: перспектива манипуляции с градиентом | AAAI 2024 |
| Ограничения безопасности обучения от демонстрации с использованием одноклассных деревьев решений | AAAI 2024 Семинары |
Omnisafe в основном разрабатывается исследовательской группой SAFERL, направленной профессором Яодонгом Янгом. Наши члены исследовательской группы Saferl включают Борунг Чжан, Цзяйи Чжоу, Jtao Dai, Weidong Huang, Ruiyang Sun, Xuehai Pan и Jiaming Ji. Если у вас есть какие-либо вопросы в процессе использования Omnisafe, не стесняйтесь задавать ваши вопросы на странице выпуска GitHub, мы ответим вам в 2-3 рабочих дня.
Omnisafe выпускается по Apache License 2.0.