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

تهيئة حساب IBM Quantum Compute Service الخاص بك

قبل استخدام IBM Quantum® Compute Service، عليك تهيئة (إنشاء نسخة من) حسابك عبر تقديم (تحميل) بيانات الاعتماد. يمكنك إدخال هذه البيانات يدويًا في كل مرة تُهيّئ فيها IBM Quantum Compute Service، أو يمكنك حفظها لإعادة الاستخدام.

ملاحظات

قبل البدء​

تأكّد من إتمام الخطوات التالية:

  1. تأكّد من أنك عضو في حساب IBM Cloud. راجع إعداد حساب IBM Cloud للحصول على التعليمات.

  2. أنشئ نسخة واحدة على الأقل أو تأكّد من امتلاك الصلاحية للوصول إليها. اتّبع هذه الخطوات للتحقق:

    1. سجّل الدخول إلى IBM Quantum Platform.

    2. تأكّد من تحديد الحساب والمنطقة الصحيحين في محوّل الحسابات في الترويسة.

    3. إذا ظهرت لك نسخة واحدة أو أكثر، فقد انتهيت من هذه الخطوة. وإلا، أنشئ نسخة جديدة.

  3. تأكّد من عملك في بيئة Python نشطة مع تثبيت Qiskit SDK وqiskit-ibm-runtime.

  4. فعّل البيئة الافتراضية لـ Python وشغّل Python داخل هذه البيئة.

البحث عن بيانات اعتماد الوصول​

  1. ابحث عن مفتاح API الخاص بك (يُعرف أيضًا بـ رمز API). من لوحة التحكم، أنشئ مفتاح API الخاص بك، ثم انسخه إلى مكان آمن لاستخدامه في المصادقة. لن يكون الرمز مرئيًا مجددًا. لاحظ أنه يمكنك استخدام مفتاح API واحد للاتصال بأي منطقة.

  2. اختياري: ابحث عن المثيل الذي تريد استخدامه من صفحة المثيلات. مرّر المؤشر فوق CRN الخاص به، وانقر على الأيقونة لنسخه، ثم احفظه في مكان آمن لاستخدامه للتعرف على المثيل.

ربط Qiskit بنسخة IBM Quantum Compute Service الخاصة بك​

ملاحظة

هذه التعليمات مصممة لـ qiskit_ibm_runtime الإصدار v0.42 أو الأحدث. بعض الميزات غير متاحة في الإصدارات السابقة من qiskit_ibm_runtime. في هذه الحالات، يجب دائمًا تقديم قيمة لكل من channel وtoken وinstance، إما بصورة صريحة أو عبر حساب محفوظ.

فيما يلي الكود الأساسي لربط Qiskit بنسخة Quantum Compute. غير أن ثمة عدة طرق مختلفة لتخصيص خيارات QiskitRuntimeService بحسب احتياجاتك، وهي موضحة في الأقسام التالية.

from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService(channel=<channel>,
# For `token`, use the 44-character API_KEY you created
# and saved from the IBM Quantum Platform dashboard
token=<your-API_KEY>,
instance=<instance_CRN>)
ملاحظة

القناة الافتراضية هي ibm_quantum_platform. وبما أن هذه القناة هي المناسبة في جميع الحالات تقريبًا، فهي غير مدرجة في الأمثلة.

مسار البدء السريع: تحديد بيانات الاعتماد صراحةً​

أسرع طريقة لتشغيل مثيل من QiskitRuntimeService هي طريقة الإنشاء المباشر: تقديم رمز API (المفتاح) وCRN (معرّف المثيل) صراحةً في كل مرة تحتاج فيها إلى تهيئة IBM Quantum Compute Service. راجع البحث عن بيانات اعتماد الوصول إذا لزم الأمر.

from qiskit_ibm_runtime import QiskitRuntimeService

# For `token`, use the 44-character API_KEY you created
# and saved from the IBM Quantum Platform dashboard
service = QiskitRuntimeService(token=<cloud_api_key>,
instance=<instance_CRN>)

هذا المسار موثوق لكنه قد يكون مرهقًا إذا احتجت إلى تحميل نفس التفاصيل مرارًا. لتجنّب إدخال بيانات اعتمادك عدة مرات، إذا كنت تعمل في بيئة Python موثوقة (كجهازك الشخصي أو محطة العمل)، يمكنك استخدام بيانات الاعتماد المحفوظة كما هو موضح في القسم التالي.

رغم أن معامل الإدخال instance اختياري، يُنصح دائمًا بتوفير هذه المعلومات، إلا إذا أردت استخدام خدمة واحدة للعمل مع عدة نسخ. في هذه الحالة، راجع قسم الاختيار التلقائي للنسخة.

مسار البدء السريع: تحديد بيانات اعتماد محفوظة​

إذا كنت قد حفظت بيانات اعتمادك مسبقًا، استخدم الكود التالي لتطبيق بيانات الاعتماد الافتراضية. للحصول على تعليمات حفظ بيانات الاعتماد، راجع حفظ بيانات اعتماد الوصول.

from qiskit_ibm_runtime import QiskitRuntimeService

# run every time you need the service
service = QiskitRuntimeService()
...

إذا قمت بتسمية مجموعة واحدة أو أكثر من بيانات الاعتماد - مثلًا للوصول المفتوح والمميز - استخدم الكود التالي لاستخدام مجموعة بيانات اعتماد مسمّاة.

from qiskit_ibm_runtime import QiskitRuntimeService

# run every time you need the service
service = QiskitRuntimeService(name="<name_of_saved_credentials>")
...

اعتبارات عند تحميل بيانات الاعتماد المحفوظة​

  • إذا هيّأت الخدمة بـ token وname معًا، يُتجاهل token ويتم تحميل التفاصيل المحفوظة من حساب name.

    في المثال التالي، تقوم الخدمة بتحميل التفاصيل من account_A ولا تستخدم token_B:

    from qiskit_ibm_runtime import QiskitRuntimeService

    service = QiskitRuntimeService(token="token_B", name="account_A")
  • إذا قدّمت name وinstance عند تهيئة خدمة، تحاول الخدمة تحميل حساب name و الاتصال بـ instance المحددة. وفي حال وجود أي تعارض، يُصدَر تحذير.

    في المثال التالي، تحاول الخدمة تحميل بيانات اعتماد account_A واستخدام المثيل CRN_B - حتى لو كان هناك مثيل مختلف محدد في account_A:

    from qiskit_ibm_runtime import QiskitRuntimeService

    service = QiskitRuntimeService(instance="CRN_B", name="account_A")
  • تحاول الخدمة تحميل الحساب الافتراضي المحفوظ فقط إذا لم تقدّم token أو name عند تهيئة الخدمة. ولكن إذا تم تقديم instance صراحةً، تحاول الخدمة الاتصال بذلك المثيل باستخدام بيانات الاعتماد الافتراضية. إذا وجد أي تعارض، يُرفع تحذير.

    في المثال التالي، تحاول الخدمة تحميل بيانات الاعتماد الافتراضية واستخدام المثيل CRN_B - حتى لو كان هناك مثيل مختلف محدد في الحساب الافتراضي:

    from qiskit_ibm_runtime import QiskitRuntimeService

    service = QiskitRuntimeService(instance="CRN_B")
  • إذا حفظت مجموعات متعددة من بيانات الاعتماد ولم تحدد واحدة منها عند تهيئة الخدمة وليس هناك حساب افتراضي محفوظ، تُستخدم المجموعة التي يأتي اسمها أخيرًا أبجديًا.

    في المثال التالي، حفظ المستخدم حسابات باسم "my_premium" و"my_open" دون وضع علامة على أيٍّ منهما كحساب افتراضي. ثم هيّأ الخدمة باستخدام الكود التالي. في هذه الحالة، تُستخدم بيانات اعتماد "my_premium":

    from qiskit_ibm_runtime import QiskitRuntimeService

    service = QiskitRuntimeService()
  • إذا كنت تحصل باستمرار على خطأ "401 Unauthorized"، فقد تحاول استخدام bearer token بدلًا من مفتاح API.

الاختيار التلقائي للنسخة​

إذا قدّمت رمزًا (token) لكن لم تقدّم CRN للمثيل عند إنشاء الخدمة، تقوم QiskitRuntimeService بالمصادقة على الحساب المحدد بالرمز وتستخدم الاختيار التلقائي للمثيل لاختيار المثيل الأنسب للمهمة المطلوبة. إذا كان لديك عدة مثيلات متاحة داخل حسابك، تختار الخدمة تلقائيًا من بين المثيلات المتاحة، بناءً على المورد المطلوب وخيارات QiskitRuntimeService التالية (إذا تم ضبطها): plans_preference وregion وtags.

  • plans_preference: أنواع خطط المثيلات التي تُعطى الأولوية. على سبيل المثال، إذا مُرر [open]، تكون مثيلات Open Plan فقط متاحة. القيم المقبولة هي open وpremium وpay-as-you-go وflex وon-prem. إذا لم يُحدَّد plans_preference، تُعطى الخطط المجانية الأولوية على الخطط المدفوعة.

  • region: منطقة المثيل. القيم المقبولة هي us-east وeu-de.

  • tags: وسوم المثيل. تقبل قائمة من سلاسل أسماء الوسوم.

ملاحظة

يمكنك إعداد بيانات اعتمادك المحفوظة لاختيار نسخة تلقائيًا.

يتم البحث عن المثيل واستخدامه بهذا الترتيب:

  1. إذا كان حسابك لا يملك صلاحية الوصول إلا لنسخة واحدة، يتم اختيارها تلقائيًا.

  2. إذا كانت بيانات الاعتماد المحفوظة مستخدمة وتم تحديد مثيل مع بيانات الاعتماد، يُستخدم ذلك المثيل. راجع اعتبارات عند تحميل بيانات الاعتماد المحفوظة.

  3. إذا كان حسابك يملك عدة نسخ يمكنها الوصول إلى QPU المطلوبة، يستخدم النظام تفضيلات خطتك المحددة لاختيار خطة ونسخة. بالنسبة لـ qiskit-ibm-runtime الإصدار v0.42 وما بعده، تُعطى الأولوية للخطط المجانية افتراضيًا.

  4. إذا كان حسابك يملك صلاحية الوصول إلى عدة مثيلات لكن واحدًا فقط يستطيع الوصول إلى QPU المطلوبة، يُختار المثيل الذي يملك الوصول. إذا لم يكن هذا المثيل مرتبطًا بخطة مجانية، ستُحتسب تكلفة.

أمثلة​

في هذا المثال، تبحث الخدمة في جميع المثيلات المتاحة للحساب للعثور على تلك التي يمكنها الوصول إلى الخادم الخلفي المحدد:

service = QiskitRuntimeService(token=<your-API_KEY>)

في هذا المثال، تبحث الخدمة في جميع المثيلات المتاحة للحساب في منطقة الاتحاد الأوروبي للعثور على تلك التي يمكنها الوصول إلى الخادم الخلفي المحدد:

service = QiskitRuntimeService(token=<your-API_KEY>, region="eu-de")

في هذا المثال، تبحث الخدمة في جميع المثيلات المتاحة للحساب والموسومة بـ services للعثور على تلك التي يمكنها الوصول إلى الخادم الخلفي المحدد:

service = QiskitRuntimeService(token=<your-API_KEY>, tags=['services'])

في هذا المثال، تبحث الخدمة في جميع مثيلات الخطة المميزة والمفتوحة المتاحة للحساب للعثور على تلك التي يمكنها الوصول إلى الخادم الخلفي المحدد. إذا كان الخادم الخلفي متاحًا في كل من مثيل خطة مميزة ومثيل خطة مفتوحة، تُعطى الأولوية لمثيل الخطة المميزة لأن premium محددة أولًا في plans_preference.

service = QiskitRuntimeService(token=<your-API_KEY>,
plans_preference=['premium', 'open'])

تحديد المثيل الذي تم اختياره​

يُعاد المثيل المختار على شكل تحذير. بالإضافة إلى ذلك، يمكنك تشغيل service.active_instance() لتحديد المثيل النشط.

الاختبار المحلي مع qiskit-ibm-runtime​

يمكن تهيئة فئة QiskitRuntimeService باستخدام channel=local لإجراء محاكاة محلية. في هذه الحالة، لا تكون المصادقة مطلوبة ولا حاجة لتقديم قيم لـ token أو instance. لذلك، لا يُنصح بحفظ حساب محلي. بدلًا من ذلك، يمكنك استخدام الإنشاء المباشر:

from qiskit_ibm_runtime import QiskitRuntimeService

# Initialize for local testing

service = QiskitRuntimeService(channel="local")

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