TRL documentation
أمثلة
أمثلة
تحتوي مجلد 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_math | GRPO غير المتزامن على 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_browsergym | GRPO مع بيئة OpenEnv الخاصة بـ BrowserGym، مع متغيرات LLM وVLM. | |
grpo_carla | GRPO مع بيئة القيادة الذاتية CARLA OpenEnv، مع متغيرات LLM وVLM (استجابات أدوات متعددة الوسائط لصور الكاميرا). | |
grpo_catch | GRPO مع العقبة (OpenSpiel) بيئة OpenEnv. | |
grpo_continuous_batching | GRPO مع محرك الدفع المستمر (continuous batching) الخاص بـ transformers لتسريع التوليد على دفعات كبيرة ذات أطوال إكمال متغيرة. | |
grpo_echo | تدريب GRPO الحد الأدنى باستخدام بيئة OpenEnv الخاصة بـ Echo. | |
grpo_harbor | تدريب GRPO مقابل مجموعة مهام Harbor مع وكيل أساسي قابل للاستبدال (هياكل bash / jupyter / terminal_notes). راجع دليل تكامل Harbor. | |
grpo_ministral3_vl | GRPO Ministral 3 باستخدام QLoRA على Colab المجاني. | |
grpo_multi_env | تدريب GRPO متعدد البيئات: بيئات Wordle وCatch OpenEnv في نفس عملية التدريب. | |
grpo_qlora | GRPO باستخدام QLoRA على Colab المجاني. | |
grpo_qwen3_vl | GRPO Qwen3-VL مع QLoRA على Colab المجاني. | |
grpo_rnj_1_instruct | GRPO على rnj-1-instruct باستخدام QLoRA على Colab لإضافة قدرات الاستدلال. | |
grpo_seta | تدريب GRPO ضد بيئة SETA ORS في كتالوج openreward.ai. راجع دليل تكامل OpenReward. | |
grpo_sql_agent | GRPO لتدريب وكيل يجيب عن الأسئلة من خلال الاستعلام عن قاعدة بيانات SQL (سكربت ودفتَر ملاحظات؛ غير قابل للتشغيل على Colab المجاني بسبب نفاد الذاكرة). | |
grpo_sudoku | استخدام GRPO لحل لعبة سودوكو (TextArena) في بيئة OpenEnv انطلاقًا من نموذج SFT: تم حل 0 و10 و22 لغزًا من أصل 30 عند وجود 26 خلية فارغة للنماذج الأساسية وSFT وSFT + GRPO على التوالي (السكربت، الدفتر، وملف README الذي يتضمن النتائج). | |
grpo_visual_math | ضبط دقيق لنموذج متعدد الوسائط باستخدام طريقة GRPO للتعامل مع الاستدلال، وذلك باستخدام مجموعة البيانات lmms-lab/multimodal-open-r1-8k-verified. | |
grpo_wordle | استخدام GRPO للعب لعبة Wordle (TextArena) في بيئة OpenEnv (سكربت ودفترب). | |
gspo_math | GSPO عبر GRPOTrainer للاستدلال الرياضي على مجموعة بيانات AI-MO/NuminaMath-TIR. | |
gspo_visual_math | GSPO عبر 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_preferences | MPO عبر DPOTrainer لمواءمة نموذج متعدد الوسائط بناءً على التفضيلات باستخدام مجموعة البيانات HuggingFaceH4/rlaif-v_formatted ومجموعة من أوزان الدالة الخاسرة. | |
online_dpo_visual_math | ضبط دقيق لنموذج لغة رؤية عبر الإنترنت باستخدام experimental.online_dpo.OnlineDPOTrainer. | |
rloo_math | RLOO باستخدام RLOOTrainer للاستدلال الرياضي على مجموعة بيانات AI-MO/NuminaMath-TIR مع vLLM. | |
rloo_visual_math | ضبط دقيق لنمط متعدد الوسائط للاستدلال باستخدام طريقة RLOO مع مجموعة البيانات lmms-lab/multimodal-open-r1-8k-verified. | |
sdft_privileged_context | ضبط الدقة عبر التلقين الذاتي باستخدام experimental.sdft.SDFTTrainer، حيث يتم استخلاص السياق المميز (الخاص بالمعلم فقط) إلى النموذج. | |
sdpo_math | SDPO باستخدام 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_vl | SFT Ministral 3 باستخدام QLoRA على 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). | |
sft_qlora | التدريب الإشرافي (SFT) باستخدام QLoRA على Colab المجاني. | |
sft_qwen3_8b_1m_context | SFT لنموذج Qwen3-8B على تسلسلات بطول 1,048,576 توكن باستخدام التوازي السياقي، على عقدة واحدة من نوع 8xH100. | |
sft_qwen3_vl | SFT Qwen3-VL مع QLoRA على Colab المجاني. | |
tail_sft_gsm8k | TailSFT على GSM8K من خلال توسيع SFTTrainer باستخدام تصفية خسارة السياسة الأولية. | |
sft_muse_spark_open | تدريب LoRA SFT لنماذج meta-models/Muse-Spark-Open-816B-A42B على 8 عقد باستخدام SFTTrainer، مع تقسيمها عند التحميل بواسطة DistributedConfig الخاص بـ transformers (توازي الخبراء مع توزيع الرموز). | |
sft_tool_calling | تعليم استدعاء الأدوات لنموذج لا يدعم استدعاء الأدوات بشكل أصلي باستخدام SFT مع QLoRA (سكربت، قالب محادثة، ودفتر). | |
sft_visual_chat | تدريب SFT لنموذج لغة-رؤية في سياق المحادثة. تم الاختبار فقط مع LLaVA 1.5 وLLaVA 1.6 وLlama-3.2-11B-Vision-Instruct؛ وقد يواجه المستخدمون سلوكًا غير متوقع في معماريات النماذج الأخرى. | |
xtoken | X-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 حسب الحاجة.