-
Notifications
You must be signed in to change notification settings - Fork 1k
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
v0.3 API + debiasing #6077
v0.3 API + debiasing #6077
Conversation
This new version of the API separates job status and metadata from actual results into two different endpoints. v0.3 also includes support for error_mitigation settings like symmetrization as described in https://arxiv.org/pdf/2301.07233.pdf Because of that: - added a new error_mitigation parameter on job submission so users can configure it - added a new aggregation parameter on results that would allow getting results aggregated under the two different methods described in the paper. Averaging and Plurality voting
e017a25
to
11853ab
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does anything need to change in the documentation? Such as here:
cirq-ionq/cirq_ionq/job.py
Outdated
@@ -65,6 +65,8 @@ class Job: | |||
'data associated with it beyond an id and a status.', | |||
) | |||
|
|||
SUPPORTED_AGGREGATIONS = {'average', 'plurality'} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we document these somewhere? Maybe lower down on line 186?
cirq-ionq/cirq_ionq/service.py
Outdated
@@ -100,12 +101,15 @@ def run( | |||
seed: If the target is `simulation` the seed for generating results. If None, this | |||
will be `np.random`, if an int, will be `np.random.RandomState(int)`, otherwise | |||
must be a modulate similar to `np.random`. | |||
error_mitigation: error mitigation settings |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This requires more explanation. What are the keys and the values of this dictionary?
cirq-ionq/cirq_ionq/service.py
Outdated
@@ -141,14 +146,15 @@ def create_job( | |||
repetitions: The number of times to repeat the circuit. Defaults to 100. | |||
name: An optional name for the created job. Different from the `job_id`. | |||
target: Where to run the job. Can be 'qpu' or 'simulator'. | |||
error_mitigation: Error mitigation settings |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same here, or reference the other setting.
I included some details about the new parameters |
thanks for the help @dstrain115 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me. Just a few comments about the doc strings.
Great updated those and ensured tests are accurate :) |
Head branch was pushed to by a user without write access
993a6d0
to
f7907fe
Compare
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## master #6077 +/- ##
========================================
Coverage 97.87% 97.88%
========================================
Files 1106 1106
Lines 95589 95710 +121
========================================
+ Hits 93561 93683 +122
+ Misses 2028 2027 -1
☔ View full report in Codecov by Sentry. |
@tanujkhattar i made an additional pr to update tests and it disabled auto-merge, can that be resolved? |
This new version of the API separates job status and metadata from actual results into two different endpoints.
v0.3 also includes support for error_mitigation settings like symmetrization as described in https://arxiv.org/pdf/2301.07233.pdf
This includes:
continues #6007