تهيئة إدارة الضوضاء مع Estimator
إصدارات الحزم
تم تطوير الكود في هذه الصفحة باستخدام المتطلبات التالية. نوصي باستخدام هذه الإصدارات أو أحدث.
qiskit-ibm-runtime~=0.47.0
هناك عدة طرق لإدارة الضوضاء، وعادةً ما يتم ذلك باستخدام تقنيات متنوعة لتخفيف الأخطاء وتثبيطها لتفادي الأخطاء قبل حدوثها. تُسبِّب هذه التقنيات عادةً حملاً إضافيًا في المعالجة المسبقة. لذلك، من المهم تحقيق توازن بين تحسين النتائج والتأكد من إتمام مهمتك في وقت معقول.
يدعم Estimator تقنيات إدارة الضوضاء التالية. راجع تقنيات تخفيف الأخطاء وتثبيطها للاطلاع على شرح لكل منها. راجع قسم إعدادات إدارة الضوضاء المخصصة للاطلاع على مثال لتفعيل هذه التقنيات.
الفصل الديناميكي (Dynamical decoupling)
كيفية التفعيل: options.dynamical_decoupling.enable = True
مرجع API: DynamicalDecouplingOptions
خيارات جديرة بالملاحظة: sequence_type
تفتيل Pauli (Pauli twirling)
كيفية التفعيل: options.twirling.enable_gates = True
مرجع API: TwirlingOptions
خيارات جديرة بالملاحظة: num_randomizations, shots_per_randomization
TREX
كيفية التفعيل: options.resilience.measure_mitigation = True
مرجع API: MeasureNoiseLearningOptions
خيارات جديرة بالملاحظة:
ZNE
كيفية التفعيل: options.resilience.zne_mitigation = True
مرجع API: ZneOptions
خيارات جديرة بالملاحظة: noise_factors, extrapolator
PEA
كيفية التفعيل: (يجب تفعيل ZNE أيضًا) options.resilience.zne_mitigation = True وoptions.resilience.zne.amplifier = "pea"
مرجع API: ZneOptions
خيارات جديرة بالملاحظة: noise_factors, extrapolator
PEC
كيفية التفعيل: options.resilience.pec_mitigation = True
مرجع API: PecOptions
خيارات جديرة بالملاحظة: max_overhead
مستوى المرونة
يُحدِّد resilience_level مقدار المرونة المطلوب بناؤها في مواجهة الأخطاء. تُولِّد المستويات الأعلى نتائج أكثر دقة، على حساب أوقات معالجة أطول. يمكن استخدام مستويات المرونة لضبط توازن التكلفة/الدقة عند تطبيق إدارة الضوضاء على استعلام الـ primitive. تُقلِّل إدارة الضوضاء الأخطاء (الانحياز) في النتائج عبر معالجة المخرجات من مجموعة أو حشد إحصائي من الدارات المترابطة. تعتمد درجة تقليل الأخطاء على الطريقة المُطبَّقة. يُجرِّد مستوى المرونة الاختيار التفصيلي لطريقة إدارة الضوضاء للسماح للمستخدمين بالتفكير في توازن التكلفة/الدقة المناسب لتطبيقهم.
بناءً على ذلك، يتوافق كل مستوى مع طريقة أو طرق ذات مستوى متزايد من الحمل الزائد في أخذ العينات الكمية لتمكينك من تجربة مقايضات مختلفة بين الوقت والدقة. يوضح الجدول التالي المستويات والطرق المقابلة المتاحة لكل من الـ primitives.
| مستوى المرونة | الوصف | التقنية |
|---|---|---|
| 0 | بدون تخفيف | لا شيء |
| 1 [افتراضي] | الحد الأدنى من تكاليف التخفيف: تخفيف الأخطاء المرتبطة بأخطاء القراءة | تفتيل قياس (measurement twirling) Twirled Readout Error eXtinction (TREX) |
| 2 | تكاليف تخفيف متوسطة. يُقلِّل عادةً من الانحياز في المُقدِّرات، لكن غير مضمون أن يكون خالٍ من الانحياز. | المستوى 1 + الاستقراء إلى الضوضاء الصفرية (ZNE) وتفتيل البوابات (gate twirling) |
مستويات المرونة في مرحلة بيتا حاليًا لذا سيتفاوت الحمل الزائد في أخذ العينات وجودة الحل من دارة إلى أخرى. ستُطلَق ميزات جديدة وخيارات متقدمة وأدوات إدارة بشكل تدريجي. لا يُضمَن تطبيق طرق محددة لإدارة الضوضاء عند كل مستوى مرونة.
تهيئة Estimator بمستويات المرونة
يمكنك استخدام مستويات المرونة لتحديد تقنيات إدارة الضوضاء، أو يمكنك ضبط تقنيات مخصصة بشكل فردي كما هو موضح في إعدادات إدارة الضوضاء المخصصة.
أي خيارات تُحددها يدويًا إضافةً إلى مستوى المرونة تُطبَّق بالإضافة إلى مجموعة الخيارات الأساسية المُعرَّفة بواسطة مستوى المرونة. لذلك، من حيث المبدأ، يمكنك ضبط مستوى المرونة على 1، لكن بعد ذلك إيقاف تخفيف القياس، وإن لم يكن ذلك مُنصَحًا.
على سبيل المثال، ضبط مستوى المرونة على 0 يوقف zne_mitigation، لكن estimator.options.resilience.zne_mitigation = True يُلغي تلك القيمة.
مثال
الكود التالي يُفعِّل ZNE وTREX وتفتيل البوابات (gate twirling) عبر ضبط resilience_level 2.
# Added by doQumentation — installs the packages this notebook needs if they are missing
import importlib.util
_needed = {"qiskit_ibm_runtime": "qiskit-ibm-runtime"}
_missing = [pip for module, pip in _needed.items()
if importlib.util.find_spec(module) is None]
# One at a time, so a package that fails to install does not block the others
for _pip in _missing:
%pip install -q {_pip}
if not _missing:
print("\u2713 All required packages are installed")
from qiskit_ibm_runtime import QiskitRuntimeService
# Legacy server-side primitive before qiskit-ibm-runtime 0.50.0
# from qiskit_ibm_runtime import Estimator
# Client-side primitive introduced in qiskit-ibm-runtime 0.50.0
from qiskit_ibm_runtime.executor_estimator import Estimator
service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)
# Setting options during primitive initialization
estimator = Estimator(backend, options={"resilience_level": 2})
إعدادات إدارة الضوضاء المخصصة
يمكنك تشغيل وإيقاف طرق إدارة الضوضاء الفردية باستخدام خيارات Estimator.
- لا تعمل كل الخيارات معًا على كل أنواع الدارات. راجع جدول توافق الميزات للتفاصيل.
- إذا كنت تستخدم Estimator الجديد من جانب العميل المقدَّم في
qiskit-ibm-runtimev0.50.0، فيلزم تشغيل مهمة منفصلة لتعلّم الضوضاء لاستخدام PEA وPEC. راجع الانتقال من Sampler وEstimator من جانب الخادم إلى جانب العميل لمزيد من المعلومات.
مثال كامل بخيارات متعددة
from qiskit_ibm_runtime import QiskitRuntimeService
# Legacy server-side primitive before qiskit-ibm-runtime 0.50.0
# from qiskit_ibm_runtime import Estimator
# Client-side primitive introduced in qiskit-ibm-runtime 0.50.0
from qiskit_ibm_runtime.executor_estimator import 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 Learning.
- تعرَّف أكثر على تقنيات تخفيف الأخطاء وتثبيطها.
- استكشف خيارات Estimator.
- اختر وضع التنفيذ الذي تريد تشغيل مهمتك فيه.