TRL documentation
أدوات السكربت
أدوات السكربت
ScriptArguments
فئة trl.ScriptArguments
< source >( 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
< source >( 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، مع دعم أيضًا لتحميل ملفات الإعداد وإدارة متغيرات البيئة.
# 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'),) Noneparse_args_and_config
< source >( 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
< source >( 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
يتجاوز القيم الافتراضية للمحلّل بالقيم المُقدَّمة عبر معاملات الكلمات المفتاحية، بما في ذلك ذلك الخاص بالمحلِّلات الفرعية.
سيتم أيضًا تحديد أي معامل يتم تحديث قيمته الافتراضية على أنه غير مطلوب إذا كان مطلوبًا سابقًا.
يعيد قائمة من السلاسل النصية التي لم يستهلكها المحلل.
get_dataset
trl.get_dataset
< source >( mixture_config: DatasetMixtureConfig ) → DatasetDict
المعاملات
- mixture_config (DatasetMixtureConfig) — حجج السكربت التي تحتوي على إعدادات مجموعة البيانات.
يعيد
المجموعات البيانات المدمجة من تكوين المزيج، مع تقسيم اختياري للتدريب/الاختبار إذا تم تعيين 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
< source >( 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
< source >( 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: ...