Mitigate a global noise channel by propagating an observable through the anti-noise.
Project description
Qiskit addon: Propagated noise absorption (PNA)
PNA is a technique for mitigating errors in observable expectation values by "absorbing" the inverses of the learned noise channels into the observable using Pauli propagation. Each Pauli noise generator in the noise model is classically propagated to the end of the circuit and applied to the observable, resulting in a new observable that when measured on a QPU, mitigates the learned gate noise. Check out the tutorial to see how it works!
Overview
Executing entangling gates on modern QPUs results in a substantial amount of noise. Until fully fault tolerant devices are available, ideal entangling gates, $\mathcal{U}$, will not be available. They will instead be affected by some noise channel, $\Lambda$.
It is possible to learn and efficiently characterize this gate noise as a Pauli-Lindblad model, and as shown in probabilistic error cancellation (PEC), we can mitigate the error by implementing the anti-noise, $\Lambda^{-1}$, with a QPU sampling protocol [1]. Other techniques, such as tensor-network error mitigation (TEM), implement the inverse noise channel as a classical post-processing step [2].
Like TEM, PNA implements the inverse noise channel in a classical processing step. While TEM uses tensor networks to describe and apply the noise-mitigating map to a set of informationally complete measurements, PNA uses Pauli propagation to propagate the observable, $O$, through the inverse noise channel. This results in a new observable, $\tilde{O}$, that when measured against the noisy state, mitigates the learned noise.
Sources of bias
-
This implementation propagates each Pauli error generator within each anti-noise channel, $\Lambda^{-1}_i$, to the end of the circuit. As each anti-noise generator is propagated forward through the circuit under the action of $N$ Pauli rotation gates of an $M$-qubit circuit, the number of terms will grow as $O(2^N)$ towards a maximum of $4^M$ unique Pauli components. To control the computational cost, terms with small coefficients must be truncated, which results in some error in the evolved anti-noise channel.
-
In addition to the truncation of the evolved anti-noise channel, $\Lambda^{-1}$, $\tilde{O}$ is also truncated as it is propagated through $\Lambda^{-1}$. This is also a source of bias in the final mitigated expectation value.
-
While letting $\tilde{O}$ grow larger during propagation will increase its accuracy, measuring it requires taking many more shots on the QPU. Typically this increases the coefficients of the original Pauli terms in $O$, along with creating many new Pauli terms with smaller coefficients. Both the rescaling of the original coefficients and the creation of new terms can increase sampling overhead. In practice, we truncate once more by measuring only the largest terms in $\tilde{O}$
Documentation
All documentation is available at https://qiskit.github.io/qiskit-addon-pna/.
Installation
We encourage installing this package via pip, when possible:
pip install 'qiskit-addon-pna'
For more installation information refer to these installation instructions.
Deprecation Policy
We follow semantic versioning and are guided by the principles in Qiskit's deprecation policy. We may occasionally make breaking changes in order to improve the user experience. When possible, we will keep old interfaces and mark them as deprecated, as long as they can co-exist with the new ones. Each substantial improvement, breaking change, or deprecation will be documented in the release notes.
Contributing
The source code is available on GitHub.
The developer guide is located at CONTRIBUTING.md in the root of this project's repository. By participating, you are expected to uphold Qiskit's code of conduct.
License
References
[1] Ewout van den Berg, et al., Probabilistic error cancellation with sparse Pauli-Lindblad models on noisy quantum processors, arXiv:2201.09866 [quant-ph].
[2] Sergei Filippov, et al., Scalable tensor-network error mitigation for near-term quantum computing, arXiv:2307.11740 [quant-ph].
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file qiskit_addon_pna-0.1.0.tar.gz.
File metadata
- Download URL: qiskit_addon_pna-0.1.0.tar.gz
- Upload date:
- Size: 1.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d96bb808dcc6f4ab0df07415bb50779daa11de0a5d5c1ffda46fcc0b8782d9e5
|
|
| MD5 |
2b9738da89122ef798aebd965af41f7d
|
|
| BLAKE2b-256 |
3335da0e78d98cfa5480fb1978bc1c8e76276186a23977d41a78804b0415e35b
|
Provenance
The following attestation bundles were made for qiskit_addon_pna-0.1.0.tar.gz:
Publisher:
release.yml on Qiskit/qiskit-addon-pna
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
qiskit_addon_pna-0.1.0.tar.gz -
Subject digest:
d96bb808dcc6f4ab0df07415bb50779daa11de0a5d5c1ffda46fcc0b8782d9e5 - Sigstore transparency entry: 699845744
- Sigstore integration time:
-
Permalink:
Qiskit/qiskit-addon-pna@f385fbf950fed2ecdcc0ac90095f355b4129d454 -
Branch / Tag:
refs/tags/0.1.0 - Owner: https://github.com/Qiskit
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f385fbf950fed2ecdcc0ac90095f355b4129d454 -
Trigger Event:
push
-
Statement type:
File details
Details for the file qiskit_addon_pna-0.1.0-py3-none-any.whl.
File metadata
- Download URL: qiskit_addon_pna-0.1.0-py3-none-any.whl
- Upload date:
- Size: 20.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
13f589edfc014955f339c732c0cbc3aec8407fd5e3d170b99db4cb691d9c7f7d
|
|
| MD5 |
8b90cbb6320601d9acf5b73bd2bbb877
|
|
| BLAKE2b-256 |
ece8e45ebe0811c2165612ed44035d8a82f75ca425f1fbc717dc3c6d4af6a9fa
|
Provenance
The following attestation bundles were made for qiskit_addon_pna-0.1.0-py3-none-any.whl:
Publisher:
release.yml on Qiskit/qiskit-addon-pna
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
qiskit_addon_pna-0.1.0-py3-none-any.whl -
Subject digest:
13f589edfc014955f339c732c0cbc3aec8407fd5e3d170b99db4cb691d9c7f7d - Sigstore transparency entry: 699845749
- Sigstore integration time:
-
Permalink:
Qiskit/qiskit-addon-pna@f385fbf950fed2ecdcc0ac90095f355b4129d454 -
Branch / Tag:
refs/tags/0.1.0 - Owner: https://github.com/Qiskit
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f385fbf950fed2ecdcc0ac90095f355b4129d454 -
Trigger Event:
push
-
Statement type: