Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support noise models #89

Open
speller26 opened this issue May 23, 2023 · 12 comments
Open

Support noise models #89

speller26 opened this issue May 23, 2023 · 12 comments
Labels
enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed unitaryhack

Comments

@speller26
Copy link
Collaborator

speller26 commented May 23, 2023

Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.

In Amazon Braket, you can add a Braket noise models to the local or on-demand density-matrix simulators. Analogously, in Qiskit, it is possible to add a Qiskit noise model to a simulator device so that the noise model is applied to any circuit run on the device.

We request a feature that, with qiskit-braket-provider, users can build circuits and a noise model with Qiskit and perform noise simulation with Braket backends.

What is the expected behavior?

The Braket backend from qiskit-braket-provider should be able to take Qiskit circuits and Qiskit noise models to run noise simulation. Possible implementation include, but not limited to, translating Qiskit noise model to Braket noise model, or adding noise operation directly to the Braket circuit when sending to Braket backends.

Acceptance criteria

  • Adding a noise_model kwarg to the Braket provider's get_backend method that attaches a noise model to be applied to every circuit run
  • Adding noise_model properties to the Braket backends that allow users to inspect the noise model.
dm1 = provider.get_backend("DM1", noise_model=noise_bit_flip)

# Run noisy circuit
circuit = ...  # noiseless circuit
task = dm1.run(circuit, shots=100)  # circuit run with noise model
@rum1887
Copy link

rum1887 commented May 27, 2023

Do other AWS backends support noise model input from Qiskit?

@ruijterj
Copy link

Hi , can I work on this issue ?

@christianbmadsen
Copy link
Collaborator

Do other AWS backends support noise model input from Qiskit?

No. Today, Braket backends do not support Qiksit noise models. The Braket noise simulators/backends are braket_dm and DM1.

@rum1887 did you already start work on this issue? If not we will assign to @ruijterj.

@rum1887
Copy link

rum1887 commented May 30, 2023

Do other AWS backends support noise model input from Qiskit?

No. Today, Braket backends do not support Qiksit noise models. The Braket noise simulators/backends are braket_dm and DM1.

@rum1887 did you already start work on this issue? If not we will assign to @ruijterj.

I have not started working yet, I was working out the details of this issue. Can you assign both of us?

@s-aldaihan
Copy link

Hello, I am interested in working on this issue, is it still open?

@JordanAWS
Copy link
Collaborator

@rum1887 , @ruijterj , @s-aldaihan

I've assigned the issue to all of you. Whoever submits a working PR first (including tests) will win the bounty :)

@JordanAWS
Copy link
Collaborator

Alternatively, you are also welcome to all work together and split the bounty! Just let me know what you prefer.

@s-aldaihan
Copy link

Thanks@JordanAWS.
@rum1887 @ruijterj I am happy to work together if you are interested!

@JordanAWS
Copy link
Collaborator

Hope things are going well for the team! Does anyone in need support?

@Newtech66
Copy link

Some questions:

  • DM1 and braket_dm should accept the noise model (if provided) and if other backends are provided it should issue an error saying the backend does not support noise models?
  • If the above backends do not support Qiskit noise models then how should it work? Is there a way to convert Qiskit noise models to Braket noise models and then use that to run the circuit?

@JordanAWS
Copy link
Collaborator

  • Apologies for missing this! Yes, DM1 and the local dm simulator are the only Braket backends which should accept the noise model.
  • The point of this project is to implement a translation of Qiskit error models into a format Braket can understand.

I know we were late in providing feedback on this issue, so although you would need to submit a working PR by the end of today to be eligible for the UnitaryHack bounty, we can offer AWS credits as a alternative if you wanted to keep working on this issue after the end of the competition :)

@kshitijc kshitijc added the help wanted Extra attention is needed label Aug 17, 2023
@speller26 speller26 added the enhancement New feature or request label May 3, 2024
@yitchen-tim
Copy link
Collaborator

yitchen-tim commented May 10, 2024

The set_noise_model method from this PR amazon-braket/amazon-braket-sdk-python#893 may help with the implementation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed unitaryhack
Projects
None yet
Development

Successfully merging a pull request may close this issue.

10 participants