שאלות נפוצות

האם ניתן להשתמש ב-TensorFlow Federated במסגרת ייצור, למשל, בטלפונים ניידים?

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

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

כיצד אוכל להשתמש ב-TFF לניסויים עם מערכי נתונים גדולים?

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

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

איך אני יכול להבטיח שאקראיות ב-TFF תואמת את הציפיות שלי?

מכיוון ש-TFF איגדה מחשוב אפוי בתוך הליבה שלו, הכותב של TFF לא צריך לקבל שליטה על היכן והאופן שבו מופעלים TensorFlow Session , או run נקראת בתוך הפעלות אלו. הסמנטיקה של אקראיות יכולה להיות תלויה בכניסה וביציאה של TensorFlow Session s אם נקבעים זרעים. אנו ממליצים להשתמש ברדום בסגנון TensorFlow 2, באמצעות למשל tf.random.experimental.Generator החל מ-TF 1.14. זה משתמש ב- tf.Variable כדי לנהל את המצב הפנימי שלו.

כדי לעזור בניהול הציפיות, TFF מאפשר ל-TensorFlow שהוא מסדרת להגדיר זרעים ברמת אופציה, אך לא זרעים ברמת גרף. הסיבה לכך היא שהסמנטיקה של זרעים ברמת האופציה צריכה להיות ברורה יותר בהגדרת TFF: רצף דטרמיניסטי ייווצר בכל הפעלת פונקציה עטופה כ- tf_computation , ורק במסגרת הפנייה זו תתקיים כל הבטחה שנעשתה על ידי מחולל המספרים הפסאודו אקראיים. . שימו לב שזה לא ממש זהה לסמנטיקה של קריאה לפונקציה tf.function במצב להוט; TFF נכנס ויוצא ביעילות מ- tf.Session ייחודי בכל פעם ש- tf_computation מופעל, בעוד שקריאה חוזרת לפונקציה במצב eager היא אנלוגית לקריאה של sess.run על טנסור הפלט שוב ​​ושוב באותה הפעלה.

איך אני יכול לתרום?

עיין ב- README , בהנחיות התורמות ושיתופי הפעולה .

מה הקשר בין FedJAX ל-TensorFlow Federated?

TensorFlow Federated (TFF) היא מסגרת מלאה ללמידה וניתוח מאוחדים שנועדה להקל על הרכבת אלגוריתמים ותכונות שונות, ולאפשר העברה של קוד על פני תרחישי סימולציה ופריסה שונים. TFF מספק זמן ריצה ניתן להרחבה ותומך באלגוריתמי פרטיות, דחיסה ואופטימיזציה רבים באמצעות ממשקי ה-API הסטנדרטיים שלו. TFF תומך גם בסוגים רבים של מחקר FL , עם אוסף של דוגמאות ממאמרי Google שפורסמו המופיעים ב- Google-Research repo .

לעומת זאת, FedJAX היא ספריית סימולציה קלת משקל מבוססת Python ו-JAX המתמקדת בנוחות שימוש ובאב-טיפוס מהיר של אלגוריתמי למידה מאוחדים למטרות מחקר. TensorFlow Federated ו-FedJAX מפותחים כפרויקטים נפרדים, ללא ציפייה לניידות קוד.