Add "Automated spacetime Pauli checks with qiskit-paulice" tutorial#5312
Open
henryzou50 wants to merge 7 commits into
Open
Add "Automated spacetime Pauli checks with qiskit-paulice" tutorial#5312henryzou50 wants to merge 7 commits into
henryzou50 wants to merge 7 commits into
Conversation
Add a new Error detection tutorial that uses the qiskit-paulice package to automatically find and insert spacetime Pauli checks into Clifford circuits, then boosts sampled-distribution fidelity by postselecting on check syndromes. It conforms to the tutorial template (Learning outcomes, Prerequisites, Background, Requirements, Setup, small-scale simulator example with Steps 1-4, large-scale hardware example, Next steps, References) and is framed as an extension of the existing ghz-spacetime-codes tutorial, with bidirectional cross-links between the two. Changes: - docs/tutorials/automated-spacetime-pauli-checks.ipynb: new tutorial - docs/tutorials/_toc.json, docs/tutorials/index.mdx: register under "Error detection" (marked isNew) - qiskit_bot.yaml: add owner - scripts/config/notebook-testing.toml: exclude from notebook test runs - docs/tutorials/ghz-spacetime-codes.ipynb: add forward cross-link in Next steps - public/docs/images/tutorials/automated-spacetime-pauli-checks/: extracted plot outputs Note: this run was executed on ibm_marrakesh (Heron r2) and the postselection results are weaker than expected. The qubit layout is hand-picked for ibm_boston (Heron r3) connectivity, so the tutorial needs to be rerun on ibm_boston (or another suitable backend) to investigate the poor results and finalize the outputs, commentary, and usage estimate.
Contributor
|
One or more of the following people are relevant to this code:
|
|
Check out this pull request on See visual diffs & provide feedback on Jupyter Notebooks. Powered by ReviewNB |
Collaborator
Author
|
Note to self, will update this to replace old tutorial instead of adding a new one. |
Rework the "Low-overhead error detection with spacetime codes" tutorial (docs/tutorials/ghz-spacetime-codes.ipynb) in place rather than adding a separate notebook. The tutorial now uses the qiskit-paulice package to automatically find and insert spacetime Pauli checks into Clifford circuits and boosts sampled-distribution fidelity by postselecting on check syndromes, replacing the previous hand-built-check / GHZ-preparation content. The title and URL (/docs/tutorials/ghz-spacetime-codes) are unchanged. - docs/tutorials/ghz-spacetime-codes.ipynb: new qiskit-paulice content, conforming to the tutorial template (Learning outcomes, Prerequisites, Background, Requirements, Setup, small-scale simulator example with Steps 1-4, large-scale hardware example, Next steps, References) - docs/tutorials/automated-spacetime-pauli-checks.ipynb: removed (the short-lived separate notebook); its extracted images moved to the ghz-spacetime-codes image folder - public/docs/images/tutorials/error-detection: removed (old GHZ outputs) - docs/tutorials/_toc.json, docs/tutorials/index.mdx: drop the extra entry; mark the refreshed tutorial isNew - qiskit_bot.yaml: add @henryzou50 as an owner of ghz-spacetime-codes - scripts/config/notebook-testing.toml: drop the extra exclusion entry The committed outputs are from a run on ibm_marrakesh, where the hardcoded ibm_boston layout maps onto bad edges and produces an unrealistic noise model (~19% gate noise). This breaks the demonstration: postselection does not improve fidelity and the postselection rate collapses to under 1%. Rerun on ibm_boston (or another Heron r3 backend) to restore a sane noise model and regenerate the outputs, then reconcile the prose (currently "Heron r3 QPU ibm_boston") and the usage estimate with the backend actually used.
beckykd
previously approved these changes
Jul 1, 2026
Co-authored-by: Rebecca Dimock <66339736+beckykd@users.noreply.github.com>
Co-authored-by: Rebecca Dimock <66339736+beckykd@users.noreply.github.com>
Co-authored-by: Rebecca Dimock <66339736+beckykd@users.noreply.github.com>
Co-authored-by: Rebecca Dimock <66339736+beckykd@users.noreply.github.com>
Co-authored-by: Rebecca Dimock <66339736+beckykd@users.noreply.github.com>
Collaborator
Author
|
Thanks @beckykd for the review and suggestions! One note before this is fully ready, I am still currently waiting on the job results for ibm_boston, which should improve the results significantly. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a new Error detection tutorial that uses the
qiskit-paulicepackage toautomatically find and insert spacetime Pauli checks into Clifford circuits, then boosts the fidelity of a sampled distribution by postselecting on the check syndromes.
It started as the simulation-only guide in the qiskit-paulice repo (https://github.com/Qiskit/qiskit-paulice/blob/main/docs/guides/low_overhead_error_detection_using_spacetime_codes.ipynb) and has been reworked into a full tutorial: restructured to the tutorial template, rewritten in the IBM style (second person, active voice, no em dashes), and extended with a real-hardware section.
Relationship to the existing spacetime-codes tutorial
This sits alongside the existing
ghz-spacetime-codestutorial ("Low-overhead error detection with spacetime codes") rather than replacing it:ghz-spacetime-codesis the conceptual intro, which builds a coherent Paulicheck by hand, understand phase kickback, prepare a GHZ state.
add_pauli_checks), noise-model scoring, and Clifford-sampling fidelity boost via postselection.The two are cross-linked in both directions (Prerequisites/Next steps here, and a forward link added to the GHZ tutorial's Next steps).
Changes
docs/tutorials/automated-spacetime-pauli-checks.ipynb- new tutorialdocs/tutorials/_toc.json,docs/tutorials/index.mdx- register under Error detection (markedisNew)qiskit_bot.yaml- add ownerscripts/config/notebook-testing.toml- exclude from notebook test runsdocs/tutorials/ghz-spacetime-codes.ipynb- forward cross-link in Next stepspublic/docs/images/tutorials/automated-spacetime-pauli-checks/- extracted plot outputsNotes
The first run was executed on
ibm_marrakesh(Heron r2) and the postselection results are weaker than expected. The hardcoded qubit layout ([68, 69, 78, …]) is hand-picked foribm_boston(Heron r3) connectivity, so it does not map cleanly onto marrakesh.Before merge, I will need to rerun on
ibm_bostonto Investigate and fix the poor results, and then see how I can improve this for other backends.