Transformers documentation
المستدعات
المستدعات
المستدعات (Callbacks) هي كائنات يمكنها تخصيص سلوك حلقة التدريب في Trainer الخاص بـ PyTorch، حيث يمكنها فحص حالة حلقة التدريب (لأغراض الإبلاغ عن التقدم، أو التسجيل في TensorBoard أو منصات التعلم الآلي الأخرى…) واتخاذ قرارات (مثل التوقف المبكر).
تُعدّ المستدعات (Callbacks) مقاطع من الشيفرة "للقراءة فقط"، فباستثناء كائن TrainerControl الذي تُرجعه، لا يمكنها تغيير أي شيء في حلقة التدريب. أما للتخصيصات التي تتطلب إجراء تغييرات في حلقة التدريب، فيجب عليك إنشاء فئة فرعية من Trainer وتجاوز (override) الطرق التي تحتاجها (راجع trainer للحصول على أمثلة).
بشكل افتراضي، يُضبط TrainingArguments.report_to على "none".
الفئة الرئيسية التي تنفّذ الاستدعاءات العكسية هي TrainerCallback. تحصل على TrainingArguments المستخدمة لإنشاء Trainer، ويمكنها الوصول إلى الحالة الداخلية لذلك Trainer عبر TrainerState، كما يمكنها تنفيذ بعض الإجراءات على حلقة التدريب عبر TrainerControl.
الاستدعاءات المتاحة
فيما يلي قائمة بـ TrainerCallback المتاحة في المكتبة:
TrainerCallback يرسل السجلات إلى Comet ML.
قم بإعداد تكامل 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.
لمعرفة عدد من العناصر القابلة للتكوين في البيئة، راجع هنا.
TrainerCallback يتعامل مع التدفق الافتراضي لحلقة التدريب الخاصة بالسجلات والتقييم والنقاط المحفوظة.
A bare TrainerCallback that just prints the logs.
TrainerCallback يعرض تقدم التدريب أو التقييم.
يمكنك تعديل max_str_len للتحكم في طول النصوص التي يتم اقتطاعها عند التسجيل.
فئة transformers.EarlyStoppingCallback
< source >( 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, اختياري) — يُستخدم مع TrainingArgumentsmetric_for_best_modelوearly_stopping_patienceلتحديد مقدار التحسّن المطلوب في المقياس المحدد حتى تتحقق شروط التوقف المبكر. `
TrainerCallback يتعامل مع التوقف المبكر.
يعتمد هذا الاستدعاء العكسي على وظيفة load_best_model_at_end في معامل TrainingArguments لضبط best_metric في TrainerState. لاحظ أنه إذا اختلف معامل save_steps في TrainingArguments عن eval_steps، فلن يحدث التوقف المبكر حتى الخطوة التالية لحفظ النموذج.
فئة transformers.integrations.TensorBoardCallback
< source >( tb_writer = None )
TrainerCallback يرسل السجلات إلى TensorBoard.
البيئة:
- TENSORBOARD_LOGGING_DIR (
str، اختياري، القيمة الافتراضيةNone): المجلد الذي تُسجَّل فيه النتائج. القيمة الافتراضية هي os.path.join(args.output_dir, default_logdir())
TrainerCallback يسجّل المقاييس في Trackio.
قم بإعداد تكامل Trackio الاختياري.
لتخصيص الإعداد، يمكنك أيضاً تعيين project وtrackio_space_id وtrackio_bucket_id وtrackio_static_space_id وhub_private_repo في TrainingArguments.
TrainerCallback يسجّل المقاييس والوسائط ونقاط التفتيش للنموذج في Weight and Biases.
قم بإعداد تكامل 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"): اضبط هذا على نص مخصص لتخزين النتائج في مشروع مختلف.
TrainerCallback يرسل السجلات إلى MLflow. يمكن تعطيله عن طريق تعيين متغير البيئة DISABLE_MLFLOW_INTEGRATION = TRUE.
قم بإعداد تكامل 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، اختياري): تعيين الحد الأقصى لعدد المعاملات التي سيتم تسجيلها في التشغيل.
TrainerCallback يرسل السجلات إلى AzureML.
TrainerCallback يتتبع انبعاثات ثاني أكسيد الكربون الناتجة عن التدريب.
TrainerCallback يرسل السجلات إلى ClearML.
البيئة:
- CLEARML_PROJECT (
str، اختياري، القيمة الافتراضيةHuggingFace Transformers): اسم مشروع ClearML. - CLEARML_TASK (
str، اختياري، القيمة الافتراضيةTrainer): اسم مهمة ClearML. - CLEARML_LOG_MODEL (
bool، اختياري، القيمة الافتراضيةFalse): ما إذا كان سيتم تسجيل النماذج كعناصر أثناء التدريب.
TrainerCallback يسجّل إلى DagsHub. يوسّع MLflowCallback
إعداد تكامل تسجيل DagsHub.
البيئة:
- HF_DAGSHUB_LOG_ARTIFACTS (
str، اختياري): ما إذا كان يجب حفظ بيانات التجربة ومنتجات النموذج. القيمة الافتراضية هيFalse.
فئة transformers.integrations.FlyteCallback
< source >( save_log_history: bool = Truesync_checkpoints: bool = True )
TrainerCallback يرسل السجلات إلى Flyte. ملاحظة: يعمل هذا الاستدعاء فقط داخل مهمة Flyte.
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 للتحقق من TLSKUBEFLOW_TRAINER_SERVER_TOKEN: مسار رمز حساب الخدمة للمصادقة
المعلومات المُبلَّغ عنها:
- نسبة التقدم (0-100%)
- الوقت المتبقي المقدر (بالثواني)
- مقاييس التدريب (الخسارة، learning_rate، إلخ)
الميزات:
- التحكم التلقائي في معدل التحديث (حد أقصى 1 تحديث كل 5 ثوانٍ) لتجنب إجهاد وحدة التحكم
- التخزين المؤقت للرموز (٥ دقائق) لتقليل عمليات الإدخال والإخراج للملفات
- يُبلّغ عن التقدم في التدريب الموزّع فقط المرتبة 0
- الفشل الصامت - لن تُسبّب مشاكل الشبكة انقطاعاً في التدريب
يمكن تعطيله عن طريق تعيين متغير البيئة DISABLE_KUBEFLOW_INTEGRATION=TRUE.
فئة transformers.integrations.DVCLiveCallback
< source >( 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 لإعداد التكامل. لتخصيص هذا الاستدعاء الخلفي بما يتجاوز تلك متغيرات البيئة، راجع هنا.
قم بإعداد تكامل DVCLive الاختياري. لتخصيص هذا الاستدعاء الخلفي بما يتجاوز متغيرات البيئة أدناه، راجع هنا.
البيئة:
- HF_DVCLIVE_LOG_MODEL (
str، اختياري): ما إذا كان سيتم استخدامdvclive.Live.log_artifact()لتسجيل نقاط التفتيش التي ينشئها Trainer. إذا تم ضبطه علىTrueأو 1، يتم تسجيل نقطة التفتيش النهائية في نهاية التدريب. إذا تم ضبطه علىall، يتم تسجيل مجلدoutput_dirالخاص بـ TrainingArguments بالكامل عند كل نقطة تفتيش.
A TrainerCallback that logs metrics, media, model checkpoints to SwanLab.
قم بإعداد تكامل 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
< source >( )
المعاملات
- 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
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
حدث يُستدعى في بداية حقبة.
on_epoch_end
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
حدث يُستدعى في نهاية حقبة.
on_evaluate
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
حدث يُستدعى بعد مرحلة التقييم.
on_init_end
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
حدث يُستدعى في نهاية تهيئة Trainer.
حدث يُستدعى بعد تسجيل السجلات الأخيرة.
on_optimizer_step
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
حدث يُستدعى بعد خطوة المُحسِّن وقبل تصفير التدرّجات. مفيد لمراقبة التدرّجات.
on_pre_optimizer_step
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
حدث يُستدعى قبل خطوة المُحسِّن (optimizer) ولكن بعد تقليم التدرّجات. مفيد لمراقبة التدرّجات.
on_predict
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControlmetrics**kwargs )
حدث يُستدعى بعد تنبؤ ناجح.
on_prediction_step
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
حدث يُستدعى بعد خطوة التنبؤ.
on_push_begin
< source >( 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_step_begin
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
حدث يُستدعى في بداية خطوة تدريب. عند استخدام تراكم التدرجات، قد تتطلب خطوة تدريب واحدة عدة مدخلات.
on_step_end
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
حدث يُستدعى في نهاية خطوة تدريب. عند استخدام تراكم التدرجات، قد تتطلب خطوة تدريب واحدة عدة مدخلات.
on_substep_end
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
حدث يُستدعى في نهاية خطوة فرعية أثناء تراكم التدرجات.
on_train_begin
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
حدث يُستدعى في بداية التدريب.
on_train_end
< source >( 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
< source >( 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 دفعات.
يُحسب القيمة المطلقة ويخزّنها لأغراض التسجيل، والتقييم، وخطوات الحفظ، بناءً على ما إذا كانت نسبةً أم لا.
يخزّن المراجع الأولية للتدريب المطلوبة في self
أنشئ مثيلًا من محتوى json_path.
احفظ محتوى هذه الكائن في صيغة JSON داخل json_path.
TrainerControl
فئة transformers.TrainerControl
< source >( 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 لتفعيل بعض المفاتيح في حلقة التدريب.