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

הגדרת ניהול רעש עם Estimator

גרסאות חבילות

הקוד בדף זה פותח תוך שימוש בדרישות הבאות. אנחנו ממליצים להשתמש בגרסאות אלה או חדשות יותר.

qiskit-ibm-runtime~=0.46.1

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

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

רמת חוסן

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

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

רמת חוסןתיאורטכניקה
0ללא הפחתהללא
1 [ברירת מחדל]עלויות הפחתה מינימליות: הפחתת שגיאות הקשורות לשגיאות קריאהמדידת Twirled Readout Error eXtinction (TREX) twirling
2עלויות הפחתה בינוניות. בדרך כלל מפחית הטיה ב-estimators, אבל לא מובטח שתהיה אפס הטיה.רמה 1 + Zero Noise Extrapolation (ZNE) ו-gate twirling
שים לב

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

הגדרת Estimator עם רמות חוסן

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

חשוב

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

לדוגמה, הגדרת רמת החוסן ל-0 מכבה את zne_mitigation, אך estimator.options.resilience.zne_mitigation = True מבטל ערך זה.

דוגמה

הקוד הבא מאפשר ZNE, TREX ו-gate twirling על ידי הגדרת resilience_level 2.

# Added by doQumentation — required packages for this notebook
!pip install -q qiskit-ibm-runtime
from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime import EstimatorV2 as Estimator

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

# Setting options during primitive initialization
estimator = Estimator(backend, options={"resilience_level": 2})

הגדרות ניהול רעש מותאמות אישית

אפשר להפעיל ולכבות שיטות ניהול רעש בודדות על ידי שימוש באפשרויות Estimator.

הערה

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

דוגמה

from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime import EstimatorV2 as Estimator

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

estimator = Estimator(backend)
options = estimator.options
# Turn on gate twirling.
options.twirling.enable_gates = True
# Turn on measurement error mitigation.
options.resilience.measure_mitigation = True

print(
f">>> gate twirling is turned on: {estimator.options.twirling.enable_gates}"
)
print(
f">>> measurement error mitigation is turned on: "
f"{estimator.options.twirling.enable_gates}"
)
>>> gate twirling is turned on: True
>>> measurement error mitigation is turned on: True

כיבוי כל הפחתת השגיאות

להוראות לכיבוי כל הפחתת השגיאות ראו את החלק כיבוי כל דיכוי והפחתת שגיאות במדריך אפשרויות Estimator.

השלבים הבאים

המלצות