הפונקציה ai.forecast של AlloyDB Omni מיועדת לעבודה עם כל מודל שרשום עם סוג המודל ts_forecasting, ומאפשרת לכם להשתמש במודל הכי טוב לצרכים שלכם. במאמר הזה נסביר בפירוט איך להשתמש ב-TimesFM, אבל אפשר ליישם את העקרונות גם במודלים אחרים.
לפני שמתחילים
כדי לבצע חיזוי של סדרות עתיות, צריך להפעיל את הדגל לניהול מסד נתונים של חיזוי ב-AlloyDB Omni ולרשום מודל חיזוי.
רישום של מודל חיזוי
אתם יכולים להשתמש במודלים שונים של חיזוי ב-AlloyDB Omni.
בקטע הזה מוסבר איך לרשום את המודל TimesFM. במאמר רישום נקודת קצה של מודל באמצעות ניהול נקודות קצה של מודלים מוסבר איך רושמים מודלים אחרים.
שימוש במודל TimesFM
למודלים של TimesFM יש שתי גרסאות:
- TimesFM 1.0: הגרסה הראשונית של מודל TimesFM.
- TimesFM 2.0: הגרסה הזו מכילה נקודת ביקורת של 500 מיליון פרמטרים עם קוד ההסקה שלה. הוא מספק ביצועים טובים יותר של המודל בהשוואה למודל 1.0.
- TimesFM 2.5: הגרסה הזו מכילה נקודת ביקורת של 200 מיליון פרמטרים עם קוד ההסקה שלה. הוא מספק ביצועים טובים יותר של המודל בהשוואה למודל 2.0.
כל המודלים זמינים ב-Model Garden לפריסה מהירה.
כדי להשתמש במודלים של TimesFM, קודם צריך לפרוס את המודל של TimesFM בנקודת קצה (endpoint) של Vertex AI ואז לרשום אותו ב-AlloyDB Omni.
פריסת המודל של TimesFM בנקודת קצה של Vertex AI
אתם יכולים לפרוס את המודל בלחיצה אחת ממסוף Google Cloud , או באופן ידני באמצעות מסמך Colaboratory.
פריסה בלחיצה אחת
כדי לפרוס את מודל TimesFM באמצעות פריסה בלחיצה אחת, מבצעים את השלבים הבאים:
נכנסים לדף Model Garden במסוף Google Cloud :
כניסה ל-Model Garden- בשדה חיפוש, מזינים
TimesFM. - בתוצאות החיפוש, לוחצים על
TimesFM. -
בדף TimesFM, מבצעים את הפעולות הבאות:
- לוחצים על Deploy model.
- בוחרים באפשרות Vertex AI.
בחלונית Deploy on Vertex AI, מגדירים ופורסים את המודל:
- כדי להשתמש בגרסה העדכנית של מודל TimesFM, בתפריט הנפתח Resource ID בוחרים באפשרות
google/timesfm-2.0. - כדי להקל על זיהוי הפריסה בהמשך, מזינים את הפרטים הבאים:
- בשדה שם המודל, מזינים שם ייחודי
MODEL_NAME. - בשדה Endpoint name, מזינים שם ייחודי ל-
ENDPOINT_NAME.
- בשדה שם המודל, מזינים שם ייחודי
- כדי להרחיב את אפשרויות ההגדרה, בקטע Deployment settings לוחצים על Advanced.
- כדי להבטיח את זמן האחזור הנמוך ביותר האפשרי, בתפריט הנפתח אזור, בוחרים את אותו אזור שבו נמצא מופע 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מופיע ב-Endpoints. - כדי לקבל את כתובת ה-URL של בקשת המודל, לוחצים על הקישור לפריסה בקטע Endpoints.
- בדף הפרטים של נקודת הקצה, לוחצים על בקשה לדוגמה.
בחלונית Sample request, מאתרים את כתובת ה-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 - בשדה Search, מזינים
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הזה בקריאה ל-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 המלאה מהחלונית Sample request במסוף 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.