Control Room
ככל שהמודלים שלנו נעשים חזקים יותר וסיכוני הבטיחות והאבטחה הכרוכים בהם גדלים, כך חיוני יותר שנוכל לזהות בעיות פוטנציאליות ולעצור במהירות את פעולת המודלים בעת הצורך. כדי לתת לכך מענה, בנינו את Control Room.
Control Room היא מערכת מרכזית למעקב אחר עומסי עבודה של מודלים ברחבי תשתית המחקר שלנו, ולעצירתם במהירות כשמתעוררים חששות בטיחות או אבטחה. היא מחברת אליה את כל עומסי העבודה המחקריים הכוללים הסקה, ובהם דגימה אג'נטית לאימון ולהערכה של מודלים, עיבוד נתונים ועוד. המערכת פועלת בשילוב עם מערכות הניטור שלנו לזיהוי אי־התאמה לכוונות, ומפסיקה את הפקת הפלט של המודל בתוך 35 שניות מההחלטה להתערב כדי לעצור או להשהות משימה. היא נבנתה כך שתמשיך לפעול גם כשמערכות אחרות כושלות, ושתפסיק את הפקת הפלט של המודל אם Control Room עצמה מפסיקה לפעול.
Control Room כבר פרוסה ברחבי תשתית המחקר שלנו, שבה הצורך בה הוא הגדול ביותר. המערך שלנו להגשת מודלים למשתמשים חיצוניים כבר ריכוזי הרבה יותר מטבעו, ויש בו יכולת תפעולית מפותחת להשבית במהירות פריסות של מודלים בעת הצורך.
Control Room פועלת באמצעות שילוב של כמה מערכות: עומס העבודה, מנוע ההסקה ושירות Control Room המרכזי.
עומס העבודה הוא המשימה שמורצת, למשל ניסוי בלמידת חיזוק, הערכה, דגימה בהיקף גדול או משימת עיבוד נתונים. אנחנו דורשים שכל עומס עבודה מחקרי שמבצע הסקה אג'נטית יהיה משויך לתיק בטיחות מאושר.
מנוע ההסקה, או בקיצור המנוע, הוא המודל עצמו. אפשר לחשוב על המנוע כמוח של המודל, שפועל ישירות על מעבדים גרפיים. עומס עבודה משתמש בדרך כלל במודל אחד או יותר, שעשויים לפעול על מנוע הסקה אחד או על כמה מנועים שונים. אותו מנוע הסקה עשוי לשמש כמה עומסי עבודה שונים.
שירות Control Room עוקב אחר משימות וקובע אם מותר להן להמשיך להפיק פלט מהמודל. המנועים בודקים מול שירות Control Room לפני שהם מבצעים בקשה. אם המשימה נעצרה, השירות דוחה את הבקשה ומונע הפקת פלט נוסף.
Control Room משולבת באופן הבא:
בעת הפעלת משימה חדשה, הקוד של עומס העבודה מבקש job_id חדש מ-Control Room.
בכל פעם שעומס העבודה צריך לדגום טוקנים ממודל, הוא שולח בקשה למנוע הסקה שמריץ את המודל הזה, ומעביר את ה-job_id. המנוע מבקש מ-Control Room אישור לבצע את הבקשה, ומעביר אליה את ה-job_id.
Control Room בודקת אם המשימה הופסקה, ואם כן, היא דוחה את בקשת ההסקה. המנוע מחזיר סירוב לבקשת ההסקה של עומס העבודה, ובכך מונע הפקת פלט נוסף מהמודל עבור אותה משימה.
איך Control Room פועלת
משימת מחקר
מנוע הסקה
מריץ את המודל על מעבדים גרפיים
Control Room
- job_039, פעילה
- job_040, פעילה
- job_041, פעילה
כל משימות למידת החיזוק שלנו עבור מודלי חזית פועלות בליווי מודל מנטר. מודל מנטר הוא מודל נוסף שבוחן את כל הפעולות של המודל שמתאמנים, ומפיק התרעה אם הוא מזהה בעיה. למשל, התקרית האחרונה שלנו הקשורה ל-DNS(נפתח בחלון חדש) זוהתה על ידי מודל מנטר.
Control Room ומערכת הניטור שלנו משולבות באופן הבא:
אם מערכת הניטור מזהה בעיה פוטנציאלית, היא עשויה להחליט לעצור את המשימה בהתאם לפרטי הבעיה ולחומרתה.
במקרה כזה, מערכת הניטור שולחת ל-Control Room הודעה לעצור את המשימה, ומעבירה את ה-job_id. Control Room רושמת שהמשימה הופסקה.
בפעם הבאה שהמשימה בעלת אותו job_id תשלח בקשת הסקה לדגימת טוקנים נוספים מכל מודל שהוא שפועל על כל מנוע שהוא, הבקשה תידחה והפקת פלט נוסף מהמודל תיעצר.
הזמן המרבי מרגע ש-Control Room מקבלת הוראה לעצור משימה ועד לרגע שבו המשימה אינה יכולה להתקדם עוד הוא 35 שניות. ההשהיה של 35 שניות נובעת משכבת מטמון לאישורי הסקה, שנועדה לתמוך בהיקף התעבורה הנדרש. אנחנו פועלים לצמצם את הזמן הזה לאפס כדי שנוכל להפסיק משימות באופן מיידי.
עומסי עבודה, ובהם ניסויים, משימות הערכה ועוד, נמצאים בדרך כלל באחריות חוקרים או צוותי מחקר, שגם מפעילים אותם. לכן, הקוד של עומסי העבודה משתנה לעיתים קרובות, ואינו המקום האידיאלי למימוש מנגנוני הגנה בטיחותיים קריטיים שהמערכת נשענת עליהם. משום כך, המימוש שלנו נועד להמשיך לתפקד גם כשיש באגים או תקלות בקוד של עומסי העבודה.
אנחנו משיגים זאת באמצעות מימוש מנגנון ההפסקה בשכבת ההסקה. הקוד של עומסי העבודה מגוון מאוד ומבוזר. לעומת זאת, בכל פעילות המחקר של OpenAI נעשה שימוש במספר קטן מאוד של נתיבי קוד להסקה, והפריסות שלהם ריכוזיות ואחידות הרבה יותר. כך שכבת ההסקה יכולה לשמש נקודת בקרה שדרכה הכול עובר, ולאפשר לנו להבטיח ברמה גבוהה של ודאות שכל הסקה של מודל במסגרת המחקר כפופה לבדיקת הרשאות של Control Room בכל בקשת הסקה. בנוסף, אנחנו מבצעים באופן שוטף סריקות אג'נטיות וסריקות באמצעות קוד, כדי לוודא שמשתמשים אינם מפעילים בטעות או בזדון מימושי מנועים לא מורשים שבהם Control Room לא מוטמעת או מושבתת.
לבסוף, המערכת שלנו פועלת לפי עקרון ״חסימה בעת כשל״: שילוב Control Room במנועים מוגדר כך שאם שירות Control Room מפסיק לפעול, בין שבגלל שגיאת מערכת ובין שהושבת מכל סיבה אחרת, לרבות חבלה של גורם זדוני, כל בקשות ההסקה יידחו עד ש-Control Room תחזור לפעול כרגיל. מנגנון החסימה בעת כשל כבר נפרס בכל עומסי העבודה המחקריים של מודלי חזית, ופריסתו ביתר עומסי העבודה המחקריים תושלם בימים הקרובים.

