אינטגרציה של Snowflake ML לאנליטיקה ולמידת מכונה

כאשר הנתונים לדוחות ולמודלים נמצאים במערכות שונות, הכנת המאפיינים נמשכת ימים. אנו מטמיעים Snowflake ML באופן מלא: סביבה אחודה לאנליטיקה ולמידת מכונה מקצרת את מחזור הכנת הנתונים באופן משמעותי. נדון במשימה שלך ונחזור עם תוכנית.

תחומי פיתוח AI

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

מדוע אנליטיקה ו-ML חיים במערכות נפרדות

אנליטיקאים מחשבים מדדים במחסן הנתונים, והמודלים מתאמנים על חילוצים — ואלו שני עולמות שונים. הנתונים לאימון מועתקים למתחם נפרד, מכיוון שסביבת האימון אינה יכולה לקרוא ישירות מהמחסן.

ההעתק חי חיים משל עצמו: מתעדכן לפי לוח זמנים, מפגר ביום ואף בשבוע, ואיש לא יערוב לכך שבהעתק נמצאת אותה גרסה של תצוגה כמו בדוח.

מכאן מתחיל חוסר סנכרון של מדדים. הדוח מציג מספר אחד, המודל נשען על אחר, ובישיבת התכנון מתברר שאין על מה להתווכח — המקורות שונים. חילוצים ידניים מוסיפים גורם אנושי: מישהו שכח להעביר טבלה, מישהו תיקן סכימה, והאימון נופל או, גרוע מכך, לומד בשקט על נתונים מיושנים.

המחיר של פער כזה הוא לא רק זמן של מהנדסים על העברה מחדש. מודל שאומן על העתק מדרדר באופן בלתי מורגש: האיכות יורדת לא ברגע התקלה, אלא בהדרגה, ואפשר להבחין בכך כבר לפי מדדים עסקיים. האנליטיקאי ומדען הנתונים מפסיקים לסמוך זה על זה, והחלטות מתקבלות על מספרים שאיש אינו יכול לאחד.

Snowflake ML מסיר את הפער עצמו: אימון והסקת מסקנות של המודל מתבצעים במקום שבו נמצאים הנתונים, ללא העתקות ביניים וללא חילוצים ידניים. גרסה אחת של התצוגה — מערכת אחת של מדדים גם לדוח וגם למודל. מפרקים כיצד זה בנוי ומה משתנה בעבודת הצוות.

מה נותנת סביבה אחודה למודלים

כאשר הנתונים והחישובים חיים במתחם אחד, נעלם השלב היקר ביותר — העברת תוצרי חילוץ בין מחסן הנתונים לבין אשכול נפרד לאימון.

המאפיינים ומשתנה המטרה נאספים בשאילתה אחת לאותן טבלאות שבהן עובדת האנליטיקה, ולכן הכנת תצוגה למודל מתקצרת משבועות לשעות, והפער בין "נתונים לדוח" ל"נתונים למודל" נעלם כקטגוריה.

יכולת השחזור כאן אינה הצהרה, אלא תוצאה של מבנה הסביבה. גרסת מערך הנתונים, גרסת הקוד ופרמטרי ההרצה נרשמים יחד עם תוצאת האימון, ולכן כל ניסוי ניתן להרים מחדש ולקבל את אותה מטריקה — בלי ארכיאולוגיה בניידות של אחרים.

כאשר המודל מדרדר, המהנדס מוצא בתוך דקות מה השתנה: הגיע חיתוך נתונים חדש או שהשתנתה לוגיקת המאפיינים.

פעולות ידניות עוברות למקום שבו מקומן — לתקנון. בנייה מחדש של מאפיינים, אימון וחילוץ תחזיות מופעלים לפי לוח זמנים ולפי אירוע, ולא לפי בקשה בצ'אט; האנליטיקאי מפסיק להיות דיספצ'ר בין הצוותים. הזמן שהתפנה עובר לבדיקת השערות, ולא לחזרה על אותה הרצה שוב ושוב.

סביבה אחודה משנה גם את האופן שבו הצוות מסכם על התוצאה. מהנדס נתונים, אנליטיקאי ומומחה למודלים עובדים עם אותם אובייקטים ואותה היסטוריית שינויים, ולכן הוויכוח "אצלי זה מחושב אחרת" נפתר בהפניה לחישוב קונקרטי, ולא בפגישה נוספת.

אנו פורסים סביבה כזו במתחם שלכם ומוסרים אותה לצוות יחד עם התקנונים — כדי שהאפקט יישמר לאחר ההרצה, ולא רק בחודש הראשון.

אפשרויות ארגון החישובים

הבחירה בגישה קובעת היכן פיזית מבוצעים השאילתות ואימון המודלים: בתוך מאגר הנתונים, במתחם נפרד או בתצורה היברידית. בפועל, ההחלטה מתקבלת לפי שלושה צירים — נפח הנתונים, דרישות השהיה ואופן הגישה לאירועי הגלם. להלן — אפשרויות עבודה שמהן באמת בוחרים בשלב ההתחלה.

אפשרות מתי מתאימה מגבלות
חישובים במאגר הנתונים הנתונים כבר שם, נדרשים חלונות נתונים ואימון על חתכים היסטוריים, השהיה של דקות מקובלת צריכת משאבי החישוב של מאגר הנתונים מתחלקת עם האנליטיקה; משימות כבדות מתחרות בדוחות
מתחם נפרד נדרשים ספריות משלך, מודלים לא סטנדרטיים, שליטה קפדנית על סביבת האימון יש להעביר ולסנכרן את הנתונים; עולה הסיכון לפערים בגרסאות המאפיינים
תצורה היברידית אימון על נפחים גדולים במאגר הנתונים, אינפרנציה — לצד המוצר מורכב יותר לעקוב אחר מקור המאפיינים ושחזור הניסויים

מה לבדוק לפני הבחירה

הקריטריון המרכזי — היכן נולדים המאפיינים. אם הם נאספים מאותן טבלאות שמהן נבנית הדיווחיות, חישובים במאגר הנתונים מסירים סוג שלם של פערים: לוגיקה אחת, חתך אחד, אין העברות.

מתחם נפרד מוצדק כאשר נדרשות ספריות ייעודיות או בידוד עומס — ואז סנכרון המאפיינים נבנה כתהליך תקופתי נפרד עם בדיקת התאמה.

תצורה היברידית — פשרה לצוותים בוגרים: האימון הכבד נשאר היכן שהנתונים נמצאים, והאינפרנציה מועברת קרוב יותר למשתמש, כדי לא להעביר תעבורה דרך מאגר הנתונים. אנחנו מתעדים את הבחירה במסמך עם נימוק, כדי שכעבור חצי שנה יהיה ברור מדוע המתחם בנוי דווקא כך.

כיצד אנו מיישמים Snowflake ML

יישום Snowflake ML מתחיל בביקורת: אנו בוחנים היכן הנתונים נמצאים כיום, כיצד בנויים תצוגות הנתונים (data marts), אילו תפקידים כבר קיימים ומי имеет גישה למה. בשלב זה חשוב להבין אילו מודלים העסק באמת זקוק להם, ואילו משימות נפתרות באמצעות SQL רגיל — הדבר חוסך שבועות של עבודה. בתום הביקורת אנו מתעדים מפת נתונים ורשימת תרחישים שיניבו אפקט מדיד.

לאחר מכן אנו מתכננים את הארכיטקטורה: מפרקים את הנתונים לשכבות, קובעים היכן מתאמנים המודלים והיכן מתבצע האינפרנס, וכיצד התוצאות מוחזרות לדיווח.

תפקידים והרשאות מוגדרים מלכתחילה לפי עקרון ההרשאה המינימלית — אנליסט רואה תצוגות נתונים אך אינו נוגע במדגמי אימון, מהנדס עובד עם מאפיינים אך לא עם נתונים אישיים גולמיים. הדבר מסיר את מרבית הסיכונים בשלב הבדיקות.

  1. ביקורת נתונים ותרחישים. מנתחים מקורות, איכות, נפח ותדירות עדכון. מתעדים אילו מודלים נדרשים ואיזו תוצאה נחשבת להצלחה.
  2. תכנון ארכיטקטורה. קובעים שכבות נתונים, נקודות אימון ואינפרנס, ואופן אספקת התוצאות לדיווח ולמערכות תפעוליות.
  3. הגדרת תפקידים והרשאות. מפרידים הרשאות לפי עקרון ההרשאה המינימלית, ומגדירים תפקידים נפרדים לאנליטיקה, להנדסה ולתפעול.
  4. הכנת נתונים ומאפיינים. בונים תצוגות נתונים, מתארים מאפיינים, ומגדירים עדכון שוטף ללא הרצות ידניות.
  5. אימון ובדיקת מודלים. משווים איכות על מדגם מוחזק (holdout), בודקים עמידות לשינוי בנתונים, ובוחרים מודלים להרצה תעשייתית.
  6. בדיקה בסביבת הלקוח. מריצים תרחישים על נתונים אמיתיים, משווים תוצאות לחישובים הקיימים, ומתקנים אי-התאמות.
  7. מסירה והדרכת הצוות. מוסרים תיעוד, נהלי עדכון מודלים וניתוח תקלות אופייניות, כדי שהמערכת תפעל בלעדינו.

כל שלב מסתיים בארטיפקט שניתן לבדוק: מפת נתונים, תרשים ארכיטקטורה, מטריצת הרשאות, דוח איכות מודלים. סדר עבודה זה מאפשר להשיק תרחישים אחד-אחד, מבלי להמתין למוכנותה של כל הפלטפורמה, ובכל שלב לראות מה כבר עובד ומה עדיין בתהליך.

ארטיפקטים ותיעוד לאחר ההטמעה

לאחר מסירת הפרויקט לא נשארת אצלכם "קסם בענן", אלא מעגל עבודה שצוותכם יכול לתחזק ולפתח בלעדינו. אנו מעבירים את כל מה שנדרש לחישוב מחדש משוחזר של המודלים, להפרדת הרשאות גישה ולהעברת ידע למהנדסים חדשים.

  • תצורות סביבות. קבצי פרמטרים לסביבת פיתוח, סביבת בדיקות וסביבת ייצור: תפקידים, מחסני חישוב, לוחות זמנים למשימות חישוב מחדש, מגבלות משאבים. ניתן לפרוס סביבה מאפס לפי קבצים אלה, בלי לשחזר הגדרות ידנית.
  • סכימות נתונים ומודלים. סכימת השכבות — מהנתונים הגולמיים ועד לתצוגות ולטבלאות מאפיינים, עם תיאור הקשרים והבעלים. בנפרד — סכימת המאפיינים עם גרסאות: ניתן לראות על אילו נתונים אומן כל מודל ומה השתנה בין חישובים מחדש.
  • מדיניות גישה. מטריצת תפקידים והרשאות: מי רואה נתונים גולמיים, מי — רק אגרגטים, מי מריץ חישוב מחדש. כללי מיסוך של שדות רגישים והפרדת גישה ברמת השורות, כדי שאנליסט לא ייצא מידע מיותר.
  • נהלי חישוב מחדש. לוח שנה לאימון ועדכון מודלים, תנאי הפעלה, ספי איכות שבהם המודל יוצא לאימון נוסף או חוזר לגרסה קודמת. בנוסף — סדר הפעולות בעת תקלה.
  • הוראות לצוות. מדריכים שלב אחר שלב: כיצד להוסיף מאפיין, כיצד לאמן מחדש מודל, כיצד לקרוא מדדי איכות ולאן להסתכל כאשר התחזית אינה תואמת את המציאות.
  • ניטור והתראות. בדיקות מוגדרות לזיהוי סחיפה בנתונים ולדעיכת המודל, ספי הפעלה ורשימת מקבלי ההתראות.
  • יומן החלטות. מה ולמה נבחר: מקורות נתונים, לוגיקת המאפיינים, השערות שנדחו. זה חוסך שבועות בפיתוח הבא של הפתרון.

כל זה — במאגר שלכם ובחשבון הענן שלכם, עם גישה למהנדסים שלכם. תארו את המשימה — נחזור עם הערכה ותוכנית, כולל הרכב התיעוד הנמסר.

מקרה בוחן: האצנו את הכנת הנתונים למודלים

הלקוח — אנליסט מוצר בקמעונאות — הכין ויטרינות למודלים של תחזית ביקוש באופן ידני: ייצוא ממספר מקורות, איחוד לטבלאות, ניקוי ערכים חסרים וכפילויות. איטרציה אחת ארכה 2-3 ימים, ופער בין מדגם האימון למדגם הייצור צף רק לאחר הפעלת המודל.

מה עשינו

העברנו את הכנת הנתונים ל-Snowflake ML: הנתונים הגולמיים נשארים במחסן הנתונים, והתמורות מתוארות באופן דקלרטיבי — אותו קוד מכין את המדגם גם לאימון וגם לאינפרנס. השלבים הכבדים — חיבורים, אגרגציות, חישוב מאפיינים — מבוצעים היכן שהנתונים נמצאים, ללא ייצוא ביניים.

הוספנו בקרת איכות בכל שלב: בדיקות לערכים חסרים, כפילויות, סחיפת התפלגות מאפיינים. אם בדיקה אינה עוברת, השלב הבא אינו מופעל — השגיאה נראית בקלט, ולא בפלט המודל.

מדדים לפני ואחרי

מדד היה הפך
הכנת נתונים לאיטרציה 2-3 ימים 3-4 שעות
פעולות ידניות בתהליך 11 2
כשלי פייפליין בחודש 6-8 0-1
פער בין מדגם האימון למדגם הייצור באופן קבוע אינו משוחזר

ידניים נותרו רק קבלת התוצאה ואישור שינויים בלוגיקת המאפיינים — כל השאר מבוצע לפי לוח זמנים ולפי אירוע. האנליסט חזר לפרשנות התוצאות במקום להרכבה שגרתית של טבלאות.

מה זה נתן לעסק

מודל תחזית הביקוש מתעדכן מדי יום על נתונים טריים, ולא פעם בשבוע. דיוק התחזית עלה בזכות העובדה שהאימון והייצור רואים כעת מאפיינים זהים. הצוות הפסיק לבזבז זמן על ניתוח פערים והשוואה ידנית — השעות שהתפנו עברו לתרחישים חדשים.

במה שונה Snowflake ML מהוצאת מודלים החוצה

ההבדל המרכזי הוא היכן פיזית מחושבים המאפיינים והיכן מתאמן המודל. בהוצאת מודלים החוצה, הנתונים נשלפים תחילה מהמחסן לסביבה חיצונית, המאפיינים מחושבים מחדש בצד של אותה סביבה, ורק לאחר מכן מופעל האימון.

ב-Snowflake ML חישוב המאפיינים, אימון המודל ויישומו מתרחשים באותו מקום שבו נמצאים הנתונים: המאפיינים מחושבים פעם אחת ובמקום אחד — גם עבור האימון וגם עבור האינפרנס, ולכן הפער בין ערכת האימון לערכת העבודה נעלם כקטגוריה.

ההבדל השני הוא ארגון הגישה. בהוצאה החוצה יש לפתוח החוצה תמציות, להעתיק שדות רגישים למחסן חיצוני ולסנכרן בנפרד הרשאות: מי רואה נתונים גולמיים, מי — מאפיינים, מי — תוצאות.

ב-Snowflake ML הגישה עוברת בירושה מהתפקידים של המחסן עצמו: המודל מתאמן על אותן טבלאות ותצוגות שלצוות כבר יש להן הרשאות, ולא נוצרות עותקים של נתונים מחוץ להיקף.

השלישי — עלות ומורכבות התחזוקה. ההוצאה החוצה מוסיפה קו מתאר נפרד: העברת נתונים לפי לוח זמנים, תשתית אימון משל עצמה, שכבה נפרדת ליישום המודל וסנכרון גרסאות של מאפיינים ביניהם.

Snowflake ML מסירה את החוליות האלה — אין העברה של נתונים הלוך ושוב, אין שתי מימושים לא מסונכרנים של אותו מאפיין, אין קו מתאר נפרד שיש לעדכן ולהגן עליו.

בפועל זה משנה לא רק את הארכיטקטורה, אלא גם את קצב העבודה. כאשר מאפיינים, אימון ויישום חיים במקום אחד, גרסה חדשה של המודל עוברת מסלול מרעיון לפרודקשן בלי לבנות מחדש את צינורות הנתונים, והתוצאה משוחזרת על אותן הגדרות מאפיינים כמו באימון. נבחן כיצד זה בנוי בנוף הנתונים שלכם ומה זה נותן בתפוקה.

ספקות טכניים נפוצים

עבודה עם נתונים באחסון ענן מעלה סט צפוי של שאלות: היכן הנתונים נמצאים פיזית, מה עם הרשאות גישה, כיצד הפתרון יתנהג תחת עומס ומי מתחזק אותו לאחר ההפעלה. להלן תשובות לאלה שעולים לרוב בשלב ההערכה הטכנית.

היכן נשמרים הנתונים וכיצד מופרדות הרשאות הגישה?

הנתונים נשארים בחשבון אחסון הענן שלכם — איננו מייצאים אותם לצד שלנו. הרשאות גישה ניתנות דרך תפקידים עם ההרשאות המינימליות הנדרשות: בנפרד לקריאה של תצוגות נתונים, בנפרד לכתיבת תוצאות אימון. מפתחות וטוקנים נשמרים במאגר סודות מאובטח, ולא בקוד. כל פנייה לנתונים נרשמת ביומן ביקורת, כך שניתן לראות מי ומתי קרא מערך נתונים מסוים.

האם זה תואם לסטאק הנוכחי שלנו ולמקורות הנתונים?

תחילה בוחנים מהיכן מגיעים הנתונים: מסדי נתונים רלציוניים, אחסון קבצים, זרמי אירועים, שירותים חיצוניים. רוב המקורות מתחברים באמצעות קונקטורים סטנדרטיים, ועבור השאר אנו כותבים חילוף דרך שכבת ביניים.

אם חלק מהאנליטיקה כבר פועל בכלי אחר, מעבירים אותה בהדרגה — הדוחות הישנים ממשיכים לעבוד עד שהחדשים יגיעו לאותם נתונים.

האם הפתרון יעמוד בגידול בנפח הנתונים ובעומס שיא?

החישוב מתאים את עצמו בנפרד מהאחסון: משימות אימון כבדות מופעלות על משאבי חישוב מבודדים ואינן מתחרות בדוחות. עם גידול בנפח מתווספים צמתי עיבוד, ולא נכתבת מחדש הלוגיקה. תקופות שיא מכוסות באמצעות תזמון: האימון מתבצע בחלונות של פעילות נמוכה, ושאילתות אינטראקטיביות מקבלות עדיפות.

מה עם תחזוקה וחזרה לאחור לאחר ההפעלה?

מודלים וטרנספורמציות מנוהלים בגרסאות: כל שינוי מתועד, והגרסה הקודמת נשארת זמינה לחזרה לאחור. מדדי איכות וזמן תגובה מוצגים על דאשבורד, וסטייה מהנורמה נראית מיד. התחזוקה כוללת עדכון תלויות, טיפול באירועים ובדיקת איכות תקופתית — לפי נוהל, ולא בעקבות תקלה.

תארו את המשימה שלכם ואת מפת הנתונים הנוכחית — נחזור עם הערכה ותוכנית אינטגרציה.

נדון במשימה שלכם ונחזור עם תוכנית

כדי שההערכה תהיה ריאלית ולא "ממוצעת בשוק", עלינו להבין את התמונה האנליטית הנוכחית שלכם: היכן נמצאים הנתונים, כיצד הם מגיעים ל-Snowflake ML, אילו צוותים כבר עובדים עם תצוגות נתונים ומה בדיוק צריך להשתנות בתהליך העסקי לאחר ההטמעה. תארו את המשימה בצורה חופשית — זה מספיק כדי שנשאל שאלות הבהרה ממוקדות ונחזור עם תוכנית עבודה.

בפגישה הראשונה נבחן לא "משאלות" מופשטות אלא את הפרטים הקונקרטיים: מקורות הנתונים והנפח שלהם, תדירות העדכון, דרישות לאיכות המאפיינים, תפקידי המשתמשים ותרחישים שבהם המודל או הדוח אמורים לספק תשובה.

בנפרד נפרט את המגבלות — regarding הרשאות גישה, לוחות זמנים ועומס על המערכות הקיימות. ככל שהנתונים הראשוניים מדויקים יותר, כך נניח פחות הנחות בתוכנית.

מה נכין בעקבות הניתוח:

  • תרשים אינטגרציה של Snowflake ML עם מקורות הנתונים ותצוגות הנתונים שלכם;
  • רשימת שאלות הבהרה בנוגע להרשאות גישה, תפקידים והפרדת זכויות;
  • טיוטת תוכנית עבודה עם שלבים, תלויות ונקודות בקרה;
  • הערכת מאמץ ולוחות זמנים לכל שלב, ללא הנחות נסתרות;
  • אפשרויות יישום עם היתרונות והמגבלות של כל אחת — כדי שהבחירה תהיה מודעת;
  • רשימת סיכונים ודרכים להסירם בשלבים מוקדמים;
  • הצעה לתרחיש פיילוט, שעליו נבדוק את ההשערות לפני הטמעה מלאה.

תארו את המשימה — מה כבר קיים, מה אתם רוצים לקבל ובאיזה לוח זמנים. נחזור עם הבהרות, הערכה ותוכנית עבודה שאפשר לקבל על פיה החלטה.