
문서 | 구현 된 알고리즘 | 설치 | 시작하기 | 특허
Omnisafe는 안전한 강화 학습 (RL) 연구를 가속화하도록 설계된 인프라 프레임 워크입니다. 안전한 RL 알고리즘을위한 포괄적이고 안정적인 벤치 마크와 연구원을위한 박스 외 모듈 식 툴킷을 제공합니다. SAFERL은 의도하지 않은 피해 또는 안전하지 않은 행동의 위험을 최소화하는 알고리즘을 개발하려고합니다.
Omnisafe는 안전한 강화 학습 영역에서 최초의 통합 학습 프레임 워크로서, SAFERL 학습 커뮤니티의 성장을 촉진하기위한 것입니다. Omnisafe의 주요 기능 :
고도로 모듈 식 프레임 워크. Omnisafe는 다양한 도메인에 걸쳐 안전한 강화 학습을 위해 맞춤화 된 수십 개의 알고리즘을 통합 한 고도로 모듈 식 프레임 워크를 제시합니다. 이 프레임 워크는 다양한 알고리즘 유형과 잘 설계된 API의 추상화로 인해 어댑터 및 래퍼 디자인 구성 요소를 사용하여 갭 브리지와 다른 구성 요소 간의 완벽한 상호 작용을 가능하게하기 때문에 다재다능합니다. 이 디자인을 사용하면 확장 및 사용자 정의가 쉬워 다양한 유형의 알고리즘으로 작업하는 개발자를위한 강력한 도구가됩니다.
고성능 병렬 컴퓨팅 가속도. torch.distributed 의 기능을 활용함으로써 Omnisafe는 프로세스 병렬 처리로 알고리즘의 학습 프로세스를 가속화합니다. 이를 통해 Omnisafe는 환경 수준의 비동기 평행을 지원할뿐만 아니라 에이전트 비동기 학습을 통합 할 수 있습니다. 이 방법론은 교육 안정성을 강화하고 병렬 탐사 메커니즘의 배치를 통해 훈련 과정을 신속하게합니다. Omnisafe에서 에이전트 비동기 학습의 통합은 SAFERL 연구를 발전시키기위한 다목적이고 강력한 플랫폼을 제공하겠다는 약속을 강조합니다.
박스 외 툴킷. 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+가 필요합니다.
Linux에서 Python 3.8, 3.9, 3.10을 지원하고 테스트합니다. 한편, 우리는 MAS의 M1 및 M2 버전도 지원합니다. 우리는 Windows와 관련된 PRS를 수락하지만 공식적으로 지원하지는 않습니다.
# 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| 도메인 | 유형 | 알고리즘 레지스트리 |
|---|---|---|
| 정책에 | 원시 듀얼 | trpolag; ppolag; pdo; RCPO |
| trpopid; cppopid | ||
| 볼록 최적화 | CPO; PCPO; 초점; 컵 | |
| 페널티 기능 | IPO; P3O | |
| 원시 | oncrpo | |
| 꺼짐 정책 | 원시 이중 | ddpglag; td3lag; saclag |
| DDPGPID; td3pid; sacpid | ||
| 모델 기반 | 온라인 계획 | SAFELOOP; 홍제 체; rcepets |
| 비관적 추정 | 칸막이 | |
| 오프라인 | Q- 러닝 기반 | bcqlag; C-CRR |
| 주사위 기반 | coptdice | |
| 다른 제제 MDP | ET-MDP | PPO 조기 종료; trpoearly Terminated |
| Sauterl | posaute; trposaute | |
| simmerrl | posimmerpid; trposimmerpid |
다음은 Safety-Gymnasium이 지원하는 환경 목록입니다.
| 범주 | 일 | 대리인 | 예 |
|---|---|---|---|
| 안전한 탐색 | 목표 [012] | 포인트, 자동차, 경마장, 개미 | SAFETYPOINTGOAL1-V0 |
| 버튼 [012] | |||
| 푸시 [012] | |||
| Circle [012] | |||
| 안전한 속도 | 속도 | Halfcheetah, Hopper, Swimmer, Walker2d, Ant, Humanoid | 안전 휴마노이드 벨로시티 -V1 |
| 안전한 이삭 체육관 | Axtafefinger | 그림자 | ShadowhandoverSafefinger |
| AdverafeJoint | |||
| Catchover2underArmsAfefinger | |||
| Catchover2underArmsafeJoint |
환경에 대한 자세한 내용은 Safety-Gymnasium을 참조하십시오.
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우리는 매개 변수 튜닝 분석과 함께 정책, 정책 외, 모델 기반 및 오프라인 접근 방식을 포함한 다양한 알고리즘에 대한 벤치 마크 결과를 제공했습니다. 다음을 참조하십시오.
일련의 Google Colab 노트북을 통해 Omnisafe를 쉽고 빠르게 탐색하십시오.
우리는 다양한 언어로 튜토리얼을 만드는 사용자와 협력하는 데 큰 즐거움을줍니다. 현재 지원되는 언어 목록을 참조하십시오. 자습서를 새로운 언어로 번역하거나 기존 버전을 개선하는 데 관심이 있으시면 PR을 친절하게 제출하십시오.
changelog.md를 참조하십시오.
우리는 알고리즘 구현 또는 실험에 Omnisafe를 사용하는 논문 목록을 작성했습니다. 이 목록에 작업을 기꺼이 포함 시키거나 구현을 공식적으로 Omnisafe에 통합하려면 언제든지 문의하십시오.
| 서류 | 발행자 |
|---|---|
| 정책의 원시 이중 안전 강화 학습 | ICLR 2024 |
| 타당성 유도 확산 모델을 갖춘 안전한 오프라인 강화 학습 | ICLR 2024 |
| 안전한 강화 학습을위한 반복 도달 성 추정 | Neurips 2023 |
| 안전한 강화 학습을위한 균형 보상 및 안전 최적화 : 그라디언트 조작의 관점 | AAAI 2024 |
| 일급 의사 결정 트리를 사용한 데모로부터의 안전 제약 학습 | AAAI 2024 워크샵 |
Omnisafe는 주로 Yaodong Yang 교수가 감독 한 Saferl Research 팀에 의해 개발되었습니다. 우리의 SAFERL 리서치 팀원으로는 Borong Zhang, Jiayi Zhou, Jtao Dai, Weidong Huang, Ruiyang Sun, Xuehai Pan 및 Jiating JI가 있습니다. Omnisafe를 사용하는 과정에서 궁금한 점이 있으면 GitHub 문제 페이지에서 질문을 주저하지 말고 2-3 일에 귀하에게 답장을 드리겠습니다.
Omnisafe는 Apache License 2.0에 따라 릴리스됩니다.