Transformers documentation

المستدعات

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

and get access to the augmented documentation experience

to get started

المستدعات

المستدعات (Callbacks) هي كائنات يمكنها تخصيص سلوك حلقة التدريب في Trainer الخاص بـ PyTorch، حيث يمكنها فحص حالة حلقة التدريب (لأغراض الإبلاغ عن التقدم، أو التسجيل في TensorBoard أو منصات التعلم الآلي الأخرى…) واتخاذ قرارات (مثل التوقف المبكر).

تُعدّ المستدعات (Callbacks) مقاطع من الشيفرة "للقراءة فقط"، فباستثناء كائن TrainerControl الذي تُرجعه، لا يمكنها تغيير أي شيء في حلقة التدريب. أما للتخصيصات التي تتطلب إجراء تغييرات في حلقة التدريب، فيجب عليك إنشاء فئة فرعية من Trainer وتجاوز (override) الطرق التي تحتاجها (راجع trainer للحصول على أمثلة).

بشكل افتراضي، يُضبط TrainingArguments.report_to على "none".

الفئة الرئيسية التي تنفّذ الاستدعاءات العكسية هي TrainerCallback. تحصل على TrainingArguments المستخدمة لإنشاء Trainer، ويمكنها الوصول إلى الحالة الداخلية لذلك Trainer عبر TrainerState، كما يمكنها تنفيذ بعض الإجراءات على حلقة التدريب عبر TrainerControl.

الاستدعاءات المتاحة

فيما يلي قائمة بـ TrainerCallback المتاحة في المكتبة:

فئة transformers.integrations.CometCallback

< >

( )

TrainerCallback يرسل السجلات إلى Comet ML.

إعداد

< >

( argsstatemodel )

قم بإعداد تكامل Comet الاختياري.

البيئة:

  • COMET_MODE (str, اختياري, الافتراضي هو get_or_create): التحكم في ما إذا كان سيتم إنشاء تجربة Comet جديدة وتسجيل البيانات فيها، أم إضافة البيانات إلى تجربة قائمة. يقبل القيم التالية:
    • get_or_create: يقرر تلقائيًا بناءً على ما إذا كان COMET_EXPERIMENT_KEY مضبوطًا، وما إذا كان هناك Experiment يحمل ذلك المفتاح موجودًا بالفعل أم لا.
    • create: أنشئ دائمًا تجربة Comet جديدة.
    • get: حاول دائماً الإضافة إلى تجربة Comet موجودة مسبقاً. يتطلب تعيين COMET_EXPERIMENT_KEY.
  • COMET_START_ONLINE (bool، اختياري): ما إذا كان سيتم إنشاء تجربة عبر الإنترنت أو دون اتصال.
  • COMET_PROJECT_NAME (str، اختياري): اسم مشروع Comet للتجارب.
  • COMET_LOG_ASSETS (str، اختياري، القيمة الافتراضية TRUE): ما إذا كان سيتم تسجيل أصول التدريب (نقاط التفتيش، إلخ) في Comet. يمكن أن تكون القيمة TRUE أو FALSE.

لمعرفة عدد من العناصر القابلة للتكوين في البيئة، راجع هنا.

فئة transformers.DefaultFlowCallback

< >

( )

TrainerCallback يتعامل مع التدفق الافتراضي لحلقة التدريب الخاصة بالسجلات والتقييم والنقاط المحفوظة.

فئة transformers.PrinterCallback

< >

( )

A bare TrainerCallback that just prints the logs.

فئة transformers.ProgressCallback

< >

( max_str_len: int = 100 )

TrainerCallback يعرض تقدم التدريب أو التقييم. يمكنك تعديل max_str_len للتحكم في طول النصوص التي يتم اقتطاعها عند التسجيل.

فئة transformers.EarlyStoppingCallback

< >

( early_stopping_patience: int = 1early_stopping_threshold: float | None = 0.0 )

المعاملات

  • early_stopping_patience (int) — يُستخدم مع metric_for_best_model لإيقاف التدريب عندما يتدهور المؤشر المحدد لعدد early_stopping_patience من استدعاءات التقييم.
  • early_stopping_threshold(float, اختياري) — يُستخدم مع TrainingArguments metric_for_best_model وearly_stopping_patience لتحديد مقدار التحسّن المطلوب في المقياس المحدد حتى تتحقق شروط التوقف المبكر. `

TrainerCallback يتعامل مع التوقف المبكر.

يعتمد هذا الاستدعاء العكسي على وظيفة load_best_model_at_end في معامل TrainingArguments لضبط best_metric في TrainerState. لاحظ أنه إذا اختلف معامل save_steps في TrainingArguments عن eval_steps، فلن يحدث التوقف المبكر حتى الخطوة التالية لحفظ النموذج.

فئة transformers.integrations.TensorBoardCallback

< >

( tb_writer = None )

المعاملات

  • tb_writer (SummaryWriter، اختياري) — الكاتب الذي سيتم استخدامه. سيتم إنشاء كاتب إذا لم يتم تعيينه.

TrainerCallback يرسل السجلات إلى TensorBoard.

البيئة:

  • TENSORBOARD_LOGGING_DIR (str، اختياري، القيمة الافتراضية None): المجلد الذي تُسجَّل فيه النتائج. القيمة الافتراضية هي os.path.join(args.output_dir, default_logdir())

فئة transformers.integrations.TrackioCallback

< >

( )

A TrainerCallback that logs metrics to Trackio.

إعداد

< >

( argsstatemodel**kwargs )

قم بإعداد تكامل Trackio الاختياري.

لتخصيص الإعداد، يمكنك أيضاً تعيين project وtrackio_space_id وtrackio_bucket_id وtrackio_static_space_id وhub_private_repo في TrainingArguments.

فئة transformers.integrations.WandbCallback

< >

( )

TrainerCallback يسجّل المقاييس والوسائط ونقاط التفتيش للنموذج في Weight and Biases.

إعداد

< >

( argsstatemodel**kwargs )

قم بإعداد تكامل Weights & Biases (wandb) الاختياري.

يمكن إنشاء فئة فرعية من هذه الفئة وتجاوز هذه الطريقة لتخصيص الإعداد عند الحاجة. تجد مزيدًا من المعلومات هنا. كما يمكنك تجاوز متغيرات البيئة التالية:

البيئة:

  • WANDB_LOG_MODEL (str، اختياري، القيمة الافتراضية "false"): ما إذا كان سيتم تسجيل النموذج والنقاط المحفوظة (checkpoints) أثناء التدريب. يمكن أن تكون القيمة "end" أو "checkpoint" أو "false". إذا تم ضبطها على "end"، فسيتم رفع النموذج في نهاية التدريب. إذا تم ضبطها على "checkpoint"، فسيتم رفع النقطة المحفوظة كل args.save_steps خطوة. إذا تم ضبطها على "false"، فلن يتم رفع النموذج. استخدمها مع load_best_model_at_end() لرفع أفضل نموذج.
  • WANDB_WATCH (str، اختياري، القيمة الافتراضية "false"): يمكن أن تكون "gradients" أو "all" أو "parameters" أو "false". اضبطها على "all" لتسجيل التدرجات والباراميترات.
  • WANDB_PROJECT (str، اختياري، القيمة الافتراضية "huggingface"): اضبط هذا على نص مخصص لتخزين النتائج في مشروع مختلف.

فئة transformers.integrations.MLflowCallback

< >

( )

A TrainerCallback that sends the logs to MLflow. Can be disabled by setting environment variable DISABLE_MLFLOW_INTEGRATION = TRUE.

إعداد

< >

( argsstatemodel )

قم بإعداد تكامل MLflow الاختياري.

البيئة:

  • HF_MLFLOW_LOG_ARTIFACTS (str، اختياري): ما إذا كان سيتم استخدام آلية .log_artifact() في MLflow لتسجيل المخرجات. لا يكون هذا الخيار منطقيًا إلا عند التسجيل على خادم بعيد، مثل s3 أو GCS. إذا تم ضبطه على True أو 1، فسيتم نسخ كل نقطة تحقق محفوظة عند كل عملية حفظ في output_dir الخاصة بـ TrainingArguments إلى تخزين المخرجات المحلي أو البعيد. استخدام هذه الخاصية دون تخزين بعيد سيؤدي فقط إلى نسخ الملفات إلى موقع المخرجات الخاص بك.
  • MLFLOW_TRACKING_URI (str، اختياري): ما إذا كان سيتم تخزين التشغيلات في مسار محدد أو على خادم بعيد. غير مُعيَّن افتراضيًا، مما يؤدي إلى تخطي تعيين URI للتتبع بالكامل.
  • MLFLOW_EXPERIMENT_NAME (str, اختياري، القيمة الافتراضية None): ما إذا كان سيتم استخدام اسم تجربة MLflow (experiment_name) لإطلاق التشغيل. القيمة الافتراضية هي None والتي تشير إلى تجربة Default في MLflow. وإلا، فهي اسم التجربة المراد تفعيله، مع مراعاة حالة الأحرف. إذا لم توجد تجربة بهذا الاسم، يتم إنشاء تجربة جديدة بهذا الاسم.
  • MLFLOW_TAGS (str، اختياري): سلسلة نصية تمثل تصريفاً لقاموس من أزواج المفتاح/القيمة ليتم إضافتها كوسوم إلى تشغيل MLflow. مثال: os.environ['MLFLOW_TAGS']='{"release.candidate": "RC1", "release.version": "2.2.0"}'.
  • MLFLOW_NESTED_RUN (str، اختياري): ما إذا كان سيتم استخدام عمليات MLflow المتداخلة. إذا تم ضبطه على True أو 1، فسيتم إنشاء عملية متداخلة داخل العملية الحالية.
  • MLFLOW_RUN_ID (str، اختياري): يسمح بإعادة الارتباط بتشغيل موجود، وهو ما قد يكون مفيدًا عند استئناف التدريب من نقطة تفتيش. عند تعيين متغير البيئة MLFLOW_RUN_ID، تحاول start_run استئناف التشغيل ذي معرّف التشغيل المحدد، وتُتجاهل المعاملات الأخرى.
  • MLFLOW_FLATTEN_PARAMS (str، اختياري، القيمة الافتراضية False): ما إذا كان سيتم تسطيح قاموس المعلمات قبل التسجيل.
  • MLFLOW_MAX_LOG_PARAMS (int، اختياري): تعيين الحد الأقصى لعدد المعاملات التي سيتم تسجيلها في التشغيل.

فئة transformers.integrations.AzureMLCallback

< >

( azureml_run = None )

TrainerCallback يرسل السجلات إلى AzureML.

فئة transformers.integrations.CodeCarbonCallback

< >

( )

TrainerCallback يتتبع انبعاثات ثاني أكسيد الكربون الناتجة عن التدريب.

فئة transformers.integrations.ClearMLCallback

< >

( )

A TrainerCallback that sends the logs to ClearML.

البيئة:

  • CLEARML_PROJECT (str، اختياري، القيمة الافتراضية HuggingFace Transformers): اسم مشروع ClearML.
  • CLEARML_TASK (str، اختياري، القيمة الافتراضية Trainer): اسم مهمة ClearML.
  • CLEARML_LOG_MODEL (bool، اختياري، القيمة الافتراضية False): ما إذا كان سيتم تسجيل النماذج كعناصر أثناء التدريب.

فئة transformers.integrations.DagsHubCallback

< >

( )

TrainerCallback يسجّل إلى DagsHub. يوسّع MLflowCallback

إعداد

< >

( *args**kwargs )

إعداد تكامل تسجيل DagsHub.

البيئة:

  • HF_DAGSHUB_LOG_ARTIFACTS (str، اختياري): ما إذا كان يجب حفظ بيانات التجربة ومنتجات النموذج. القيمة الافتراضية هي False.

فئة transformers.integrations.FlyteCallback

< >

( save_log_history: bool = Truesync_checkpoints: bool = True )

المعاملات

  • save_log_history (bool، اختياري، القيمة الافتراضية True) — عند ضبطه على True، تُحفظ سجلات التدريب على شكل Flyte Deck.
  • sync_checkpoints (bool، اختياري، القيمة الافتراضية True) — عند ضبطه على True، تتم مزامنة نقاط التفتيش مع Flyte ويمكن استخدامها لاستئناف التدريب في حال حدوث انقطاع.

TrainerCallback يرسل السجلات إلى Flyte. ملاحظة: يعمل هذا الاستدعاء فقط داخل مهمة Flyte.

مثال:

# Note: This example skips over some setup steps for brevity.
from flytekit import current_context, task


@task
def train_hf_transformer():
    cp = current_context().checkpoint
    trainer = Trainer(..., callbacks=[FlyteCallback()])
    output = trainer.train(resume_from_checkpoint=cp.restore())

فئة transformers.integrations.KubeflowCallback

< >

( )

TrainerCallback يُبلّغ عن تقدّم التدريب إلى Kubeflow Trainer.

This callback is automatically registered when training inside a Kubeflow TrainJob with the TrainJobRuntimeStatus feature gate enabled. The Kubeflow controller injects the required environment variables into the training pod.

متغيرات البيئة (المحقونة بواسطة المتحكم):

  • KUBEFLOW_TRAINER_SERVER_URL: نقطة نهاية HTTPS لتحديثات الحالة
  • KUBEFLOW_TRAINER_SERVER_CA_CERT: مسار شهادة CA للتحقق من TLS
  • KUBEFLOW_TRAINER_SERVER_TOKEN: مسار رمز حساب الخدمة للمصادقة

المعلومات المُبلَّغ عنها:

  • نسبة التقدم (0-100%)
  • الوقت المتبقي المقدر (بالثواني)
  • مقاييس التدريب (الخسارة، learning_rate، إلخ)

الميزات:

  • التحكم التلقائي في معدل التحديث (حد أقصى 1 تحديث كل 5 ثوانٍ) لتجنب إجهاد وحدة التحكم
  • التخزين المؤقت للرموز (٥ دقائق) لتقليل عمليات الإدخال والإخراج للملفات
  • يُبلّغ عن التقدم في التدريب الموزّع فقط المرتبة 0
  • الفشل الصامت - لن تُسبّب مشاكل الشبكة انقطاعاً في التدريب

يمكن تعطيله عن طريق تعيين متغير البيئة DISABLE_KUBEFLOW_INTEGRATION=TRUE.

فئة transformers.integrations.DVCLiveCallback

< >

( live: typing.Any | None = Nonelog_model: typing.Union[typing.Literal['all'], bool, NoneType] = None**kwargs )

المعاملات

  • live (dvclive.Live، اختياري، القيمة الافتراضية None) — مثال اختياري من Live. إذا كانت القيمة None، فسيتم إنشاء مثال جديد باستخدام **kwargs.
  • log_model (Union[Literal[“all”], bool], اختياري، القيمة الافتراضية None) — ما إذا كان سيتم استخدام dvclive.Live.log_artifact() لتسجيل نقاط التفتيش التي ينشئها Trainer. إذا تم ضبطه على True، يتم تسجيل نقطة التفتيش النهائية في نهاية التدريب. إذا تم ضبطه على "all"، يتم تسجيل output_dir الخاص بـ TrainingArguments بالكامل عند كل نقطة تفتيش.

A TrainerCallback that sends the logs to DVCLive.

استخدم متغيرات البيئة أدناه في setup لإعداد التكامل. لتخصيص هذا الاستدعاء الخلفي بما يتجاوز تلك متغيرات البيئة، راجع هنا.

إعداد

< >

( argsstatemodel )

قم بإعداد تكامل DVCLive الاختياري. لتخصيص هذا الاستدعاء الخلفي بما يتجاوز متغيرات البيئة أدناه، راجع هنا.

البيئة:

  • HF_DVCLIVE_LOG_MODEL (str، اختياري): ما إذا كان سيتم استخدام dvclive.Live.log_artifact() لتسجيل نقاط التفتيش التي ينشئها Trainer. إذا تم ضبطه على True أو 1، يتم تسجيل نقطة التفتيش النهائية في نهاية التدريب. إذا تم ضبطه على all، يتم تسجيل مجلد output_dir الخاص بـ TrainingArguments بالكامل عند كل نقطة تفتيش.

فئة transformers.integrations.SwanLabCallback

< >

( )

A TrainerCallback that logs metrics, media, model checkpoints to SwanLab.

إعداد

< >

( argsstatemodel**kwargs )

قم بإعداد تكامل SwanLab (swanlab) الاختياري.

يمكن إنشاء فئة فرعية من هذه الفئة وتجاوز هذه الطريقة لتخصيص الإعداد عند الحاجة. تجد مزيدًا من المعلومات هنا.

يمكنك أيضًا تجاوز متغيرات البيئة التالية. تجد مزيدًا من المعلومات حول متغيرات البيئة هنا

البيئة:

  • SWANLAB_API_KEY (str، اختياري، القيمة الافتراضية None): مفتاح واجهة برمجة التطبيقات السحابية. أثناء تسجيل الدخول، يتم التحقق من متغير البيئة هذا أولاً. إذا لم يكن موجوداً، يتحقق النظام مما إذا كان المستخدم مسجلاً الدخول بالفعل. وإذا لم يكن كذلك، يتم بدء عملية تسجيل الدخول.

    • إذا تم تمرير سلسلة نصية إلى واجهة تسجيل الدخول، يتم تجاهل متغير البيئة هذا.
    • إذا كان المستخدم مسجّل الدخول بالفعل، فإن متغير البيئة هذا يتفوّق على معلومات تسجيل الدخول المخزّنة محليًا.
  • SWANLAB_PROJECT (str، اختياري، القيمة الافتراضية None): اضبط هذا على نص مخصص لتخزين النتائج في مشروع مختلف. إذا لم يتم تحديده، يتم استخدام اسم المجلد الحالي قيد التشغيل.

  • SWANLAB_LOG_DIR (str، اختياري، القيمة الافتراضية swanlog): تحدد هذه المتغيّرة البيئية مسار تخزين ملفات السجلات عند التشغيل في الوضع المحلي. بشكل افتراضي، تُحفظ السجلات في مجلد باسم swanlog تحت المجلد العامل.

  • SWANLAB_MODE (Literal["local", "cloud", "disabled"]، اختياري، القيمة الافتراضية cloud): وضع تحليل SwanLab، والذي يتضمن استدعاءات مسجّلة من قِبل المشغّل. حاليًا، هناك ثلاثة أوضاع: local وcloud وdisabled. ملاحظة: حساس لحالة الأحرف. تجد مزيدًا من المعلومات هنا

  • SWANLAB_LOG_MODEL (str، اختياري، القيمة الافتراضية None): لا يدعم SwanLab حاليًا وظيفة وضع الحفظ. ستكون هذه الميزة متاحة في إصدار مستقبلي

  • SWANLAB_WEB_HOST (str، اختياري، القيمة الافتراضية None): عنوان الويب لبيئة SwanLab السحابية للنسخة الخاصة (وهي مجانية)

  • SWANLAB_API_HOST (str، اختياري، القيمة الافتراضية None): عنوان واجهة برمجة التطبيقات (API) لبيئة SwanLab السحابية للنسخة الخاصة (وهي مجانية)

  • SWANLAB_RUN_ID (str، اختياري، القيمة الافتراضية None): معرّف التجربة لاستئناف تشغيل سابق. يُستخدم مع SWANLAB_RESUME لمواصلة تجربة قائمة.

  • SWANLAB_RESUME (str، اختياري، القيمة الافتراضية None): وضع الاستئناف ("must"، "allow"، "never"). تكون القيمة الافتراضية "allow" عند استخدام resume_from_checkpoint.

TrainerCallback

فئة transformers.TrainerCallback

< >

( )

المعاملات

  • args (TrainingArguments) — حجج التدريب المستخدمة لإنشاء Trainer.
  • state (TrainerState) — الحالة الحالية لـ Trainer.
  • control (TrainerControl) — الكائن الذي يُعاد إلى Trainer ويمكن استخدامه لاتخاذ بعض القرارات.
  • model (PreTrainedModel أو torch.nn.Module) — النموذج الذي يتم تدريبه.
  • processing_class ([PreTrainedTokenizer أو BaseImageProcessor أو ProcessorMixin أو FeatureExtractionMixin]) — فئة المعالجة المستخدمة لتشفير البيانات. يمكن أن تكون مُجزِّئًا (tokenizer) أو مُعالِجًا (processor) أو مُعالِج صور (image processor) أو مستخرج ميزات (feature extractor).
  • optimizer (torch.optim.Optimizer) — المُحسِّن المستخدم في خطوات التدريب.
  • lr_scheduler (torch.optim.lr_scheduler.LambdaLR) — المجدول المستخدم لضبط معدل التعلم.
  • train_dataloader (torch.utils.data.DataLoader، اختياري) — مُحمِّل البيانات الحالي المستخدم للتدريب.
  • eval_dataloader (torch.utils.data.DataLoader, اختياري) — محمّل البيانات الحالي المستخدم للتقييم.
  • metrics (dict[str, float]) — المقاييس التي تم حسابها في مرحلة التقييم الأخيرة.

    لا يمكن الوصول إليها إلا في الحدث on_evaluate.

  • logs (dict[str, float]) — القيم التي سيتم تسجيلها.

    لا يمكن الوصول إليها إلا في الحدث on_log.

فئة للكائنات التي ستفحص حالة حلقة التدريب في بعض الأحداث وتتخذ بعض القرارات. في كلٍّ من تلك الأحداث، تتوفر الحُجج التالية:

يُعدّ كائن control الكائن الوحيد الذي يمكن تغييره بواسطة الاستدعاء العكسي، وفي هذه الحالة يجب أن يعيد الحدث الذي يُجري التغيير النسخة المعدّلة.

الحجج args وstate وcontrol هي حجج موضعية لجميع الأحداث، بينما تُجمَّع جميع الحجج الأخرى في kwargs. يمكنك تفكيك ما تحتاجه منها في توقيع الحدث باستخدامها. كمثال، راجع كود PrinterCallback البسيط.

مثال:

class PrinterCallback(TrainerCallback):
    def on_log(self, args, state, control, logs=None, **kwargs):
        _ = logs.pop("total_flos", None)
        if state.is_local_process_zero:
            print(logs)

on_epoch_begin

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

حدث يُستدعى في بداية حقبة.

on_epoch_end

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

حدث يُستدعى في نهاية حقبة.

on_evaluate

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

حدث يُستدعى بعد مرحلة التقييم.

on_init_end

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

حدث يُستدعى في نهاية تهيئة Trainer.

on_log

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

حدث يُستدعى بعد تسجيل السجلات الأخيرة.

on_optimizer_step

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

حدث يُستدعى بعد خطوة المُحسِّن وقبل تصفير التدرّجات. مفيد لمراقبة التدرّجات.

on_pre_optimizer_step

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

حدث يُستدعى قبل خطوة المُحسِّن (optimizer) ولكن بعد تقليم التدرّجات. مفيد لمراقبة التدرّجات.

on_predict

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControlmetrics**kwargs )

حدث يُستدعى بعد تنبؤ ناجح.

on_prediction_step

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

حدث يُستدعى بعد خطوة التنبؤ.

on_push_begin

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Event called before pushing the model to the hub, at the beginning of Trainer.push_to_hub and Trainer._push_from_checkpoint.

on_save

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

حدث يُستدعى بعد حفظ نقطة التفتيش.

on_step_begin

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

حدث يُستدعى في بداية خطوة تدريب. عند استخدام تراكم التدرجات، قد تتطلب خطوة تدريب واحدة عدة مدخلات.

on_step_end

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

حدث يُستدعى في نهاية خطوة تدريب. عند استخدام تراكم التدرجات، قد تتطلب خطوة تدريب واحدة عدة مدخلات.

on_substep_end

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

حدث يُستدعى في نهاية خطوة فرعية أثناء تراكم التدرجات.

on_train_begin

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

حدث يُستدعى في بداية التدريب.

on_train_end

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

حدث يُستدعى في نهاية التدريب.

فيما يلي مثال على كيفية تسجيل استجابة مخصصة مع Trainer في PyTorch:

class MyCallback(TrainerCallback):
    "A callback that prints a message at the beginning of training"

    def on_train_begin(self, args, state, control, **kwargs):
        print("Starting training")


trainer = Trainer(
    model,
    args,
    train_dataset=train_dataset,
    eval_dataset=eval_dataset,
    callbacks=[MyCallback],  # We can either pass the callback class this way or an instance of it (MyCallback())
)

طريقة أخرى لتسجيل مستدع هي استدعاء trainer.add_callback() على النحو التالي:

trainer = Trainer(...)
trainer.add_callback(MyCallback)
# Alternatively, we can pass an instance of the callback class
trainer.add_callback(MyCallback())

TrainerState

فئة transformers.TrainerState

< >

( epoch: float = 0global_step: int = 0max_steps: int = 0logging_steps: int = 500eval_steps: int = 500save_steps: int = 500train_batch_size: int | None = Nonenum_train_epochs: int = 0num_input_tokens_seen: int = 0total_flos: float = 0log_history: list = Nonebest_metric: float | None = Nonebest_global_step: int | None = Nonebest_model_checkpoint: str | None = Noneis_local_process_zero: bool = Trueis_world_process_zero: bool = Trueis_hyper_param_search: bool = Falsetrial_name: str | None = Nonetrial_params: dict[str, str | float | int | bool] | None = Nonestateful_callbacks: list['TrainerCallback'] | None = None )

المعاملات

  • epoch (float, اختياري) — يُعيَّن فقط أثناء التدريب، ويمثل الجولة التي يتواجد فيها التدريب (حيث يمثل الجزء الكسري نسبة إكمال الجولة الحالية).
  • global_step (int، اختياري، القيمة الافتراضية 0) — أثناء التدريب، يمثل عدد خطوات التحديث المكتملة.
  • max_steps (int، اختياري، القيمة الافتراضية 0) — عدد خطوات التحديث التي سيتم تنفيذها خلال التدريب الحالي.
  • logging_steps (int، اختياري، القيمة الافتراضية 500) — تسجيل كل X خطوات تحديث
  • eval_steps (int, اختياري) — تنفيذ التقييم كل X خطوات.
  • save_steps (int، اختياري، القيمة الافتراضية 500) — احفظ نقطة التفتيش كل X خطوات تحديث.
  • train_batch_size (int, اختياري) — حجم الدفعة (batch size) الخاص بمحمّل بيانات التدريب. لا يُحتاج إليه إلا عند استخدام auto_find_batch_size.
  • num_input_tokens_seen (int، اختياري، القيمة الافتراضية 0) — عند تتبع رموز المدخلات، عدد الرموز التي شوهدت أثناء التدريب (عدد رموز المدخلات، وليس عدد رموز التنبؤ).
  • total_flos (float، اختياري، القيمة الافتراضية 0) — إجمالي عدد العمليات العائمة التي قام بها النموذج منذ بداية التدريب (تُخزَّن كأرقام عائمة لتجنب تجاوز الحد الأقصى).
  • log_history (list[dict[str, float]]، اختياري) — قائمة السجلات التي تم إنشاؤها منذ بداية التدريب.
  • best_metric (float, اختياري) — عند تتبع أفضل نموذج، قيمة أفضل مقياس تم الوصول إليه حتى الآن.
  • best_global_step (int, اختياري) — عند تتبع أفضل نموذج، الخطوة التي تم فيها رصد أفضل مقياس. يُستخدم لضبط best_model_checkpoint.
  • best_model_checkpoint (str, اختياري) — عند تتبع أفضل نموذج، قيمة اسم نقطة التفتيش للنموذج الأفضل الذي تم العثور عليه حتى الآن.
  • is_local_process_zero (bool، اختياري، القيمة الافتراضية True) — ما إذا كان هذا العملية هي العملية الرئيسية المحلية (على سبيل المثال، على جهاز واحد عند التدريب بطريقة موزعة على عدة أجهزة) أم لا.
  • is_world_process_zero (bool، اختياري، الافتراضي True) — ما إذا كان هذا العملية هي العملية الرئيسية العالمية (عند التدريب بطريقة موزعة على عدة أجهزة، لن تكون True إلا لعملية واحدة).
  • is_hyper_param_search (bool، اختياري، القيمة الافتراضية False) — هل نحن في مرحلة البحث عن المعلمات الفائقة باستخدام Trainer.hyperparameter_search. سيؤثر هذا على طريقة تسجيل البيانات في TensorBoard.
  • stateful_callbacks (list[StatefulTrainerCallback]، اختياري) — المستدعات المرتبطة بـ Trainer والتي يجب حفظ حالاتها أو استعادتها. يجب أن تنفّذ المستدعات ذات الصلة دالة state ودالة from_state.

فئة تحتوي على الحالة الداخلية لـ Trainer التي سيتم حفظها مع النموذج والمُحسِّن عند إنشاء نقاط التفتيش، وتُمرَّر إلى TrainerCallback.

في هذه الفئة بأكملها، يُفهم أن الخطوة الواحدة تعني خطوة تحديث واحدة. عند استخدام تراكم التدرجات، قد تتطلب خطوة التحديث الواحدة عدة تمريرات أمامية وخلفية: إذا استخدمت gradient_accumulation_steps=n، فإن خطوة التحديث الواحدة تتطلب المرور عبر n دفعات.

compute_steps

< >

( argsmax_steps )

يُحسب القيمة المطلقة ويخزّنها لأغراض التسجيل، والتقييم، وخطوات الحفظ، بناءً على ما إذا كانت نسبةً أم لا.

init_training_references

< >

( trainermax_stepsnum_train_epochstrial )

يخزّن المراجع الأولية للتدريب المطلوبة في self

load_from_json

< >

( json_path: str )

أنشئ مثيلًا من محتوى json_path.

save_to_json

< >

( json_path: str )

احفظ محتوى هذه الكائن في صيغة JSON داخل json_path.

TrainerControl

فئة transformers.TrainerControl

< >

( should_training_stop: bool = Falseshould_epoch_stop: bool = Falseshould_save: bool = Falseshould_evaluate: bool = Falseshould_log: bool = False )

المعاملات

  • should_training_stop (bool, اختياري, الافتراضي هو False) — ما إذا كان يجب مقاطعة التدريب أم لا.

    إذا كانت True، فلن يُعاد ضبط هذا المتغير إلى False. سيتوقف التدريب ببساطة.

  • should_epoch_stop (bool, اختياري, الافتراضي هو False) — ما إذا كان يجب مقاطعة الحقبة الحالية أم لا.

    إذا كانت True، فسيتم إعادة تعيين هذا المتغير إلى False في بداية الحقبة التالية.

  • should_save (bool, اختياري, الافتراضي هو False) — ما إذا كان يجب حفظ النموذج في هذه الخطوة أم لا.

    إذا كانت True، فسيتم إعادة تعيين هذا المتغير إلى False في بداية الخطوة التالية.

  • should_evaluate (bool, اختياري, الافتراضي هو False) — ما إذا كان يجب تقييم النموذج في هذه الخطوة أم لا.

    إذا كانت True، فسيتم إعادة تعيين هذا المتغير إلى False في بداية الخطوة التالية.

  • should_log (bool, اختياري, الافتراضي هو False) — ما إذا كان يجب الإبلاغ عن السجلات في هذه الخطوة أم لا.

    إذا كانت True، فسيتم إعادة تعيين هذا المتغير إلى False في بداية الخطوة التالية.

فئة تتولى تدفق التحكم في Trainer. تُستخدم هذه الفئة بواسطة TrainerCallback لتفعيل بعض المفاتيح في حلقة التدريب.

Update on GitHub