סקירה כללית
TFF היא מסגרת עבודה רבת עוצמה וניתנת להרחבה לביצוע מחקר למידה מאוחדת (FL) על ידי סימולציית חישובים מאוחדים על מערכי נתונים מציאותיים. דף זה מתאר את המושגים והרכיבים העיקריים הרלוונטיים לסימולציות מחקר, וכן הנחיות מפורטות לביצוע סוגים שונים של מחקר ב-TFF.
המבנה הטיפוסי של קוד מחקר ב-TFF
סימולציית FL מחקרית המיושמת ב-TFF מורכבת בדרך כלל משלושה סוגים עיקריים של לוגיקה.
קטעי קוד בודדים של TensorFlow, בדרך כלל
tf.function, אשר עוטפים לוגיקה הפועלת במיקום יחיד (למשל, על גבי לקוחות או על גבי שרת). קוד זה נכתב ונבדק בדרך כלל ללא כלtff.*, וניתן לעשות בו שימוש חוזר מחוץ ל-TFF. לדוגמה, לולאת אימון הלקוח ב-Federated Averaging מיושמת ברמה זו.לוגיקת תזמור מאוחדת של TensorFlow, אשר קושרת יחד את הפונקציות
tf.functionהאינדיבידואליות מ-1. על ידי עטיפתן כפונקציותtff.tensorflow.computationולאחר מכן תזמורן באמצעות הפשטות כמוfederated_language.federated_broadcastו-federated_language.federated_meanבתוךfederated_language.federated_computation. ראה, לדוגמה, תזמור זה עבור ממוצע מאוחד .סקריפט דרייבר חיצוני המדמה את לוגיקת הבקרה של מערכת FL ייצורית, בוחר לקוחות מדומים מתוך מערך נתונים ולאחר מכן מבצע חישובים מאוחדים שהוגדרו ב-2. על לקוחות אלה. לדוגמה, דרייבר ניסוי EMNIST מאוחד .
מערכי נתונים של למידה מאוחדת
TensorFlow מאוחד מארח מערכי נתונים מרובים המייצגים את המאפיינים של בעיות מהעולם האמיתי שניתן לפתור באמצעות למידה מאוחדת.
מערכי הנתונים כוללים:
StackOverflow . מערך נתונים טקסטואלי ריאליסטי עבור מידול שפה או משימות למידה מפוקחות, עם 342,477 משתמשים ייחודיים ו-135,818,730 דוגמאות (משפטים) במערך האימון.
EMNIST מאוחד . עיבוד מקדים מאוחד של מערך הנתונים של תווים וספרות EMNIST, כאשר כל לקוח מתאים לכותב אחר. מערך הרכבות המלא מכיל 3400 משתמשים עם 671,585 דוגמאות מ-62 תוויות.
שייקספיר . מערך נתונים קטן יותר של טקסט ברמת תווים המבוסס על יצירותיו המלאות של ויליאם שייקספיר. מערך הנתונים מורכב מ-715 משתמשים (דמויות במחזות של שייקספיר), כאשר כל דוגמה מתאימה לקבוצת שורות רציפה שנאמרות על ידי הדמות במחזה נתון.
CIFAR-100 . חלוקה מאוחדת של מערך הנתונים CIFAR-100 על פני 500 לקוחות אימון ו-100 לקוחות בדיקה. לכל לקוח יש 100 דוגמאות ייחודיות. החלוקה נעשית באופן שיוצר הטרוגניות מציאותית יותר בין הלקוחות. לפרטים נוספים, עיין ב- API .
מערך נתונים של Google Landmark v2 מערך הנתונים מורכב מתמונות של ציוני דרך שונים בעולם, כאשר התמונות מקובצות לפי צלם כדי להשיג חלוקה מאוחדת של הנתונים. קיימים שני סוגים של מערך נתונים: מערך נתונים קטן יותר עם 233 לקוחות ו-23080 תמונות, ומערך נתונים גדול יותר עם 1262 לקוחות ו-164172 תמונות.
CelebA מערך נתונים של דוגמאות (תמונה ותכונות פנים) של פרצופים של ידוענים. מערך הנתונים המאוחד מכיל את הדוגמאות של כל ידוען מקובצות יחד ליצירת לקוח. ישנם 9343 לקוחות, כל אחד עם לפחות 5 דוגמאות. ניתן לפצל את מערך הנתונים לקבוצות אימון ובדיקה לפי לקוחות או לפי דוגמאות.
מערך הנתונים של iNaturalist מורכב מתמונות של מינים שונים. מערך הנתונים מכיל 120,300 תמונות עבור 1,203 מינים. שבעה סוגים של מערך הנתונים זמינים. אחד מהם מקובץ לפי הצלם והוא מורכב מ-9257 לקוחות. שאר מערכי הנתונים מקובצים לפי המיקום הגיאוגרפי שבו צולמה התמונה. ששת הסוגים הללו של מערך הנתונים מורכבים מ-11 - 3,606 לקוחות.
סימולציות בעלות ביצועים גבוהים
בעוד שזמן שעון הקיר של סימולציית FL אינו מדד רלוונטי להערכת אלגוריתמים (מכיוון שחומרת הסימולציה אינה מייצגת סביבות פריסה אמיתיות של FL), היכולת להריץ סימולציות FL במהירות היא קריטית לפרודוקטיביות המחקרית. לפיכך, TFF השקיעה רבות במתן זמני ריצה בעלי ביצועים גבוהים עבור מכונה אחת וכמה מכונה. התיעוד נמצא בפיתוח, אך לעת עתה עיינו בהוראות לסימולציות TFF עם מאיצים , ובהוראות להגדרת סימולציות עם TFF ב-GCP . זמן הריצה של TFF בעל הביצועים הגבוהים מופעל כברירת מחדל.
TFF לתחומי מחקר שונים
אלגוריתמי אופטימיזציה מאוחדים
מחקר על אלגוריתמי אופטימיזציה מאוחדים יכול להתבצע בדרכים שונות ב-TFF, בהתאם לרמת ההתאמה האישית הרצויה.
יישום מינימלי עצמאי של אלגוריתם המיזוג המאוחד מסופק כאן . הקוד כולל פונקציות TF לחישוב מקומי, חישובי TFF לתזמור, וסקריפט דרייבר על קבוצת הנתונים EMNIST כדוגמה. ניתן להתאים קבצים אלה בקלות ליישומים מותאמים אישית ולשינויים אלגוריתמיים בהתאם להוראות מפורטות בקובץ README .
יישום כללי יותר של ממוצע מאוחד ניתן למצוא כאן . יישום זה מאפשר טכניקות אופטימיזציה מתוחכמות יותר, כולל שימוש בממטבים שונים הן בשרת והן בלקוח. אלגוריתמי למידה מאוחדים אחרים, כולל אשכול k-means מאוחד, ניתן למצוא כאן .
דחיסת עדכון מודל
דחיסה אובדנית של עדכוני מודל יכולה להוביל להפחתת עלויות התקשורת, מה שבתורו יכול להוביל להפחתת זמן האימון הכולל.
כדי לשחזר מאמר עדכני, עיינו בפרויקט מחקר זה . כדי ליישם אלגוריתם דחיסה מותאם אישית, עיינו ב-comparison_methods בפרויקט עבור קווי בסיס כדוגמה, ובמדריך TFF Aggregators אם אינכם מכירים אותו כבר.
פרטיות דיפרנציאלית
TFF פועל באופן הדדי עם ספריית הפרטיות של TensorFlow כדי לאפשר מחקר באלגוריתמים חדשים לאימון מאוחד של מודלים עם פרטיות דיפרנציאלית. לדוגמה לאימון עם DP באמצעות אלגוריתם DP-FedAvg הבסיסי וההרחבות , עיין במנהל התקן הניסוי הזה .
אם ברצונך ליישם אלגוריתם DP מותאם אישית ולהחיל אותו על העדכונים המצטברים של ממוצע מאוחד, תוכל ליישם אלגוריתם ממוצע DP חדש כתת-מחלקה של tensorflow_privacy.DPQuery וליצור tff.aggregators.DifferentiallyPrivateFactory עם מופע של השאילתה שלך. דוגמה ליישום אלגוריתם DP-FTRL ניתן למצוא כאן.
רשתות GAN מאוחדות (המתוארות להלן ) הן דוגמה נוספת לפרויקט TFF המיישם פרטיות דיפרנציאלית ברמת המשתמש (למשל, כאן בקוד ).
חוסן והתקפות
ניתן להשתמש ב-TFF גם כדי לדמות את ההתקפות הממוקדות על מערכות למידה מאוחדות והגנות מבוססות פרטיות דיפרנציאליות הנבחנות ב- Can You Really Backdoor Federated Learning?. הדבר נעשה על ידי בניית תהליך איטרטיבי עם לקוחות פוטנציאליים זדוניים (ראה build_federated_averaging_process_attacked ). ספריית targeted_attack מכילה פרטים נוספים.
- ניתן ליישם אלגוריתמים חדשים לתקיפה על ידי כתיבת פונקציית עדכון לקוח שהיא פונקציית Tensorflow, ראה
ClientProjectBoostכדוגמה. - ניתן ליישם הגנות חדשות על ידי התאמה אישית של 'tff.utils.StatefulAggregateFn' אשר צובר את פלטי הלקוח לקבלת עדכון גלובלי.
לקבלת סקריפט לדוגמה לסימולציה, ראה emnist_with_targeted_attack.py .
רשתות יריבות גנריות
רשתות GAN יוצרות תבנית תזמור מאוחדת מעניינת שנראית מעט שונה מממוצע מאוחד סטנדרטי. הן כוללות שתי רשתות נפרדות (המחולל והמדדה) שכל אחת מהן מאומנת עם שלב אופטימיזציה משלה.
ניתן להשתמש ב-TFF למחקר על אימון מאוחד של רשתות GAN. לדוגמה, אלגוריתם DP-FedAvg-GAN שהוצג בעבודה אחרונה מיושם ב-TFF . עבודה זו מדגימה את היעילות של שילוב של למידה מאוחדת, מודלים גנרטיביים ופרטיות דיפרנציאלית .
התאמה אישית
פרסונליזציה במסגרת למידה מאוחדת היא תחום מחקר פעיל. מטרת הפרסונליזציה היא לספק מודלים שונים של הסקה למשתמשים שונים. ישנן גישות שונות פוטנציאליות לבעיה זו.
גישה אחת היא לאפשר לכל לקוח לכוונן מודל גלובלי יחיד (שאומן באמצעות למידה מאוחדת) עם הנתונים המקומיים שלו. לגישה זו יש קשרים למטא-למידה, ראו למשל מאמר זה . דוגמה לגישה זו ניתנת ב- emnist_p13n_main.py . כדי לחקור ולהשוות אסטרטגיות התאמה אישית שונות, ניתן:
הגדר אסטרטגיית התאמה אישית על ידי יישום פונקציה
tf.functionשמתחילה ממודל ראשוני, מאמנת ומעריכה מודל מותאם אישית באמצעות מערכי הנתונים המקומיים של כל לקוח. דוגמה לכך ניתנת על ידיbuild_personalize_fn.הגדר
OrderedDictשממפה שמות אסטרטגיות לאסטרטגיות ההתאמה האישית המתאימות, והשתמש בו כארגומנטpersonalize_fn_dictב-tff.learning.build_personalization_eval_computation.
גישה נוספת היא להימנע מאימון מודל גלובלי לחלוטין על ידי אימון חלק מהמודל באופן מקומי לחלוטין. דוגמה לגישה זו מתוארת בפוסט בבלוג זה . גישה זו קשורה גם למטא-למידה, ראו מאמר זה .