المستوى: متوسّط — محتاج بايثون وإلمام أساسي بـpandas.
وقت القراءة والتنفيذ: نحو 15 دقيقة.
هتحتاج: بايثون وسلسلة زمنية مأخوذة على فترات منتظمة. مش محتاج تدريب ولا ضبط دقيق.
أصدرت IBM في 9 سبتمبر 2026 نموذج Granite Time Series PatchTST-FM-r2، أحدث نماذج عائلة Granite للسلاسل الزمنية.
الفكرة اللي بتغيّر طريقة العمل: بدل ما تدرّب وتصون نموذجًا منفصلًا لكل مجموعة بيانات، بتستخدم نموذجًا مدرَّبًا مسبقًا وتولّد تنبّؤات بدون أمثلة (Zero-Shot) — يعني على سلاسل ما شافهاش النموذج أثناء تدريبه.
ليه النموذج ده تحديدًا؟
- حجمه نحو 385 مليون معامل، وبيدعم سياقًا يصل إلى 8192 خطوة زمنية.
- بيتنبّأ بـ99 كمّية عبر أطوال تنبّؤ مرنة، فبيدّيك تنبّؤات احتمالية مش رقمًا واحدًا.
- بيدعم سدّ القيم الناقصة (Imputation) إلى جانب التنبّؤ.
- حسب IBM، هو اعتبارًا من 8 سبتمبر 2026 أعلى النماذج أداءً برخصة مفتوحة متساهلة تجاريًا ضمن النماذج القابلة للتكرار وبدون أمثلة على لوحة صدارة GIFT-Eval، ويحتلّ المركز الثاني إجمالًا في الفئة دي.
- مرخّص برخصة مزدوجة: Apache 2.0 وOpenMDW 1.0، وتختار أيّهما شئت.
الخطوات
- ثبّت الحزمة.
pip install "granite-tsfm>=0.3.9" - حمّل أوزان النموذج من الـHub.
import pandas as pd from tsfm_public import PatchTSTFMForPrediction, TimeSeriesForecastingPipeline model = PatchTSTFMForPrediction.from_pretrained( "ibm-granite/granite-timeseries-patchtst-fm-r2" ) df = pd.read_csv( "https://raw.githubusercontent.com/zhouhaoyi/ETDataset/main/ETT-small/ETTh1.csv", parse_dates=["date"], ) - جهّز خطّ التنبّؤ. لاحظ
quantile_levels— ده اللي بيدّيك السيناريو المتشائم والوسيط والمتفائل بدل رقم واحد.pipe = TimeSeriesForecastingPipeline( model=model, id_columns=[], timestamp_column="date", target_columns=["HUFL"], max_context_length=model.config.context_length, context_length=512, prediction_length=64, impute_method=None, quantile_levels=[0.1, 0.5, 0.9], explode_forecasts=True, freq="1h", ) - ولّد التنبّؤ من آخر 512 عيّنة.
forecast = pipe(df.iloc[-512:])
مفيش ضبط دقيق ولا ملاءمة نموذج خاصّة بالمهمّة. خطّ الأنابيب بياخد التاريخ الحديث للسلسلة بس، وبيولّد التنبّؤ المستقبلي بما فيه الكمّيات المطلوبة.
ماذا تبدّل بياناتك؟
المثال أعلاه على بيانات متاحة للعامة. استبدل ملفّ الإدخال ببياناتك أنت — طلب، أو قياسات حسّاسات، أو استخدام معالج، أو استهلاك طاقة، أو حجم معاملات، أو حركة مرور، أو أسعار، أو أي سلسلة زمنية مأخوذة على فترات منتظمة.
عدّل timestamp_column لاسم عمود التاريخ عندك، وtarget_columns للعمود اللي عايز تتنبّأ بيه، وfreq لتردّد بياناتك ("1h" للساعة، "1D" لليوم).
لو بياناتك بتتدفّق مباشرةً
للتطبيقات اللي بتوصلها البيانات باستمرار بدل جداول ثابتة، أتاحت IBM وConfluent عدّة نماذج من عائلة Granite للسلاسل الزمنية عبر برنامج وصول مبكر في Confluent Cloud، والحزمة الأولية تضمّ PatchTST-FM-r1 وFlowState-r1.1 وTTM-r3 وTSPulse.
التكامل بيجيب استدلال نماذج الأساس مباشرةً لتطبيقات التدفّق عبر Apache Flink، فتتولّد التنبّؤات ونتائج كشف الشذوذ من تدفّقات حيّة بدل نقل البيانات لبيئة تعلّم آلة منفصلة.
جرّب بنفسك
أصغر خطوة تبدأ بيها: شغّل الكود كما هو على بيانات ETTh1 المتاحة في المثال، وشوف شكل المخرَج. بعد ما تتأكّد إنه اشتغل، بدّل رابط ملفّ الـCSV بملفّك أنت وغيّر أسماء الأعمدة — وهتبقى عندك تنبّؤات احتمالية على بياناتك من غير ما تدرّب أي حاجة.
المصادر: Hugging Face — 2026-09-09



