שימוש ב-TFF למחקר למידה מאוחד

סקירה כללית

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

המבנה הטיפוסי של קוד מחקר ב-TFF

סימולציית FL מחקרית המיושמת ב-TFF מורכבת בדרך כלל משלושה סוגים עיקריים של לוגיקה.

  1. חלקים בודדים של קוד TensorFlow, בדרך כלל tf.function s, המקיפים לוגיקה שפועלת במיקום בודד (למשל, בלקוחות או בשרת). קוד זה נכתב ונבדק בדרך כלל ללא הפניות tff.* , וניתן לעשות בו שימוש חוזר מחוץ ל-TFF. לדוגמה, לולאת אימון הלקוחות ב-Federated Averaging מיושמת ברמה זו.

  2. לוגיקה תזמורת פדרית של TensorFlow, המחברת את tf.function הבודדות מ-1. על ידי גלישתן כ- tff.tf_computation ולאחר מכן תזמורן באמצעות הפשטות כמו tff.federated_broadcast ו- tff.federated_mean בתוך tff.federated_computation . ראה, למשל, את התזמור הזה ל-Federated Averaging .

  3. סקריפט מנהל התקן חיצוני המדמה את היגיון הבקרה של מערכת FL של ייצור, בוחר לקוחות מדומים מתוך מערך נתונים ולאחר מכן ביצוע חישובים מאוחדים שהוגדרו ב-2 על אותם לקוחות. לדוגמה, מנהל הניסוי של EMNIST Federated .

מערכי למידה מאוחדים

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

מערכי נתונים כוללים:

  • הצפת מחסנית . מערך טקסט ריאליסטי עבור מודל שפה או משימות למידה מפוקחות, עם 342,477 משתמשים ייחודיים עם 135,818,730 דוגמאות (משפטים) בערכת ההדרכה.

  • EMNIST פדרלי . עיבוד מקדים מאוחד של מערך התווים והספרות של EMNIST, שבו כל לקוח מתאים לכותב אחר. מערך הרכבות המלא מכיל 3400 משתמשים עם 671,585 דוגמאות מ-62 תוויות.

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

  • CIFAR-100 . חלוקה מאוחדת של מערך הנתונים של CIFAR-100 על פני 500 לקוחות אימון ו-100 לקוחות בדיקה. לכל לקוח יש 100 דוגמאות ייחודיות. החלוקה נעשית בדרך ליצור הטרוגניות מציאותית יותר בין לקוחות. לפרטים נוספים, עיין ב- API .

  • מערך הנתונים של Google Landmark v2 מערך הנתונים מורכב מתמונות של ציוני דרך שונים בעולם, עם תמונות מקובצות לפי צלם כדי להשיג חלוקה מאוחדת של הנתונים. שני טעמים של מערך נתונים זמינים: מערך נתונים קטן יותר עם 233 לקוחות ו-23080 תמונות, ומערך נתונים גדול יותר עם 1262 לקוחות ו-164,172 תמונות.

  • 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 .

ניתן למצוא כאן יישום כללי יותר של Federated Averaging. הטמעה זו מאפשרת טכניקות אופטימיזציה מתוחכמות יותר, כולל שימוש במייעלים שונים הן בשרת והן בלקוח. אלגוריתמים אחרים של למידה מאוחדים, כולל אשכולות K-means מאוחדים, ניתן למצוא כאן .

דחיסת עדכון דגם

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

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

פרטיות דיפרנציאלית

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

אם אתה רוצה ליישם אלגוריתם DP מותאם אישית ולהחיל אותו על העדכונים המצטברים של מיצוע מאוחד, אתה יכול ליישם אלגוריתם DP mean חדש כתת-סיווג של tensorflow_privacy.DPQuery וליצור tff.aggregators.DifferentiallyPrivateFactory עם מופע של השאילתה שלך. דוגמה ליישום אלגוריתם DP-FTRL ניתן למצוא כאן

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

איתנות והתקפות

ניתן להשתמש ב-TFF גם כדי לדמות את ההתקפות הממוקדות על מערכות למידה מאוחדות והגנות מבוססות פרטיות דיפרנציאליות שנחשבות ב- Can You Really Back door Federated Learning? . זה נעשה על ידי בניית תהליך איטרטיבי עם לקוחות שעלולים להיות זדוניים (ראה build_federated_averaging_process_attacked ). ספריית targeted_attack מכילה פרטים נוספים.

  • ניתן ליישם אלגוריתמים תוקפים חדשים על ידי כתיבת פונקציית עדכון לקוח שהיא פונקציית Tensorflow, ראה ClientProjectBoost לדוגמא.
  • ניתן ליישם הגנות חדשות על-ידי התאמה אישית של 'tff.utils.StatefulAgggregateFn' אשר צוברת פלטי לקוח כדי לקבל עדכון גלובלי.

לסקריפט לדוגמה לסימולציה, ראה emnist_with_targeted_attack.py .

רשתות יריביות יצירתיות

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

TFF יכול לשמש למחקר על הכשרה מאוחדת של GANs. לדוגמה, אלגוריתם DP-FedAvg-GAN שהוצג בעבודה האחרונה מיושם ב-TFF . עבודה זו מדגימה את האפקטיביות של שילוב למידה מאוחדת, מודלים מחוללים ופרטיות דיפרנציאלית .

התאמה אישית

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

גישה אחת היא לאפשר לכל לקוח לכוונן מודל גלובלי יחיד (אומן באמצעות למידה מאוחדת) עם הנתונים המקומיים שלו. לגישה זו יש קשרים ל-meta-learning, ראה, למשל, מאמר זה . דוגמה לגישה זו ניתנת ב- emnist_p13n_main.py . כדי לחקור ולהשוות אסטרטגיות התאמה אישית שונות, אתה יכול:

  • הגדר אסטרטגיית התאמה אישית על ידי יישום tf.function שמתחיל ממודל ראשוני, מאמן ומעריך מודל מותאם אישית באמצעות מערכי הנתונים המקומיים של כל לקוח. דוגמה ניתנת על ידי build_personalize_fn .

  • הגדר OrderedDict שממפה שמות אסטרטגיה לאסטרטגיות ההתאמה האישית, והשתמש בו כארגומנט personalize_fn_dict ב- tff.learning.build_personalization_eval_computation .

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