Skip to main content
IBM Quantum Platform

Algorithmiq – API-Referenz zur Fehlerminderung bei Tensor-Netzwerken

  • Qiskit Functions

    Qiskit Functions — von Partnerorganisationen entwickelte vorgefertigte Tools — abstrahieren Teile des Softwareentwicklungs-Workflows, um die Erforschung von Algorithmen und die Anwendungsentwicklung im großen Maßstab zu vereinfachen und zu beschleunigen. Klicken Sie hier, um die Anleitung zu dieser Qiskit-Funktion anzuzeigen.


Eingaben

Caution

TEM weist derzeit folgende Einschränkungen auf:

  • Parametrisierte Schaltungen werden nicht unterstützt. Das Argument „parameters“ sollte auf gesetzt None werden, wenn die Genauigkeit angegeben wird. Diese Einschränkung wird in zukünftigen Versionen aufgehoben.
  • Es werden nur Schaltungen ohne Schleifen unterstützt. Diese Einschränkung wird in zukünftigen Versionen aufgehoben.
  • Nicht-unitäre Operatoren wie „reset“, „measure“ und alle Formen der Kontrollflusssteuerung werden nicht unterstützt. Die Unterstützung für das Zurücksetzen wird in kommenden Versionen hinzugefügt.

Parameter

pubs

Typ: Iterable[EstimatorPubLike]

Eine Iterable aus Objekten vom Typ „ PUB “ (primitive vereinheitlichte Blöcke), wie beispielsweise Tupel (circuit, observables) oder (circuit, observables, parameters, precision). Weitere Informationen finden Sie in der Übersicht über PUBs. Wird ein Nicht-ISA-Ausdruck übergeben, wird er mit optimalen Einstellungen transpiliert. Wird eine ISA-Schaltung durchlaufen, wird sie nicht transpiliert; in diesem Fall muss die Beobachtungsgröße auf der gesamten QPU definiert sein.

  • Erforderlich: Ja
  • Beispiel: (circuit, observables)

backend_name

Typ: str

Standardwert: Least busy backend

Name des Backends, an das die Abfrage gesendet werden soll

  • Erforderlich: Nein
  • Beispiel: "ibm_fez"

Optionen

Typ: dict

Die Eingabeparameter für diese Funktion werden als verschachteltes Wörterbuch angegeben. Hier finden Sie die vollständige Liste der Optionen und ihrer Standardwerte.

  • Erforderlich: Nein
  • Beispiel: {"max_bond_dimension": 100}

Ein Wörterbuch mit den erweiterten Optionen für das TEM. Das Wörterbuch kann die Schlüssel aus der folgenden Liste enthalten. Wenn eine der Optionen nicht angegeben wird, wird der in der Liste aufgeführte Standardwert verwendet. Die Standardwerte eignen sich gut für den typischen Einsatz von TEM.

Optionsliste

tem_max_bond_dimension

Typ: int

Standardwert: 500

Die maximale Bindungsdimension, die für die Tensornetzwerke verwendet werden soll.

tem_compression_cutoff

Typ: float

Standardwert: 1e-16

Der für die Tensornetzwerke zu verwendende Schwellenwert.

compute_shadows_bias_from_observable

Typ: bool

Standardwert: False

Ein boolescher Flag, der angibt, ob die Voreinstellung für das Messprotokoll für klassische Schatten an die Observable „ PUB “ angepasst werden soll oder nicht. Ist der Wert „False“, wird das klassische Schattenprotokoll (gleiche Wahrscheinlichkeit für die Messung von Z, X, Y) verwendet.

shadows_bias

Typ: np.ndarray

Standardwert: np.array([1 / 3, 1 / 3, 1 / 3])

Der für das randomisierte klassische Schattenmessprotokoll zu verwendende Bias, ein Array vom Typ „ 1d “ bzw. „ 2d “ mit der Größe 3 bzw. der Form (num_qubits, 3). Die Reihenfolge lautet ZXY.

max_execution_time

Typ: int or None

Standardwert: None

Die maximale Ausführungszeit auf der QPU in Sekunden. Wenn die Laufzeit diesen Wert überschreitet, wird der Auftrag abgebrochen. In Nonediesem Fall gilt ein vom „ IBM Quantum Compute Service“ festgelegtes Standardlimit.

num_randomizations

Typ: int

Standardwert: 32

Die Anzahl der Randomisierungen, die für das Noise Learning und das Gate Twirling verwendet werden sollen.

max_layers_to_learn

Typ: int

Standardwert: True

Die maximale Anzahl der zu trainierenden eindeutigen Schichten.

mitigate_readout_error

Typ: bool

Standardwert: True

Ein boolescher Flag, der angibt, ob eine Fehlerbehebung beim Auslesen durchgeführt werden soll oder nicht.

num_readout_calibration_shots

Typ: int

Standardwert: 10000

Die Anzahl der Aufnahmen, die zur Reduzierung von Auslesefehlern verwendet werden sollen.

default_precision

Typ: float

Standardwert: 0.02

Die Standardgenauigkeit, die für die PUBs verwendet wird, für die keine Genauigkeit angegeben ist.

seed

Typ: int or None

Standardwert: None

Legen Sie den Startwert des Zufallszahlengenerators fest, um die Reproduzierbarkeit zu gewährleisten. Falls Noneja, setze den Startwert nicht.

shots_per_randomization

Typ: int

Standardwert: 128

Die Gesamtzahl der zu verwendenden Versuche pro Zufallslernzyklus.

layer_pair_depths

Typ: list[int]

Standardwert: [0, 1, 2, 4, 16, 32]

Die Schaltungstiefen (gemessen in der Anzahl der Paare), die in den Lernexperimenten verwendet werden sollen.

layer_noise_model

Typ: NoiseLearnerResult, Sequence[LayerError], or None

Standardwert: None

Das Ergebnis des Precomputed-Noise-Learners aus einem zuvor durchgeführten Durchlauf.

private

Typ: bool

Standardwert: False

Ob die QPU-Jobs privat sein sollen. Wenn Sie diesen Wert auf „True“ setzen, werden nachfolgende Downloads der Versuchsdaten verhindert; dies wird für vertrauliche Aufträge empfohlen.

tem_enforce_linear_circuit

Typ: bool

Standardwert: False

Ob die Schaltung in einer linearen Topologie ausgeführt werden soll.

Genauigkeit

Die Genauigkeit der Ergebnisse kann auf drei Arten abgefragt werden. Die Genauigkeit kann im PUB übergeben werden und gilt dann ausschließlich für diese PUB. Andernfalls kann default_precision ein wie oben beschrieben in den Optionen übergeben werden. Schließlich kann für fortgeschrittene Anwendungen die spezifische Anzahl der Schüsse pro PUB über die Optionen mit default_shotsübergeben werden, wodurch alle anderen Präzisionsoptionen außer Kraft gesetzt werden.

Wird ein Wert für „a“ default_precision oder „per- PUB “ übergeben, wird die Anzahl der Iterationen so geschätzt, dass die gewünschte Genauigkeit erreicht wird. Dies erfolgt auf der Grundlage der gewählten QPU-Parameter und Fehlerraten wie folgt:

  • Berechnung des Fehlers pro geschichtetem Gatter (EPLG), der das durch Schichten von Zwei-Qubit-Gattern verursachte Rauschen quantifiziert. Wenn Backend-Eigenschaften verfügbar sind, wird die entsprechende Genauigkeitsstufe ermittelt; andernfalls wird ein Standardwert verwendet.
  • Die Anzahl der Zwei-Qubit-Gatter im Schaltkreis zählen, da diese in der Regel die Hauptursache für Rauschen sind.
  • Berechnung eines Rauschvorfaktors auf der Grundlage der Anzahl der Zwei-Qubit-Gatter und des EPLG.
  • Anhand der gewünschten Genauigkeit schätzt das Verfahren die erforderliche Anzahl von Messungen, indem es diese mit dem Rauschvorfaktor und dem Kehrwert des Quadrats der Genauigkeit skaliert.

Dieser Ansatz stellt sicher, dass die Anzahl der Schüsse ausreicht, um die gewünschte Präzision zu erreichen, wobei sowohl die Schaltungsstruktur als auch die Rauscheigenschaften des Backends berücksichtigt werden.


Ausgaben

Ein Qiskit, das das PrimitiveResults TEM-korrigierte Ergebnis enthält. Das Ergebnis für jeden „ PUB “ wird als zurückgegeben, das die PubResult folgenden Felder enthält:

Daten

Typ: Databin

Ein Qiskit, DataBin das die TEM-korrigierte Observable und deren Standardfehler enthält. Der „ DataBin “ enthält die folgenden Felder:

  • evs: Der durch TEM korrigierte Messwert.
  • stds: Der Standardfehler der durch TEM korrigierten Observable.

Metadaten

Typ: dict

Ein Wörterbuch mit weiteren Ergebnissen. Das Wörterbuch enthält die folgenden Einträge:

  • "evs_non_mitigated": Der beobachtbare Wert ohne Fehlerkompensation.
  • "stds_non_mitigated": Der Standardfehler des Ergebnisses ohne Fehlerminderung.
  • "evs_mitigated_no_readout_mitigation": Der Messwert mit Fehlerkompensation, jedoch ohne Kompensation von Ablesefehlern.
  • "stds_mitigated_no_readout_mitigation": Der Standardfehler des Ergebnisses unter Fehlerminderung, jedoch ohne Minderung von Auslesefehlern.
  • "evs_non_mitigated_with_readout_mitigation": Der Messwert ohne Fehlerkompensation, jedoch mit Kompensation des Ablesefehlers.
  • "stds_non_mitigated_with_readout_mitigation": Der Standardfehler des Ergebnisses ohne Fehlerkompensation, jedoch mit Kompensation von Auslesefehlern.
  • "resource_usage": Ein Verzeichnis, das die vom TEM genutzten Zeitressourcen enthält.
War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.