הגדרת ניהול רעש עם 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.
השלבים הבאים
- עבור דרך דוגמה שמשתמשת בהפחתת שגיאות בשיעור פונקציית עלות בלימוד IBM Quantum.
- למד עוד על טכניקות הפחתת שגיאות ודיכוי שגיאות.
- חקור אפשרויות Estimator.
- החלט באיזה מצב הרצה להריץ את העבודה שלך.