דלג לתוכן הראשי

מודל הרצה מכוון (בטא)

מהדורת בטא

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

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

במהדורת הבטא שלו, מודל ההרצה המכוון מתמקד במתן שליטה על טכניקות המובנות ב-Sampler וב-Estimator הקיימים, כולל Pauli twirling, למידת מודל רעש והזרקתו, ושינויי בסיס. תמיכה ביכולות נוספות תתווסף בהדרגה לאורך זמן.

תהליך עבודה

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

כדי להחיל הפחתת שגיאות על Circuit במסגרת זו, תהליך העבודה שלך ידרוש בדרך כלל את השלבים הבאים (הכלים המוזכרים כאן מתוארים ביתר פירוט בסעיף הבא):

  1. קבץ הוראות לתוך boxes והחל עליהן annotations. ה-annotations מתעדות את הטרנספורמציה המיועדת מבלי ליצור בפועל את גרסאות ה-Circuit.

  2. למד את מודלי הרעש של השכבות הייחודיות, במידת הצורך, באמצעות ה-NoiseLearnerV3 החדש.

  3. בנה את ה-template circuit ואת ה-samplex מה-Circuit המחולק ל-boxes.

  4. הרץ את ה-template circuit ואת ה-samplex עם ה-primitive של Executor, שיייצר וירוץ את גרסאות ה-Circuit בהתאם להוראות.

  5. עבד לאחר מכן את תוצאות ההרצה. לדוגמה, ניתן להחיל post-selection, או לחלץ ערכי ציפייה מוגנים מתוצאות ההרצה.

כלים למודל ההרצה המכוון

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

Samplomatic

Samplomatic היא ספרייה חדשה בקוד פתוח שתומכת בראנדומיזציות דגימה מותאמות אישית. היא משתמשת ב-construct של box כדי לנמק על אוספי פעולות Circuit שיש להתייחס אליהן כבעלות הקשר רעש יציב, ומשתמשת ב-annotations על boxes כדי לאפשר לך להצהיר ולהגדיר כוונות. לדוגמה, ניתן לחלק את ה-Circuit שלך ל-boxes, להוסיף annotation של twirling לכל box, ולציין איזו קבוצת twirling להשתמש בה, כפי שמוצג בתרשים הבא:

דוגמה לשימוש ב-boxes וב-annotations של twirling

Circuit עם boxes מסומנים ניתן לאחר מכן להשתמש בו כדי ליצור template circuit ו-samplex. ה-template circuit הפלט הוא Circuit פרמטרי שיורץ ללא שינוי נוסף (מלבד ערכי פרמטרים שונים המוקצים לו). ה-samplex, שהוא הסוג המרכזי של ספריית Samplomatic, מייצג התפלגות הסתברות פרמטרית על פרמטרי ה-template circuit ושדות נוספים בעלי ערך מערך. שדות אלה יכולים לשמש לעיבוד נתונים לאחר ביצוע ה-bound template circuit. במילים אחרות, זוג ה-template circuit וה-samplex אומר ל-primitive של Executor (המתואר להלן) בדיוק אילו פרמטרים לייצר ואילו circuits קשורים להריץ. מכיוון שמבנים שניים אלה נוצרים בצד הלקוח, ניתן לבצע בדיקה ודגימה מקומיות לאימות הפלטים לפני שליחתם להרצה על חומרה.

כדי לפשט את תהליך יצירת ה-boxes המסומנים, ספריית Samplomatic מספקת גם Transpiler passes שמקבצים אוטומטית הוראות Circuit ל-boxes מסומנים, בהתאם לאסטרטגיות שאתה מספק.

למידע נוסף על Samplomatic, בקר בתיעוד המדריכים והפניית ה-API. אל תהסס לשלוח משוב ולדווח על באגים במאגר GitHub שלו.

ה-primitive של Executor

Executor הוא primitive חדש של Qiskit Runtime שמקבל את זוג ה-template circuit וה-samplex כקלט, מייצר וקושר ערכי פרמטרים בהתאם ל-samplex, מריץ את ה-circuits הקשורים על החומרה, ומחזיר את תוצאות ההרצה ומטא-נתונים. הוא פועל לפי הנחיות זוג הקלט ואינו מקבל שום החלטות משתמעות עבורך, כך שהתהליך שקוף אך גם יעיל.

כדי לגשת ל-Executor, התקן את הענף executor_preview מ-qiskit-ibm-runtime:

pip install -U git+https://github.com/Qiskit/qiskit-ibm-runtime.git@executor_preview

הקלטים והפלט של ה-primitive של Executor שונים מאוד מאלה של Sampler ו-Estimator. עיין בהפניית ה-API של Executor למידע נוסף. בנוסף, מדריך ה-quickstart של Executor מספק סקירה כללית ודוגמאות קוד.

NoiseLearnerV3

בדומה ל-NoiseLearner הנוכחי, תוכנית העזר של Qiskit Runtime זו מחזירה את מודל הרעש Pauli-Lindblad הדליל המשמש בשיטות הפחתת שגיאות רבות, כולל PEC, PEA ו-PNA. ב-NoiseLearner המקורי, אתה מעביר רשימת circuits, והתוכנית מחלקת את ה-circuits לשכבות ומחזירה את מודל הרעש עבור כל שכבה ייחודית. לעומת זאת, NoiseLearnerV3 נותן לך שליטה על האופן שבו לחלק את ה-circuits שלך לשכבות, והתוכנית פשוט מקבלת רשימת הוראות Circuit מחולקות ל-boxes (לדוגמה, שכבות ייחודיות) כקלט.

NoiseLearnerV3 תומך גם בלמידת רעש מדידה. עבור כל קבוצת הוראות ברשימת הקלט, הוא מריץ את פרוטוקול למידת Pauli-Lindblad אם הקבוצה מכילה שערים חד- ודו-Qubit, ואת פרוטוקול TREX אם הקבוצה מכילה מדידות. כדי לגשת ל-NoiseLearnerV3, התקן את הענף executor_preview מ-qiskit-ibm-runtime:

pip install -U git+https://github.com/Qiskit/qiskit-ibm-runtime.git@executor_preview

למידע נוסף על NoiseLearnerV3, עיין בתיעוד הפניית ה-API שלו.

הצעדים הבאים

המלצות