דלג לתוכן הראשי

אתחול חשבון שירות Qiskit Runtime

לפני השימוש ב-Qiskit Runtime, עליך לאתחל (ליצור מופע של) את חשבונך על ידי הגשה (טעינה) של פרטי הכניסה. ניתן להגיש פרטי כניסה אלה באופן ידני בכל פעם שאתה מאתחל את שירות Qiskit Runtime, או לשמור אותם לשימוש חוזר.

הערות
  • אם אתה משתמש במחשב ציבורי או בסביבה לא מהימנה אחרת, עקוב אחר ההוראות באתחול השירות בסביבה לא מהימנה במקום זאת.
  • עקוב אחר הוראות אלה אם ברצונך להתחבר באמצעות REST API במקום Qiskit.
  • במידת הצורך, השתמש במידע זה להגדרת חומת האש שלך כדי לאפשר גישה לנקודות הקצה של IBM Quantum API.

לפני שתתחיל

ודא שהשלמת את הצעדים הבאים:

  1. ודא שאתה חבר בחשבון IBM Cloud. ראה הגדרת חשבון IBM Cloud שלך להוראות.
  2. צור (או קבל גישה ל) לפחות מופע אחד. פעל לפי השלבים הבאים לאימות:
    1. היכנס ל-IBM Quantum Platform.
    2. ודא שהחשבון והאזור הנכונים נבחרו בתיבת בחירת החשבון שבכותרת.
    3. אם מוצג לך מופע אחד או יותר, סיימת שלב זה. אחרת, צור מופע.
  3. ודא שאתה עובד בסביבת Python פעילה עם Qiskit SDK ו-Qiskit Runtime מותקנים.
  4. הפעל את סביבת Python הווירטואלית והרץ את Python בתוכה.

מצא את פרטי הגישה שלך

  1. מצא את מפתח ה-API שלך (המכונה גם API token). מהלוח המחוונים, צור את מפתח ה-API שלך, ואז העתק אותו למיקום מאובטח כדי שתוכל להשתמש בו לאימות. הטוקן לא יהיה גלוי שוב. שים לב שתוכל להשתמש במפתח API יחיד כדי להתחבר לכל אזור.
  2. אופציונלי: מצא את המופע שברצונך להשתמש בו מדף המופעים. רחף מעל ה-CRN שלו, לחץ על הסמל להעתקה, ואז שמור אותו במיקום מאובטח כדי שתוכל להשתמש בו לזיהוי המופע.

חבר את Qiskit עם מופע שירות Qiskit Runtime שלך

הערה

הוראות אלה מיועדות עבור qiskit_ibm_runtime גרסה v0.42 ואילך. חלק מהתכונות אינן זמינות בגרסאות קודמות של qiskit_ibm_runtime. במקרים אלה, עליך תמיד לספק ערך עבור channel, token ו-instance, במפורש או דרך חשבון שמור.

הקוד הבסיסי לחיבור Qiskit עם מופע שירות Qiskit Runtime שלך מוצג להלן. עם זאת, ישנן מספר דרכים שונות להתאים אישית את אפשרויות QiskitRuntimeService, בהתאם לצרכיך. אפשרויות אלה מתוארות בסעיפים הבאים.

from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService(channel=<channel>,
token=<your-API_KEY>, # Use the 44-character API_KEY you created and saved from the IBM Quantum Platform Home dashboard
instance=<instance_CRN>)
הערה

הערוץ (channel) ברירת המחדל הוא ibm_quantum_platform. מכיוון שזהו כמעט תמיד הערוץ המתאים, הוא אינו נכלל בדוגמאות.

נתיב התחלה מהיר: ציין פרטי כניסה במפורש

הדרך המהירה ביותר להפעיל מופע QiskitRuntimeService היא שיטת האתחול הישיר: ספק במפורש את טוקן ה-API (המפתח) וה-CRN (מזהה המופע) בכל פעם שאתה צריך לאתחל את שירות Qiskit Runtime. ראה מצא את פרטי הגישה שלך במידת הצורך.

from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService(token=<cloud_api_key>, # Use the 44-character API_KEY you created and saved from the IBM Quantum Platform Home dashboard
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 ולהתחבר למופע שצוין. אם יש כל התנגשות, מוצאת אזהרה.

    בדוגמה הבאה, השירות מנסה לטעון את פרטי הכניסה עבור 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 שלך.

בחירת מופע אוטומטית

אם אתה מספק טוקן אך לא מספק CRN של מופע בעת יצירת מופע של השירות, QiskitRuntimeService מאמת לחשבון המזוהה על ידי הטוקן ומשתמש בבחירת מופע אוטומטית לבחירת המופע הרלוונטי ביותר למשימה המבוקשת. אם יש לך מספר מופעים זמינים בחשבונך, השירות בוחר אוטומטית מהמופעים הזמינים, בהתאם למשאב המבוקש ולאפשרויות QiskitRuntimeService אלה (אם הוגדרו): plans_preference, region, tags.

  • plans_preference: סוגי תוכניות המופע לתעדוף. לדוגמה, אם [open] מועבר, רק מופעי תוכנית Open זמינים. הערכים המקובלים הם open, premium, pay-as-you-go, flex ו-on-prem. אם plans_preference לא צוין, תוכניות חינמיות מקבלות עדיפות על פני תוכניות בתשלום.
  • region: אזור המופע. הערכים המקובלים הם us-east ו-eu-de.
  • tags: תגיות המופע. מקבל רשימה של מחרוזות שם תגית.
הערה

תוכל להגדיר את פרטי הכניסה השמורים שלך לבחירת מופע אוטומטית.

המופע נמצא ומשמש בסדר זה:

  1. אם לחשבונך יש גישה למופע אחד בלבד, הוא נבחר כברירת מחדל.
  2. אם נעשה שימוש בפרטי כניסה שמורים ומופע צוין עם פרטי הכניסה, ישמש אותו מופע. ראה שיקולים בטעינת פרטי כניסה שמורים.
  3. אם לחשבונך יש מספר מופעים שיכולים לגשת ל-QPU המבוקש, המערכת משתמשת בהעדפות התוכנית שציינת לבחירת תוכנית ומופע. עבור Qiskit Runtime גרסה v0.42 ואילך, תוכניות חינמיות מקבלות עדיפות כברירת מחדל.
  4. אם לחשבונך יש גישה למספר מופעים אך רק אחד מהם יכול לגשת ל-QPU המבוקש, נבחר המופע בעל הגישה. אם מופע זה אינו משויך לתוכנית חינמית, יצטבר עלות.

דוגמאות

בדוגמה זו, השירות מחפש בכל המופעים הזמינים לחשבון כדי למצוא כאלה שיכולים לגשת ל-Backend שצוין:

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

בדוגמה זו, השירות מחפש בכל המופעים הזמינים לחשבון באזור ה-EU כדי למצוא כאלה שיכולים לגשת ל-Backend שצוין:

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

בדוגמה זו, השירות מחפש בכל המופעים הזמינים לחשבון המסומנים כ-services כדי למצוא כאלה שיכולים לגשת ל-Backend שצוין:

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

בדוגמה זו, השירות מחפש בכל המופעים הפרימיום והפתוחים הזמינים לחשבון כדי למצוא כאלה שיכולים לגשת ל-Backend שצוין. אם Backend נמצא גם במופע תוכנית פרימיום וגם בתוכנית פתוחה, מופע תוכנית הפרימיום מקבל עדיפות מכיוון ש-premium מצוין ראשון ב-plans_preference.

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

קבע איזה מופע נבחר

המופע שנבחר מוחזר כאזהרה. בנוסף, תוכל להריץ service.active_instance() כדי לקבוע את המופע הפעיל.

בדיקה מקומית עם Qiskit Runtime

ניתן לאתחל את מחלקת QiskitRuntimeService עם channel=local לביצוע סימולציה מקומית. במקרה זה, אימות אינו נדרש ואין צורך לספק ערכים עבור token או instance. לכן, אין זה מומלץ לשמור חשבון מקומי. במקום זאת, תוכל לבצע אתחול ישיר:

from qiskit_ibm_runtime import QiskitRuntimeService

# Initialize for local testing

service = QiskitRuntimeService(channel="local")

הצעדים הבאים

המלצות