14 כלי קוד פתוח כדי להפיק את המרב מלימוד מכונה

סינון דואר זבל, זיהוי פנים, מנועי המלצה - כשיש לך מערך נתונים גדול שעליו תרצה לבצע ניתוח חיזוי או זיהוי תבניות, למידת מכונה היא הדרך ללכת. ריבוי תוכנות קוד פתוח בחינם הפך את למידת המכונה לקלה יותר ליישום הן במכונות בודדות והן בקנה מידה גדול, ובשפות התכנות הפופולריות ביותר. כלי קוד פתוח אלה כוללים ספריות כמו Python, R, C ++, Java, Scala, Clojure, JavaScript ו- Go.

אפאצ'י מהוט

Apache Mahout מספק דרך לבנות סביבות לאירוח יישומי למידה ממוחשבת שניתן לשנותם במהירות וביעילות כדי לענות על הביקוש. Mahout עובד בעיקר עם פרויקט אפאצ'י ידוע אחר, Spark, והוא תוכנן במקור לעבוד עם Hadoop למען הפעלת יישומים מבוזרים, אך הורחב לעבוד עם קצוות אחוריים מבוזרים אחרים כמו Flink ו- H2O.

Mahout משתמש בשפה ספציפית לתחום ב- Scala. גרסה 0.14 היא רפקטור פנימי מרכזי של הפרויקט, המבוסס על Apache Spark 2.4.3 כברירת מחדל.

לְהַלחִין

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

כלי הליבה ML

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

כלי ה- Core ML פועלים כחבילה של פייתון, ולכן היא משתלבת עם שפע הספריות והכלים של למידת מכונות של פייתון. ניתן להמיר דגמים מ- TensorFlow, PyTorch, Keras, Caffe, ONNX, Scikit-learning, LibSVM ו- XGBoost. ניתן לבצע אופטימיזציה למודלים של רשת עצבית לגודל באמצעות כימות לאחר האימון (למשל, לעומק קטן שעדיין מדויק).

קליפת המוח

Cortex מספק דרך נוחה להגיש חיזויים ממודלים של למידת מכונה באמצעות Python ו- TensorFlow, PyTorch, Scikit-learning ודגמים אחרים. מרבית חבילות Cortex מורכבות מכמה קבצים בלבד - לוגיקת הפיתון הליבה שלך, קובץ cortex.yaml המתאר באילו דגמים להשתמש ובאיזה סוגים של משאבי חישוב להקצאה, וקובץ requirements.txt להתקנת דרישות Python הנדרשות. החבילה כולה נפרסת כמיכל Docker ל- AWS או למערכת אירוח אחרת התואמת Docker. משאבי חישוב מוקצים בצורה המהדהדת את ההגדרות המשמשות ב- Kubernetes עבור אותם, ותוכלו להשתמש ב- GPUs או ב- Amazon Inferentia ASIC כדי להאיץ את ההגשה.

תכונות כלים

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

GoLearn

לדברי המפתח סטיבן וויטוורת ', GoLearn, ספריית למידת מכונה לשפת ה- Go של גוגל, נוצרה עם מטרות תאומות של פשטות והתאמה אישית. הפשטות טמונה באופן שבו הנתונים נטענים ומטופלים בספרייה, המעוצבת על פי SciPy ו- ​​R. ההתאמה האישית נעוצה באופן שבו ניתן להרחיב בקלות חלק ממבני הנתונים ביישום. ויטוורת 'יצר גם עטיפה של Go עבור ספריית Vowpal Wabbit, אחת הספריות שנמצאו בארגז הכלים של שוגון.

Gradio

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

H2O

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

אדופני Hadoop יכולים להשתמש ב- Java כדי לקיים אינטראקציה עם H2O, אך המסגרת מספקת גם כריכות עבור Python, R ו- Scala, ומאפשרת לכם לתקשר עם כל הספריות הזמינות גם בפלטפורמות אלה. אתה יכול גם לחזור לשיחות REST כדרך לשלב H2O ברוב צינורות.

רְאֵם

אוריקס, באדיבות יוצרי הפצת Cloudera Hadoop, משתמש ב- Apache Spark ו- Apache Kafka כדי להריץ מודלים של למידת מכונה על נתונים בזמן אמת. Oryx מספקת דרך לבנות פרויקטים שדורשים החלטות כרגע, כמו מנועי המלצה או גילוי חריגות בשידור חי, אשר מתבשרים על ידי נתונים חדשים והיסטוריים כאחד. גרסה 2.0 היא עיצוב כמעט מוחלט של הפרויקט, עם רכיביו המשולבים באופן רופף בארכיטקטורת למבדה. ניתן להוסיף אלגוריתמים חדשים, והפשטות חדשות עבור אותם אלגוריתמים (למשל, לבחירת היפר-פרמטר).

ברק PyTorch

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

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

סקיקיט-למד

פייתון הפך לשפת תכנות מתאימה למתמטיקה, מדעים וסטטיסטיקה בשל קלות האימוץ שלה ורוחב הספריות הזמינות כמעט לכל יישום. Scikit-learning ממנף רוחב זה על ידי בנייה על גבי כמה חבילות פייתון קיימות - NumPy, SciPy ו- ​​Matplotlib - לעבודות מתמטיקה ומדעיות. הספריות שנוצרו יכולות לשמש ליישומי "שולחן עבודה" אינטראקטיביים או להטמיע אותן בתוכנות אחרות ולעשות בהן שימוש חוזר. הערכה זמינה ברישיון BSD, כך שהיא פתוחה וניתנת לשימוש חוזר לחלוטין.

שוגון

שוגון הוא אחד הפרויקטים הארוכים ביותר באוסף זה. הוא נוצר בשנת 1999 ונכתב ב- C ++, אך ניתן להשתמש בו עם Java, Python, C #, Ruby, R, Lua, Octave ו- Matlab. הגרסה העיקרית האחרונה, 6.0.0, מוסיפה תמיכה מקורית עבור Microsoft Windows ושפת Scala.

למרות שהוא פופולרי ורחב היקף, לשוגון יש תחרות. ספריית למידה מכונה מבוססת C ++ נוספת, Mlpack, קיימת רק מאז 2011, אך מתיימרת להיות מהירה וקלה יותר לעבוד איתה (דרך מערך API יותר אינטגרלי) מאשר ספריות מתחרות.

ניצוץ MLlib

ספריית הלמידה המכונה של Apache Spark ו- Apache Hadoop, MLlib מתגאה באלגוריתמים נפוצים רבים וסוגי נתונים שימושיים, שנועדו לפעול במהירות ובקנה מידה. למרות שג'אווה היא השפה העיקרית לעבודה ב- MLlib, משתמשי Python יכולים לחבר את MLlib לספריית NumPy, משתמשי Scala יכולים לכתוב קוד כנגד MLlib, ומשתמשי R יכולים להתחבר ל- Spark החל מגרסה 1.5. גרסה 3 של MLlib מתמקדת בשימוש ב- DataFrame API של Spark (בניגוד ל- RDD API הישן), ומספקת פונקציות סיווג והערכה חדשות רבות.

פרויקט נוסף, MLbase, מתבסס על MLlib כדי להקל על הפקת תוצאות. במקום לכתוב קוד, משתמשים מבצעים שאילתות באמצעות שפה הצהרתית à la SQL.

ווקה

Weka, שנוצרה על ידי קבוצת למידת המכונה באוניברסיטת וואיקטו, נקראת "למידת מכונה ללא תכנות". זהו שולחן עבודה בממשק המשתמש המאפשר למתגרי נתונים להרכיב צינורות למידת מכונה, להכשיר מודלים ולהפעיל חיזויים מבלי לכתוב קוד. Weka עובד ישירות עם R, Apache Spark ו- Python, האחרון באמצעות עטיפה ישירה או באמצעות ממשקים לספריות מספריות נפוצות כמו NumPy, Pandas, SciPy ו- ​​Scikit-learning. היתרון הגדול של Weka הוא בכך שהיא מספקת ממשקים ידידותיים וידידותיים לכל היבט בעבודה שלך, כולל ניהול חבילות, עיבוד מקדים, סיווג והדמיה.