انتقل إلى المحتوى الرئيسي

نموذج التنفيذ الموجَّه (تجريبي)

إصدار تجريبي

جميع مكونات نموذج التنفيذ الموجَّه في مرحلة تجريبية حالياً وقد لا تكون مستقرة. ندعوك لاختبارها وتزويدنا بملاحظاتك عبر فتح issue في مستودعات GitHub الخاصة بـ Samplomatic أو Qiskit Runtime.

توفّر واجهات Sampler وEstimator البدائية تجريداً رفيع المستوى يُتيح لمطوّري الخوارزميات التركيز على الابتكار بدلاً من الانشغال بتحويل البيانات. غير أنها أقل ملاءمةً لعلماء المعلومات الكمية الذين يحتاجون إلى تحكم أكبر ومرونة أعلى في تجاربهم على نطاق الأداة. يعالج نموذج التنفيذ الموجَّه، الموجود حالياً في إصدار تجريبي، هذه الحاجة. يوفّر هذا النموذج الأدوات اللازمة لالتقاط النوايا التصميمية على جانب العميل، وينقل عملية توليد متغيرات الـ Circuit المُكلفة إلى جانب الخادم، بحيث تستطيع ضبط تخفيف الأخطاء وغيرها من التقنيات دون التنازل عن الأداء. يجعل هذا النموذج الصريح والقابل للتركيب التجريبَ مع تقنيات جديدة وإعادة إنتاج النتائج ومشاركة الأساليب أكثر سهولة.

في إصداره التجريبي، يركّز نموذج التنفيذ الموجَّه على منحك التحكم في التقنيات المدمجة في Sampler وEstimator الحاليين، بما في ذلك Pauli twirling وتعلّم نماذج الضوضاء وحقنها وتغيير الأسس. سيُضاف الدعم لقدرات أخرى تدريجياً مع مرور الوقت.

سير العمل

أحد الأهداف الرئيسية لنموذج التنفيذ الموجَّه هو توفير طريقة معيارية لتطبيق أساليب تخفيف الأخطاء. على سبيل المثال، يمكنك تحديد الطبقات في الـ Circuit التي تريد تخفيفها، أو ضبط معدلات الضوضاء المُحقنة في الـ Circuit.

لتطبيق تخفيف الأخطاء على Circuit ضمن هذا الإطار، يتضمّن سير عملك عادةً الخطوات التالية (الأدوات المذكورة هنا موصوفة بشكل أكثر تفصيلاً في القسم التالي):

  1. اجمع التعليمات في صناديق وطبّق عليها التعليقات التوضيحية. تلتقط هذه التعليقات التحويل المقصود دون توليد متغيرات الـ Circuit فعلياً.

  2. تعلّم نماذج الضوضاء للطبقات الفريدة عند الحاجة، باستخدام NoiseLearnerV3 الجديد.

  3. ابنِ الـ Circuit النموذجي والـ samplex من الـ Circuit المُعبَّأ في صناديق.

  4. شغّل الـ Circuit النموذجي والـ samplex مع primitive الخاص بـ Executor، الذي سيولّد متغيرات الـ Circuit وينفّذها وفق التعليمات.

  5. عالج نتائج التنفيذ. على سبيل المثال، يمكنك تطبيق الاختيار البعدي، أو استقراء قيم التوقع المُخفَّفة من نتائج التنفيذ.

أدوات نموذج التنفيذ الموجَّه

يمكن استخدام الأدوات التالية معاً لتطبيق تقنية تخفيف الأخطاء في نموذج التنفيذ الموجَّه.

Samplomatic

Samplomatic مكتبة مفتوحة المصدر جديدة تدعم عشوائية أخذ العينات المُخصَّصة. تستخدم بناء box للتفكير في مجموعات من عمليات الـ Circuit التي ينبغي التعامل معها باعتبارها ذات سياق ضوضاء مستقر، وتستخدم التعليقات التوضيحية على الصناديق للسماح لك بتصريح النوايا وتهيئتها. على سبيل المثال، يمكنك تقسيم الـ Circuit إلى طبقات داخل صناديق، وإضافة تعليق توضيحي للـ twirling على كل صندوق، وتحديد مجموعة الـ twirling المراد استخدامها، كما هو موضح في الشكل التالي:

مثال على استخدام الصناديق وتعليقات الـ twirling التوضيحية

يمكن بعد ذلك استخدام الـ Circuit المزوّد بصناديق معلَّقة لتوليد circuit نموذجي وsamplex. الـ Circuit النموذجي الناتج هو circuit مُعامَل سيُنفَّذ دون تعديل إضافي (باستثناء تعيين قيم مُعاملات مختلفة له). أما الـ samplex، الذي هو النوع الأساسي في مكتبة Samplomatic، فيمثّل توزيعاً احتمالياً معيارياً على مُعاملات الـ Circuit النموذجي والحقول ذات القيم المصفوفية. يمكن استخدام هذه الحقول لمعالجة البيانات المجمّعة من تنفيذ الـ Circuit النموذجي المُقيَّد. بعبارة أخرى، يُخبر الـ Circuit النموذجي وزوج الـ samplex primitive الخاص بـ Executor (الموصوف أدناه) بالضبط ما هي المُعاملات التي يجب توليدها وما هي الـ circuits المُقيَّدة التي يجب تشغيلها. ولأن هذين البناءين يُنشآن على جانب العميل، يمكنك إجراء فحص محلي وأخذ عينات للتحقق من المخرجات قبل إرسالها لتنفيذها على العتاد.

لتبسيط عملية توليد الصناديق المعلَّقة، توفّر مكتبة Samplomatic أيضاً مسارات Transpiler تُجمّع تعليمات الـ Circuit تلقائياً في صناديق معلَّقة، بناءً على الاستراتيجيات التي تحدّدها.

لمعرفة المزيد عن Samplomatic، زر وثائق الأدلة ومرجع API. لا تتردّد في تقديم ملاحظاتك والإبلاغ عن الأخطاء في مستودع GitHub الخاص به.

Executor primitive

Executor هو primitive جديد في Qiskit Runtime يأخذ الـ Circuit النموذجي وزوج الـ samplex كمدخل، ويولّد قيم المُعاملات ويربطها وفق الـ samplex، وينفّذ الـ circuits المُقيَّدة على العتاد، ويُعيد نتائج التنفيذ والبيانات الوصفية. يتّبع توجيهات زوج المدخلات ولا يتخذ أي قرارات ضمنية نيابةً عنك، بحيث تكون العملية شفافة ومع ذلك عالية الأداء.

للوصول إلى Executor، ثبّت فرع executor_preview من qiskit-ibm-runtime:

pip install -U git+https://github.com/Qiskit/qiskit-ibm-runtime.git@executor_preview

مدخلات ومخرجات Executor primitive تختلف اختلافاً جوهرياً عن تلك الخاصة بـ Sampler وEstimator. ارجع إلى مرجع Executor API للمزيد من المعلومات. بالإضافة إلى ذلك، يوفّر دليل البدء السريع بـ Executor نظرة عامة وأمثلة برمجية.

NoiseLearnerV3

على غرار NoiseLearner الحالي، يُعيد برنامج المساعد هذا في Qiskit Runtime نموذج ضوضاء Pauli-Lindblad المتفرّق المستخدم في كثير من أساليب تخفيف الأخطاء، بما في ذلك PEC وPEA وPNA. في NoiseLearner الأصلي، تمرّر قائمة من الـ circuits، ويُقسّم البرنامج الـ circuits إلى طبقات ويُعيد نموذج الضوضاء لكل طبقة فريدة. أما NoiseLearnerV3، فيمنحك التحكم في كيفية تقسيم الـ circuits إلى طبقات، ويأخذ البرنامج ببساطة قائمة من تعليمات الـ Circuit المُعبَّأة في صناديق (مثل الطبقات الفريدة) كمدخلات.

يدعم NoiseLearnerV3 أيضاً تعلّم ضوضاء القياس. لكل مجموعة تعليمات في قائمة المدخلات، يشغّل بروتوكول تعلّم Pauli-Lindblad إذا احتوت المجموعة على بوابات Qubit واحد وبوابات Qubit مزدوجة، وبروتوكول TREX إذا احتوت على قياسات. للوصول إلى NoiseLearnerV3، ثبّت فرع executor_preview من qiskit-ibm-runtime:

pip install -U git+https://github.com/Qiskit/qiskit-ibm-runtime.git@executor_preview

لمعرفة المزيد عن NoiseLearnerV3، ارجع إلى وثائق مرجع API الخاصة به.

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

توصيات