
เอกสาร ใช้อัลกอริทึม การติดตั้ง เริ่มต้นใช้งาน | ใบอนุญาต
Omnisafe เป็นกรอบโครงสร้างพื้นฐานที่ออกแบบมาเพื่อเร่งการวิจัยการเรียนรู้เสริมแรงอย่างปลอดภัย (RL) มันมีเกณฑ์มาตรฐานที่ครอบคลุมและเชื่อถือได้สำหรับอัลกอริทึม RL ที่ปลอดภัยและยังเป็นชุดเครื่องมือแบบแยกส่วนนอกกล่องสำหรับนักวิจัย Saferl ตั้งใจที่จะพัฒนาอัลกอริทึมที่ลดความเสี่ยงของการอันตรายที่ไม่ได้ตั้งใจหรือพฤติกรรมที่ไม่ปลอดภัย
Omnisafe ย่อมาจากกรอบการเรียนรู้แบบครบวงจรครั้งแรกในขอบเขตของการเรียนรู้การเสริมแรงที่ปลอดภัยโดยมีวัตถุประสงค์เพื่อส่งเสริมการเติบโตของชุมชนการเรียนรู้ที่ปลอดภัย คุณสมบัติสำคัญของ Omnisafe:
เฟรมเวิร์กโมดูลาร์สูง Omnisafe นำเสนอเฟรมเวิร์กแบบแยกส่วนสูงโดยรวมการรวบรวมอัลกอริทึมมากมายที่เหมาะสำหรับการเรียนรู้การเสริมแรงอย่างปลอดภัยในโดเมนที่หลากหลาย เฟรมเวิร์กนี้มีความหลากหลายเนื่องจากเป็นนามธรรมของอัลกอริทึมประเภทต่างๆและ API ที่ออกแบบมาอย่างดีโดยใช้อะแดปเตอร์และส่วนประกอบการออกแบบ wrapper เพื่อเชื่อมช่องว่างและเปิดใช้งานการโต้ตอบที่ไร้รอยต่อระหว่างส่วนประกอบที่แตกต่างกัน การออกแบบนี้ช่วยให้สามารถขยายและปรับแต่งได้ง่ายทำให้เป็นเครื่องมือที่ทรงพลังสำหรับนักพัฒนาที่ทำงานกับอัลกอริทึมประเภทต่างๆ
การเร่งความเร็วการคำนวณแบบขนานประสิทธิภาพสูง ด้วยการควบคุมความสามารถของ 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+
เราสนับสนุนและทดสอบ 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| โดเมน | ประเภท | อัลกอริทึมรีจิสทรี |
|---|---|---|
| เกี่ยวกับนโยบาย | คู่แรก | trpolag; ppolag; PDO; RCPO |
| trpopid; CPPOPID | ||
| การเพิ่มประสิทธิภาพแบบนูน | CPO; PCPO; โฟกัส; ถ้วย | |
| ฟังก์ชั่นการลงโทษ | การเสนอขายหุ้น; p3o | |
| ครั้งแรก | oncrpo | |
| นโยบายปิด | ครั้งแรก | ddpglag; td3lag; saclag |
| DDPGPID; TD3PID; sacpid | ||
| อิงตามแบบจำลอง | แผนออนไลน์ | Safeloop; Ccepets; rcepets |
| ประมาณการในแง่ร้าย | เครื่องประดับ | |
| ออฟไลน์ | q-learning | bcqlag; C-CRR |
| ตามลูกเต๋า | coptdice | |
| สูตรอื่น ๆ MDP | ET-MDP | PPO arefersterminated; trpoearlyterminated |
| ซิ่งไม้ | pposaute; trposaute | |
| ซิมเมอร์ล | pposimmerpid; trposimmerpid |
นี่คือรายการสภาพแวดล้อมที่ความปลอดภัย-Gymnasium รองรับ:
| หมวดหมู่ | งาน | ตัวแทน | ตัวอย่าง |
|---|---|---|---|
| การนำทางที่ปลอดภัย | เป้าหมาย [012] | จุด, รถยนต์, รถแข่ง, มด | safetypointgoal1-v0 |
| ปุ่ม [012] | |||
| กด [012] | |||
| วงกลม [012] | |||
| ความเร็วที่ปลอดภัย | ความเร็ว | Halfcheetah, Hopper, นักว่ายน้ำ, Walker2d, Ant, Humanoid | SafetyHumanoidVelocity-V1 |
| Safe Isaac Gym | เกินจริง | ขนนก | ShadowHandoVersafefinger |
| oversafejoint | |||
| 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เราได้ให้ผลลัพธ์มาตรฐานสำหรับอัลกอริทึมที่หลากหลายรวมถึงวิธีการตามนโยบาย, นอกนโยบาย, แบบจำลองและวิธีการออฟไลน์พร้อมกับการวิเคราะห์การปรับพารามิเตอร์ โปรดดูต่อไปนี้:
สำรวจ Omnisafe ได้อย่างง่ายดายและรวดเร็วผ่านชุดของสมุดบันทึก Google Colab:
เรามีความสุขอย่างยิ่งในการร่วมมือกับผู้ใช้ของเราเพื่อสร้างแบบฝึกหัดในภาษาต่างๆ โปรดดูรายการภาษาที่รองรับในปัจจุบันของเรา หากคุณสนใจที่จะแปลการสอนเป็นภาษาใหม่หรือปรับปรุงเวอร์ชันที่มีอยู่โปรดส่ง PR ให้เรา
ดู Changelog.md
เราได้รวบรวมรายการเอกสารที่ใช้ Omnisafe สำหรับการใช้อัลกอริทึมหรือการทดลอง หากคุณยินดีที่จะรวมงานของคุณไว้ในรายการนี้หรือหากคุณต้องการนำไปใช้อย่างเป็นทางการใน Omnisafe โปรดติดต่อเรา
| เอกสาร | ผู้จัดพิมพ์ |
|---|---|
| การเรียนรู้การเสริมแรงอย่างปลอดภัยแบบไม่ปลอดภัย | ICLR 2024 |
| การเรียนรู้การเสริมแรงแบบออฟไลน์อย่างปลอดภัยด้วยรูปแบบการแพร่กระจายที่เป็นไปได้ | ICLR 2024 |
| การประมาณความสามารถในการเข้าถึงซ้ำสำหรับการเรียนรู้การเสริมแรงอย่างปลอดภัย | Neurips 2023 |
| ความสมดุลของรางวัลและการเพิ่มประสิทธิภาพความปลอดภัยสำหรับการเรียนรู้การเสริมแรงอย่างปลอดภัย: มุมมองของการจัดการไล่ระดับสี | Aaai 2024 |
| การเรียนรู้ข้อ จำกัด ด้านความปลอดภัยจากการสาธิตโดยใช้ต้นไม้ตัดสินใจชั้นเดียว | AAAI 2024 เวิร์กช็อป |
Omnisafe ส่วนใหญ่ได้รับการพัฒนาโดยทีมวิจัย Saferl กำกับโดยศาสตราจารย์ Yoodong Yang สมาชิกทีมวิจัย Saferl ของเรา ได้แก่ Borong Zhang, Jiayi Zhou, Jtao Dai, Weidong Huang, Ruiyang Sun, Xuehai Pan และ Jiaming Ji หากคุณมีคำถามใด ๆ ในกระบวนการใช้ Omnisafe อย่าลังเลที่จะถามคำถามของคุณในหน้าปัญหา GitHub เราจะตอบกลับคุณใน 2-3 วันทำการ
Omnisafe เปิดตัวภายใต้ Apache License 2.0