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

تمت مساهمة هذا النموذج في Hugging Face Transformers في 2022-09-30.

محوّل السلاسل الزمنية

نظرة عامة

نموذج Time Series Transformer هو نموذج Transformer قياسي من نوع المُشفِّر-المُفكِّك (encoder-decoder) للتنبؤ بالمتسلسلات الزمنية. تمت مساهمة هذا النموذج من قِبل kashif.

نصائح للاستخدام

  • على غرار النماذج الأخرى في المكتبة، يُعدّ TimeSeriesTransformerModel نموذج Transformer خامًا دون أي رأس (head) في قمته، بينما يضيف TimeSeriesTransformerForPrediction رأس توزيع فوق النموذج السابق، ويمكن استخدامه للتنبؤ بالمتسلسلات الزمنية. يُشار إلى أن هذا نموذج تنبؤ احتمالي (probabilistic forecasting model) وليس نموذج تنبؤ نقطي (point forecasting model). وهذا يعني أن النموذج يتعلم توزيعًا يمكن أخذ عينات منه، ولا يُخرج النموذج قيمًا مباشرة.
  • يتكوّن TimeSeriesTransformerForPrediction من وحدتين: مُشفِّر يستقبل مدخلات من قيم السلاسل الزمنية بطول context_length (تُسمّى past_values)، ومُفكِّك يتنبأ بقيم السلاسل الزمنية للمستقبل بطول prediction_length (تُسمّى future_values). أثناء التدريب، يجب تقديم أزواج من (past_values وfuture_values) إلى النموذج.
  • In addition to the raw (past_values and future_values), one typically provides additional features to the model. These can be the following:
    • past_time_features: خصائص زمنية سيقوم النموذج بإضافتها إلى past_values. تعمل هذه الخصائص كـ "ترميز موضعي" لمشفّر Transformer. من الأمثلة على ذلك "يوم من الشهر" و"شهر من السنة" وما إلى ذلك، كقيم قياسية (ثم تُرصّ معًا كمتجه). على سبيل المثال، إذا تم الحصول على قيمة معينة من السلسلة الزمنية في 11 أغسطس، فيمكن أن يكون متجه الخاصية الزمنية [11, 8] (حيث يمثل 11 "يوم من الشهر" و8 "شهر من السنة").
    • future_time_features: خصائص زمنية سيقوم النموذج بإضافتها إلى future_values. تعمل هذه الخصائص كـ "ترميز موضعي" لمفكك Transformer. من الأمثلة على ذلك "يوم من الشهر"، "شهر من السنة"، وما إلى ذلك، بقيم قياسية (ثم تُرصّ معًا كمتجه). على سبيل المثال، إذا تم الحصول على قيمة سلسلة زمنية معينة في 11 أغسطس، فيمكن أن يكون متجه الخاصية الزمنية [11, 8] (حيث يمثل 11 "يوم من الشهر"، و8 يمثل "شهر من السنة").
    • static_categorical_features: سمات فئوية ثابتة عبر الزمن (أي أن لها القيمة نفسها لجميع قيم past_values وfuture_values). مثال على ذلك هو معرّف المتجر أو معرّف المنطقة الذي يميّز سلسلة زمنية معينة. يُرجى ملاحظة أن هذه السمات يجب أن تكون معروفة لجميع نقاط البيانات (بما في ذلك تلك الموجودة في المستقبل).
    • static_real_features: ميزات ذات قيم حقيقية ثابتة عبر الزمن (أي أن لها القيمة نفسها لجميع past_values وfuture_values). مثال على ذلك هو تمثيل الصورة للمنتج الذي لديك قيم السلاسل الزمنية الخاصة به (مثل تضمين ResNet لصورة "حذاء"، إذا كانت سلسلتك الزمنية تتعلق بمبيعات الأحذية). لاحظ أن هذه الميزات يجب أن تكون معروفة لجميع نقاط البيانات (بما في ذلك تلك الموجودة في المستقبل).
  • يتم تدريب النموذج باستخدام «إجبار المعلم»، على غرار طريقة تدريب Transformer للترجمة الآلية. وهذا يعني أنه، أثناء التدريب، يتم إزاحة future_values بمقدار موضع واحد إلى اليمين كمدخل إلى المُفكِّك، مع إضافة آخر قيمة من past_values في البداية. وفي كل خطوة زمنية، يحتاج النموذج إلى التنبؤ بالهدف التالي. لذا فإن إعداد التدريب يشبه إعداد نموذج GPT للغة، باستثناء عدم وجود مفهوم decoder_start_token_id (حيث نستخدم ببساطة آخر قيمة من السياق كمدخل أولي للمُفكِّك).
  • عند الاستدلال، نمرّر القيمة النهائية لـ past_values كمدخل إلى المُفكِّك. ثم يمكننا أخذ عينة من النموذج لإجراء تنبؤ في الخطوة الزمنية التالية، والتي تُغذّى بدورها المُفكِّك لإجراء التنبؤ التالي (المعروف أيضاً بالتوليد الذاتي التكراري).

الموارد

قائمة بموارد رسمية من Hugging Face وموارد مجتمعية (مشار إليها بـ 🌎) لمساعدتك على البدء. إذا كنت مهتمًا بتقديم مورد ليُدرج هنا، فلا تتردد في فتح طلب سحب (Pull Request) وسنقوم بمراجعته! يُفضّل أن يُظهر المورد شيئًا جديدًا بدلاً من تكرار مورد موجود مسبقًا.

TimeSeriesTransformerConfig

فئة transformers.TimeSeriesTransformerConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0id2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Noneis_encoder_decoder: bool = Trueprediction_length: int | None = Nonecontext_length: int | None = Nonedistribution_output: str = 'student_t'loss: str = 'nll'input_size: int = 1lags_sequence: list[int] | tuple[int, ...] = (1, 2, 3, 4, 5, 6, 7)scaling: str | bool | None = 'mean'num_dynamic_real_features: int = 0num_static_categorical_features: int = 0num_static_real_features: int = 0num_time_features: int = 0cardinality: list[int] | None = Noneembedding_dimension: list[int] | None = Noneencoder_ffn_dim: int = 32decoder_ffn_dim: int = 32encoder_attention_heads: int = 2decoder_attention_heads: int = 2encoder_layers: int = 2decoder_layers: int = 2activation_function: str = 'gelu'd_model: int = 64dropout: float | int = 0.1encoder_layerdrop: float | int = 0.1decoder_layerdrop: float | int = 0.1attention_dropout: float | int = 0.1activation_dropout: float | int = 0.1num_parallel_samples: int = 100init_std: float = 0.02use_cache: bool = True )

المعاملات

  • is_encoder_decoder (bool، اختياري، القيمة الافتراضية True) — ما إذا كان النموذج يُستخدم كمُشفِّر/مُفكِّك أم لا.
  • prediction_length (int, اختياري) — طول التنبؤ للمفكّك. بعبارة أخرى، هو أفق التنبؤ للنموذج. عادةً ما يُحدَّد هذا القيمة من خلال مجموعة البيانات، وننصح بإعدادها بشكل مناسب.
  • context_length (int، اختياري، القيمة الافتراضية هي prediction_length) — طول السياق للمشفّر. إذا كانت None، فسيكون طول السياق مساويًا لـ prediction_length.
  • distribution_output (string، اختياري، القيمة الافتراضية "student_t") — رأس الإصدار التوزيعي للنموذج. يمكن أن يكون "student_t" أو "normal" أو "negative_binomial".
  • loss (string، اختياري، القيمة الافتراضية "nll") — دالة الخسارة للنموذج المقابلة لرأس distribution_output. بالنسبة للتوزيعات البارامترية، تكون دالة الخسارة هي الاحتمالية السالبة (nll) - وهي حاليًا الخيار المدعوم الوحيد.
  • input_size (int، اختياري، القيمة الافتراضية 1) — حجم المتغير المستهدف، والذي يكون افتراضيًا 1 في حالة الأهداف أحادية المتغير. يكون > 1 في حالة الأهداف متعددة المتغيرات.
  • lags_sequence (list[int]، اختياري، القيمة الافتراضية [1, 2, 3, 4, 5, 6, 7]) — تأخيرات سلسلة الزمنية المدخلة كمتغيرات مصاحبة، وغالبًا ما تُحدَّد بناءً على تكرار البيانات. القيمة الافتراضية هي [1, 2, 3, 4, 5, 6, 7]، لكننا نوصي بتغييرها بما يتناسب مع مجموعة البيانات.
  • scaling (string أو bool، اختياري القيمة الافتراضية "mean") — ما إذا كان سيتم توسيع الأهداف المدخلة عبر مُوسِّع “mean” أو مُوسِّع “std” أو بدون مُوسِّع إذا كانت None. إذا كانت True، يتم تعيين المُوسِّع إلى “mean”.
  • num_dynamic_real_features (int، اختياري، القيمة الافتراضية 0) — عدد الميزات الديناميكية ذات القيم الحقيقية.
  • num_static_categorical_features (int، اختياري، القيمة الافتراضية 0) — عدد الميزات التصنيفية الثابتة.
  • num_static_real_features (int، اختياري، القيمة الافتراضية 0) — عدد الميزات الثابتة ذات القيم الحقيقية.
  • num_time_features (int، اختياري، القيمة الافتراضية 0) — عدد ميزات الوقت في سلسلة الزمنية المدخلة.
  • cardinality (list[int], اختياري) — عدد القيم المختلفة (cardinality) لكل من الميزات التصنيفية الثابتة. يجب أن يكون قائمة من الأعداد الصحيحة، ذات نفس طول num_static_categorical_features. لا يمكن أن يكون None إذا كان num_static_categorical_features > 0.
  • embedding_dimension (list[int]، اختياري) — أبعاد التضمينات والحالات المخفية.
  • encoder_ffn_dim (int, اختياري، القيمة الافتراضية 32) — أبعاد طبقة "الوسط" (التي تُسمّى غالباً بطبقة التغذية الأمامية) في المُشفِّر.
  • decoder_ffn_dim (int، اختياري، القيمة الافتراضية 32) — أبعاد طبقة "الوسط" (التي تُسمّى غالبًا بالطبقة الأمامية) في المُفكِّك.
  • encoder_attention_heads (int, اختياري، القيمة الافتراضية 2) — عدد رؤوس الانتباه لكل طبقة انتباه في مُشفِّر Transformer.
  • decoder_attention_heads (int، اختياري، القيمة الافتراضية 2) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer.
  • encoder_layers (int, اختياري، القيمة الافتراضية 2) — عدد الطبقات المخفية في مُشفِّر Transformer. سيستخدم القيمة نفسها لـ num_layers إذا لم يتم ضبطه.
  • decoder_layers (int, اختياري، القيمة الافتراضية 2) — عدد الطبقات المخفية في مُفكِّك Transformer. سيُستخدم نفس قيمة num_layers إذا لم يتم تعيينه.
  • activation_function (str، اختياري، القيمة الافتراضية gelu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، "gelu"، "relu"، "silu"، وغيرها.
  • d_model (int، اختياري، القيمة الافتراضية 64) — حجم طبقات المُشفِّر وطبقة المُجمِّع.
  • dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.1) — النسبة لجميع طبقات dropout.
  • encoder_layerdrop (Union[float, int]، اختياري، القيمة الافتراضية 0.1) — احتمال LayerDrop للمُشفِّر. راجع [ورقة LayerDrop](انظر https://huggingface.co/papers/1909.11556) لمزيد من التفاصيل.
  • decoder_layerdrop (Union[float, int]، اختياري، القيمة الافتراضية 0.1) — احتمال LayerDrop الخاص بفك الترميز. راجع [ورقة LayerDrop](انظر https://huggingface.co/papers/1909.11556) لمزيد من التفاصيل.
  • attention_dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.1) — نسبة الإسقاط (dropout) لاحتمالات الانتباه.
  • activation_dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.1) — نسبة dropout للتفعيلات داخل الطبقة المتصلة بالكامل.
  • num_parallel_samples (int، اختياري، القيمة الافتراضية 100) — عدد العينات التي سيتم توليدها بالتوازي لكل خطوة زمنية من خطوات الاستدلال.
  • init_std (float، اختياري، القيمة الافتراضية 0.02) — انحراف معياري لمُهيّئ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
  • use_cache (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب على النموذج إرجاع قيم المفاتيح/القيم الأخيرة للانتباه (لا تستخدمها جميع النماذج). لا ينطبق إلا إذا كان config.is_decoder=True أو إذا كان النموذج نموذجًا توليديًا يعتمد على المُفكِّك فقط.

هذه فئة الإعدادات المخزنة لإعدادات نموذج TimeSeriesTransformerModel. تُستخدم لاستحداث نموذج Time Series Transformer وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ huggingface/time-series-transformer-tourism-monthly

ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.

مثال:

>>> from transformers import TimeSeriesTransformerConfig, TimeSeriesTransformerModel

>>> # Initializing a Time Series Transformer configuration with 12 time steps for prediction
>>> configuration = TimeSeriesTransformerConfig(prediction_length=12)

>>> # Randomly initializing a model (with random weights) from the configuration
>>> model = TimeSeriesTransformerModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

TimeSeriesTransformerModel

فئة transformers.TimeSeriesTransformerModel

< >

( config: TimeSeriesTransformerConfig )

المعاملات

  • config (TimeSeriesTransformerConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

نموذج Time Series Transformer الأساسي الذي يُخرج حالات مخفية خام دون أي رأس محدد في الأعلى.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( past_values: Tensorpast_time_features: Tensorpast_observed_mask: Tensorstatic_categorical_features: typing.Optional[torch.Tensor] = Nonestatic_real_features: typing.Optional[torch.Tensor] = Nonefuture_values: typing.Optional[torch.Tensor] = Nonefuture_time_features: typing.Optional[torch.Tensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: list[torch.Tensor] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqTSModelOutput or tuple(torch.Tensor)

المعاملات

  • past_values (torch.Tensor بشكل (batch_size, sequence_length) أو (batch_size, sequence_length, input_size)) — القيم السابقة لسلسلة الزمنية، والتي تعمل كسياق للتنبؤ بالمستقبل. يجب أن يكون حجم التسلسل لهذا الموتر أكبر من context_length لنموذج، حيث سيقوم النموذج باستخدام الحجم الأكبر لبناء ميزات التأخير، أي قيم إضافية من الماضي تُضاف لتعمل كـ "سياق إضافي".

    يكون sequence_length هنا مساوياً لـ config.context_length + max(config.lags_sequence)، والذي إذا لم يتم تكوين lags_sequence، يكون مساوياً لـ config.context_length + 7 (لأن أكبر فهرس للنظر إلى الوراء في config.lags_sequence هو 7 افتراضياً). وتُرجع الخاصية _past_length الطول الفعلي للماضي.

    يُمثّل past_values ما يستقبله مُشفِّر Transformer كمدخلات (مع ميزات إضافية اختيارية، مثل static_categorical_features، static_real_features، past_time_features والتأخيرات).

    اختياريًا، يجب استبدال القيم المفقودة بالصفر وإشارتها عبر past_observed_mask.

    للمسلسلات الزمنية متعددة المتغيرات، يُشترط أن تكون البُعد input_size > 1، وهو يتوافق مع عدد المتغيرات في المسلسل الزمني لكل خطوة زمنية.

  • past_time_features (torch.Tensor بشكل (batch_size, sequence_length, num_features)) — ميزات زمنية مطلوبة، ستضيفها النموذج داخليًا إلى past_values. قد تكون هذه الميزات أشياء مثل «شهر السنة»، «يوم الشهر»، وما إلى ذلك، مشفّرة كمتجهات (على سبيل المثال، كميزات فورييه). كما يمكن أن تكون هذه ميزات «العمر» التي تساعد النموذج في معرفة «المرحلة الزمنية» التي تتواجد فيها السلسلة الزمنية. تتميز ميزات العمر بقيم صغيرة للخطوات الزمنية البعيدة في الماضي، وتزداد بشكل متزايد كلما اقتربنا من الخطوة الزمنية الحالية. تُعد ميزات العطلات مثالًا جيدًا آخر للميزات الزمنية.

    تُشكّل هذه الميزات ما يُعرف بـ "ترميز الموضع" للمدخلات. لذا، على عكس نموذج مثل BERT، حيث يتم تعلّم ترميزات الموضع من الصفر داخليًا بوصفها معاملات للنموذج، فإن Time Series Transformer يتطلب توفير ميزات زمنية إضافية. يتعلم Time Series Transformer ترميزات إضافية فقط لـ static_categorical_features.

    يمكن دمج متغيرات ديناميكية إضافية حقيقية مع هذا المصفوفة، مع ملاحظة أن هذه الميزات يجب أن تكون معروفة في وقت التنبؤ.

    يكون num_features هنا مساوياً لـ config.num_time_features+config.num_dynamic_real_features`.

  • past_observed_mask (torch.BoolTensor بشكل (batch_size, sequence_length) أو (batch_size, sequence_length, input_size), اختياري) — قناع منطقي لتحديد أي past_values تم رصدها وأيها مفقودة. قيم القناع المختارة من [0, 1]:
    • 1 للقيم التي تم ملاحظتها،
    • 0 للقيم التي تكون مفقودة (أي قيم NaN التي تم استبدالها بالأصفار).
  • static_categorical_features (torch.LongTensor بشكل (batch_size, number of static categorical features), اختياري) — ميزات تصنيفية ثابتة اختيارية يتعلم النموذج تضمينًا لها، ثم يضيفه إلى قيم السلاسل الزمنية.

    الميزات التصنيفية الثابتة هي ميزات تملك القيمة نفسها لجميع خطوات الزمن (ثابتة عبر الزمن).

    مثال نموذجي على خاصية فئوية ثابتة هو معرّف السلسلة الزمنية.

  • static_real_features (torch.Tensor بشكل (batch_size, number of static real features), اختياري) — مواصفات حقيقية ثابتة اختيارية ستضيفها النموذج إلى قيم السلاسل الزمنية. المواصفات الحقيقية الثابتة هي مواصفات لها نفس القيمة لجميع الخطوات الزمنية (ثابتة عبر الزمن). مثال نموذجي على الميزة الحقيقية الثابتة هو معلومات الترويج.

    الميزات الحقيقية الثابتة هي ميزات تملك القيمة نفسها لجميع خطوات الزمن (ثابتة عبر الزمن).

    مثال نموذجي على ميزة حقيقية ثابتة هو معلومات العروض الترويجية.

  • future_values (torch.Tensor بشكل (batch_size, prediction_length) أو (batch_size, prediction_length, input_size), اختياري) — قيم السلسلة الزمنية المستقبلية، التي تعمل كوسوم للنموذج. الـ future_values هو ما يحتاجه الـ Transformer أثناء التدريب ليتعلم إخراجها، بناءً على الـ past_values.

    طول التسلسل هنا يساوي prediction_length.

    راجع دفتر الملاحظات التوضيحي ومقتطفات الأكواد للاطلاع على التفاصيل.

    اختياريًا، أثناء التدريب، يجب استبدال أي قيم مفقودة بالأصفار وإشارتها عبر future_observed_mask.

    للمسلسلات الزمنية متعددة المتغيرات، يُشترط أن تكون البُعد input_size > 1، وهو يتوافق مع عدد المتغيرات في المسلسل الزمني لكل خطوة زمنية.

  • future_time_features (torch.Tensor بشكل (batch_size, prediction_length, num_features)) — مكوّنات زمنية مطلوبة لنافذة التنبؤ، والتي ستضيفها النموذج داخليًا إلى future_values. قد تكون هذه المكوّنات أشياء مثل "شهر السنة" أو "يوم الشهر" وما إلى ذلك، مُرمّزة كمتجهات (على سبيل المثال كمكوّنات فورييه). كما يمكن أن تكون مكوّنات "العمر"، التي تساعد النموذج في الأساس على معرفة "المرحلة" التي تمر بها السلسلة الزمنية. تتسم مكوّنات العمر بقيم صغيرة للخطوات الزمنية البعيدة في الماضي وتزداد بشكل متزايد كلما اقتربنا من الخطوة الزمنية الحالية. تُعد مكوّنات العطلات مثالًا جيدًا آخر على المكوّنات الزمنية.

    تُشكّل هذه الميزات ما يُعرف بـ "ترميز الموضع" للمدخلات. لذا، على عكس نموذج مثل BERT، حيث يتم تعلّم ترميزات الموضع من الصفر داخليًا بوصفها معاملات للنموذج، فإن Time Series Transformer يتطلب توفير ميزات زمنية إضافية. يتعلم Time Series Transformer ترميزات إضافية فقط لـ static_categorical_features.

    يمكن دمج متغيرات ديناميكية إضافية حقيقية مع هذا المصفوفة، مع ملاحظة أن هذه الميزات يجب أن تكون معروفة في وقت التنبؤ.

    يكون num_features هنا مساوياً لـ config.num_time_features+config.num_dynamic_real_features`.

  • decoder_attention_mask (torch.LongTensor of shape (batch_size, target_sequence_length), اختياري) — قناع لتجنّب تنفيذ الانتباه على فهارس رموز معينة. افتراضيًا، يُستخدم قناع سببي (causal mask) للتأكد من أن النموذج لا يستطيع النظر إلا إلى المدخلات السابقة من أجل التنبؤ بالمستقبل.
  • encoder_outputs (tuple(tuple(torch.Tensor), اختياري) — يتألف العنصر المرتب من last_hidden_state وhidden_states (اختياري) وattentions (اختياري) last_hidden_state ذو الشكل (batch_size, sequence_length, hidden_size) (اختياري) هو تسلسل من حالات المخفية عند مخرج الطبقة الأخيرة من المُشفِّر. يُستخدم في الانتباه المتقاطع (cross-attention) في المُفكِّك.
  • past_key_values (~cache_utils.Cache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً من past_key_values الذي يعيده النموذج في مرحلة سابقة من فك الترميز، عندما use_cache=True أو config.use_cache=True.

    يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير past_key_values، فسيتم تهيئة DynamicCache افتراضياً.

    سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.

    عند استخدام past_key_values، يُتوقَّع من المستخدم إدخال input_ids غير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد (batch_size, unprocessed_length) بدلاً من جميع input_ids بأبعاد (batch_size, sequence_length).

  • use_cache (bool، اختياري) — إذا تم تعيينه إلى True، تُعاد حالات المفاتيح والقيم past_key_values ويمكن استخدامها لتسريع فك الترميز (انظر past_key_values).

يعيد

Seq2SeqTSModelOutput أو tuple(torch.Tensor)

Seq2SeqTSModelOutput أو مجموعة مرتبة من torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (TimeSeriesTransformerConfig) والمدخلات.

تُعيد طريقة TimeSeriesTransformerModel الخاصة بالتقديم (forward) تعريف الطريقة الخاصة __call__.

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

  • last_hidden_state (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)) — تسلسل من حالات الإخفاء عند مخرج الطبقة الأخيرة من فاحم النموذج.

    إذا تم استخدام past_key_values، فإن الحالة المخفية الأخيرة فقط من التسلسلات ذات الشكل (batch_size, 1, hidden_size) هي التي تُخرج.

  • past_key_values (EncoderDecoderCache، اختياري، يُعاد عند تمرير use_cache=True أو عند تعيين config.use_cache=True) — إنه كائن من نوع EncoderDecoderCache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.

    تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها (انظر مدخل past_key_values) لتسريع فك الترميز التسلسلي.

  • decoder_hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) بأبعاد (batch_size, sequence_length, hidden_size).

    حالات المخفية (Hidden-states) للوحدة الترميزية (decoder) عند مخرج كل طبقة، بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • decoder_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

  • cross_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه لطبقة الانتباه المتقاطع في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه المتقاطع.

  • encoder_last_hidden_state (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)، اختياري) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من مُشفِّر النموذج.

  • encoder_hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل (batch_size, sequence_length, hidden_size).

    حالات المخفية للمشفّر عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • encoder_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه في المُشفِّر، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

  • loc (torch.Tensor of shape (batch_size,) or (batch_size, input_size), اختياري) — قيم إزاحة نافذة السياق لكل سلسلة زمنية، تُستخدم لمنح النموذج مدخلات بنفس المقدار، ثم تُستخدم بعد ذلك للإزاحة مرة أخرى إلى المقدار الأصلي.

  • scale (torch.Tensor من الشكل (batch_size,) أو (batch_size, input_size)، اختياري) — قيم التوسيع الخاصة بنافذة السياق لكل سلسلة زمنية، والتي تُستخدم لإعطاء النموذج مدخلات بنفس الحجم، ثم تُستخدم لإعادة التوسيع إلى الحجم الأصلي.

  • static_features (torch.Tensor of shape (batch_size, feature size), اختياري) — الميزات الثابتة لكل سلسلة زمنية في الدفعة، والتي تُنسخ إلى المتغيرات المشتركة عند الاستدلال.

أمثلة:

>>> from huggingface_hub import hf_hub_download
>>> import torch
>>> from transformers import TimeSeriesTransformerModel

>>> file = hf_hub_download(
...     repo_id="hf-internal-testing/tourism-monthly-batch", filename="train-batch.pt", repo_type="dataset"
... )
>>> batch = torch.load(file)

>>> model = TimeSeriesTransformerModel.from_pretrained("huggingface/time-series-transformer-tourism-monthly")

>>> # during training, one provides both past and future values
>>> # as well as possible additional features
>>> outputs = model(
...     past_values=batch["past_values"],
...     past_time_features=batch["past_time_features"],
...     past_observed_mask=batch["past_observed_mask"],
...     static_categorical_features=batch["static_categorical_features"],
...     static_real_features=batch["static_real_features"],
...     future_values=batch["future_values"],
...     future_time_features=batch["future_time_features"],
... )

>>> last_hidden_state = outputs.last_hidden_state

TimeSeriesTransformerForPrediction

فئة transformers.TimeSeriesTransformerForPrediction

< >

( config: TimeSeriesTransformerConfig )

المعاملات

  • config (TimeSeriesTransformerConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

نموذج Time Series Transformer مع رأس توزيع في الأعلى للتنبؤ بالسلاسل الزمنية.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( past_values: Tensorpast_time_features: Tensorpast_observed_mask: Tensorstatic_categorical_features: typing.Optional[torch.Tensor] = Nonestatic_real_features: typing.Optional[torch.Tensor] = Nonefuture_values: typing.Optional[torch.Tensor] = Nonefuture_time_features: typing.Optional[torch.Tensor] = Nonefuture_observed_mask: typing.Optional[torch.Tensor] = Nonedecoder_attention_mask: typing.Optional[torch.LongTensor] = Noneencoder_outputs: list[torch.Tensor] | None = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Seq2SeqTSModelOutput or tuple(torch.Tensor)

المعاملات

  • past_values (torch.Tensor بشكل (batch_size, sequence_length) أو (batch_size, sequence_length, input_size)) — القيم السابقة لسلسلة الزمنية، والتي تعمل كسياق للتنبؤ بالمستقبل. يجب أن يكون حجم التسلسل لهذا الموتر أكبر من context_length لنموذج، حيث سيقوم النموذج باستخدام الحجم الأكبر لبناء ميزات التأخير، أي قيم إضافية من الماضي تُضاف لتعمل كـ "سياق إضافي".

    يكون sequence_length هنا مساوياً لـ config.context_length + max(config.lags_sequence)، والذي إذا لم يتم تكوين lags_sequence، يكون مساوياً لـ config.context_length + 7 (لأن أكبر فهرس للنظر إلى الوراء في config.lags_sequence هو 7 افتراضياً). وتُرجع الخاصية _past_length الطول الفعلي للماضي.

    يُمثّل past_values ما يستقبله مُشفِّر Transformer كمدخلات (مع ميزات إضافية اختيارية، مثل static_categorical_features، static_real_features، past_time_features والتأخيرات).

    اختياريًا، يجب استبدال القيم المفقودة بالصفر وإشارتها عبر past_observed_mask.

    للمسلسلات الزمنية متعددة المتغيرات، يُشترط أن تكون البُعد input_size > 1، وهو يتوافق مع عدد المتغيرات في المسلسل الزمني لكل خطوة زمنية.

  • past_time_features (torch.Tensor بشكل (batch_size, sequence_length, num_features)) — ميزات زمنية مطلوبة، ستضيفها النموذج داخليًا إلى past_values. قد تكون هذه الميزات أشياء مثل «شهر السنة»، «يوم الشهر»، وما إلى ذلك، مشفّرة كمتجهات (على سبيل المثال، كميزات فورييه). كما يمكن أن تكون هذه ميزات «العمر» التي تساعد النموذج في معرفة «المرحلة الزمنية» التي تتواجد فيها السلسلة الزمنية. تتميز ميزات العمر بقيم صغيرة للخطوات الزمنية البعيدة في الماضي، وتزداد بشكل متزايد كلما اقتربنا من الخطوة الزمنية الحالية. تُعد ميزات العطلات مثالًا جيدًا آخر للميزات الزمنية.

    تُشكّل هذه الميزات ما يُعرف بـ "ترميز الموضع" للمدخلات. لذا، على عكس نموذج مثل BERT، حيث يتم تعلّم ترميزات الموضع من الصفر داخليًا بوصفها معاملات للنموذج، فإن Time Series Transformer يتطلب توفير ميزات زمنية إضافية. يتعلم Time Series Transformer ترميزات إضافية فقط لـ static_categorical_features.

    يمكن دمج متغيرات ديناميكية إضافية حقيقية مع هذا المصفوفة، مع ملاحظة أن هذه الميزات يجب أن تكون معروفة في وقت التنبؤ.

    يكون num_features هنا مساوياً لـ config.num_time_features+config.num_dynamic_real_features`.

  • past_observed_mask (torch.BoolTensor بشكل (batch_size, sequence_length) أو (batch_size, sequence_length, input_size), اختياري) — قناع منطقي لتحديد أي past_values تم رصدها وأيها مفقودة. قيم القناع المختارة من [0, 1]:
    • 1 للقيم التي تم ملاحظتها،
    • 0 للقيم التي تكون مفقودة (أي قيم NaN التي تم استبدالها بالأصفار).
  • static_categorical_features (torch.LongTensor بشكل (batch_size, number of static categorical features), اختياري) — ميزات تصنيفية ثابتة اختيارية يتعلم النموذج تضمينًا لها، ثم يضيفه إلى قيم السلاسل الزمنية.

    الميزات التصنيفية الثابتة هي ميزات تملك القيمة نفسها لجميع خطوات الزمن (ثابتة عبر الزمن).

    مثال نموذجي على خاصية فئوية ثابتة هو معرّف السلسلة الزمنية.

  • static_real_features (torch.Tensor بشكل (batch_size, number of static real features), اختياري) — مواصفات حقيقية ثابتة اختيارية ستضيفها النموذج إلى قيم السلاسل الزمنية. المواصفات الحقيقية الثابتة هي مواصفات لها نفس القيمة لجميع الخطوات الزمنية (ثابتة عبر الزمن). مثال نموذجي على الميزة الحقيقية الثابتة هو معلومات الترويج.

    الميزات الحقيقية الثابتة هي ميزات تملك القيمة نفسها لجميع خطوات الزمن (ثابتة عبر الزمن).

    مثال نموذجي على ميزة حقيقية ثابتة هو معلومات العروض الترويجية.

  • future_values (torch.Tensor بشكل (batch_size, prediction_length) أو (batch_size, prediction_length, input_size), اختياري) — قيم السلسلة الزمنية المستقبلية، التي تعمل كوسوم للنموذج. الـ future_values هو ما يحتاجه الـ Transformer أثناء التدريب ليتعلم إخراجها، بناءً على الـ past_values.

    طول التسلسل هنا يساوي prediction_length.

    راجع دفتر الملاحظات التوضيحي ومقتطفات الأكواد للاطلاع على التفاصيل.

    اختياريًا، أثناء التدريب، يجب استبدال أي قيم مفقودة بالأصفار وإشارتها عبر future_observed_mask.

    للمسلسلات الزمنية متعددة المتغيرات، يُشترط أن تكون البُعد input_size > 1، وهو يتوافق مع عدد المتغيرات في المسلسل الزمني لكل خطوة زمنية.

  • future_time_features (torch.Tensor بشكل (batch_size, prediction_length, num_features)) — مكوّنات زمنية مطلوبة لنافذة التنبؤ، والتي ستضيفها النموذج داخليًا إلى future_values. قد تكون هذه المكوّنات أشياء مثل "شهر السنة" أو "يوم الشهر" وما إلى ذلك، مُرمّزة كمتجهات (على سبيل المثال كمكوّنات فورييه). كما يمكن أن تكون مكوّنات "العمر"، التي تساعد النموذج في الأساس على معرفة "المرحلة" التي تمر بها السلسلة الزمنية. تتسم مكوّنات العمر بقيم صغيرة للخطوات الزمنية البعيدة في الماضي وتزداد بشكل متزايد كلما اقتربنا من الخطوة الزمنية الحالية. تُعد مكوّنات العطلات مثالًا جيدًا آخر على المكوّنات الزمنية.

    تُشكّل هذه الميزات ما يُعرف بـ "ترميز الموضع" للمدخلات. لذا، على عكس نموذج مثل BERT، حيث يتم تعلّم ترميزات الموضع من الصفر داخليًا بوصفها معاملات للنموذج، فإن Time Series Transformer يتطلب توفير ميزات زمنية إضافية. يتعلم Time Series Transformer ترميزات إضافية فقط لـ static_categorical_features.

    يمكن دمج متغيرات ديناميكية إضافية حقيقية مع هذا المصفوفة، مع ملاحظة أن هذه الميزات يجب أن تكون معروفة في وقت التنبؤ.

    يكون num_features هنا مساوياً لـ config.num_time_features+config.num_dynamic_real_features`.

  • future_observed_mask (torch.BoolTensor بشكل (batch_size, sequence_length) أو (batch_size, sequence_length, input_size), اختياري) — قناع منطقي لتحديد أي future_values تمت ملاحظتها وأيها مفقودة. قيم القناع المختارة من ضمن [0, 1]: القيمة 1 للقيم الملاحظة، والقيمة 0 للقيم المفقودة (أي قيم NaN التي تم استبدالها بالصفر). يُستخدم هذا القناع لاستبعاد القيم المفقودة في حساب الخسارة النهائي. [0, 1]:
    • 1 للقيم التي تم ملاحظتها،
    • 0 للقيم التي تكون مفقودة (أي قيم NaN التي تم استبدالها بالأصفار).

    تُستخدم هذه القناع (Mask) لاستبعاد القيم المفقودة في حساب الخسارة النهائية.

  • decoder_attention_mask (torch.LongTensor of shape (batch_size, target_sequence_length), اختياري) — قناع لتجنّب تنفيذ الانتباه على فهارس رموز معينة. افتراضيًا، يُستخدم قناع سببي (causal mask) للتأكد من أن النموذج لا يستطيع النظر إلا إلى المدخلات السابقة من أجل التنبؤ بالمستقبل.
  • encoder_outputs (tuple(tuple(torch.Tensor), اختياري) — يتألف العنصر المرتب من last_hidden_state وhidden_states (اختياري) وattentions (اختياري) last_hidden_state ذو الشكل (batch_size, sequence_length, hidden_size) (اختياري) هو تسلسل من حالات المخفية عند مخرج الطبقة الأخيرة من المُشفِّر. يُستخدم في الانتباه المتقاطع (cross-attention) في المُفكِّك.
  • past_key_values (~cache_utils.Cache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً من past_key_values الذي يعيده النموذج في مرحلة سابقة من فك الترميز، عندما use_cache=True أو config.use_cache=True.

    يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير past_key_values، فسيتم تهيئة DynamicCache افتراضياً.

    سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.

    عند استخدام past_key_values، يُتوقَّع من المستخدم إدخال input_ids غير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد (batch_size, unprocessed_length) بدلاً من جميع input_ids بأبعاد (batch_size, sequence_length).

  • use_cache (bool، اختياري) — إذا تم تعيينه إلى True، تُعاد حالات المفاتيح والقيم past_key_values ويمكن استخدامها لتسريع فك الترميز (انظر past_key_values).

يعيد

Seq2SeqTSModelOutput أو tuple(torch.Tensor)

Seq2SeqTSModelOutput أو مجموعة مرتبة من torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (TimeSeriesTransformerConfig) والمدخلات.

تتجاوز طريقة TimeSeriesTransformerForPrediction الخاصة بالتقديم (forward) الطريقة الخاصة __call__.

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

  • last_hidden_state (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)) — تسلسل من حالات الإخفاء عند مخرج الطبقة الأخيرة من فاحم النموذج.

    إذا تم استخدام past_key_values، فإن الحالة المخفية الأخيرة فقط من التسلسلات ذات الشكل (batch_size, 1, hidden_size) هي التي تُخرج.

  • past_key_values (EncoderDecoderCache، اختياري، يُعاد عند تمرير use_cache=True أو عند تعيين config.use_cache=True) — إنه كائن من نوع EncoderDecoderCache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.

    تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها (انظر مدخل past_key_values) لتسريع فك الترميز التسلسلي.

  • decoder_hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) بأبعاد (batch_size, sequence_length, hidden_size).

    حالات المخفية (Hidden-states) للوحدة الترميزية (decoder) عند مخرج كل طبقة، بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • decoder_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

  • cross_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه لطبقة الانتباه المتقاطع في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه المتقاطع.

  • encoder_last_hidden_state (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)، اختياري) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من مُشفِّر النموذج.

  • encoder_hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل (batch_size, sequence_length, hidden_size).

    حالات المخفية للمشفّر عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • encoder_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

    أوزان الانتباه في المُشفِّر، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

  • loc (torch.Tensor of shape (batch_size,) or (batch_size, input_size), اختياري) — قيم إزاحة نافذة السياق لكل سلسلة زمنية، تُستخدم لمنح النموذج مدخلات بنفس المقدار، ثم تُستخدم بعد ذلك للإزاحة مرة أخرى إلى المقدار الأصلي.

  • scale (torch.Tensor من الشكل (batch_size,) أو (batch_size, input_size)، اختياري) — قيم التوسيع الخاصة بنافذة السياق لكل سلسلة زمنية، والتي تُستخدم لإعطاء النموذج مدخلات بنفس الحجم، ثم تُستخدم لإعادة التوسيع إلى الحجم الأصلي.

  • static_features (torch.Tensor of shape (batch_size, feature size), اختياري) — الميزات الثابتة لكل سلسلة زمنية في الدفعة، والتي تُنسخ إلى المتغيرات المشتركة عند الاستدلال.

أمثلة:

>>> from huggingface_hub import hf_hub_download
>>> import torch
>>> from transformers import TimeSeriesTransformerForPrediction

>>> file = hf_hub_download(
...     repo_id="hf-internal-testing/tourism-monthly-batch", filename="train-batch.pt", repo_type="dataset"
... )
>>> batch = torch.load(file)

>>> model = TimeSeriesTransformerForPrediction.from_pretrained(
...     "huggingface/time-series-transformer-tourism-monthly"
... )

>>> # during training, one provides both past and future values
>>> # as well as possible additional features
>>> outputs = model(
...     past_values=batch["past_values"],
...     past_time_features=batch["past_time_features"],
...     past_observed_mask=batch["past_observed_mask"],
...     static_categorical_features=batch["static_categorical_features"],
...     static_real_features=batch["static_real_features"],
...     future_values=batch["future_values"],
...     future_time_features=batch["future_time_features"],
... )

>>> loss = outputs.loss
>>> loss.backward()

>>> # during inference, one only provides past values
>>> # as well as possible additional features
>>> # the model autoregressively generates future values
>>> outputs = model.generate(
...     past_values=batch["past_values"],
...     past_time_features=batch["past_time_features"],
...     past_observed_mask=batch["past_observed_mask"],
...     static_categorical_features=batch["static_categorical_features"],
...     static_real_features=batch["static_real_features"],
...     future_time_features=batch["future_time_features"],
... )

>>> mean_prediction = outputs.sequences.mean(dim=1)
Update on GitHub