פיתוח מערכת אופטימיזציה של היפר-פרמטרים למודל מסחר AI

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

תחומי פיתוח AI

שאלות נפוצות

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

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

מדוע אופטימיזציה של היפר-פרמטרים שוברת את מודל המסחר

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

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

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

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

מה נותן חיפוש פרמטרים מבוקר של המודל

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

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

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

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

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

מצבי חיפוש פרמטרים: רשתי, אקראי, בייסיאני

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

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

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

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

שלבי בניית מסלול האופטימיזציה

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

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

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

תצורות, סכמות ותקנונים בפלט

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

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

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

מקרה בוחן: בחירת פרמטרים למודל מסחר לפני ואחרי

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

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

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

מה הראו המדידות

  • מספר התצורות שנבדקו: כ-40 ידנית — למעלה מ-600 בהרצה אחת;
  • מקדם שארפ מחוץ למדגם: 0.55 → 1.3;
  • שפל מקסימלי: 26% → 12%;
  • שיעור התצורות היציבות בכל הקטעים: 9% → 62%;
  • פיזור התוצאה בין חלונות: הצטמצם פי שלושה.

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

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

כיצד אופטימיזציה של היפר-פרמטרים משפיעה על התאמת יתר?

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

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

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

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

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

ספקות טכניים לפני תחילת הפרויקט

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

נתונים מועטים מכפי שהיינו רוצים — האם לאופטימיזציית היפר-פרמטרים יש בכלל משמעות?

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

כמה זמן לחכות לאימון והאם אפשר להאיץ?

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

איך להבין שהשיפור במדד אינו מקרי?

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

מה קורה עם ההגדרות כשהמודל כבר עובד?

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

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

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

מה כדאי לתאר מיד:

  • משימה ומדד: איזו величину אנחנו מייעלים (תשואה, סיכון, דיוק אות) ובאיזה אופק היא נמדדת.
  • מודל וסביבה: סוג המודל, ספריית האימון, היכן מופעל החישוב, והאם נדרש מצב מבוזר.
  • נתונים: מקור המחירים והמאפיינים, עומק ההיסטוריה, שיעור הערכים החסרים, גישה דרך ייצוא או ממשק תוכנה.
  • מרחב חיפוש: אילו פרמטרים כבר נבחרים ידנית, הטווחים והערכים הנוכחיים שלהם.
  • אילוצים: זמן לסדרת הרצות אחת, דרישות לשחזוריות, הגנה מפני התאמת יתר על נתונים היסטוריים.
  • תשתית: משאבי חישוב עצמיים או שכורים, האם יש ניהול גרסאות של ניסויים ושמירת ארטיפקטים.
  • קריטריון קבלה: לפי איזו השוואה על תקופה נדחית נבין שהמצב השתפר.

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