تخطَّ إلى المحتوى

OpenRLHF Cheatsheet

OpenRLHF Cheatsheet

OpenRLHF هو إطار عمل RLHF عالي الأداء ومفتوح المصدر مصمم للتوسع. مبني على Ray للجدولة الموزعة و vLLM للتوليد السريع و DeepSpeed/ZeRO للتدريب، ينقسم إلى العامل والناقد والمكافأة والنماذج المرجعية عبر وحدات معالجة الرسومات بحيث يمكنك تدريب النماذج الكبيرة (70 مليار+) بكفاءة. ينفذ قائمة واسعة من الخوارزميات — PPO و GRPO و REINFORCE++ و RLOO — بالإضافة إلى العينات الديناميكية و RL الوكيل غير المتزامن.

التعلم التعزيزي على نطاق كبير يتطلب جهدًا تشغيليًا كبيرًا. ابدأ على عقدة واحدة بنموذج صغير، وتأكد من أن اتجاهات المكافأة صحيحة، ثم توسع باستخدام Ray.

التثبيت

الطريقةالأمر
pippip install openrlhf
مع إضافات vLLMpip install openrlhf[vllm]
من المصدرgit clone https://github.com/OpenRLHF/OpenRLHF && cd OpenRLHF && pip install -e .
Dockerاستخدم صورة المشروع المرجعية (CUDA والعتاد مثبتان مسبقًا)
المتطلباتوحدات معالجة رسومات NVIDIA والعتاد ذي الصلة، CUDA، Ray، DeepSpeed، vLLM

الهندسة المعمارية

المكونالدور
العاملنموذج السياسة الذي يتم تدريبه
الناقدنموذج القيمة (PPO)
نموذج المكافأةيسجل الردود المُنتجة
النموذج المرجعيخط الأساس المجمد لعقوبة KL
Rayينسق ويضع هذه النماذج عبر وحدات معالجة الرسومات
محرك vLLMيسرع مرحلة التجميع/التوليد

نقاط الدخول المشتركة للتدريب

تتضمن OpenRLHF وحدات CLI لكل خوارزمية؛ استدعي باستخدام deepspeed أو ray.

الأمرالغرض
openrlhf.cli.train_sftالضبط الدقيق للإشراف
openrlhf.cli.train_rmتدريب نموذج المكافأة
openrlhf.cli.train_ppoPPO (متحكم واحد)
openrlhf.cli.train_ppo_rayPPO/GRPO موزع مع Ray + vLLM
openrlhf.cli.train_dpoDirect Preference Optimization

PPO/GRPO مع Ray (رسم)

ray start --head --node-ip-address 0.0.0.0

python3 -m openrlhf.cli.train_ppo_ray \
  --pretrain Qwen/Qwen2.5-7B-Instruct \
  --reward_pretrain OpenRLHF/Llama-3-8b-rm-mixture \
  --advantage_estimator group_norm \
  --vllm_num_engines 2 --vllm_tensor_parallel_size 1 \
  --actor_num_gpus_per_node 4 \
  --colocate_actor_ref \
  --prompt_data your/prompts --input_key prompt \
  --save_path ./ckpt --use_wandb $WANDB_API_KEY
العلمالتحكم
--pretrainنموذج أساسي/عامل
--reward_pretrainمسار نموذج المكافأة
--advantage_estimator group_normينتقي تطبيع مجموعة من نمط GRPO
--vllm_num_enginesعدد محركات تجميع vLLM
--actor_num_gpus_per_nodeتوزيع وحدات معالجة الرسومات للعامل
--colocate_actor_refضع العامل والمرجع معًا لحفظ وحدات معالجة الرسومات

الخوارزميات

الخوارزميةالعلم/الوحدة
PPOالافتراضي في train_ppo*
GRPO--advantage_estimator group_norm
REINFORCE++عائلة --advantage_estimator reinforce
RLOO--advantage_estimator rloo
DPO / KTOوحدات مكرسة train_dpo / train_kto

التوسع والأداء

التقنيةالعلم/الملاحظة
مرحلة ZeRO--zero_stage 3 للنماذج الكبيرة
Offload--adam_offload لتسكين حالة المحسنات إلى المعالج
Flash attention--flash_attn
Colocation--colocate_actor_ref، --colocate_critic_reward
العينات الديناميكيةمدمجة لتحسين كفاءة العينات

OpenRLHF مقابل verl مقابل ART

الجانبOpenRLHFverlART
الأساسRay + DeepSpeed + vLLMHybridFlow + FSDP/Megatronعميل/خادم + Unsloth
نقاط القوةRLHF الإنتاجي والخوارزميات الواسعةالإنتاجية والمرونةالوكلاء في رمزك الخاص
متعدد الوسائطVLM RLHF (OpenRLHF-M)مدعوميركز على النصوص
الأفضل لـأنابيب RLHF القابلة للتوسعبحث الإنتاجيةRL أحادي الوكيل أثناء العمل

الموارد