סקירה כללית
TFF היא מסגרת ניתנת להרחבה ועוצמתית לביצוע מחקר למידה מאוחדת (FL) על ידי הדמיית חישובים מאוחדים על מערכי פרוקסי מציאותיים. עמוד זה מתאר את המושגים והרכיבים העיקריים הרלוונטיים להדמיות מחקר, כמו גם הדרכה מפורטת לביצוע סוגים שונים של מחקר ב-TFF.
המבנה הטיפוסי של קוד מחקר ב-TFF
סימולציית FL מחקרית המיושמת ב-TFF מורכבת בדרך כלל משלושה סוגים עיקריים של לוגיקה.
חלקים בודדים של קוד TensorFlow, בדרך כלל
tf.function
s, המקיפים לוגיקה שפועלת במיקום בודד (למשל, בלקוחות או בשרת). קוד זה נכתב ונבדק בדרך כלל ללא הפניותtff.*
, וניתן לעשות בו שימוש חוזר מחוץ ל-TFF. לדוגמה, לולאת אימון הלקוחות ב-Federated Averaging מיושמת ברמה זו.לוגיקה תזמורת פדרית של TensorFlow, הקושרת את s
tf.function
הבודדים מ-1. על ידי עטיפתם כ-tff.tensorflow.computation
s ולאחר מכן תזמורם באמצעות הפשטות כמוtff.federated_broadcast
ו-tff.federated_mean
בתוךtff.federated_computation
. ראה, למשל, את התזמור הזה ל-Federated Averaging .סקריפט מנהל התקן חיצוני המדמה את היגיון הבקרה של מערכת 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 .
ניתן למצוא כאן יישום כללי יותר של ממוצע פדרצי. הטמעה זו מאפשרת טכניקות אופטימיזציה מתוחכמות יותר, כולל שימוש במייעלים שונים הן בשרת והן בלקוח. אלגוריתמים אחרים של למידה מאוחדים, כולל אשכולות K-means מאוחדים, ניתן למצוא כאן .
דחיסת עדכון דגם
דחיסה אובדנית של עדכוני מודל יכולה להוביל להפחתת עלויות התקשורת, אשר בתורה יכולה להוביל לצמצום זמן האימון הכולל.
כדי לשחזר מאמר עדכני, ראה פרויקט מחקר זה . כדי ליישם אלגוריתם דחיסה מותאם אישית, ראה comparison_methods בפרויקט עבור קווי בסיס כדוגמה, ומדריך TFF Aggregators אם לא מכירים אותו כבר.
פרטיות דיפרנציאלית
TFF פועל הדדי עם ספריית הפרטיות TensorFlow כדי לאפשר מחקר באלגוריתמים חדשים לאימון מאוחד של מודלים עם פרטיות דיפרנציאלית. לדוגמא לאימון עם DP באמצעות האלגוריתם הבסיסי DP-FedAvg והרחבות , ראה מנהל הניסוי הזה .
אם ברצונך ליישם אלגוריתם DP מותאם אישית ולהחיל אותו על העדכונים המצטברים של מיצוע מאוחד, אתה יכול ליישם אלגוריתם ממוצע DP חדש כתת-מחלקה של 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
.
גישה נוספת היא להימנע מאימון מודל גלובלי לחלוטין על ידי הכשרת חלק ממודל באופן מקומי לחלוטין. מופע של גישה זו מתואר בפוסט זה בבלוג . גישה זו קשורה גם ללמידת מטא, ראה מאמר זה . כדי לחקור חלקית למידה מאוחדת מקומית, אתה יכול:
עיין במדריך לקבלת דוגמה מלאה של קוד המיישמת תרגילי שחזור מאוחדים ותרגילי המשך .
צור תהליך הדרכה מקומי חלקי באמצעות
tff.learning.reconstruction.build_training_process
, שינויdataset_split_fn
כדי להתאים אישית את התנהגות התהליך.