HiTakeJobHiTakeJob

מה זה Algorithms Engineer? הסבר פשוט + כמה משרות פתוחות בישראל

זמן קריאה: 7 דקות

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

למה הכוונה בישראל כשכתוב "מהנדס אלגוריתמים"

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

שלושת הענפים המרכזיים שמסתתרים מאחורי אותה כותרת:

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

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

במה זה שונה מ-Data Scientist ומ-ML Engineer

שלושת התפקידים נוגעים בנתונים, אבל השאלה שהם עונים עליה שונה:

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

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

איך נראה פרויקט מתחילתו ועד סופו

רצף העבודה המקובל חוזר על עצמו כמעט בכל חברה:

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

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

מסדי נתוני ולידציה - הנכס האמיתי

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

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

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

המעבר מאב טיפוס לייצור: מ-MATLAB ו-Python ל-C++

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

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

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

כלים, שפות וכמה משרות פתוחות

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

בלוח HiTakeJob פתוחות כרגע 365 משרות שמזכירות Python, 19 משרות שמזכירות MATLAB ו-377 משרות בקטגוריית מו"פ. תשע משרות נושאות את המילה algorithm בכותרת, ו-63 משרות מסווגות תחת MACHINE_LEARNING_ENGINEERING - מה שממחיש שרוב הביקוש מפורסם תחת כותרות רחבות יותר מ"מהנדס אלגוריתמים".

מקרי הכשל שחוזרים כמעט בכל פרויקט

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

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

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

מה באמת שואלים בראיון

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

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

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

שאלות נפוצות

מה ההבדל בין מהנדס אלגוריתמים לבין Data Scientist?

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

האם צריך תואר שני?

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

איזו שפה צריך לדעת?

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

למה כל כך הרבה זמן הולך על נתונים ולא על האלגוריתם?

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

מה ההבדל מול ML Engineer?

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

כמה משרות אלגוריתמים פתוחות בישראל?

תשע משרות בלוח נושאות את המילה algorithm בכותרת, אך זו ספירה חלקית: רוב התפקידים מתפרסמים תחת כותרות רחבות יותר. הרשימות המעשיות לחיפוש הן 377 משרות מו"פ ו-365 משרות Python.

איך מתכוננים לראיון בתחום?

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

מאמרים נוספים

המשרות באתר