מהדורת התצוגה המקדימה של ML.NET כללה טרנספורמציות להנדסת תכונות (feature engineering) כמו יצירת n-gram, ו"למדנים" להתמודדות עם משימות סיווג בינארי, סיווג רב-מעמדי ומשימות רגרסיה.[4] מאז נוספו משימות ML נוספות כמו איתור חריגות ומערכות המלצה, וגישות אחרות כמו למידה עמוקה ייכללו בגרסאות עתידיות.[5][6]
למידת מכונה
ML.NET כוללת יכולות אנליטיות וחיזוי מבוססות מודלים של למידת מכונה, ובשימוש בעיקר על ידי מפתחים בעלי ניסיון עם מוצרי דוט NET. המסגרת בנויה על NET Core. ו-NET Standard, ומסוגלת לרוץ באופן חוצה פלטפורמות במערכות ההפעלה Linux, Windows ו-macOS. אף על פי ש-ML.NET נוסדה בשנת 2018, מקורותיה החלו כבר בשנת 2002 כפרויקט מחקר של מיקרוסופט בשם TMSN (חיפוש וניווט של כריית טקסט) לשימוש פנימי בתוך מוצרי מיקרוסופט. מאוחר יותר שונה שמו ל-TLC (קוד הלמידה) בסביבות 2011. ML.NET נגזרה לאחר מכן מספריית TLC ועלתה במידה רבה על ספריית המקור לפי ד"ר ג'יימס מקפרי, מ-Microsoft Research.[7]
מפתחים יכולים לאמן מודל למידת מכונה או לעשות שימוש חוזר במודל קיים על ידי צד שלישי ולהפעיל אותו בכל סביבה במצב לא מקוון. המשמעות היא שמפתחים לא צריכים להיות בעלי רקע ב-Data Science כדי להשתמש במסגרת. תמיכה בפורמט מודל למידה עמוקה בקוד פתוח Open Neural Network Exchange (או ONNX) הוצגה מ-build 0.3 ב-ML.NET. המהדורה כללה שיפורים בולטים אחרים כגון מכונות פקטוריזציה, LightGBM, אנסמבלים, LightLDA transform ו-OVA.[8] שילוב TensorFlow ב ML.NET אפשרי מגרסה 0.5. תמיכה עבור יישומי x86 ו-x64 נוספה ל-Build 0.7 כולל יכולות המלצות משופרות עם Matrix Factorization.[9] מפת דרכים מלאה של תכונות מתוכננות זמינה ב-Repo הרשמי של GitHub.[10]
המהדורה היציבה הראשונה 1.0 של המסגרת הוכרזה ב-Build (כנס מפתחים) 2019. היא כלל תוספת של כלי בונה מודלים ויכולות AutoML (למידת מכונה אוטומטית).[11] Build 1.3.1 הציג תצוגה מקדימה של אימון Deep Neural Network באמצעות כריכות #C[12] עבור Tensorflow ומטען מסד נתונים המאפשר אימון מודלים על מסדי נתונים. התצוגה המקדימה של 1.4.0 הוסיפה ניקוד ML.NET על מעבדי ARM ואימון רשתות עצביות עמוקות עם GPUs עבור Windows ו-Linux.[13]
ביצועים
המאמר של מיקרוסופט על למידת מכונה עם ML.NET הוכיח לכאורה שהיא מסוגלת לאמן מודלים של ניתוח סנטימנטים באמצעות מערכי נתונים גדולים תוך השגת דיוק גבוה. התוצאות שלה הראו דיוק של 95% במערך הסקירה של אמזון בנפח 9GB.[14]
בונה דגמים
ה-ML.NET CLI הוא ממשק שורת פקודה המשתמש ב-ML.NET AutoML כדי לבצע אימון מודלים ולבחור את האלגוריתם הטוב ביותר עבור הנתונים. ה-Model Builder preview של ML.NET[15] היא הרחבה עבור Visual Studio המשתמשת ב-ML. NET CLI ו-ML.NET AutoML כדי להפיק את המודל ה-ML.NET הטוב ביותר באמצעות GUI.[16]
Infer.NET
Microsoft Research הכריזה על ארכיטקטורת המודלים Infer.NET הפופולרית ללמידת מכונה המשמשת למחקר במוסדות אקדמיים מאז 2008, שוחררה בקוד פתוח, וכעת היא חלק מה-ML.NET.[17]
Infer.NET framework משתמש בתכנות הסתברותי כדי לתאר מודלים הסתברותיים שיש להם יתרון נוסף של יכולת פרשנות. מרחב השמות של Infer.NET שונה מאז ל-Microsoft.ML.Probabilistic. התואם את מרחבי השמות של ML.NET.[18]
תמיכת NimbusML ב-Python
מיקרוסופט הגיעה למסקנה ש-Python פופולרית בקרב מדעני נתונים, ולכן הציגה את NimbusML עבור Python הניסיוניות עבור ML.NET. זה מאפשר למשתמשים לאמן ולהשתמש במודלים של למידת מכונה ב-Python, וזאת בקוד פתוח בדומה ל-Infer.NET.[19]
למידת מכונה בדפדפן
ML. NET מאפשרת למשתמשים לייצא מודלים מאומנים לפורמט Open Neural Network Exchange (ONNX).[20] זה מייצר אפשרות להשתמש במודלים בסביבות שונות שאינן משתמשות ב-ML.NET. ניתן יהיה להפעיל את המודלים הללו בצד הלקוח של הדפדפן באמצעות ONNX.js, מסגרת צד הלקוח של javascript עבור מודלים של למידה עמוקה שנוצרו בפורמט Onnx.[21]
לקריאה נוספת
Capellman, Jarred (2020). Hands-On Machine Learning with ML.NET: Getting started with Microsoft ML.NET to implement popular machine learning algorithms in C#. Packt Publishing. ISBN978-1789801781.
Mukherjee, Sudipta (2020). ML.NET Revealed: Simple Tools for Applying Machine Learning to Your Applications. Apress. ISBN978-1484265420.
^Tiwari, Aditya (2018-05-08). "Microsoft Launches ML.NET Open Source Machine Learning Framework". Fossbytes. נבדק ב-2018-05-10. Over time, it will enable other ML tasks like anomaly detection, recommendation system, and other approaches like deep learning using the benefits of added libraries.
^James McCaffrey (2018-12-19). "ML.NET: The Machine Learning Framework for .NET Developers". MSDN Magazine Connect() Special Issue 2018. נבדק ב-2019-01-09. Even though the ML.NET library is new, its origins go back many years. Shortly after the introduction of the Microsoft .NET Framework in 2002, Microsoft Research began a project called TMSN (“text mining search and navigation”) to enable software developers to include ML code in Microsoft products and technologies. The project was very successful, and over the years grew in size and usage internally at Microsoft. Somewhere around 2011 the library was renamed to TLC (“the learning code”). TLC is widely used within Microsoft and is currently in version 3.10. The ML.NET library is a descendant of TLC, with Microsoft-specific features removed. I’ve used both libraries and, in many ways, the ML.NET child has surpassed its parent.