הפחתת שגיאות באמצעות רשתות טנסור (TEM): פונקציית Qiskit מאת Algorithmiq
ראה את תיעוד ה-API
Qiskit Functions הן תכונה ניסיונית הזמינה רק למשתמשי IBM Quantum® Premium Plan, Flex Plan ו-On-Prem (דרך IBM Quantum Platform API) Plan. הן נמצאות בסטטוס שחרור תצוגה מקדימה וכפופות לשינויים.
Package versions
הקוד בדף זה פותח תוך שימוש בדרישות הבאות. אנחנו ממליצים להשתמש בגרסאות אלו או חדשות יותר.
qiskit[all]~=2.5.1
סקירה כללית
שיטת הפחתת שגיאות באמצעות רשתות טנסור (TEM) של Algorithmiq היא אלגוריתם היברידי קוונטי-קלאסי המיועד לביצוע הפחתת רעש כולה בשלב עיבוד הנתונים הקלאסי שלאחר המדידה. עם TEM, אתה יכול לחשב ערכי ציפייה של observables (נצפים) תוך הפחתת שגיאות הרעש הבלתי-נמנעות המתרחשות בחומרה קוונטית, עם דיוק מוגבר ויעילות עלות גבוהה יותר, מה שהופך אותה לאפשרות מושכת מאוד עבור חוקרי קוונטום ואנשי מקצוע בתעשייה כאחד.
השיטה מורכבת מבניית רשת טנסור המייצגת את ההופכי של ערוץ הרעש הגלובלי המשפיע על מצב המעבד הקוונטי, ולאחר מכן החלת המיפוי על תוצאות מדידה שלמות-מידעית שנרכשו מהמצב הרועש, כדי לקבל מאמדים חסרי-הטיה עבור האופרטורים.
כיתרון, TEM מנצלת מדידות שלמות-מידעית כדי לספק גישה למגוון רחב של ערכי ציפייה מופחתי-שגיאות של observables, ויש לה עלות מדידה אופטימלית על החומרה הקוונטית, כמתואר ב-Filippov et al. (2023), arXiv:2307.11740, ו-Filippov et al. (2024), arXiv:2403.13542. עלות המדידה מתייחסת למספר המדידות הנוספות הנדרשות לביצוע הפחתת שגיאות יעילה, גורם קריטי בכדאיות החישובים הקוונטיים. לפיכך, ל-TEM יש פוטנציאל לאפשר יתרון קוונטי בתרחישים מורכבים, כגון יישומים בתחומי כאוס קוונטי, פיזיקה של גופים רבים, דינמיקת Hubbard, וסימולציות כימיה של מולקולות קטנות.
ניתן לסכם את התכונות והיתרונות העיקריים של TEM כך:
- עלות מדידה אופטימלית: TEM היא אופטימלית ביחס לגבולות תיאורטיים, כלומר אף שיטה אינה יכולה להשיג עלות מדידה קטנה יותר. במילים אחרות, TEM דורשת את המספר המינימלי של מדידות נוספות לביצוע הפחתת שגיאות. משמעות הדבר היא שה-TEM משתמשת בזמן ריצה קוונטי מינימלי.
- יעילות עלות: מאחר ש-TEM מטפלת בהפחתת רעש כולה בשלב העיבוד שלאחר המדידה, אין צורך להוסיף מעגלים נוספים למחשב הקוונטי, מה שלא רק מוזיל את החישוב אלא גם מצמצם את הסיכון להכנסת שגיאות נוספות עקב אי-שלמויות של מכשירים קוונטיים.
- הערכת observables מרובים: הודות למדידות שלמות-מידעית, TEM מעריכה ביעילות observables מרובים עם אותם נתוני מדידה מהמחשב הקוונטי.
- הפחתת שגיאות מדידה: פונקציית ה-TEM של Qiskit כוללת גם שיטה קניינית להפחתת שגיאות מדידה המסוגלת להפחית משמעותית שגיאות קריאה לאחר ריצת כיול קצרה.
- דיוק: TEM משפרת משמעותית את הדיוק והאמינות של סימולציות קוונטיות דיגיטליות, מה שהופך אלגוריתמים קוונטיים למדויקים ואמינים יותר.
תיאור
פונקציית ה-TEM מאפשרת לך לקבל ערכי ציפייה מופחתי-שגיאות עבור observables מרובים על Circuit קוונטי עם עלות מדידה מינימלית. ה-Circuit נמדד עם מדידה מסוג POVM שלמה מבחינה אינפורמטיבית (IC-POVM), ותוצאות המדידה שנאספו מעובדות במחשב קלאסי. מדידה זו משמשת לביצוע שיטות רשת הטנסור ובניית מיפוי היפוך-רעש. הפונקציה מחילה מיפוי שהופך לחלוטין את ה-Circuit הרועש כולו באמצעות רשתות טנסור המייצגות את השכבות הרועשות.
לאחר שה-Circuits מוגשים לפונקציה, הם עוברים transpiling ואופטימיזציה כדי למזער את מספר השכבות עם שערים דו-Qubit (השערים הרועשים יותר במכשירים קוונטיים). הרעש המשפיע על השכבות נלמד דרך Qiskit Runtime תוך שימוש במודל רעש Pauli-Lindblad דליל כמתואר ב-E. van den Berg, Z. Minev, A. Kandala, K. Temme, Nat. Phys. (2023). arXiv:2201.09866.
מודל הרעש הוא תיאור מדויק של הרעש במכשיר המסוגל ללכוד תכונות עדינות, כולל crosstalk בין qubits. עם זאת, הרעש על המכשירים יכול להשתנות ולהיסחף, והרעש הנלמד עשוי שלא להיות מדויק בנקודה שבה מתבצעת ההערכה. הדבר עלול לגרום לתוצאות לא מדויקות.
תחילת העבודה
התחבר באמצעות מפתח ה-API של IBM Quantum Platform, ובחר את פונקציית ה-TEM באופן הבא. (קטע קוד זה מניח שכבר שמרת את חשבונך בסביבה המקומית שלך.)
# Added by doQumentation — installs the packages this notebook needs if they are missing
import importlib.util
_needed = {"qiskit": "qiskit", "qiskit_ibm_catalog": "qiskit-ibm-catalog"}
_missing = [pip for module, pip in _needed.items()
if importlib.util.find_spec(module) is None]
# One at a time, so a package that fails to install does not block the others
for _pip in _missing:
%pip install -q {_pip}
if not _missing:
print("\u2713 All required packages are installed")
from qiskit_ibm_catalog import QiskitFunctionsCatalog
tem_function_name = "algorithmiq/tem"
catalog = QiskitFunctionsCatalog(channel="ibm_quantum_platform")
# verify that you have access to the function
catalog.list()
[QiskitFunction(qunova/hivqe-chemistry),
QiskitFunction(global-data-quantum/quantum-portfolio-optimizer),
QiskitFunction(algorithmiq/tem),
QiskitFunction(qedma/qesem),
QiskitFunction(multiverse/singularity),
QiskitFunction(ibm/circuit-function),
QiskitFunction(q-ctrl/optimization-solver),
QiskitFunction(colibritd/quick-pde),
QiskitFunction(q-ctrl/performance-management),
QiskitFunction(kipu-quantum/iskay-quantum-optimizer)]
# Load your function
tem = catalog.load(tem_function_name)
דוגמה
קטע הקוד הבא מציג דוגמה שבה TEM משמשת לחישוב ערכי הציפייה של אופרטור עבור Circuit קוונטי פשוט.
from qiskit import QuantumCircuit
from qiskit.quantum_info import SparsePauliOp
# Create a quantum circuit
qc = QuantumCircuit(3)
qc.u(0.4, 0.9, -0.3, 0)
qc.u(-0.4, 0.2, 1.3, 1)
qc.u(-1.2, -1.2, 0.3, 2)
for _ in range(2):
qc.barrier()
qc.cx(0, 1)
qc.cx(2, 1)
qc.barrier()
qc.u(0.4, 0.9, -0.3, 0)
qc.u(-0.4, 0.2, 1.3, 1)
qc.u(-1.2, -1.2, 0.3, 2)
# Define the observables
observable = SparsePauliOp("IYX", 1.0)
# Define the execution options
pub = (qc, [observable])
options = {"default_precision": 0.02}
# Define backend to use. TEM will choose the least-busy device
# reported by IBM if not specified
backend_name = "ibm_marrakesh"
# Run the TEM function (uses around three minutes of QPU time)
job = tem.run(pubs=[pub], backend_name=backend_name, options=options)
השתמש ב-Qiskit Serverless APIs כדי לבדוק את סטטוס עומס העבודה של פונקציית Qiskit שלך:
# Print the ID so you can use it later, if necessary
print(job.job_id)
print(job.status())
ea1d7802-b067-4cc9-af39-3c2402d22413
QUEUED
אתה יכול לקבל את התוצאות כך:
result = job.result()
evs = result[0].data.evs
print(evs[0])
-0.10628832892063486
ערך הציפייה עבור ה-Circuit ללא רעש עבור האופרטור הנתון אמור להיות סביב 0.18409094298943401.
קבלת תמיכה
פנה אל qiskit_ibm@algorithmiq.fi
הקפד לכלול את המידע הבא:
- מזהה עבודת פונקציית Qiskit (
qiskit-ibm-catalog),job.job_id - תיאור מפורט של הבעיה
- כל הודעות שגיאה או קודים רלוונטיים
- צעדים לשחזור הבעיה
הצעדים הבאים
-
בקר ב-תיעוד ה-API עבור פונקציית Qiskit זו.