שימוש ב-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 . ראה, למשל, תזמור זה עבור ממוצע פדרצי .

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

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

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

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

  • StackOverflow . מערך טקסט ריאליסטי למידול שפות או משימות למידה מפוקחות, עם 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 השקיעה רבות באספקת זמני ריצה יחידים ומרובים בביצועים גבוהים. התיעוד נמצא בפיתוח, אך לעת עתה ראה את ההדרכה של סימולציות עם ביצועים גבוהים עם Kubernetes , הוראות על סימולציות TFF עם מאיצים והוראות להגדרת סימולציות עם TFF ב-GCP . זמן הריצה TFF בעל הביצועים הגבוהים מופעל כברירת מחדל.

TFF לתחומי מחקר שונים

אלגוריתמי אופטימיזציה מאוחדים

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

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

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

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

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

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

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

TFF פועל הדדי עם ספריית TensorFlow Privacy כדי לאפשר מחקר באלגוריתמים חדשים לאימון מאוחד של מודלים עם פרטיות דיפרנציאלית. לקבלת דוגמה לאימון עם 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 .

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