TRL documentation

أمثلة

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v1.17.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

أمثلة

تحتوي مجلد examples/ على مجموعة من الأمثلة المستقلة ذاتياً تُظهر كيفية استخدام مكتبة TRL لتطبيقات متنوعة. يوجد كل مثال في مجلد خاص به يُسمّى على اسم الطريقة والمهمة التي يوضحها (مثل grpo_wordle، sft_gpt_oss_chess)، ويحتوي على كل ما يحتاجه المثال: السكربتات، والدفاتر، والأوامر، وقوالب المحادثة، وكود التقييم.

لا تُعدّ سكربتات التدريب الأساسية ذات المدرّب الواحد أمثلةً توضيحية؛ فهي موجودة في trl/scripts وتُتاح عبر واجهة سطر الأوامر (trl sft، trl dpo، trl grpo، …). كما تحتوي صفحة توثيق كل مدرّب على مقتطف كامل قابل للتشغيل.

تقع الموارد المشتركة في جذر examples/:

  • examples/deepspeed_configs: ملفات إعدادات DeepSpeed ZeRO، تُمرَّر عبر --deepspeed، وتُستخدم في العديد من الأمثلة.
  • examples/fsdp_configs: ملفات إعداد FSDP، تُمرَّر باستخدام --fsdp --fsdp_config (يتطلب استخدام --fsdp وحده في سطر الأوامر إصدار transformers 5.10 أو أحدث؛ أما مع الإصدارات الأقدم، فيجب تعيين fsdp=True في إعداد التدريب).
  • examples/datasets: السكربتات المستخدمة لتوليد مجموعات بيانات trl-lib المستخدمة عبر الأمثلة.

البدء

قم بتثبيت TRL والتبعيات الإضافية على النحو التالي:

pip install --upgrade trl[quantization]

تحقق من الاعتماديات الاختيارية الإضافية هنا. أمثلة القائمة على الدفاتر (Notebooks) مكتفية ذاتياً ويمكن تشغيلها على Colab المجاني؛ بينما تُشغَّل الأمثلة القائمة على السكربتات على إعدادات GPU واحدة أو متعددة أو DeepSpeed (انظر التدريب الموزّع أدناه).

فهرس

مثالالوصففتح في Colab
async_distillation_mathالتقطير المتزامن على السياسة على GSM8K باستخدام experimental.async_distillation.AsyncDistillationTrainer: حيث يُقدَّم المعلم عبر HTTP باستخدام vLLM.
async_distillation_mopdالتقطير متعدد المعلمين وفق السياسة (MOPD) باستخدام experimental.async_distillation.AsyncDistillationTrainer: يدمج خبراء الرياضيات والبرمجة واتباع التعليمات من Open-MOPD في نقطة الفحص SFT الخاصة بهم: من 17.5 إلى 24.2 في AIME24 ومن 67.5 إلى 73.0 في IFEval خلال 60 خطوة (النص البرمجي، مُطلق مهام Hugging Face، وملف README الذي يتضمن النتائج).
async_grpo_harborتدريب AsyncGRPO على مجموعة مهام Harbor عبر أي وكيل برمجي مثبّت (mini-swe-agent، opencode، claude-code، …) يُقدَّم عبر OpenEnv: يمتلك الوكيل حلقة عمله الخاصة في بيئة معزولة، وتقوم TRL بالتدريب على معرّفات الرموز وقيم logprobs المسجّلة بواسطة وكيل الالتقاط.
async_grpo_mathGRPO غير المتزامن على GSM8K باستخدام experimental.async_grpo.AsyncGRPOTrainer، مع فصل التوليد (خادم vLLM) عن التدريب، بما في ذلك نسخة LoRA التي تُزامن المُكيّف فقط مع خادم vLLM.
dpo_reduce_hallucinationsضبط دقيق لنموذج لغة-رؤية باستخدام طريقة DPO لتقليل الهلوسة، وذلك باستخدام مجموعة البيانات openbmb/RLAIF-V-Dataset.
gold_chatbot_arenaالتقطير العام لوجيتات عبر الإنترنت (GOLD) لمعلم Qwen2 إلى طالب Llama 3.2 (عبر مُرمّزات مختلفة) على chatbot_arena_completions باستخدام experimental.gold.GOLDTrainer، مع متغيرات التدريب الكامل وLoRA.
gold_qwen3_vlالتقطير العام لوجيتات التدريب عبر الإنترنت (GOLD) لنموذج Qwen3-VL-8B إلى طلاب أصغر حجماً من نماذج الرؤية-اللغة (VLM) باستخدام experimental.gold.GOLDTrainer، مع تغطية التقطير ضمن العائلة نفسها (خسارة JSD) والتقطير بين العائلات (خسارة ULD).
grpo_2048استخدام GRPO مع استدعاء الأدوات لتعليم نموذج لعب لعبة 2048.
grpo_browsergymGRPO مع بيئة OpenEnv الخاصة بـ BrowserGym، مع متغيرات LLM وVLM.
grpo_carlaGRPO مع بيئة القيادة الذاتية CARLA OpenEnv، مع متغيرات LLM وVLM (استجابات أدوات متعددة الوسائط لصور الكاميرا).
grpo_catchGRPO مع العقبة (OpenSpiel) بيئة OpenEnv.
grpo_continuous_batchingGRPO مع محرك الدفع المستمر (continuous batching) الخاص بـ transformers لتسريع التوليد على دفعات كبيرة ذات أطوال إكمال متغيرة.
grpo_echoتدريب GRPO الحد الأدنى باستخدام بيئة OpenEnv الخاصة بـ Echo.
grpo_harborتدريب GRPO مقابل مجموعة مهام Harbor مع وكيل أساسي قابل للاستبدال (هياكل bash / jupyter / terminal_notes). راجع دليل تكامل Harbor.
grpo_ministral3_vlGRPO Ministral 3 باستخدام QLoRA على Colab المجاني.Open In Colab
grpo_multi_envتدريب GRPO متعدد البيئات: بيئات Wordle وCatch OpenEnv في نفس عملية التدريب.
grpo_qloraGRPO باستخدام QLoRA على Colab المجاني.Open In Colab
grpo_qwen3_vlGRPO Qwen3-VL مع QLoRA على Colab المجاني.Open In Colab
grpo_rnj_1_instructGRPO على rnj-1-instruct باستخدام QLoRA على Colab لإضافة قدرات الاستدلال.Open In Colab
grpo_setaتدريب GRPO ضد بيئة SETA ORS في كتالوج openreward.ai. راجع دليل تكامل OpenReward.
grpo_sql_agentGRPO لتدريب وكيل يجيب عن الأسئلة من خلال الاستعلام عن قاعدة بيانات SQL (سكربت ودفتَر ملاحظات؛ غير قابل للتشغيل على Colab المجاني بسبب نفاد الذاكرة).
grpo_sudokuاستخدام GRPO لحل لعبة سودوكو (TextArena) في بيئة OpenEnv انطلاقًا من نموذج SFT: تم حل 0 و10 و22 لغزًا من أصل 30 عند وجود 26 خلية فارغة للنماذج الأساسية وSFT وSFT + GRPO على التوالي (السكربت، الدفتر، وملف README الذي يتضمن النتائج).Open In Colab
grpo_visual_mathضبط دقيق لنموذج متعدد الوسائط باستخدام طريقة GRPO للتعامل مع الاستدلال، وذلك باستخدام مجموعة البيانات lmms-lab/multimodal-open-r1-8k-verified.
grpo_wordleاستخدام GRPO للعب لعبة Wordle (TextArena) في بيئة OpenEnv (سكربت ودفترب).Open In Colab
gspo_mathGSPO عبر GRPOTrainer للاستدلال الرياضي على مجموعة بيانات AI-MO/NuminaMath-TIR.
gspo_visual_mathGSPO عبر GRPOTrainer لضبط نموذج متعدد الوسائط للاستدلال باستخدام مجموعة البيانات lmms-lab/multimodal-open-r1-8k-verified.
lfm2_5_moe_research_agentنموذج LiquidAI/LFM2.5-8B-A1B في خطوتين: تدريب إشرافي كامل (SFT) على استدعاء دوال xLAM على عقدة واحدة من 8xH100 باستخدام SFTTrainer، مع تقسيم النموذج عند التحميل عبر DistributedConfig الخاص بـ transformers (توازي الخبراء مع توزيع الرموز، بالإضافة إلى FSDP)، ثم تدريب GRPO لوكيل بحث متعدد الأدوار على HotpotQA باستخدام GRPOTrainer وenvironment_factory (أدوات search / read، ومكافأة المطابقة التامة).
mpo_visual_preferencesMPO عبر DPOTrainer لمواءمة نموذج متعدد الوسائط بناءً على التفضيلات باستخدام مجموعة البيانات HuggingFaceH4/rlaif-v_formatted ومجموعة من أوزان الدالة الخاسرة.
online_dpo_visual_mathضبط دقيق لنموذج لغة رؤية عبر الإنترنت باستخدام experimental.online_dpo.OnlineDPOTrainer.
rloo_mathRLOO باستخدام RLOOTrainer للاستدلال الرياضي على مجموعة بيانات AI-MO/NuminaMath-TIR مع vLLM.
rloo_visual_mathضبط دقيق لنمط متعدد الوسائط للاستدلال باستخدام طريقة RLOO مع مجموعة البيانات lmms-lab/multimodal-open-r1-8k-verified.
sdft_privileged_contextضبط الدقة عبر التلقين الذاتي باستخدام experimental.sdft.SDFTTrainer، حيث يتم استخلاص السياق المميز (الخاص بالمعلم فقط) إلى النموذج.
sdpo_mathSDPO باستخدام experimental.sdpo.SDPOTrainer مع مكافآت رياضية قابلة للتحقق وتغذية راجعة اختيارية من البيئة على openai/gsm8k.
sft_beamتدريب LoRA SFT على نموذج reflection/Beam-1.0-501B-A23B على عقدة واحدة من 8xB300 باستخدام SFTTrainer، مع تقسيم النموذج عند التحميل بواسطة DistributedConfig الخاص بـ transformers (توازي الخبراء مع توزيع الرموز).
sft_diffusion_gemmaتدريب SFT لنموذج اللغة block-diffusion الخاص بـ DiffusionGemma على GSM8K من خلال توسيع SFTTrainer بهدف block-diffusion.
sft_gemma3التدريب على الإشراف (SFT) لنموذج Gemma 3 على مجموعة بيانات Codeforces COTS.
sft_gemma3_visionالتدريب على الإشراف (SFT) لنموذج Gemma 3 على مهام تحويل الصور إلى نصوص.
sft_gpt_oss_chessالضبط الكامل لنموذج openai/gpt-oss-20b على ألغاز الشطرنج باستخدام SFTTrainer: يقوم TRL بتحميل خبراء MXFP4 الخاصين به بعد إزالة التكميم، ثم يُعاد تكميم الخبراء المُعدَّلة إلى MXFP4 لتعمل بنفس طريقة النموذج الأصلي.
sft_ministral3_vlSFT Ministral 3 باستخدام QLoRA على Colab المجاني.Open In Colab
sft_mistral_large_4تدريب LoRA SFT لنموذج mistralai/Mistral-Large-4-1T-A52B فوق أوزانه من نوع FP8 على عقدة واحدة من 8xB300 باستخدام SFTTrainer، مع تقسيم الأوزان عند التحميل بواسطة DistributedConfig الخاص بـ transformers (توازي الخبراء مع توزيع الرموز).
sft_nemotron_3التدريب على الإشراف (SFT) لنماذج NVIDIA Nemotron 3 (السكربت ودفترة LoRA).Open In Colab
sft_qloraالتدريب الإشرافي (SFT) باستخدام QLoRA على Colab المجاني.Open In Colab
sft_qwen3_8b_1m_contextSFT لنموذج Qwen3-8B على تسلسلات بطول 1,048,576 توكن باستخدام التوازي السياقي، على عقدة واحدة من نوع 8xH100.
sft_qwen3_vlSFT Qwen3-VL مع QLoRA على Colab المجاني.Open In Colab
tail_sft_gsm8kTailSFT على GSM8K من خلال توسيع SFTTrainer باستخدام تصفية خسارة السياسة الأولية.
sft_muse_spark_openتدريب LoRA SFT لنماذج meta-models/Muse-Spark-Open-816B-A42B على 8 عقد باستخدام SFTTrainer، مع تقسيمها عند التحميل بواسطة DistributedConfig الخاص بـ transformers (توازي الخبراء مع توزيع الرموز).
sft_tool_callingتعليم استدعاء الأدوات لنموذج لا يدعم استدعاء الأدوات بشكل أصلي باستخدام SFT مع QLoRA (سكربت، قالب محادثة، ودفتر).Open In Colab
sft_visual_chatتدريب SFT لنموذج لغة-رؤية في سياق المحادثة. تم الاختبار فقط مع LLaVA 1.5 وLLaVA 1.6 وLlama-3.2-11B-Vision-Instruct؛ وقد يواجه المستخدمون سلوكًا غير متوقع في معماريات النماذج الأخرى.
xtokenX-Token تقطير المعرفة بين المُرمّزات خارج السياسة باستخدام experimental.gold.GOLDTrainer، بما في ذلك تحضير مصفوفة الإسقاط.

التدريب الموزّع

يمكنك تشغيل سكربتات المثال على وحدات معالجة رسومية متعددة باستخدام torchrun:

torchrun --nproc_per_node {NUM_GPUS} path_to_script.py --all_arguments_of_the_script

لـ DeepSpeed ZeRO-{1,2,3}:

torchrun --nproc_per_node {NUM_GPUS} path_to_script.py --deepspeed examples/deepspeed_configs/zero{1,2,3}.json --all_arguments_of_the_script

اضبط NUM_GPUS و--all_arguments_of_the_script حسب الحاجة.

Update on GitHub