בדף הזה מוסבר איך לבצע תחזיות של סדרות עיתיות ישירות במסד הנתונים של AlloyDB. אתם יכולים להשתמש במגוון מודלים של תחזיות, כולל מודלי TimesFM, כדי להתמודד עם אי-ודאות ולקבל החלטות אסטרטגיות מושכלות. פרטים נוספים על המודל זמינים בבלוג המחקר של TimesFM.
הפונקציה ai.forecast של AlloyDB מיועדת לעבודה עם כל מודל שרשום בסוג המודל ts_forecasting, ומאפשרת לכם להשתמש במודל הכי טוב לצרכים שלכם. במסמך הזה מופיע מדריך מפורט לשימוש ב-TimesFM, אבל אפשר להחיל את העקרונות גם על מודלים אחרים.
לפני שמתחילים
כדי לבצע חיזוי של סדרות זמן, צריך להפעיל את תכונת החיזוי ב-AlloyDB ולרשום מודל.
רישום של מודל חיזוי
אפשר להשתמש במודלים שונים של חיזוי עם AlloyDB.
בקטע הזה מוסבר איך לרשום את מודל TimesFM. הוראות לרישום מודלים אחרים מפורטות במאמר רישום של נקודת קצה של מודל באמצעות הכלי לניהול נקודות קצה של מודלים.
שימוש במודל TimesFM
מודלים של TimesFM זמינים בשתי גרסאות:
- TimesFM 1.0: הגרסה הראשונית של מודל TimesFM.
- TimesFM 2.0: מומלץ להשתמש בגרסה הזו, כי היא מספקת רמת דיוק גבוהה יותר ב-25% בהשוואה לגרסה 1.0.
שני המודלים זמינים ב-Model Garden לפריסה מהירה.
כדי להשתמש במודלים של TimesFM, קודם צריך לפרוס את המודל של TimesFM לנקודת קצה של Vertex AI ואז לרשום אותו ב-AlloyDB.
פריסת מודל TimesFM לנקודת קצה של Vertex AI
אפשר לפרוס את המודל באמצעות פריסה בלחיצה אחת ממסוף Google Cloud , או באופן ידני באמצעות מחברת Colaboratory.
פריסה בלחיצה אחת
כדי לפרוס את מודל TimesFM באמצעות פריסה בלחיצה אחת, מבצעים את השלבים הבאים:
במסוף Google Cloud , עוברים לדף Model Garden:
כניסה ל-Model Garden- בשדה חיפוש, מזינים
TimesFM. - בתוצאות החיפוש, לוחצים על
TimesFM. -
בדף TimesFM, מבצעים את הפעולות הבאות:
- לוחצים על פריסת המודל.
- בוחרים באפשרות Vertex AI.
בחלונית Deploy on Vertex AI (פריסה ב-Vertex AI), מגדירים ופורסים את המודל:
- כדי להשתמש בגרסה העדכנית של מודל TimesFM, בתפריט הנפתח Resource ID (מזהה משאב), בוחרים באפשרות
google/timesfm-2.0. - כדי שיהיה קל יותר לזהות את הפריסה בהמשך, מזינים את הפרטים הבאים:
- בשדה שם המודל, מזינים שם ייחודי
MODEL_NAME. - בשדה Endpoint name, מזינים שם ייחודי
ENDPOINT_NAME.
- בשדה שם המודל, מזינים שם ייחודי
- כדי להרחיב את אפשרויות ההגדרה, בקטע הגדרות פריסה, לוחצים על מתקדם.
- כדי להבטיח את זמן האחזור הנמוך ביותר, בתפריט הנפתח אזור, בוחרים את אותו אזור שבו נמצא מופע AlloyDB.
- כדי להשיג את הביצועים הכי טובים, בתפריט הנפתח Machine spec (מפרט המכונה), בוחרים מפרט מכונה מתאים. שימו לב: יכול להיות ש-GPU או TPU יציעו זמן אחזור קצר יותר.
בתפריט הנפתח Endpoint access של Availability policies, בוחרים באפשרות Public (Shared endpoint).
הפעולה הזו יוצרת נקודת קצה בדומיין
aiplatformשפועלת עם AlloyDB.- כדי לפרוס את המודל לנקודת קצה מנוהלת, לוחצים על Deploy (פריסה). הפריסה עשויה להימשך כ-10 עד 15 דקות.
- כדי להשתמש בגרסה העדכנית של מודל TimesFM, בתפריט הנפתח Resource ID (מזהה משאב), בוחרים באפשרות
- אחרי פריסת מודל TimesFM, קישור שדומה ל-
google_timesfm-VERSION-one-click-deployמוצג בנקודות קצה. - כדי לקבל את כתובת ה-URL של בקשת המודל, לוחצים על קישור הפריסה בנקודות קצה.
- בדף הפרטים של נקודת הקצה, לוחצים על בקשה לדוגמה.
בחלונית בקשה לדוגמה, מחפשים את כתובת ה-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 - בשדה חיפוש, מזינים
TimesFM. - בתוצאות החיפוש, לוחצים על
TimesFMכדי לפתוח את כרטיס המודל. - בדף TimesFM, לוחצים על CO Open Notebook.
- בחלון Open Notebook, לוחצים על הקישור Collab Enterprise בשורה TimesFM 2.0.
-
בדף Collab Enterprise, מבצעים את הפעולות הבאות:
- כדי ליצור חיבור לסביבת זמן הריצה, לוחצים על Connect (התחברות).
-
אופציונלי: אם צריך, מבצעים את השלבים הבאים:
-
בקטע Prerequisites של Setup Google Cloud project, מגדירים את 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.
הפלט של המחברת מספק את פרטי נקודת הקצה בפורמט הבא:
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. -
PROJECT_ID: שם הפרויקט שבו המודל נפרס – לדוגמה,forecast_project.
ENDPOINT_ID: השם של פריסת המודל, לדוגמהmy-timesfm-endpoint.ה-
model_request_urlמסופק על ידי Vertex AI אחרי פריסת המודל. מעתיקים את כתובת ה-URL המלאה מהחלונית בקשה לדוגמה במסוף Vertex AI. הוא כבר מכיל את פרטי הפרויקט ונקודת הקצה הנכונים.
-
יצירת תחזיות
אחרי שרושמים את מודל 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 1) AS time_series_data',
data_col => 'data_points',
timestamp_col => 'timestamp',
horizon => 2,
conf_level => 0.80
);
שימוש במודלים אחרים של תחזיות
אפשר להשתמש בפונקציה ai.forecast עם כל מודל אחר של חיזוי סדרות עיתיות שרושמים ב-AlloyDB. חשוב לוודא שהמודל רשום עם סוג המודל ts_forecasting.
הוראות מפורטות לרישום סוגים שונים של מודלים זמינות במאמר רישום של מודלים מרוחקים של AI והפעלתם באמצעות ניהול נקודות קצה של מודלים. אחרי שהמודל רשום, אפשר להשתמש בו עם הפונקציה ai.forecast על ידי ציון model_id שלו.