انتقل إلى المحتوى الرئيسي
هذا المشروع في مرحلة تجريبية. وجدت خطأ؟ افتح مشكلة على GitHub. لديك سؤال أو فكرة؟ اسأل في Discussions — نحب سماع ملاحظاتك!
كيف جودة الترجمة في هذه الصفحة؟

تهيئة إدارة الضوضاء مع 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.

ملاحظات

مثال كامل بخيارات متعددة​

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.

الخطوات التالية​

توصيات