מודל הרצה מכוון (בטא)
כל הרכיבים במודל ההרצה המכוון נמצאים כעת בבטא ועשויים להיות לא יציבים. אתה מוזמן לבדוק אותם ולספק משוב על ידי פתיחת issue במאגרי GitHub של Samplomatic או Qiskit Runtime.
ממשקי ה-primitive של Sampler ו-Estimator מספקים הפשטה ברמה גבוהה יותר למפתחי אלגוריתמים, כדי שיוכלו להתמקד יותר בחדשנות ופחות בהמרת נתונים. עם זאת, הם פחות מתאימים למדעני מידע קוונטי, שזקוקים לשליטה וגמישות רבות יותר בניסויים שלהם בסדר גודל תועלתי. מודל ההרצה המכוון, הנמצא כעת במהדורת בטא, עונה על צורך זה. מודל הרצה זה מספק את הכלים לתיעוד כוונות עיצוב בצד הלקוח, ומעביר את יצירת גרסאות ה-Circuit היקרה לצד השרת, כך שתוכל לכוונן טכניקות הפחתת שגיאות ואחרות מבלי לפגוע בביצועים. מודל מפורש וניתן להרכבה זה מקל על ניסויים עם טכניקות חדשות, שחזור תוצאות ושיתוף שיטות.
במהדורת הבטא שלו, מודל ההרצה המכוון מתמקד במתן שליטה על טכניקות המובנות ב-Sampler וב-Estimator הקיימים, כולל Pauli twirling, למידת מודל רעש והזרקתו, ושינויי בסיס. תמיכה ביכולות נוספות תתווסף בהדרגה לאורך זמן.
תהליך עבודה
אחת המטרות העיקריות של מודל ההרצה המכוון היא לספק דרך מודולרית להחיל שיטות הפחתת שגיאות. לדוגמה, ניתן להגדיר אילו שכבות ב-Circuit להפחית, או לכוונן את קצבי הרעש המוזרקים לתוך ה-Circuit.
כדי להחיל הפחתת שגיאות על Circuit במסגרת זו, תהליך העבודה שלך ידרוש בדרך כלל את השלבים הבאים (הכלים המוזכרים כאן מתוארים ביתר פירוט בסעיף הבא):
-
קבץ הוראות לתוך boxes והחל עליהן annotations. ה-annotations מתעדות את הטרנספורמציה המיועדת מבלי ליצור בפועל את גרסאות ה-Circuit.
במידת הצורך: למד את מודלי הרעש של השכבות הייחודיות באמצעות ה-NoiseLearnerV3 החדש.
-
בנה את ה-template circuit ואת ה-samplex מה-Circuit המחולק ל-boxes.
-
הרץ את ה-template circuit ואת ה-samplex עם ה-primitive של Executor, שייצר ויריץ את גרסאות ה-Circuit בהתאם להוראות.
-
עבד לאחר מכן את תוצאות ההרצה. לדוגמה, ניתן להחיל postselection, או לחלץ בהחרגה (extrapolate) ערכי ציפייה מופחתי-שגיאה (mitigated) מתוצאות ההרצה.
כלים למודל ההרצה המכוון
הכלים הבאים יכולים לשמש יחד כדי לממש טכניקת הפחתת שגיאות במודל ההרצה המכוון.
Samplomatic
Samplomatic היא ספרייה חדשה בקוד פתוח שתומכת בראנדומיזציות דגימה מותאמות אישית. היא משתמשת ב-construct של box כדי להתייחס אל אוספי פעולות Circuit שיש להתייחס אליהן כבעלות הקשר רעש יציב, ומשתמשת ב-annotations על boxes כדי לאפשר לך להצהיר ולהגדיר כוונות. לדוגמה, ניתן לחלק את ה-Circuit שלך ל-boxes, להוסיף annotation של twirling לכל box, ולציין איזו קבוצת twirling להשתמש בה, כפי שמוצג בתרשים הבא:

לאחר מכן ניתן להשתמש ב-Circuit עם boxes מסומנים כדי ליצור template circuit ו-samplex. ה-template circuit הפלט הוא Circuit פרמטרי שיורץ ללא שינוי נוסף (מלבד ערכי פרמטרים שונים המוקצים לו). ה-samplex, שהוא הסוג המרכזי של ספריית Samplomatic, מייצג התפלגות הסתברות פרמטרית על פרמטרי ה-template circuit ושדות נוספים בעלי ערך מערך. שדות אלה יכולים לשמש לעיבוד נתונים לאחר ביצוע ה-bound template circuit. במילים אחרות, ה-template circuit וה-samplex יחד אומרים ל-Executor primitive בדיוק אילו פרמטרים לייצר ואילו circuits קשורי-פרמטרים (bound) להריץ. מכיוון ששני מבנים אלה נוצרים בצד הלקוח, ניתן לבצע בדיקה ודגימה מקומיות לאימות הפלטים לפני שליחתם להרצה על חומרה.
כדי לפשט את תהליך יצירת ה-boxes המסומנים, ספריית Samplomatic מספקת גם Transpiler passes שמקבצים אוטומטית הוראות Circuit ל-boxes מסומנים, בהתאם לאסטרטגיות שאתה מספק.
למידע נוסף על Samplomatic, כנס לתיעוד המדריכים והפניית ה-API. אל תהסס לשלוח משוב ולדווח על באגים במאגר GitHub שלו.
ה-primitive של Executor
Executor הוא primitive חדש של Qiskit Runtime שמקבל את הזוג (template circuit, samplex) כקלט, מייצר וקושר ערכי פרמטרים בהתאם ל-samplex, מריץ את ה-circuits הקשורים על החומרה, ומחזיר את תוצאות ההרצה ומטא-נתונים. הוא פועל לפי הנחיות זוג הקלט ואינו מקבל שום החלטות משתמעות עבורך, כך שהתהליך שקוף אך גם יעיל.
NoiseLearnerV3
בדומה ל-NoiseLearner הנוכחי, תוכנית העזר של Qiskit Runtime זו מחזירה את מודל הרעש Pauli-Lindblad הדליל המשמש בשיטות הפחתת שגיאות רבות, כולל PEC, PEA ו-PNA. ב-NoiseLearner המקורי, אתה מעביר רשימת circuits, והתוכנית מחלקת את ה-circuits לשכבות ומחזירה את מודל הרעש עבור כל שכבה ייחודית. לעומת זאת, NoiseLearnerV3 נותן לך שליטה על האופן שבו לחלק את ה-circuits שלך לשכבות, והתוכנית פשוט מקבלת רשימת הוראות Circuit מחולקות ל-boxes (לדוגמה, שכבות ייחודיות) כקלט.
NoiseLearnerV3 תומך גם בלמידת רעש מדידה. עבור כל קבוצת הוראות ברשימת הקלט, הוא מריץ את פרוטוקול למידת Pauli-Lindblad אם הקבוצה מכילה שערים חד- ודו-Qubit, ואת פרוטוקול TREX אם הקבוצה מכילה מדידות.
NoiseLearnerV3 שוחרר עם qiskit-ibm-runtime v0.47.0. למידע נוסף, ראה את המדריך Noise learning helper, ועיין בתיעוד הפניית ה-API שלו.
הצעדים הבאים
- בדוק שני Qiskit addons, Shaded lightcones ו-Propagated noise absorption, שנבנו על גבי מודל הרצה זה.