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

أدوات السكربت

ScriptArguments

فئة trl.ScriptArguments

< >

( dataset_name: str | None = Nonedataset_config: str | None = Nonedataset_train_split: str = 'train'dataset_test_split: str = 'test'dataset_streaming: bool = Falseignore_bias_buffers: bool = False )

المعاملات

  • dataset_name (str,, اختياري) — المسار أو اسم مجموعة البيانات التي سيتم تحميلها. إذا تم توفير datasets، سيتم تجاهل هذا.
  • dataset_config (str, اختياري) — اسم إعداد مجموعة البيانات. يتوافق مع معامل name في دالة load_dataset. إذا تم توفير datasets، سيتم تجاهل هذا المعامل.
  • dataset_train_split (str، اختياري، القيمة الافتراضية "train") — جزء مجموعة البيانات المستخدم للتدريب. إذا تم توفير datasets، سيتم تجاهل هذا.
  • dataset_test_split (str، اختياري، القيمة الافتراضية "test") — جزء مجموعة البيانات المستخدم للتقييم. إذا تم تقديم datasets، سيتم تجاهل هذا.
  • dataset_streaming (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم بث مجموعة البيانات. إذا كانت القيمة True، فسيتم تحميل مجموعة البيانات في وضع البث. إذا تم توفير datasets، فسيتم تجاهل هذا.
  • ignore_bias_buffers (bool، اختياري، القيمة الافتراضية False) — حجة تصحيح للأخطاء للتدريب الموزّع. إصلاح لمشاكل DDP المتعلقة بذاكرة LM bias/mask - نوع قياسي غير صالح، عملية في الموقع. راجع https://github.com/huggingface/transformers/issues/22482#issuecomment-1595790992.

الحجج المشتركة بين جميع السكربتات.

TrlParser

فئة trl.TrlParser

< >

( dataclass_types: typing.Union[trl.scripts._hf_argparser.DataClassType, collections.abc.Iterable[trl.scripts._hf_argparser.DataClassType], NoneType] = None**kwargs )

المعاملات

  • dataclass_types (DataClassType | Iterable[DataClassType]، اختياري) — أنواع Dataclass المستخدمة لتحليل الحُجج.
  • **kwargs — معلمات إضافية بالكلمات المفتاحية تُمرَّر إلى مُنشئ transformers.HfArgumentParser.

فئة فرعية من transformers.HfArgumentParser مصممة لتحليل حُجج سطر الأوامر مع الإعدادات المدعومة بواسطة dataclass، مع دعم أيضًا لتحميل ملفات الإعداد وإدارة متغيرات البيئة.

أمثلة:

# config.yaml
env:
    VAR1: value1
arg1: 23
# main.py
import os
from dataclasses import dataclass
from trl import TrlParser


@dataclass
class MyArguments:
    arg1: int
    arg2: str = "alpha"


parser = TrlParser(dataclass_types=[MyArguments])
training_args = parser.parse_args_and_config()

print(training_args, os.environ.get("VAR1"))
$ python main.py --config config.yaml
(MyArguments(arg1=23, arg2='alpha'),) value1

$ python main.py --arg1 5 --arg2 beta
(MyArguments(arg1=5, arg2='beta'),) None

parse_args_and_config

< >

( args: collections.abc.Iterable[str] | None = Nonereturn_remaining_strings: bool = Falsefail_with_unknown_args: bool = Trueseparate_remaining_strings: bool = False )

تحليل حُجج سطر الأوامر وملف الإعداد إلى كائنات من أنواع dataclass المحددة.

تغلّف هذه الطريقة transformers.HfArgumentParser.parse_args_into_dataclasses كما تحلل ملف الإعدادات المحدد عبر علم --config. يوفر ملف الإعدادات (بصيغة YAML) قيمًا للباراميترات تحل محل القيم الافتراضية في dataclasses. يمكن لباراميترات سطر الأوامر تجاوز القيم المحددة بواسطة ملف الإعدادات. كما تضبط الطريقة أي متغيرات بيئة محددة في حقل env من ملف الإعدادات.

parse_args_into_dataclasses

< >

( args = Nonereturn_remaining_strings = Falselook_for_args_file = Trueargs_filename = Noneargs_file_flag = None ) → Tuple consisting of

المعاملات

  • args — قائمة من السلاسل النصية التي سيتم تحليلها. القيمة الافتراضية مأخوذة من sys.argv. (نفس argparse.ArgumentParser)
  • return_remaining_strings — إذا كانت القيمة صحيحة، يُعاد أيضًا قائمة بسلاسل الحروف المتبقية للحجج.
  • look_for_args_file — إذا كانت القيمة صحيحة، فسيبحث عن ملف “.args” يحمل الاسم الأساسي نفسه لسكربت نقطة الدخول الخاص بهذه العملية، وسيضيف محتواه المحتمل إلى معاملات سطر الأوامر.
  • args_filename — إذا لم يكن None، فسيتم استخدام هذا الملف بدلاً من ملف “.args” المحدد في الحجة السابقة.
  • args_file_flag — إذا لم تكن القيمة None، فسيتم البحث عن ملف ضمن معاملات سطر الأوامر المحددة بواسطة هذا العلم. يمكن تحديد العلم عدة مرات، ويُحدَّد الأولوية بناءً على الترتيب (يُعتدّ بالأخير).

يعيد

مجموعة (Tuple) تتكون من

  • dataclass في نفس الترتيب الذي تم تمريرها به إلى initializer.abspath
  • إذا كان ذلك ينطبق، فضاء أسماء إضافي لحجج (غير مدعومة بـ dataclass) أخرى تُضاف إلى المحلل بعد التهيئة.
  • القائمة المحتملة لسلاسل الحجة المتبقية. (نفس argparse.ArgumentParser.parse_known_args)

تحليل حُجج سطر الأوامر إلى كائنات من أنواع dataclass المحددة.

يعتمد هذا على ArgumentParser.parse_known_args الخاص بـ argparse. راجع التوثيق في: docs.python.org/3/library/argparse.html#argparse.ArgumentParser.parse_args

set_defaults_with_config

< >

( **kwargs )

يتجاوز القيم الافتراضية للمحلّل بالقيم المُقدَّمة عبر معاملات الكلمات المفتاحية، بما في ذلك ذلك الخاص بالمحلِّلات الفرعية.

سيتم أيضًا تحديد أي معامل يتم تحديث قيمته الافتراضية على أنه غير مطلوب إذا كان مطلوبًا سابقًا.

يعيد قائمة من السلاسل النصية التي لم يستهلكها المحلل.

get_dataset

trl.get_dataset

< >

( mixture_config: DatasetMixtureConfig ) → DatasetDict

المعاملات

  • mixture_config (DatasetMixtureConfig) — حجج السكربت التي تحتوي على إعدادات مجموعة البيانات.

يعيد

DatasetDict

المجموعات البيانات المدمجة من تكوين المزيج، مع تقسيم اختياري للتدريب/الاختبار إذا تم تعيين test_split_size.

حمّل مزيجًا من مجموعات البيانات بناءً على الإعداد.

مثال:

>>> from trl import DatasetMixtureConfig, get_dataset
>>> from trl.scripts.utils import DatasetConfig

>>> mixture_config = DatasetMixtureConfig(datasets=[DatasetConfig(path="trl-lib/tldr")])
>>> get_dataset(mixture_config)
DatasetDict({
    train: Dataset({
        features: ['prompt', 'completion'],
        num_rows: 116722
    })
})

DatasetConfig

فئة trl.scripts.utils.DatasetConfig

< >

( path: strname: str | None = Nonedata_dir: str | None = Nonedata_files: str | list[str] | dict[str, str] | None = Nonesplit: str = 'train'columns: list[str] | None = Nonefraction: float | None = None )

المعاملات

  • path (str) — مسار أو اسم مجموعة البيانات.
  • name (str، اختياري) — تحديد اسم تكوين مجموعة البيانات.
  • data_dir (str, اختياري) — تحديد data_dir لإعدادات مجموعة البيانات. إذا تم تحديده للمُنشئين العاميين (csv، text وما إلى ذلك) أو مجموعات البيانات على Hub وكان data_files هو None، فإن السلوك يكون مساوياً لتمرير os.path.join(data_dir, **) كـ data_files للإشارة إلى جميع الملفات في مجلد.
  • data_files (str أو Sequence أو Mapping، اختياري) — مسار(ات) إلى ملف(ات) البيانات المصدرية.
  • split (str، اختياري، الافتراضي "train") — أي جزء من البيانات يتم تحميله.
  • columns (list[str]، اختياري) — قائمة بأسماء الأعمدة التي سيتم اختيارها من مجموعة البيانات. إذا كانت None، يتم اختيار جميع الأعمدة.
  • fraction (float، اختياري) — النسبة المستهدفة لهذا المجموعة البيانات في المزيج النهائي. تُطبَّع النسب بحيث يكون مجموعها واحدًا عبر جميع مجموعات البيانات، ويُحدَّد حجم المزيج بحيث لا يتم أخذ عينات زائدة من أي مجموعة بيانات: حيث تُحتفظ بأول round(fraction * N) صفوف من كل مجموعة بيانات، حيث N هو أكبر حجم للمزيج يتجنب أخذ العينات الزائدة. يجب تعيينه إما لجميع مجموعات البيانات في المزيج أو لا يُعيَّن لأيٍّ منها. غير مدعوم لمجموعات البيانات البثية. عند عدم تعيينه، تُدمج مجموعات البيانات كاملة.

إعدادات مجموعة بيانات.

تطابق هذه الفئة توقيع load_dataset وتُستخدم الحُجج مباشرةً في دالة load_dataset. يمكنك الرجوع إلى توثيق load_dataset لمزيد من التفاصيل.

DatasetMixtureConfig

فئة trl.DatasetMixtureConfig

< >

( datasets: list[trl.scripts.utils.DatasetConfig] = <factory>streaming: bool = Falsetest_split_size: float | None = None )

المعاملات

  • datasets (list[DatasetConfig]) — قائمة بإعدادات مجموعات البيانات التي يجب تضمينها في الخليط.
  • streaming (bool، اختياري، الافتراضي False) — ما إذا كان سيتم بث مجموعات البيانات. إذا كان True، فسيتم تحميل مجموعات البيانات في وضع البث.
  • test_split_size (float, اختياري) — حجم مجموعة الاختبار. راجع معامل test_size في دالة train_test_split لمزيد من التفاصيل. إذا كان None، فلن يتم تقسيم مجموعة البيانات إلى مجموعات تدريب واختبار.

فئة التهيئة لمزيج من مجموعات البيانات.

باستخدام HfArgumentParser يمكننا تحويل هذه الفئة إلى حُجج argparse يمكن تحديدها على سطر الأوامر.

طريقة الاستخدام:

عند استخدام واجهة سطر الأوامر، يمكنك إضافة القسم التالي إلى ملف الإعدادات بصيغة YAML الخاص بك:

datasets:
- path: ...
    name: ...
    data_dir: ...
    data_files: ...
    split: ...
    columns: ...
    fraction: ...
- path: ...
    name: ...
    data_dir: ...
    data_files: ...
    split: ...
    columns: ...
streaming: ...
test_split_size: ...
Update on GitHub