הפונקציה ai.forecast ב-AlloyDB ל-PostgreSQL מאפשרת להריץ תחזיות של סדרות זמן ישירות על נתוני מסד הנתונים באמצעות SQL. אתם יכולים להירשם למודלים של תחזיות כמו TimesFM או לכל מודל אחר שרשום עם סוג המודל ts_forecasting, ולקרוא להם כדי לחזות מגמות עתידיות מנתונים היסטוריים. מידע נוסף על הארכיטקטורה של TimesFM זמין בבלוג המחקר של TimesFM.
לפני שמתחילים
כדי לבצע חיזוי של נתוני סדרות זמן, צריך להפעיל את תכונת החיזוי ב-AlloyDB ולרשום מודל.
רישום של מודל חיזוי
אפשר להשתמש במודלים שונים של תחזיות עם AlloyDB.
בקטע הזה מוסבר איך לרשום את מודל TimesFM. הוראות לרישום מודלים אחרים מופיעות במאמר רישום של נקודת קצה של מודל באמצעות ניהול נקודות קצה של מודלים.
שימוש במודל TimesFM
מודלים של TimesFM זמינים בשתי גרסאות:
- TimesFM 1.0: הגרסה הראשונית של מודל TimesFM.
- TimesFM 2.0: הגרסה הזו מכילה נקודת ביקורת של 500 מיליון פרמטרים עם קוד ההסקה שלה. הוא מספק ביצועים טובים יותר בהשוואה למודל 1.0.
- TimesFM 2.5: הגרסה הזו מכילה נקודת ביקורת של 200 מיליון פרמטרים עם קוד ההסקה שלה. הוא מספק ביצועים טובים יותר בהשוואה למודל 2.0.
כל המודלים זמינים ב-Model Garden לפריסה מהירה.
כדי להשתמש במודלים של TimesFM, קודם צריך לפרוס את המודל של TimesFM בנקודת קצה (endpoint) של Gemini Enterprise Agent Platform, ואז לרשום אותו ב-AlloyDB.
פריסת המודל TimesFM בנקודת קצה של Agent Platform
אתם יכולים לפרוס את המודל בלחיצה אחת ממסוף Google Cloud , או באופן ידני באמצעות notebook של Colaboratory.
פריסה בלחיצה אחת
כדי לפרוס את המודל TimesFM בלחיצה אחת:
נכנסים לדף Model Garden במסוף Google Cloud :
כניסה ל-Model Garden- בשדה Search, מזינים
TimesFM. - בתוצאות החיפוש, לוחצים על
TimesFM. -
בדף TimesFM, מבצעים את הפעולות הבאות:
- לוחצים על Deploy model.
- בוחרים באפשרות Agent Platform.
בחלונית Deploy on Agent Platform, מגדירים ופורסים את המודל:
- כדי להשתמש בגרסה העדכנית של מודל TimesFM, בתפריט הנפתח מזהה משאב בוחרים באפשרות
google/timesfm-2.0. - כדי שיהיה קל יותר לזהות את הפריסה בהמשך, מזינים את הפרטים הבאים:
- בשדה שם המודל, מזינים שם ייחודי
MODEL_NAME. - בשדה Endpoint name, מזינים שם ייחודי ל-
ENDPOINT_NAME.
- בשדה שם המודל, מזינים שם ייחודי
- כדי להרחיב את אפשרויות ההגדרה, בקטע הגדרות פריסה, לוחצים על מתקדם.
- כדי להבטיח זמן אחזור קצר ככל האפשר, בתפריט הנפתח Region בוחרים את אותו אזור שבו נמצא המכונה של AlloyDB.
- כדי לקבל את הביצועים הכי טובים, בתפריט הנפתח Machine spec בוחרים את מפרט המכונה המתאים. חשוב לזכור ש-GPU או TPU יכולים להציע זמן אחזור קצר יותר.
בתפריט הנפתח Endpoint access שבקטע Availability policies, בוחרים באפשרות Public (Shared endpoint).
כך נוצרת נקודת קצה בדומיין
aiplatformשעובדת עם AlloyDB.- כדי לפרוס את המודל לנקודת קצה מנוהלת, לוחצים על Deploy (פריסה). הפריסה עשויה להימשך כ-10 עד 15 דקות.
- כדי להשתמש בגרסה העדכנית של מודל TimesFM, בתפריט הנפתח מזהה משאב בוחרים באפשרות
- אחרי פריסת המודל של TimesFM, קישור שדומה ל-
google_timesfm-VERSION-one-click-deployמופיע ב-Endpoints. - כדי לקבל את כתובת ה-URL של בקשת המודל, לוחצים על הקישור לפריסה בקטע Endpoints.
- בדף הפרטים של נקודת הקצה, לוחצים על בקשה לדוגמה.
בחלונית בקשה לדוגמה, מאתרים את כתובת ה-URL של בקשת המודל ורושמים אותה. משתמשים במידע הזה בשלב רישום מודל TimesFM ב-AlloyDB – לדוגמה,
https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict.מוודאים שכתובת ה-URL של הבקשה כוללת את
aiplatform.googleapis.com.
פריסה ידנית
כדי לפרוס ידנית את המודל TimesFM באמצעות מסמך Colaboratory:
-
נכנסים לדף Model Garden במסוף Google Cloud :
כניסה ל-Model Garden - בשדה Search, מזינים
TimesFM. - בתוצאות החיפוש, לוחצים על
TimesFMכדי לפתוח את כרטיס המודל. - בדף TimesFM, לוחצים על CO Open Notebook.
- בחלון Open Notebook, לוחצים על הקישור Collab Enterprise עבור TimesFM 2.0.
-
בדף Collab Enterprise, מבצעים את הפעולות הבאות:
- כדי ליצור חיבור לסביבת זמן הריצה, לוחצים על Connect (חיבור).
-
אופציונלי: מבצעים את השלבים הבאים לפי הצורך:
-
בקטע Prerequisites של הגדרת פרויקט בענן של Google, מגדירים את BUCKET_URI ואת REGION – לדוגמה, מגדירים את BUCKET_URI ל-
gs://your-unique-bucket-nameואת REGION ל-us-central1. - בתפריט הנפתח accelerator_type של Deploy TimesFM to a Vertex AI Endpoint, בוחרים סוג אחר של מאיץ אם צריך.
- בשלב 3: הגדרת טווח התחזית המקסימלי, ממלאים את השדות horizon ו-max_context. לדוגמה, מגדירים את horizon ל-
128ואת max_context ל-512.
-
- מבטלים את הסימון בתיבת הסימון
use_dedicated_endpoint. - מריצים את כל התאים ב-Notebook.
הפלט של ה-notebook מספק את פרטי נקודת הקצה בפורמט הבא:
projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID. -
כדי ליצור את
model_request_urlלקריאה ליצירת מודל SQL, מחליפים את מזהי הפרויקט ונקודת הקצה בפרטי נקודת הקצה מהשלב הקודם, באופן הבא:CALL google_ml.create_model( model_id => 'timesfm_v2', model_qualified_name => 'timesfm_v2', model_type => 'ts_forecasting', model_provider => 'google', model_request_url => 'https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict');
צריך את
model_request_urlבקריאה ל-the google_ml.create_modelכשרושמים את המודל TimesFM ב-AlloyDB, כמו שמתואר בקטע הבא. כדי לוודא שהפונקציה
ai.forecastפועלת כמו שצריך, מריצים את שאילתת הדוגמה הבאה:SELECT * FROM ai.forecast( source_query=> ' SELECT my_timestamp, my_data_value FROM ( VALUES (CAST(''2025-01-01'' AS TIMESTAMP), 10.0), (CAST(''2025-01-02'' AS TIMESTAMP), 12.0), (CAST(''2025-01-03'' AS TIMESTAMP), 11.0), (CAST(''2025-01-04'' AS TIMESTAMP), 13.0), (CAST(''2025-01-05'' AS TIMESTAMP), 15.0), (CAST(''2025-01-06'' AS TIMESTAMP), 14.0), (CAST(''2025-01-07'' AS TIMESTAMP), 16.0), (CAST(''2025-01-08'' AS TIMESTAMP), 18.0), (CAST(''2025-01-09'' AS TIMESTAMP), 17.0), (CAST(''2025-01-10'' AS TIMESTAMP), 20.0) ) AS t (my_timestamp, my_data_value) ' , model_id => 'timesfm_v2', data_col => 'my_data_value', timestamp_col => 'my_timestamp', -- The rest of the parameters are the same horizon => 7, conf_level => 0.80 );
רישום המודל TimesFM ב-AlloyDB
כדי לרשום את מודל TimesFM ב-AlloyDB:
מוודאים שהתוסף
google_ml_integrationמותקן במסד הנתונים של AlloyDB שמכיל את הנתונים שרוצים להריץ עליהם חיזויים.מוודאים שמותקנת גרסה 1.4.5 ואילך של התוסף
google_ml_integration.SELECT extversion FROM pg_extension WHERE extname = 'google_ml_integration';הפלט לדוגמה:
extversion ------------ 1.4.5 (1 row)מתקשרים אל
google_ml.create_modelבאמצעות כתובת ה-URL של בקשת המודל שרשמתם ברישום מודל תחזית.CALL google_ml.create_model( model_id => 'MODEL_ID', model_qualified_name => 'MODEL_QUALIFIED_NAME', model_type => 'ts_forecasting', model_provider => 'google', model_request_url => 'https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID:predict' -- Example endpoint from Model Garden );מחליפים את מה שכתוב בשדות הבאים:
-
MODEL_ID: מזהה ייחודי של המודל הרשום שרוצים להשתמש בו לתחזיות, לדוגמה,vertex_timesfm. -
MODEL_QUALIFIED_NAME: שם שהמשתמש הגדיר למודל, לדוגמהtimesfm_v2. -
REGION: האזור שבו המכונה ממוקמת, לדוגמהus-central1. -
PROJECT_ID: שם הפרויקט שבו המודל נפרס – לדוגמה,forecast_project.
ENDPOINT_ID: שם פריסת המודל, לדוגמהmy-timesfm-endpoint.הערך של
model_request_urlמסופק על ידי Agent Platform אחרי שפורסים את המודל. מעתיקים את כתובת ה-URL המלאה מהחלונית Sample request במסוף Agent Platform. הוא כבר מכיל את פרטי הפרויקט ונקודת הקצה הנכונים.
-
יצירת תחזיות
אחרי שרושמים את מודל TimesFM ומפעילים את הדגל הנדרש, אפשר ליצור תחזיות על ידי העברת טבלת מקור או שאילתה עם נתוני סדרת זמנים.
הפונקציה ai.forecast מתועדת בנפרד. רשימה מלאה של הפרמטרים, כולל תיאורים ודוגמאות, מופיעה במאמרי העזרה בנושא ניהול נקודות קצה של מודלים.
יצירת תחזיות מטבלת מקור
בדוגמה הבאה מוסבר איך להפעיל את הפונקציה ai.forecast באמצעות טבלת מקור כדי ליצור חיזויים:
SELECT * FROM ai.forecast(
model_id => 'MODEL_ID',
source_table => 'time_series_data',
data_col => 'data_points',
timestamp_col => 'timestamp',
horizon => 2,
conf_level => 0.80
);
יצירת תחזיות משאילתה
בדוגמה הבאה מוסבר איך ליצור תחזיות באמצעות קריאה לפונקציה ai.forecast, תוך שימוש בשאילתת משנה כמקור הנתונים:
SELECT * FROM ai.forecast(
model_id => 'MODEL_ID',
source_query => 'SELECT * FROM time_series_data ORDER BY timestamp LIMIT 10',
data_col => 'data_points',
timestamp_col => 'timestamp',
horizon => 2,
conf_level => 0.80
);
שימוש במודלים אחרים של תחזיות
אפשר להשתמש בפונקציה ai.forecast עם כל מודל אחר של חיזוי סדרות זמן שרושמים ב-AlloyDB. הדבר החשוב הוא לוודא שהמודל רשום עם סוג המודל ts_forecasting.
במאמר רישום וקריאה למודלים מרוחקים של AI באמצעות ניהול נקודות קצה של מודלים מוסבר איך לרשום סוגים שונים של מודלים. אחרי שהמודל נרשם, אפשר להשתמש בו עם הפונקציה ai.forecast על ידי ציון model_id שלו.