הפונקציה ai.forecast של AlloyDB Omni מיועדת לעבודה עם כל מודל שרשום עם סוג המודל ts_forecasting, ומאפשרת לכם להשתמש במודל הכי טוב לצרכים שלכם. במסמך הזה מופיע מדריך מפורט לשימוש ב-TimesFM, אבל אפשר להחיל את העקרונות גם על מודלים אחרים.
לפני שמתחילים
כדי לבצע חיזוי של סדרות עיתיות, צריך להפעיל את דגל מסד הנתונים של החיזוי ב-AlloyDB Omni ולרשום מודל חיזוי.
רישום של מודל חיזוי
אפשר להשתמש במודלים שונים של חיזוי עם AlloyDB Omni.
בקטע הזה מוסבר איך לרשום את מודל TimesFM. הוראות לרישום מודלים אחרים מפורטות במאמר רישום של נקודת קצה של מודל באמצעות ניהול נקודות קצה של מודלים.
שימוש במודל TimesFM
מודלים של TimesFM זמינים בשתי גרסאות:
- TimesFM 1.0: הגרסה הראשונית של מודל TimesFM.
- TimesFM 2.0: הגרסה הזו מכילה נקודת ביקורת של פרמטר 500M עם קוד ההסקה שלה. הוא מספק ביצועים טובים יותר של המודל בהשוואה למודל 1.0.
- TimesFM 2.5: הגרסה הזו מכילה נקודת ביקורת של 200 מיליון פרמטרים עם קוד ההסקה שלה. הוא מספק ביצועים טובים יותר של המודל בהשוואה למודל 2.0.
כל המודלים זמינים ב-Model Garden לפריסה מהירה.
כדי להשתמש במודלים של TimesFM, קודם צריך לפרוס את המודל של TimesFM לנקודת קצה של Vertex AI ואז לרשום אותו ב-AlloyDB Omni.
פריסת מודל 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.
- בשדה שם המודל, מזינים שם ייחודי
- כדי להרחיב את אפשרויות ההגדרה, בקטע הגדרות פריסה, לוחצים על מתקדם.
- כדי להבטיח את זמן האחזור הנמוך ביותר, בתפריט הנפתח Region (אזור), בוחרים את אותו אזור שבו נמצא מופע AlloyDB Omni.
- כדי להשיג את הביצועים הכי טובים, בתפריט הנפתח Machine spec (מפרט המכונה), בוחרים מפרט מכונה מתאים. שימו לב: יכול להיות ש-GPU או TPU יציעו זמן אחזור קצר יותר.
בתפריט הנפתח Endpoint access של Availability policies, בוחרים באפשרות Public (Shared endpoint).
הפעולה הזו יוצרת נקודת קצה בדומיין
aiplatformשפועלת עם AlloyDB Omni.- כדי לפרוס את המודל לנקודת קצה מנוהלת, לוחצים על Deploy (פריסה). הפריסה עשויה להימשך כ-10 עד 15 דקות.
- כדי להשתמש בגרסה העדכנית של מודל TimesFM, בתפריט הנפתח Resource ID (מזהה משאב), בוחרים באפשרות
- אחרי פריסת מודל TimesFM, קישור שדומה ל-
google_timesfm-VERSION-one-click-deployמוצג בנקודות קצה. - כדי לקבל את כתובת ה-URL של בקשת המודל, לוחצים על קישור הפריסה בנקודות קצה.
- בדף פרטי נקודת הקצה, לוחצים על בקשת דוגמה.
בחלונית בקשה לדוגמה, מחפשים את כתובת ה-URL של בקשת המודל ורושמים אותה. משתמשים במידע הזה בשלב רישום מודל TimesFM ב-AlloyDB Omni – לדוגמה,
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 של הגדרת פרויקט בענן של 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.
הפלט של המחברת מספק את פרטי נקודת הקצה בפורמט הבא:
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הזה בקריאהgoogle_ml.create_modelכשרושמים את מודל TimesFM ב-AlloyDB Omni, כמו שמתואר בקטע הבא. כדי לוודא שהפונקציה
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 Omni
כדי לרשום את מודל TimesFM ב-AlloyDB Omni, פועלים לפי השלבים הבאים:
מוודאים שהתוסף
google_ml_integrationמותקן במסד הנתונים של AlloyDB Omni שמכיל את הנתונים שרוצים להריץ עליהם תחזיות.מוודאים שמותקנת אצלכם גרסה 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מסופקת על ידי Vertex AI אחרי פריסת המודל. מעתיקים את כתובת ה-URL המלאה מחלונית בקשה לדוגמה במסוף Vertex AI. היא כבר מכילה את פרטי הפרויקט ונקודת הקצה הנכונים.
-
הפעלת הדגל של מסד הנתונים של התחזיות
כדי ליצור תחזיות באמצעות המודל הרשום, צריך להגדיר את האפשרות google_ml_integration.enable_forecasting במסד הנתונים לערך on.
אפשר להפעיל את הדגל הזה לסשן הנוכחי או להגדיר שהוא יישמר למסד נתונים או למשתמש ספציפיים בין סשנים. כדי להגדיר את דגל מסד הנתונים, בוחרים באחת מהאפשרויות הבאות:
מפעילים את הדגל לסשן הנוכחי:
SET google_ml_integration.enable_forecasting = on;מפעילים את הדגל למסד נתונים ספציפי:
ALTER DATABASE DATABASE_NAME SET google_ml_integration.enable_forecasting = 'on';מחליפים את
DATABASE_NAMEבשם של מסד הנתונים.מפעילים את הדגל עבור משתמש ספציפי במסד הנתונים:
ALTER ROLE postgres SET google_ml_integration.enable_forecasting = 'on';
יצירת תחזיות
אחרי שרושמים את מודל 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 Omni. חשוב לוודא שהמודל רשום עם סוג המודל ts_forecasting.
הוראות מפורטות להרשמה של סוגים שונים של מודלים זמינות במאמר הרשמה של מודלים מרוחקים של AI וקריאה להם באמצעות ניהול נקודות קצה של מודלים. אחרי שהמודל נרשם, אפשר להשתמש בו עם הפונקציה ai.forecast על ידי ציון model_id שלו.
המאמרים הבאים
- רישום של נקודת קצה של מודל באמצעות ניהול נקודות קצה של מודלים
- שאילתה באמצעות אופרטורים של SQL שמבוססים על AI.