جيم هو مجموعة أدوات لتطوير ومقارنة خوارزميات التعلم المعزز. يدعم تعليم الوكلاء (agents) كيفية اتخاذ القرارات في مجموعة متنوعة من البيئات المحاكاة.
نظرة عامة على مشروع OpenAI Gym
ملخص المشروع
OpenAI Gym هي مكتبة Python مفتوحة المصدر مخصصة لتطوير ومقارنة خوارزميات التعلم المعزز. توفر واجهة برمجة تطبيقات (API) موحدة لربط خوارزميات التعلم بالبيئات، وتوفر مجموعة من البيئات التي تتوافق مع معيار واجهة برمجة التطبيقات هذا. منذ إطلاقه، أصبح API الخاص بـ Gym معيارًا في مجال التعلم المعزز.
⚠️ إعلان هام
تغيير حالة صيانة المشروع: قام الفريق الذي كان يصون Gym منذ عام 2021 بنقل جميع أعمال التطوير المستقبلية إلى Gymnasium، وهو بديل مباشر لـ Gym (يمكن استخدامه باستخدام import gymnasium as gym
). لن يتلقى Gym أي تحديثات مستقبلية، ويوصى المستخدمون بالتبديل إلى Gymnasium في أقرب وقت ممكن.
الميزات الأساسية
واجهة برمجة تطبيقات موحدة (API)
- توفير واجهة موحدة لاتصال خوارزميات التعلم المعزز بالبيئات
- تبسيط عملية إنشاء البيئات والتفاعل معها
- أصبح معيار API في مجال التعلم المعزز
مكتبة بيئات غنية
- تحتوي على عدد كبير من بيئات التعلم المعزز المعرفة مسبقًا
- تدعم أنواعًا مختلفة من المهام والتحديات
- تتبع البيئات معيار واجهة موحدة
طريقة التثبيت
التثبيت الأساسي
pip install gym
تثبيت عائلة بيئات معينة
# تثبيت تبعيات بيئات Atari
pip install gym[atari]
# تثبيت جميع تبعيات البيئات
pip install gym[all]
# تثبيت تبعيات بيئات MuJoCo (أحدث إصدار)
pip install gym[mujoco]
# تثبيت تبعيات بيئات MuJoCo (إصدار قديم)
pip install gym[mujoco_py]
دعم النظام
- إصدار Python: يدعم Python 3.7, 3.8, 3.9, 3.10
- نظام التشغيل: يدعم رسميًا Linux و macOS
- Windows: يقبل طلبات السحب ذات الصلة ولكنه لا يوفر دعمًا رسميًا
مثال على الاستخدام الأساسي
import gym
# إنشاء بيئة
env = gym.make("CartPole-v1")
# إعادة تعيين البيئة
observation, info = env.reset(seed=42)
# حلقة تفاعل البيئة
for _ in range(1000):
# اختيار إجراء عشوائي
action = env.action_space.sample()
# تنفيذ الإجراء
observation, reward, terminated, truncated, info = env.step(action)
# التحقق مما إذا كانت هناك حاجة لإعادة التعيين
if terminated or truncated:
observation, info = env.reset()
# إغلاق البيئة
env.close()
النظام البيئي ذو الصلة
مكتبات التعلم الموصى بها
CleanRL - مكتبة تعلم تعتمد على Gym API
- موجهة للمبتدئين في التعلم المعزز
- توفر تطبيقات مرجعية ممتازة
Tianshou - مكتبة تعلم للمستخدمين ذوي الخبرة
- تدعم تعديلات الخوارزميات المعقدة
- تصميم مرن
RLlib - مكتبة تعلم تدعم التدريب الموزع
- تدعم التدريب والاستدلال الموزعين
- وظائف غنية للغاية
PettingZoo - مكتبة بيئات متعددة الوكلاء
- مشابهة لـ Gym ولكنها تدعم بيئات متعددة الوكلاء
إدارة الإصدار
تعتمد Gym على التحكم الصارم في الإصدار لضمان إمكانية التكرار:
- تنتهي جميع البيئات بلاحقة إصدار (مثل "_v0")
- عندما قد يؤثر تغيير البيئة على نتائج التعلم، يتم زيادة رقم الإصدار
- ضمان إمكانية تكرار التجارب واتساقها
تحديثات بيئات MuJoCo
- أحدث إصدارات "_v4" والإصدارات المستقبلية لم تعد تعتمد على
mujoco-py
- بدلاً من ذلك، تستخدم
mujoco
كاعتماد ضروري - لا تزال الإصدارات القديمة من البيئات محفوظة ولكن لم تعد تتم صيانتها
الوثائق والموارد
- الوثائق الرسمية: https://www.gymlibrary.dev/
- خادم Discord: مجتمع مناقشة التطوير
- مستودع GitHub: https://github.com/openai/gym
الاقتباس الأكاديمي
يمكن الحصول على الورقة البيضاء للمشروع من arXiv، وتنسيق الاقتباس:
@misc{1606.01540,
Author = {Greg Brockman and Vicki Cheung and Ludwig Pettersson and Jonas Schneider and John Schulman and Jie Tang and Wojciech Zaremba},
Title = {OpenAI Gym},
Year = {2016},
Eprint = {arXiv:1606.01540},
}
ملخص حالة المشروع
لقد أنشأت OpenAI Gym، كأداة رائدة في مجال التعلم المعزز، معيارًا صناعيًا وعززت نظامًا بيئيًا ضخمًا. على الرغم من أن المشروع الأصلي لم يعد قيد الصيانة النشطة، إلا أن خليفته Gymnasium يرث جميع الوظائف الأساسية، مما يضمن استمرار تطوير المجتمع. بالنسبة للمشاريع الجديدة، يوصى بشدة باستخدام Gymnasium مباشرةً للحصول على أحدث الميزات والدعم المستمر.