نموذج التنفيذ الموجَّه (تجريبي)
جميع مكونات نموذج التنفيذ الموجَّه في مرحلة تجريبية حالياً وقد لا تكون مستقرة. ندعوك لاختبارها وتزويدنا بملاحظاتك عبر فتح issue في مستودعات GitHub الخاصة بـ Samplomatic أو Qiskit Runtime.
توفّر واجهات Sampler وEstimator البدائية تجريداً رفيع المستوى يُتيح لمطوّري الخوارزميات التركيز على الابتكار بدلاً من الانشغال بتحويل البيانات. غير أنها أقل ملاءمةً لعلماء المعلومات الكمية الذين يحتاجون إلى تحكم أكبر ومرونة أعلى في تجاربهم على نطاق الأداة. يعالج نموذج التنفيذ الموجَّه، الموجود حالياً في إصدار تجريبي، هذه الحاجة. يوفّر هذا النموذج الأدوات اللازمة لالتقاط النوايا التصميمية على جانب العميل، وينقل عملية توليد متغيرات الـ دائرة المُكلفة إلى جانب الخادم، بحيث تستطيع ضبط تخفيف الأخطاء وغيرها من التقنيات دون التنازل عن الأداء. يجعل هذا النموذج الصريح والقابل للتركيب التجريبَ مع تقنيات جديدة وإعادة إنتاج النتائج ومشاركة الأساليب أكثر سهولة.
في إصداره التجريبي، يركّز نموذج التنفيذ الموجَّه على منحك التحكم في التقنيات المدمجة في Sampler وEstimator الحاليين، بما في ذلك Pauli twirling وتعلّم نماذج الضوضاء وحقنها وتغيير الأسس. سيُضاف الدعم لقدرات أخرى تدريجياً مع مرور الوقت.
سير العمل
أحد الأهداف الرئيسية لنموذج التنفيذ الموجَّه هو توفير طريقة معيارية لتطبيق أساليب تخفيف الأخطاء. على سبيل المثال، يمكنك تحديد الطبقات في الـ دائرة التي تريد تخفيفها، أو ضبط معدلات الضوضاء المُحقنة في الـ دائرة.
لتطبيق تخفيف الأخطاء على دائرة ضمن هذا الإطار، يتضمّن سير عملك عادةً الخطوات التالية (الأدوات المذكورة هنا موصوفة بشكل أكثر تفصيلاً في القسم التالي):
-
اجمع التعليمات في صناديق وطبّق عليها التعليقات التوضيحية. تلتقط هذه التعليقات التحويل المقصود دون توليد متغيرات الـ دائرة فعلياً.
عند الحاجة: تعلّم نماذج الضوضاء للطبقات الفريدة باستخدام NoiseLearnerV3 الجديد.
-
ابنِ الـ دائرة النموذجي والـ samplex من الـ دائرة المُعبَّأ في صناديق.
-
شغّل الـ دائرة النموذجي والـ samplex مع primitive الخاص بـ Executor، الذي سيولّد متغيرات الـ دائرة وينفّذها وفق التعليمات.
-
عالج نتائج التنفيذ. على سبيل المثال، يمكنك تطبيق الاختيار البعدي، أو استقراء قيم التوقع المُخفَّفة من نتائج التنفيذ.
أدوات نموذج التنفيذ الموجَّه
يمكن استخدام الأدوات التالية معاً لتطبيق تقنية تخفيف الأخطاء في نموذج التنفيذ الموجَّه.
Samplomatic
Samplomatic مكتبة مفتوحة المصدر جديدة تدعم عشوائية أخذ العينات المُخصَّصة. تستخدم بناء box للتفكير في مجموعات من عمليات الـ دائرة التي ينبغي التعامل معها باعتبارها ذات سياق ضوضاء مستقر، وتستخدم التعليقات التوضيحية على الصناديق للسماح لك بتصريح النوايا وتهيئتها. على سبيل المثال، يمكنك تقسيم الـ دائرة إلى طبقات داخل صناديق، وإضافة تعليق توضيحي للـ twirling على كل صندوق، وتحديد مجموعة الـ twirling المراد استخدامها، كما هو موضح في الشكل التالي:

يمكن بعد ذلك استخدام الـ دائرة المزوّد بصناديق معلَّقة لتوليد circuit نموذجي وsamplex. الـ دائرة النموذجي الناتج هو circuit مُعامَل سيُنفَّذ دون تعديل إضافي (باستثناء تعيين قيم مُعاملات مختلفة له). أما الـ samplex، الذي هو النوع الأساسي في مكتبة Samplomatic، فيمثّل توزيعاً احتمالياً معيارياً على مُعاملات الـ دائرة النموذجي والحقول ذات القيم المصفوفية. يمكن استخدام هذه الحقول لمعالجة البيانات المجمّعة من تنفيذ الـ دائرة النموذجي المُقيَّد. بعبارة أخرى، يُخبر الـ دائرة النموذجي والـ samplex معاً Executor primitive بالضبط ما هي المُعاملات التي يجب توليدها وما هي الـ circuits المُقيَّدة التي يجب تشغيلها. ولأن هذين البناءين يُنشآن على جانب العميل، يمكنك إجراء فحص محلي وأخذ عينات للتحقق من المخرجات قبل إرسالها لتنفيذها على العتاد.
لتبسيط عملية توليد الصناديق المعلَّقة، توفّر مكتبة Samplomatic أيضاً مسارات Transpiler تُجمّع تعليمات الـ دائرة تلقائياً في صناديق معلَّقة، بناءً على الاستراتيجيات التي تحدّدها.
لمعرفة المزيد عن Samplomatic، زر وثائق الأدلة ومرجع API. لا تتردّد في تقديم ملاحظاتك والإبلاغ عن الأخطاء في مستودع GitHub الخاص به.
Executor primitive
Executor هو primitive جديد في Qiskit Runtime يأخذ زوج (الـ circuit النموذجي، الـ samplex) كمدخل، ويولّد قيم المُعاملات ويربطها وفق الـ samplex، وينفّذ الـ circuits المُقيَّدة على العتاد، ويُعيد نتائج التنفيذ والبيانات الوصفية. يتّبع توجيهات زوج المدخلات ولا يتخذ أي قرارات ضمنية نيابةً عنك، بحيث تكون العملية شفافة ومع ذلك عالية الأداء.
NoiseLearnerV3
على غرار NoiseLearner الحالي، يُعيد برنامج المساعد هذا في Qiskit Runtime نموذج ضوضاء Pauli-Lindblad المتفرّق المستخدم في كثير من أساليب تخفيف الأخطاء، بما في ذلك PEC وPEA وPNA. في NoiseLearner الأصلي، تمرّر قائمة من الـ circuits، ويُقسّم البرنامج الـ circuits إلى طبقات ويُعيد نموذج الضوضاء لكل طبقة فريدة. أما NoiseLearnerV3، فيمنحك التحكم في كيفية تقسيم الـ circuits إلى طبقات، ويأخذ البرنامج ببساطة قائمة من تعليمات الـ دائرة المُعبَّأة في صناديق (مثل الطبقات الفريدة) كمدخلات.
يدعم NoiseLearnerV3 أيضاً تعلّم ضوضاء القياس. لكل مجموعة تعليمات في قائمة المدخلات، يشغّل بروتوكول تعلّم Pauli-Lindblad إذا احتوت المجموعة على بوابات qubit واحد وبوابات qubit مزدوجة، وبروتوكول TREX إذا احتوت على قياسات.
تم إصدار NoiseLearnerV3 مع qiskit-ibm-runtime v0.47.0. لمعرفة المزيد، اطّلع على دليل مساعد تعلّم الضوضاء، وارجع إلى وثائق مرجع API الخاصة به.
الخطوات التالية
- اطّلع على إضافتي Qiskit، Shaded lightcones وPropagated noise absorption، المبنيّتين على قمة نموذج التنفيذ هذا.