מבוא ל-Qiskit
השם "Qiskit" הוא מונח כללי המתייחס לאוסף של תוכנות להרצת תוכניות על מחשבים קוונטיים. הבולטת שבכלים הללו היא ה-Qiskit SDK הקוד-פתוח, וסביבת הריצה (שאליה ניגשים באמצעות Qiskit Runtime) שדרכה ניתן להריץ עומסי עבודה על יחידות עיבוד קוונטי (QPUs) של IBM®. ככל שטכנולוגיית הקוונטום מתפתחת, כך גם Qiskit — כל שנה מתווספות יכולות חדשות שמרחיבות את אוסף התוכנות הקוונטיות הזה.
בנוסף, פרויקטי קוד פתוח רבים הם חלק מאקוסיסטם Qiskit הרחב. כלי תוכנה אלה אינם חלק מ-Qiskit עצמו, אלא ממשקים איתו ויכולים לספק פונקציונליות נוספת בעלת ערך.
IBM מחויבת לפיתוח אחראי של מחשוב קוונטי. למד עוד וסקור את עקרונות הקוונטום האחראיים שלנו בנושא מחשוב קוונטי אחראי.
ה-Qiskit SDK
ה-Qiskit SDK (שם החבילה qiskit) הוא SDK קוד-פתוח לעבודה עם מחשבים קוונטיים ברמה של מעגלים קוונטיים מורחבים (סטטיים, דינמיים ומתוזמנים), אופרטורים ופרימיטיבים. ספרייה זו היא הרכיב המרכזי של Qiskit; היא החבילה הגדולה ביותר תחת שם Qiskit עם מגוון הכלים הרחב ביותר לחישוב קוונטי, ורכיבים רבים אחרים ממשקים איתה.
כמה מהתכונות השימושיות ביותר של ה-Qiskit SDK כוללות:
-
כלי בניית Circuit (
qiskit.circuit) - לאתחול ומניפולציה של רגיסטרים, מעגלים, הוראות, Gate-ים, פרמטרים ואובייקטי בקרת זרימה. -
ספריית Circuit (
qiskit.circuit.library) - מגוון עצום של מעגלים, הוראות ו-Gate-ים — אבני בניין מרכזיות לחישובים קוונטיים מבוססי Circuit. -
ספריית מידע קוונטי (
qiskit.quantum_info) - ערכת כלים לעבודה עם מצבים קוונטיים, אופרטורים וערוצים, תוך שימוש בחישובים מדויקים (ללא רעש דגימה). השתמש במודול זה כדי לציין observable-ים כקלט ולנתח נאמנות פלטים מתשאולי פרימיטיבים. -
Transpiler (
qiskit.transpiler) - לשינוי והתאמה של מעגלים קוונטיים לטופולוגיה של מכשיר ספציפי, ואופטימיזציה להרצה על יחידות עיבוד קוונטי (QPUs) אמיתיות. -
פרימיטיבים (
qiskit.primitives) - המודול המכיל את ההגדרות הבסיסיות ואת המימושים הייחוסיים של פרימיטיבי ה-Sampler וה-Estimator, שמהם ספקי חומרה קוונטית שונים יכולים לגזור את המימושים שלהם. ראה מידע נוסף על פרימיטיבי Qiskit Runtime בתיעוד.
התקנה
להיכרות מפורטת יותר עם התקנת ה-Qiskit SDK, עיין בדף ההתקנה. אם אתה מוכן להתקין עכשיו, פשוט הרץ:
pip install qiskit
בנצ'מרקינג וחבילת Benchpress
בנצ'מרקינג חשוב להשוואת הביצועים היחסיים של תוכנות קוונטיות בשלבים שונים של זרימת פיתוח. מבחני בנצ'מרקינג לתוכנות קוונטיות עשויים, למשל, לבחון את המהירות והאיכות של בניית, מניפולציה ו-transpilation של מעגלים. IBM Quantum מחויבת לספק את ה-SDK בעל הביצועים הגבוהים ביותר האפשריים, ולשם כך, ה-Qiskit SDK נמדד באמצעות למעלה מ-1,000 מבחנים שפותחו על ידי אוניברסיטאות מובילות, מעבדות לאומיות וחוקרים ב-IBM. חבילת הבנצ'מרקינג המשמשת למבחנים אלה, בשם Benchpress, זמינה כעת כחבילת קוד פתוח. כעת תוכל להשתמש בחבילת Benchpress לביצוע ניתוח משלך של ביצועי SDK קוונטי.
Qiskit Runtime
Qiskit Runtime הוא שירות מבוסס-ענן להרצת חישובים קוונטיים על חומרת IBM Quantum®. החבילה qiskit-ibm-runtime היא לקוח לשירות זה, והיא יורשת את Qiskit IBM Provider. שירות Qiskit Runtime מייעל חישובים קוונטיים ומספק מימושים אופטימליים של פרימיטיבי Qiskit לחומרת IBM Quantum. כדי להתחיל עם פרימיטיבי Qiskit Runtime, בקר בתיעוד.
Qiskit Runtime מתוכנן להשתמש במשאבי חישוב קלאסיים וקוונטיים נוספים, כולל טכניקות כגון דיכוי שגיאות והפחתת שגיאות, כדי להחזיר תוצאה באיכות גבוהה יותר מהרצת מעגלים קוונטיים על מעבדים קוונטיים. דוגמאות כוללות decoupling דינמי לדיכוי שגיאות, והפחתת readout ו-zero-noise extrapolation (ZNE) להפחתת שגיאות. למד כיצד להגדיר אפשרויות אלה בדף הגדרת הפחתת שגיאות.
Qiskit Runtime כולל גם שלושה סוגי מצבי הרצה להפעלת תוכנית הקוונטום שלך על חומרת IBM: Job, Session, ו-Batch, שלכל אחד מהם יש מקרי שימוש שונים והשלכות שונות על תור עבודות הקוונטום. Job הוא שאילתה בודדת לפרימיטיב שניתן להריץ על פני מספר מוגדר של shots. Session-ים מאפשרים לך להריץ בצורה יעילה מספר עבודות בעומסי עבודה איטרטיביים על מחשבים קוונטיים. מצב Batch מאפשר לך לשלוח את כל העבודות שלך בבת אחת לעיבוד מקבילי. שים לב שמשתמשי Open Plan אינם יכולים לשלוח עבודות Session.
להתקנה מהירה של Qiskit Runtime, הרץ את הפקודה הבאה:
pip install qiskit-ibm-runtime
פרטים נוספים על הגדרת סביבת פיתוח לבניית תוכניות קוונטיות ניתן למצוא בדף ההתקנה.
האם Qiskit Runtime הוא קוד פתוח?
התשובה הקצרה היא, לא כולו. תוכנת שירות Qiskit Runtime המטפלת בפרטים הטכניים של הרצת תוכנית הקוונטום שלך על מכשיר IBM Quantum (כולל כל הפחתת שגיאות ודיכוי שגיאות) אינה קוד פתוח. עם זאת, לקוח Qiskit Runtime (הממשק למשתמשים לגישה לשירות Qiskit Runtime), ה-Qiskit SDK הפועל בצד השרת, וחלק מהתוכנות המשמשות להפחתת שגיאות, הם קוד פתוח. כדי להיות מעורב במאמצי הקוד הפתוח של Qiskit, בקר בארגון GitHub שלנו בכתובת github.com/Qiskit ו-github.com/Qiskit-Extensions.
Qiskit Serverless
יצירת יישומים קוונטיים בקנה מידה שימושי דורשת בדרך כלל מגוון דרישות משאבי חישוב. Qiskit Serverless (qiskit-ibm-catalog.QiskitServerless) מספק ממשק פשוט להרצת עומסי עבודה על פני משאבים קוונטיים-קלאסיים. זה כולל פריסת תוכניות ל-IBM Quantum Platform והרצת עומסי עבודה מרחוק, וכן ניהול משאבים קל למקרי שימוש של מולטי-ענן וסופרקומפיוטינג ממוקד-קוונטום. ראה מידע נוסף בתיעוד Qiskit Serverless כיצד להשתמש באוסף כלים זה כדי:
- לבצע מקביל משימות קלאסיות, כגון עיבוד מקדים ועיבוד לאחר
- להמשיך עומסי עבודה ארוכי-טווח בענן, גם אם המחשב הנייד שלך כבוי
- לפרוס תוכניות לשימוש חוזר בענן
כדי להתחיל להשתמש ב-Qiskit Serverless מיד, התקן אותו עם pip:
pip install qiskit_serverless
Qiskit Functions
Qiskit Functions (qiskit-ibm-catalog.QiskitFunctionsCatalog) הם שירותים מופשטים שנועדו להאיץ גילוי אלגוריתמים ובניית אב-טיפוס של יישומים. חקור את קטלוג Qiskit Functions, כולל:
- פונקציות Circuit: שירותים הכוללים transpilation, דיכוי שגיאות, הפחתת שגיאות וטכניקות עיבוד לאחר הרצה, שמקבלים כקלט מעגלים מופשטים ו-observable-ים של מדידה רצויים. עם פונקציות Circuit, משתמשים יכולים לגלות אלגוריתמים ויישומים חדשים מבלי שיצטרכו לנהל transpilation או ביצועי חומרה קוונטית.
- פונקציות יישום: שירותים הכוללים זרימות עבודה קוונטיות שלמות, ממיפוי קלאסי לקוונטי, אופטימיזציה לחומרה, הרצה על חומרה ועיבוד לאחר הרצה. משתמשים יכולים לבנות אב-טיפוס ליישומי תעשייה עם קלטים ופלטים מוכרים לתחום.
חברי Premium Plan, Flex Plan ו-On-Prem (דרך IBM Quantum Platform API) Plan יכולים לגשת לפונקציות שסופקו על ידי IBM מיד, או לרכוש רישיונות לפונקציות שסופקו על ידי שותפים ישירות מאותם שותפים.
ניתן להתקין את הקטלוג עם pip:
pip install qiskit-ibm-catalog
שירות ה-Transpiler של Qiskit
שירות ה-Transpiler של Qiskit (שם החבילה qiskit-ibm-transpiler) הוא שירות ניסיוני חדש המספק יכולות transpilation מרוחקות בענן למשתמשי IBM Quantum Premium Plan, Flex Plan ו-On-Prem (דרך IBM Quantum Platform API) Plan. בנוסף ליכולות ה-Transpiler המקומיות של Qiskit SDK, משימות ה-transpilation שלך יכולות להפיק תועלת גם ממשאבי ענן של IBM Quantum וגם ממעברי Transpiler מבוססי-AI באמצעות שירות זה. כדי ללמוד עוד על שילוב transpilation מבוסס-ענן בזרימת העבודה של Qiskit שלך, תוכל לעיין בתיעוד.
ניתן להתקין את שירות ה-Transpiler עם pip:
pip install qiskit-ibm-transpiler
תוספות Qiskit
תוספות Qiskit הן אוסף של יכולות מחקר לגילוי אלגוריתמים בקנה מידה שימושי. יכולות אלה בנויות על הבסיס הביצועי של Qiskit של כלים ליצירה והרצה של אלגוריתמים קוונטיים. התוספות הן רכיבי תוכנה מודולריים שמתחברים לזרימת עבודה כדי לקדם או לתכנן אלגוריתמים קוונטיים חדשים. כדי ללמוד עוד על מערכת תוספות Qiskit הזמינות וכיצד להתחיל להשתמש בהן, בקר בתיעוד.
ישנן מספר תוספות בהתאם ליכולת המחקר שאתה מעוניין בה. ניתן להתקין כל אחת מהן עם pip.
דיאגונליזציה קוונטית מבוססת דגימה (SQD):
pip install qiskit-addon-sqd
קומפילציה קוונטית מקורבת (AQC):
pip install qiskit-addon-aqc-tensor[quimb-jax]
Backpropagation של אופרטורים (OBP):
pip install qiskit-addon-obp
pip install qiskit-addon-mpf
אקוסיסטם Qiskit
מעבר ל-Qiskit, ישנם פרויקטי קוד פתוח רבים המשתמשים בשם "Qiskit" אך אינם חלק מ-Qiskit עצמו; במקום זאת, הם ממשקים עם Qiskit ויכולים לספק פונקציונליות נוספת בעלת ע רך שמשלימה את זרימת העבודה המרכזית של Qiskit. חלק מהפרויקטים הללו מתוחזקים על ידי צוותי IBM Quantum, בעוד שאחרים נתמכים על ידי קהילת הקוד הפתוח הרחבה יותר. ה-Qiskit SDK מתוכנן בצורה מודולרית וניתנת להרחבה כדי להקל על מפתחים ליצור פרויקטים כאלה המרחיבים את יכולותיו.
כמה פרויקטים פופולריים באקוסיסטם Qiskit כוללים:
- Qiskit Aer (
qiskit-aer) - חבילה לסימולטורים של מחשוב קוונטי עם מודלי רעש ריאליסטיים. היא מספקת ממשקים להרצת מעגלים קוונטיים עם או בלי רעש תוך שימוש במספר שיטות סימולציה שונות. מתוחזקת על ידי IBM Quantum. - qBraid SDK (
qbraid) - מסגרת runtime קוונטית אגנוסטית לפלטפורמה עבור ספקי תוכנה וחומרה קוונטית כאחד, שנועדה לייעל את ניהול מחזור החיים המלא של עבודות קוונטיות — מהגדרת מפרטי תוכנית ועד הגשת עבודה ועד לעיבוד לאחר הרצה וויזואליזציה של תוצאות. מתוחזקת על ידי qBraid. - mthree
mthree- חבילה למימוש M3 (Matrix-free Measurement Mitigation), טכניקת הפחתת מדידות שפותרת הסתברויות מדידה מתוקנות באמצעות שלב הפחתת ממדים ולאחריו גורם LU ישיר או שיטה איטרטיבית עם תנאי קדם שמתכנסת נומינלית ב-O(1) צעדים, וניתנת לחישוב במקביל. מתוחזקת על ידי IBM Quantum.
תוכל למצוא קטלוג של פרויקטים בדף אקוסיסטם Qiskit, וכן מידע על כיצד למנות את הפרויקט שלך.
צעדים הבאים
- למד על ספריית המעגלים וההוראות הזמינה ב-Qiskit בספריית Circuit.
- קרא על ה-Transpiler של Qiskit ועל האפשרויות הרבות ל-transpilation בסעיף Transpiler.
- גלה כיצד להשתמש בפרימיטיבים של Qiskit לייעול תכנות קוונטי.