איתור אנומליות באמצעות ML. חדשנות באימות - Semiwiki

איתור אנומליות באמצעות ML. חדשנות באימות – Semiwiki

צומת המקור: 2860927

אימות מבוסס טענה תופס רק בעיות שבגינן כתבת הצהרות. האם ישנה גישה משלימה לאיתור בעיות שלא שקלת בהן - הלא ידועים? פול קנינגהם (סמנכ"ל/מנכ"ל בכיר, אימות בקידנס), ראול קמפוסאנו (סיליקון קטליסט, יזם, לשעבר CTO של Synopsys וכיום CTO של Silvaco) ואני ממשיכים את הסדרה שלנו על רעיונות מחקר. כמו תמיד, משוב יתקבל בברכה.

החדשנות

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

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

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

השקפתו של פול

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

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

הגישה של המחברים הולכת כדלקמן: חלקו סימולציות לפרוסות זמן ועקבו אחר אחוז הזמן שכל אות ניפוי באגים לאחר מעקב אחר סיליקון גבוה בכל פרוסת זמן. לאחר מכן חלקו את האותות על סמך היררכיית המודולים, תוך שאיפה לגודל מודול של כ-500 אותות. עבור כל מודול בכל פרוסת זמן, הרכבת מודל של התפלגות ה"צפויה" של הזמנים הגבוהים של האות באמצעות קבוצה מוזהבת של עקבות לאחר סיליקון ללא באגים. מודל זה הוא קיבוץ פשוט מאוד של אמצעי k של האותות תוך שימוש בהפרש בזמנים גבוהים כ"מרחק" בין שני אותות.

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

זה רעיון מגניב, אבל בעשרת מקרי הבדיקה של OpenSPARC, 30% מהבדיקות לא מדווחות על פרוסת הזמן או האותות הנכונים, וזה הרבה מדי גבוה מכדי להיות שימוש מעשי. אשמח לראות מה יקרה אם נעשה שימוש ב-LLM או DNN מודרניים במקום clustering פשוט של k-פירושים.

ההשקפה של ראול

זהו מאמר "מוקדם" משנת 2013 המשתמש בלמידה חישובית לזיהוי באגים לאחר סיליקון. לעת עתה זו חייבת להיות עבודה מתקדמת הרשומה עם 62 ציטוטים ב-Google Scholar.

הרעיון הוא פשוט קדימה: הפעל בדיקה פעמים רבות על עיצוב שלאחר סיליקון ורשום את התוצאות. כאשר מתרחשים באגים לסירוגין, ביצועים שונים של אותה בדיקה מניבים תוצאות שונות, חלקן עוברות וחלקן נכשלות. כשלים לסירוגין, לעתים קרובות עקב אירועים אסינכרוניים על השבב והשפעות חשמליות, הם מהקשים ביותר לאבחון. המחברים שוקלים בקצרה שימוש בלמידה מפוקחת, בפרט למידה מחלקה אחת (יש רק נתוני הדרכה חיוביים זמינים, באגים נדירים), אך פוסלים זאת כ"לא מתאים ליישום איתור באגים". במקום זאת, הם חלים k-פירושו התקבצות; תוצאות דומות מקובצות ל k אשכולות המורכבים מתוצאות "קרובות" הממזערות את מרחק סכום הריבועים בתוך אשכולות. העיתון חושף פרטים טכניים רבים הדרושים לשחזור התוצאות: התוצאות נרשמות כ"שבריר זמן ערך האות היה אחד במהלך שלב הזמן"; מספר האותות מתכנון, בסדר גודל של 10,000, הוא הממדיות ב k-פירושו אשכול שהוא NP-קשה ביחס למספר הממדים, כך שמספר האותות מוגבל ל-500 באמצעות ניתוח רכיבים עיקריים; מספר האשכולות לא יכול להיות קטן מדי (לא מתאים) וגם לא גדול מדי (התאמת יתר); יש לבחור סף ראוי לגילוי חריגות, מבוטא כאחוז מסך כל הדוגמאות הכושלות הנחשבות; לוקליזציה בזמן של באג מושגת על ידי זיהוי אנומליה דו-שלבי, זיהוי איזה שלב זמן מציג מספר מספיק של חריגות כדי לחשוף את התרחשות הבאג ולאחר מכן בסיבוב שני זיהוי אותות הבאגים האחראים.

ניסויים עבור עיצוב OpenSPARC T2 של כ-500 מיליון טרנזיסטורים הריצו 10 עומסי עבודה של אורכי בדיקה שנעו בין 60,000 ל-1.2 מיליון מחזורים 100 פעמים כל אחד כאימונים. ואז הם הזריקו 10 שגיאות והריצו 1000 בדיקות באגי. בממוצע זוהו 347 אותות לבאג (הנע בין אף אחד ל-1000) וזה לקח ~350 מחזורי השהייה מהזרקת באג לזיהוי באג. מספר האשכולות וסף הזיהוי משפיעים מאוד על התוצאות, וכך גם כמות נתוני האימון. תוצאות חיוביות שגויות ושליליות שגויות הסתכמו ב-30-40 (ב-1000 בדיקות באגי).

למרות שהכותבים מציינים כי "בסך הכל, מבין 41,743 האותות ברמה העליונה של OpenSPARC T2, אלגוריתם זיהוי האנומליות זיהה 347, בממוצע על פני הבאגים. זה מייצג 0.8% מסך האותות. לפיכך, הגישה שלנו מסוגלת לצמצם את מאגר האותות ב-99.2%", בפועל זה אולי לא יעזור מאוד למעצב מנוסה. 10 שנים חלפו, יהיה מעניין לחזור על העבודה הזו באמצעות יכולות למידת מכונה של ימינו, למשל LLMs לזיהוי אנומליות.

שתף את הפוסט הזה באמצעות:

בול זמן:

עוד מ Semiwiki