TRL documentation

واجهات سطر الأوامر (CLIs)

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

واجهات سطر الأوامر (CLIs)

توفّر TRL واجهة سطر أوامر (CLI) قوية لضبط نماذج اللغة الكبيرة (LLMs) باستخدام طرق مثل الضبط الإشرافي (SFT) وتحسين التفضيلات المباشرة (DPO) وغيرها. تُخفي واجهة سطر الأوامر معظم الشيفرة التمهيدية، مما يتيح لك إطلاق مهام التدريب بسرعة وبشكل قابل للتكرار.

الأوامر

الأوامر المدعومة حاليًا هي:

أوامر التدريب

  • trl distillation: تقطير نموذج المعلم إلى نموذج الطالب باستخدام تقطير المعرفة على السياسة
  • trl dpo: ضبط نموذج لغة كبير باستخدام DPO
  • trl grpo: ضبط نموذج LLM باستخدام GRPO
  • trl kto: ضبط نموذج لغة كبير باستخدام KTO
  • trl reward: تدريب نموذج المكافأة
  • trl rloo: ضبط نموذج لغة كبير باستخدام RLOO
  • trl sft: ضبط نموذج لغة كبير باستخدام SFT

أوامر أخرى

  • trl env: الحصول على معلومات النظام
  • trl vllm-serve: تقديم نموذج باستخدام vLLM (مُتروك، استخدم vllm serve مباشرة، راجع تكامل vLLM)

الضبط الدقيق باستخدام واجهة سطر الأوامر TRL

الاستخدام الأساسي

يمكنك بدء التدريب مباشرةً من سطر الأوامر عن طريق تحديد الحجج المطلوبة مثل النموذج ومجموعة البيانات:

SFT
DPO
المكافأة
GRPO
RLOO
KTO
trl sft \
  --model_name_or_path Qwen/Qwen2.5-0.5B \
  --dataset_name stanfordnlp/imdb

استخدام ملفات الإعداد

للحفاظ على أوامر سطر الأوامر نظيفة وقابلة للتكرار، يمكنك تحديد جميع حُجج التدريب في ملف تكوين بصيغة YAML:

SFT
DPO
المكافأة
GRPO
RLOO
KTO
# sft_config.yaml
model_name_or_path: Qwen/Qwen2.5-0.5B
dataset_name: stanfordnlp/imdb

شغّل باستخدام:

trl sft --config sft_config.yaml

التوسع باستخدام Accelerate

يدعم TRL CLI بشكل أصلي 🤗 Accelerate، مما يسهّل توسيع نطاق التدريب عبر وحدات معالجة رسومية متعددة أو أجهزة متعددة، أو استخدام إعدادات متقدمة مثل DeepSpeed — كل ذلك من نفس سطر الأوامر.

يمكنك تمرير أي من حُجج accelerate launch مباشرة إلى trl، مثل --num_processes. لمزيد من المعلومات راجع استخدام accelerate launch.

SFT
DPO
المكافأة
GRPO
RLOO
KTO
trl sft \
  --model_name_or_path Qwen/Qwen2.5-0.5B \
  --dataset_name stanfordnlp/imdb \
  --num_processes 4

أو، باستخدام ملف تكوين:

# sft_config.yaml
model_name_or_path: Qwen/Qwen2.5-0.5B
dataset_name: stanfordnlp/imdb
num_processes: 4

شغّل باستخدام:

trl sft --config sft_config.yaml

استخدام --accelerate_config لإعداد Accelerate

يسمح لك علم --accelerate_config بإعداد التدريب الموزّع بسهولة باستخدام 🤗 Accelerate. يقبل هذا العلم أحد الخيارين التاليين:

  • اسم ملف تكوين مُعرَّف مسبقًا (مدمج في TRL)، أو
  • مسار إلى ملف إعدادات YAML مخصص لـ Accelerate.

ملفات تعريف الإعدادات المحددة مسبقًا

توفر TRL عدة إعدادات جاهزة للاستخدام من Accelerate لتبسيط إعدادات التدريب الشائعة:

الاسمالوصف
fsdp1المرحلة الأولى من التوازي الكامل للبيانات المجزأة
fsdp2مرحلة 2 من التوازي الكامل للبيانات المجزأة
zero1DeepSpeed ZeRO المرحلة 1
zero2DeepSpeed ZeRO المرحلة 2
zero3DeepSpeed ZeRO المرحلة 3
multi_gpuالتدريب على وحدات معالجة رسومات متعددة
single_gpuالتدريب على وحدة معالجة رسومية واحدة

للاستخدام أحد هذه الإعدادات، ما عليك سوى تمرير الاسم إلى --accelerate_config. سيقوم TRL تلقائيًا بتحميل ملف الإعدادات المقابل من trl/accelerate_config/.

مثال على الاستخدام

SFT
DPO
المكافأة
GRPO
RLOO
KTO
trl sft \
  --model_name_or_path Qwen/Qwen2.5-0.5B \
  --dataset_name stanfordnlp/imdb \
  --accelerate_config zero2  # or path/to/my/accelerate/config.yaml

أو، باستخدام ملف تكوين:

# sft_config.yaml
model_name_or_path: Qwen/Qwen2.5-0.5B
dataset_name: stanfordnlp/imdb
accelerate_config: zero2  # or path/to/my/accelerate/config.yaml

شغّل باستخدام:

trl sft --config sft_config.yaml

استخدام خلطات مجموعات البيانات

يمكنك استخدام خلطات مجموعات البيانات لدمج عدة مجموعات بيانات في مجموعة بيانات تدريب واحدة. وهذا مفيد عند التدريب على مصادر بيانات متنوعة أو عندما ترغب في خلط أنواع مختلفة من البيانات.

SFT
DPO
المكافأة
GRPO
RLOO
KTO
# sft_config.yaml
model_name_or_path: Qwen/Qwen2.5-0.5B
datasets:
  - path: stanfordnlp/imdb
  - path: roneneldan/TinyStories

شغّل باستخدام:

trl sft --config sft_config.yaml

للاطلاع على جميع الكلمات المفتاحية المتاحة لتعريف خلطات مجموعات البيانات، راجع فئتي scripts.utils.DatasetConfig وDatasetMixtureConfig.

الحصول على معلومات النظام

يمكنك الحصول على معلومات النظام من خلال تنفيذ الأمر التالي:

trl env

سيؤدي هذا إلى طباعة معلومات النظام، بما في ذلك معلومات وحدة معالجة الرسوميات (GPU)، وإصدار CUDA، وإصدار PyTorch، وإصدار transformers، وإصدار TRL، وأي تبعيات اختيارية مثبتة.

Copy-paste the following information when reporting an issue:

- Platform: Linux-5.15.0-1048-aws-x86_64-with-glibc2.31
- Python version: 3.11.9
- PyTorch version: 2.4.1
- accelerator(s): NVIDIA H100 80GB HBM3
- Transformers version: 4.45.0.dev0
- Accelerate version: 0.34.2
- Accelerate config: 
  - compute_environment: LOCAL_MACHINE
  - distributed_type: DEEPSPEED
  - mixed_precision: no
  - use_cpu: False
  - debug: False
  - num_processes: 4
  - machine_rank: 0
  - num_machines: 1
  - rdzv_backend: static
  - same_network: True
  - main_training_function: main
  - enable_cpu_affinity: False
  - deepspeed_config: {'gradient_accumulation_steps': 4, 'offload_optimizer_device': 'none', 'offload_param_device': 'none', 'zero3_init_flag': False, 'zero_stage': 2}
  - downcast_bf16: no
  - tpu_use_cluster: False
  - tpu_use_sudo: False
  - tpu_env: []
- Datasets version: 3.0.0
- HF Hub version: 0.24.7
- TRL version: 0.12.0.dev0+acb4d70
- bitsandbytes version: 0.41.1
- DeepSpeed version: 0.15.1
- Diffusers version: 0.30.3
- Liger-Kernel version: 0.3.0
- LLM-Blender version: 0.0.2
- OpenAI version: 1.46.0
- PEFT version: 0.12.0
- vLLM version: not installed

هذا المعلومات مطلوبة عند الإبلاغ عن مشكلة.

Update on GitHub