تصور کنید مدیر خردهفروشی هستید که باید تقاضای ۶ فروشگاه مختلف را پیشبینی کند، اما نمیخواهید برای هر کدام یک مدل جداگانه آموزش دهید. این چالش اکنون با TimesFM 2.5 حل شده است؛ مدل بنیادی (Foundation Model) — شبیه به یک متخصص همهکاره که الگوهای کلی دنیا را میشناسد و حالا میتواند روی هر دادهی جدیدی نظر بدهد — با ۲۰۰ میلیون پارامتر از سوی گوگل عرضه شده تا پیشبینیهای بدون نمونه (Zero-shot) را با دقت بسیار بالا انجام دهد و از طریق باندهای کوانتای احتمالی، عملکرد مدلهای پایه فصلی سنتی را به چالش بکشد.
پیشبینی سریهای زمانی سالها درگیر تقابل میان مدلهای آماری ساده و یادگیری عمیقِ سنگین بود. بیشتر کسبوکارها از روشهای «سادهٔ فصلی» استفاده میکنند؛ یعنی تکرار الگوهای سال قبل، چراکه مدلهای سفارشی AI برای هر محصول یا فروشگاه جدید، به بازآموزشهای گرانقیمت نیاز دارند. همانطور که در تحلیل قبلی ما دربارهی بهینهسازی هزینههای استنتاج در مدلهای با زمینه طولانی اشاره کردیم، TimesFM 2.5 با تبدیل پیشبینی به یک مسئلهٔ «بازشناسی الگوی کلی»، این پارادایم را تغییر میدهد.
موتور پیشبینی بدون نمونه
به نقل از آموزشگاه Marktechpost در سال ۲۰۲۴، نقطه قوت اصلی TimesFM 2.5 در قابلیت Zero-shot آن است. شما تاریخچه فروش را به مدل میدهید و مدل بدون نیاز به هیچ مرحله آموزشی یا Fine-tuning، افق آینده را ترسیم میکند. این کار با استفاده از وزنهای پیشآموزشدیده google/timesfm-2.5-200m-pytorch محقق میشود.
برای شبیهسازی یک محیط واقعی و تست استرس مدل، یک جریان کاری ایجاد شد که در آن مجموعه دادهای مصنوعی شامل ۱۲۰۰ روز (شروع از ۲۰۲۱-۰۱-۰۱) برای ۶ فروشگاه در ۳ منطقه جغرافیایی (شمال، جنوب و ساحلی) تولید گردید. این دادهها پیچیدگیهای دنیای خردهفروشی را با جزئیات زیر بازسازی میکنند:
- روندها و فصلی بودن: سطح پایه ۱۸۰ واحد، شیب رشد تصادفی بین ۰.۰۲ تا ۰.۰۹، دامنههای نوسان هفتگی (۱۵-۳۵) و دامنههای نوسان سالانه (۲۰-۴۵).
- عوامل محرک خارجی: کشش قیمتی در بازه ۱۸-۳۲، جهشهای ناشی از جشنوارههای فروش (۳۵-۷۰) و اثرات دمایی بر اساس دمای پایه ۱۸ درجه سانتیگراد. مدل دمایی شامل یک موج پایه بهعلاوه یک گشت تصادفی (Random Walk) با مقیاس ۰.۱۵ و یک رانش خطی است.
- پیکهای اتفاقی: افزایش ثابت ۵۵ واحدی تقاضا در ۱۶ روز تعطیل مشخص در سال، بهویژه یک خوشه متراکم در اواخر سال (روزهای ۳۵۸ تا ۳۶۵).
پیکربندی و تدوین پیشبینی
این مدل بهصورت «آماده مصرف» نیست و باید با استفاده از کلاس ForecastConfig تدوین شود تا پارامترهای عملیاتی آن تعریف گردد. تنظیمات baseline شامل موارد زیر است:
- محدودیتها: مقدار
max_context=1024(برای تاریخچه) وmax_horizon=256(برای پیشبینی آینده). - پردازش: فعالسازی
normalize_inputs=Trueو تنظیمper_core_batch_size=16. - تنظیمات احتمالی: استفاده از
use_continuous_quantile_head=Trueبرای خروجیهای پیوسته،fix_quantile_crossing=Trueبرای جلوگیری از تلاقی چندکها وinfer_is_positive=Trueبرای تضمین مثبت بودن مقادیر. - ناوردا بودن: استفاده از
force_flip_invariance=Trueجهت حفظ سازگاری مدل در مواجهه با دادهها.
بهجای ارائه یک عدد تک و «حدسی»، مدل یک نمودار بادبزنی (Fan Chart) از چندکها تولید میکند. ساختار خروجی شامل ۱۰ شاخص است: شاخص ۰ میانگین (Mean) است، در حالی که شاخصهای ۱ تا ۹ نماینده چندکهای q10 تا q90 هستند. شایان ذکر است که شاخص ۵ نماینده میانه (Median) است. به دلیل فعال بودن گزینه fix_quantile_crossing=True در پیکربندی، ترتیب $\text{q}n \le \text{q}{n+1}$ بهطور سختگیرانه رعایت میشود و چندکها یکنواخت باقی میمانند.
این به این معناست که شما فقط یک پیشبینی ندارید، بلکه یک «پروفایل ریسک» کامل دارید. برای مثال، q10 represents یک کف محافظهکارانه و q90 سقف احتمالی است که به مدیران اجازه میدهد برنامهریزی دقیقتری برای موجودی ایمنی (Safety-stock) داشته باشند. با افزایش افق پیشبینی، عرض این بازه رشد میکند؛ به گونهای که فاصله بین q10 و q90 در روز اول بسیار تنگتر از روز ۵۶ است.
اعتبارسنجی دقت و معیارها
بر اساس مستندات فنی، برای اثبات کارایی، این مدل در برابر یک خط پایه «ساده فصلی» (تکرار ۷ روز اخیر) و یک مدل «پایداری آخرین مقدار» (Last Value) مقایسه شد. نتایج نشان داد که مدل گوگل توانست خطای مقیاسشده میانگین مطلق (MASE) را بهطور قابل توجهی کاهش داده و آن را به زیر ۱.۰ برساند؛ عددی که استاندارد طلایی برای شکست دادن مدلهای پایداری ساده محسوب میشود.
معیارهای ارزیابی بهکاررفته برای اعتبارسنجی عبارتند از:
- MAE (Mean Absolute Error): اندازهگیری میانگین بزرگی خطاها بدون در نظر گرفتن جهت.
- RMSE (Root Mean Square Error): جریمه سنگینتر برای خطاهای بزرگتر از طریق مجذور کردن.
- MAPE% و sMAPE%: ارائه مقیاسهای خطای درصدی (sMAPE از مخرج متقارن $2 \times |err| / (|actual| + |pred|)$ استفاده میکند).
- MASE: مقیاسبندی خطا نسبت به مدل ساده فصلی با استفاده از میانگین تفاوت مطلق تاریخچه.
- Pinball Loss: اندازهگیری تخصصی دقت چندکهای احتمالی (q10-q90) از طریق وزندهی به پیشبینیهای بیش از حد یا کمتر از حد.
- cov80%: اندازهگیری درصد مقادیر واقعی که دقیقاً در بازه q10-q90 قرار میگیرند (مقدار ایدهآل نزدیک به ۸۰٪ است).
ادغام متغیرهای دنیای واقعی (XReg)
پیشبینیهای صرفاً تکمتغیره — یعنی نگاه کردن فقط به فروشهای گذشته — معمولاً در ایام تعطیلات یا جشنوارهها شکست میخورند. TimesFM 2.5 این مشکل را با قابلیت XReg (رگرسور خارجی) حل میکند. این قابلیت اجازه میدهد مدل سه نوع داده اضافی را جذب کند:
- کوواریانسهای عددی پویا (Dynamic Numerical): مقادیر نوسانی مانند دمای روزانه یا قیمتهای متغیر (قیمت پایه ۹.۰ تا ۱۳.۰ با نویز نرمال که توسط جشنوارهها تنظیم شده است).
- کوواریانسهای دستهای پویا (Dynamic Categorical): محرکهای باینری (صفر و یک) مانند اینکه آیا امروز تعطیل است، یا روز جشنواره است (با احتمال ۹٪) یا روز هفته (dow).
- کوواریانسهای دستهای استاتیک (Static Categorical): ویژگیهای ثابت مانند منطقه جغرافیایی فروشگاه (شمال، جنوب، ساحل) یا شناسه (ID) اختصاصی فروشگاه.
در این پژوهش، دو حالت ادغام یعنی 'xreg + timesfm' و 'timesfm + xreg' با طول زمینه ۵۱۲ و افق ۵۶ تست شدند. مشخص شد که با گنجاندن پرچمهای جشنواره و کشش قیمتی، مدل میتواند بهطور صریح پیکهای تقاضای پیشرو را «ببیند» و از تأخیرهای (Lag) رایج در پیشبینیهای سنتی AI جلوگیری کند. برای پشتیبانی از این حالت، متد forecast_with_covariates به return_backcast=True و normalize_xreg_target_per_input=True نیاز دارد تا مقیاسهای داخلی را تراز کند، در حالی که برای منظمسازی (Regularization) از پارامتر Ridge برابر با ۱.۰ استفاده میشود.
تشخیص ناهنجاری و استواری
این مدل علاوه بر پیشبینی، مانند یک نگهبان (Sentinel) برای خطاهای عملیاتی عمل میکند. با بررسی اینکه آیا مقادیر واقعی مشاهدهشده خارج از باندهای پیشبینی q10-q90 قرار میگیرند یا خیر، سیستم بهطور خودکار ناهنجاریها را با استفاده از رویکرد پنجره لغزان (مثلاً پنجره تشخیص ۱۴ روزه که از روز $N_{DAYS}-280$ شروع میشود) شناسایی میکند.
مشاهدات بر اساس شدت به دو دسته تقسیم میشوند:
- هشدار (Warning): زمانی که مقادیر واقعی خارج از بازه ۸۰ درصدی پیشبینی (q10-q90) قرار گیرند.
- بحرانی (Critical): زمانی که مقادیر از یک آستانه گستردهتر خارج شوند؛ این آستانه به صورت q10 منهای ۱.۵ برابر فاصله تا میانه، یا q90 بهعلاوه ۱.۵ برابر فاصله تا میانه محاسبه میشود.
این تفکیک به تیمها اجازه میدهد بین نوسانات عادی بازار و شکستهای واقعی سیستم تمایز قائل شوند. در تستهایی که ناهنجاریهای عمدی تزریق شده بود — شامل یک جهش ۱.۹ برابری در ایندکس $(N_{DAYS} - 210)$، سقوط ۰.۳۵ برابری در $(N_{DAYS} - 128)$، تغییر ۱.۵ برابری برای ۵ روز در $(N_{DAYS} - 61)$ و سقوط ۰.۴۵ برابری در $(N_{DAYS} - 20)$ — مدل با موفقیت رویدادهای بحرانی را با استفاده از z-scores نرمالسازی شده بر اساس عرض بازه شناسایی کرد.
همچنین، سیستم در برابر دادههای «کثیف» (Dirty Data) بسیار استوار است. آزمایشها نشان داد که مدل حتی زمانی که تاریخچه ورودی در ابتدا (۲۰ روز اول) یا در میانه (ایندکس ۴۰۰-۴۱۵) دارای مقادیر NaN باشد، خروجیهای محدودی (Finite) تولید میکند. علاوه بر این، تنظیم infer_is_positive=True تضمین میکند که سریهای نزولی (مانند سقوط شبیهسازی شده از ۴۰۰ به ۸ واحد) در کف صفر متوقف شوند و از پیشبینیهای غیرممکنِ فروش منفی جلوگیری شود.
ظرافتهای مقیاسپذیری و استقرار
برای استقرار در محیطهای عملیاتی مانند Google Colab، تنظیم توان عملیاتی (Throughput) حیاتی است. محققان یک بنچمارک توان عملیاتی با ۴۸ سری داده، زمینه ۱۰۲۴ روزه و مقادیر مختلف per_core_batch_size (۱، ۴، ۱۶، ۳۲، ۴۸) انجام دادند. نتایج نشان داد که بهینهسازی این پارامتر تأثیر مستقیمی بر تعداد سریهای پردازششده در هر ثانیه دارد.
یک بهینهسازی کلیدی دیگر، پرچم force_flip_invariance است. اگر این گزینه برای سریهایی که بهطور قطع مثبت هستند روی False تنظیم شود، یک پاس رفتوبرگشت (Forward Pass) دوم حذف میشود. طبق مستندات، این کار میتواند سرعت استنتاج (Inference) را تا ۲ برابر افزایش دهد.
در نهایت، مدل پیشبینیهای افق بلند (تا ۲۵۶ روز) را از طریق دو استراتژی مدیریت میکند:
- پیشبینی مستقیم (Direct): یک پاس واحد که کل پنجره ۲۵۶ روزه را با
max_horizon=256پیشبینی میکند. - پیشبینی بازگشتی (Recursive): پیشبینی یک تکه کوچک (مثلاً ۶۴ روز)، الحاق آن به تاریخچه و استفاده از آن به عنوان زمینه برای پیشبینی تکه بعدی. این روش با پیشبینی مستقیم مقایسه شد تا مشخص شود خطا چگونه در طول زمان انباشته میشود.
یک مطالعه حذف زمینه (Context Ablation) نیز با تست طولهای ۶۴، ۱۲۸، ۲۵۶، ۵۱۲ و ۱۰۲۴ روزه انجام شد. این مطالعه توازن بین دقت (MASE) و زمان واقعی استنتاج (Wall-clock time) را آشکار کرد و به کاربران اجازه داد بهینهترین پنجره تاریخچه را برای دادههای خاص خود بیابند.
چکلیست عملیاتی برای پیادهسازی
برای انتقال این مدل به محیط عملیاتی، جریان کاری چندین محدودیت سخت و تنظیمات پیکربندی را در ForecastConfig پیشنهاد میکند:
- یکپارچگی دادهها (Data Integrity):
- سریهای زمانی باید با فاصله زمانی یکسان و با یک ردیف برای هر دوره باشند.
- شکافها باید به صورت NaN نمایش داده شوند و نباید ردیفها حذف گردند.
- قبل از ارسال دادهها به مدل، مقادیر NaN انتهایی باید با توابع trimming سفارشی حذف شوند.
- محدودیتهای معماری:
- مقدار
max_contextباید مضرب ۳۲ باشد. - مقدار
max_horizonباید مضرب ۱۲۸ باشد. - مجموع
max_contextوmax_horizonنباید از ۱۶,۳۸۴ توکن فراتر رود. - هنگام استفاده از Quantile Head، افق پیشبینی باید $\le 1,024$ باشد.
- مقدار
- مدیریت ورودی:
- لیستهای ورودی باید به صورت
list(inputs)ارسال شوند، زیرا متدforecast()لیست اصلی را تغییر میدهد (Mutate میکند). - برای پیکربندیهای استاندارد خردهفروشی، از
normalize_inputs=Trueوuse_continuous_quantile_head=Trueاستفاده کنید.
- لیستهای ورودی باید به صورت
- اعتبارسنجی:
- برای جلوگیری از اتکا به یک پنجره Hold-out واحد، از روش Backtesting با مبدأ متحرک (مثلاً ۶-fold) استفاده کنید.
- نتایج را با مدل ساده فصلی مقایسه کنید تا از کاهش MASE مطمئن شوید.
- فقط در صورتی از
infer_is_positive=Falseاستفاده کنید که دادهها واقعاً بتوانند منفی شوند.
این گذار از یک مدل پژوهشی به یک خط لوله (Pipeline) کاربردی نشان میدهد که مدلهای بنیادی برای سریهای زمانی بالاخره به پایداری لازم برای برنامهریزی عملیاتی رسیدهاند. با treating کردن سریهای زمانی به عنوان زبانی که مدل از قبل میشناسد، هزینه استقرار از هفتههای آموزش به ثانیههای استنتاج کاهش یافته است. توسعهدهندگان اکنون باید نظارت کنند که این قابلیتهای Zero-shot چگونه با ورودیهای چندوجهی (Multi-modal)، مانند ترکیب تحلیل متنی احساسات بازار با دادههای عددی خام فروش، تعامل میکنند.
گام بعدی شما
- اگر از مدلهای آماری قدیمی استفاده میکنید، وزنهای
timesfm-2.5-200m-pytorchرا روی یک مجموعه داده کوچک تست کنید تا نرخ MASE را مقایسه کنید. - برای کاهش تأخیر در محیط عملیاتی، پارامتر
force_flip_invarianceرا بررسی کرده و با دادههای مثبت خود هماهنگ کنید. - سیستم تشخیص ناهنجاری را با استفاده از باندهای q10 و q90 برای نظارت بر خطاهای زنجیره تأمین پیادهسازی کنید.
اما اثر این مدل بر کاهش هزینههای سختافزاری در مقیاس میلیونی حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو