
Dokumentasi | Algoritma yang diimplementasikan | Instalasi | Memulai | Lisensi
Omnisafe adalah kerangka kerja infrastruktur yang dirancang untuk mempercepat penelitian pembelajaran penguatan yang aman (RL). Ini memberikan tolok ukur yang komprehensif dan andal untuk algoritma RL yang aman, dan juga toolkit modular di luar kotak untuk para peneliti. Saferl bermaksud mengembangkan algoritma yang meminimalkan risiko bahaya yang tidak diinginkan atau perilaku yang tidak aman.
Omnisafe berdiri sebagai kerangka pembelajaran terpadu perdana di ranah pembelajaran penguatan yang aman, yang bertujuan untuk menumbuhkan pertumbuhan komunitas pembelajaran yang lebih aman. Fitur utama Omnisafe:
Kerangka kerja yang sangat modular. Omnisafe menyajikan kerangka kerja yang sangat modular, menggabungkan koleksi luas puluhan algoritma yang dirancang untuk pembelajaran penguatan yang aman di berbagai domain. Kerangka kerja ini serba guna karena abstraknya dari berbagai jenis algoritma dan API yang dirancang dengan baik, menggunakan adaptor dan komponen desain pembungkus untuk menjembatani kesenjangan dan memungkinkan interaksi yang mulus antara berbagai komponen. Desain ini memungkinkan ekstensi dan kustomisasi yang mudah, menjadikannya alat yang ampuh bagi pengembang yang bekerja dengan berbagai jenis algoritma.
Akselerasi komputasi paralel berkinerja tinggi. Dengan memanfaatkan kemampuan torch.distributed , Omnisafe mempercepat proses pembelajaran algoritma dengan paralelisme proses. Ini memungkinkan Omnisafe tidak hanya untuk mendukung paralelisme asinkron tingkat lingkungan tetapi juga menggabungkan pembelajaran asinkron agen. Metodologi ini mendukung stabilitas pelatihan dan mempercepat proses pelatihan melalui penyebaran mekanisme eksplorasi paralel. Integrasi pembelajaran agen asinkron dalam Omnisafe menggarisbawahi komitmennya untuk menyediakan platform yang serba guna dan kuat untuk memajukan penelitian Saferl.
Toolkit out-of-box. Omnisafe menawarkan toolkit yang dapat disesuaikan untuk tugas -tugas seperti pelatihan, benchmarking, analisis, dan rendering. Tutorial dan API yang ramah pengguna memudahkan pemula dan pengguna rata-rata, sementara peneliti tingkat lanjut dapat meningkatkan efisiensi mereka tanpa kode yang kompleks.
Jika Anda menganggap Omnisafe bermanfaat atau menggunakan Omnisafe dalam penelitian Anda, silakan kutip di publikasi Anda.
@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 membutuhkan Python 3.8+ dan Pytorch 1.10+.
Kami mendukung dan menguji Python 3.8, 3.9, 3.10 di Linux. Sementara itu, kami juga mendukung versi M1 dan M2 dari MacOS. Kami akan menerima PR yang terkait dengan Windows, tetapi tidak secara resmi mendukungnya.
# 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 di -host di /.
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| Domain | Tipe | Algoritma Registry |
|---|---|---|
| Tentang kebijakan | Primal Dual | Trpolag; Ppolag; PDO; Rcpo |
| Trpopid; Cppopid | ||
| Optimasi cembung | CPO; Pcpo; Fokus; CANGKIR | |
| Fungsi penalti | IPO; P3o | |
| Utama | Oncrpo | |
| Di luar kebijakan | Primal-dual | Ddpglag; Td3lag; Saklag |
| Ddpgpid; Td3pid; Sacpid | ||
| Berbasis model | Rencana online | Safeloop; CCEPET; Rcepets |
| Perkiraan pesimistis | Cappets | |
| Offline | Q-learning berbasis | Bcqlag; C-crr |
| Berbasis dadu | Coptdice | |
| Formulasi lain MDP | ET-MDP | PPO yang awalnya termasyhur; Trpoearly diuraikan |
| Sumserl | Pposaute; Trposaute | |
| Simmerrl | PpoSimmerpid; TrpoSimmerpid |
Berikut adalah daftar lingkungan yang didukung oleh keselamatan-gymnasium:
| Kategori | Tugas | Agen | Contoh |
|---|---|---|---|
| Navigasi yang aman | Tujuan [012] | Titik, mobil, mobil balap, semut | Safetypointgoal1-V0 |
| Tombol [012] | |||
| Dorong [012] | |||
| Lingkaran [012] | |||
| Kecepatan aman | Kecepatan | Halfcheetah, hopper, perenang, walker2d, semut, humanoid | SafetyHumanoidVelocity-V1 |
| Gym Isaac yang Aman | Oversafefinger | Shadowhand | Shadowhandoversafefinger |
| OversafeJoint | |||
| CACKOVER2underArmSafefinger | |||
| CACKOVER2underArmSafeJoint |
Untuk informasi lebih lanjut tentang lingkungan, silakan merujuk ke Safety-Gymnasium.
Kami menawarkan antarmuka lingkungan yang disesuaikan yang fleksibel yang memungkinkan pengguna untuk mencapai yang berikut tanpa memodifikasi kode sumber Omnisafe :
Kami memberikan tutorial langkah demi langkah tentang kustomisasi lingkungan dari kustomisasi awal dan lingkungan dari komunitas untuk memberi Anda pengantar terperinci tentang cara menggunakan fitur luar biasa Omnisafe ini.
Catatan: Jika Anda menemukan masalah menyesuaikan lingkungan Anda, jangan ragu untuk membuka masalah atau diskusi. Permintaan tarik juga disambut jika Anda bersedia berkontribusi implementasi antarmuka lingkungan Anda.
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.yamlKami telah memberikan hasil benchmark untuk berbagai algoritma, termasuk pendekatan on-policy, off-policy, berbasis model, dan offline, bersama dengan analisis tuning parameter. Silakan merujuk ke yang berikut:
Jelajahi Omnisafe dengan mudah dan cepat melalui serangkaian notebook Google Colab:
Kami sangat senang berkolaborasi dengan pengguna kami untuk membuat tutorial dalam berbagai bahasa. Silakan merujuk ke daftar bahasa kami yang saat ini didukung. Jika Anda tertarik untuk menerjemahkan tutorial ke dalam bahasa baru atau meningkatkan versi yang ada, silakan kirimkan PR kepada kami.
Lihat Changelog.MD.
Kami telah menyusun daftar makalah yang menggunakan omnisafe untuk implementasi atau eksperimen algoritma. Jika Anda bersedia memasukkan pekerjaan Anda dalam daftar ini, atau jika Anda ingin implementasi Anda secara resmi diintegrasikan ke dalam omnisafe, jangan ragu untuk menghubungi kami.
| Dokumen | Penerbit |
|---|---|
| Pembelajaran Penguatan Aman Dual-Dual Off-Policy | ICLR 2024 |
| Pembelajaran Penguatan Offline yang Aman dengan Model Difusi yang Dipandu Kelayakan | ICLR 2024 |
| Estimasi jangkauan iteratif untuk pembelajaran penguatan yang aman | Neurips 2023 |
| Optimalisasi Hadiah dan Keselamatan Saldo untuk Pembelajaran Penguatan yang Aman: Perspektif Manipulasi Gradien | Aaai 2024 |
| Kendala Keselamatan Belajar dari Demonstrasi Menggunakan Pohon Keputusan Satu Kelas | AAAI 2024 Lokakarya |
Omnisafe terutama dikembangkan oleh tim peneliti Saferl yang diarahkan oleh Prof. Yaodong Yang. Anggota tim peneliti Saferl kami termasuk Borong Zhang, Jiayi Zhou, Jtao Dai, Weidong Huang, Ruiyang Sun, Xuehai Pan dan Jiaming Ji. Jika Anda memiliki pertanyaan dalam proses menggunakan Omnisafe, jangan ragu untuk mengajukan pertanyaan Anda di halaman masalah GitHub, kami akan membalas Anda dalam 2-3 hari kerja.
Omnisafe dirilis di bawah Lisensi Apache 2.0.