TensorFlow — ספריית למידת-מכונה של גוגל; אותו מודל רץ בענן ובטלפון

יסודות בינה מלאכותית

הגדרה

TensorFlow היא ספריית-תוכנה פתוחה-קוד ללמידת-מכונה, שפיתח צוות Google Brain של גוגל ושחררה ב-2015, ואחת משתי הספריות הדומיננטיות כיום בתעשייה, לצד PyTorch המתחרה שלה.

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

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

2015: השחרור על ידי צוות Google Brain

TensorFlow פותחה בתוך גוגל על ידי צוות המחקר הפנימי Google Brain, ושוחררה כקוד-פתוח בנובמבר 2015 — החלטה שהפכה אותה מכלי-פנימי לתשתית-סטנדרטית שכל מפתח בעולם יכול להוריד ולהשתמש בה בחינם. המאמר האקדמי הרשמי שמתאר את הארכיטקטורה שלה, "TensorFlow: A System for Large-Scale Machine Learning", יצא ב-2016 והוצג בכנס USENIX OSDI. שחרור-הקוד-הפתוח היה חלק ממגמה רחבה יותר של חברות-טכנולוגיה גדולות לפרסם כלי-תשתית-AI פנימיים — מהלך שהאיץ משמעותית את קצב-המחקר וההפצה בתחום כולו.

כתובה בפייתון, רצה בכל מקום

כמו רוב כלי למידת-המכונה המודרניים, הממשק העיקרי של TensorFlow הוא בשפת Python — כיום שפת-התכנות הנפוצה ביותר במדעי-הנתונים ובלמידת-מכונה. מתחת לממשק הזה, החישוב הכבד עצמו רץ בקוד-C++ ממוטב, כדי לשלב בין קלות-כתיבה בפייתון לביצועים גבוהים בפועל. יתרון מרכזי של TensorFlow הוא טווח-הפריסה הרחב שלה: אותו מודל שאומן על שרת-ענן חזק יכול לרוץ, כמעט בלי שינוי, גם על טלפון נייד (TensorFlow Lite) וגם ישירות בדפדפן (TensorFlow.js) — לא כל ספריית-מתחרה מציעה טווח כזה.

TensorFlow מול PyTorch — לא ניצחון חד-משמעי לאף צד

מאז שחרורה ב-2017 של PyTorch, ספריית-הקוד-הפתוח המתחרה שפיתחה Meta (אז Facebook), שתי הספריות מתחרות זו בזו על מובילות התעשייה. הגישה המקורית של TensorFlow — בניית "גרף-חישוב" סטטי מראש לפני ההרצה — התאימה טוב לביצועי-ייצור בקנה-מידה גדול, אך נחשבה מסורבלת יותר לכתיבה וניפוי-שגיאות ביחס לגישה הדינמית של PyTorch, שהפכה פופולרית יותר במיוחד במחקר אקדמי. TensorFlow אימצה מאז מצב-הרצה דינמי משלה (Eager Execution) כדי לצמצם את הפער. כיום שתי הספריות מיומנות דיו להתאים לרוב המשימות; הבחירה ביניהן נשענת בעיקר על הרגל-קהילתי ועל דרישות-פריסה ספציפיות, לא על פער-יכולות מהותי.

איפה TensorFlow עדיין דומיננטית

חרף התחזקות PyTorch במחקר אקדמי, TensorFlow נשארת נפוצה במיוחד בסביבות-ייצור תעשייתיות ובחברות גדולות שכבר השקיעו בתשתית סביבה — חלקית בזכות הכלים הנלווים שלה (כמו TensorFlow Serving לפריסת-מודלים בקנה-מידה) וחלקית בזכות התמיכה ארוכת-הטווח של גוגל. Keras, ממשק-תכנות פשוט וידידותי יותר, משמש כיום כשכבת-הכתיבה הרשמית והמומלצת מעל TensorFlow, ומקל משמעותית על כניסת מפתחים חדשים לתחום שלא רוצים להתמודד עם מורכבות-הפרטים הטכניים ברמה הנמוכה. התוצאה היא מערכת-אקולוגית בשלה ומגוונת יותר ביחס לרוב הספריות המתחרות, גם אם לא בהכרח הפופולרית ביותר בקרב חוקרים צעירים כיום.

שאלות נפוצות ❓

מי פיתח את TensorFlow ומתי שוחררה?

צוות המחקר הפנימי Google Brain של גוגל פיתח אותה, והחברה שחררה אותה כקוד-פתוח בנובמבר 2015.

מה ההבדל בין TensorFlow ל-PyTorch?

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

באיזו שפת-תכנות כותבים ב-TensorFlow?

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

למה יש ל-TensorFlow יתרון בפריסה?

אותו מודל שאומן יכול לרוץ כמעט בלי שינוי על שרת-ענן, על טלפון נייד דרך TensorFlow Lite, או ישירות בדפדפן דרך TensorFlow.js — טווח-פריסה רחב יחסית לכלים מתחרים.