Modèle d'exécution dirigée (bêta)
Tous les composants du modèle d'exécution dirigée sont actuellement en version bêta et peuvent ne pas être stables. Nous vous invitons à les tester et à nous faire part de vos commentaires en ouvrant un dossier dans les dépôts Samplomatic ou Qiskit Runtime GitHub dans les dépôts Samplomatic ou
Les interfaces primitives de l'échantillonneur et de l'estimateur fournissent une abstraction de plus haut niveau permettant aux développeurs d'algorithmes de se concentrer davantage sur l'innovation et moins sur la conversion des données. Cependant, ils sont moins adaptés aux scientifiques de l'information quantique, qui ont besoin de plus de contrôle et de flexibilité pour leurs expériences à l'échelle de l'utilitaire. Le modèle d'exécution dirigée, actuellement en version bêta, répond à ce besoin. Ce modèle d'exécution fournit les ingrédients nécessaires pour capturer les intentions de conception du côté client, et déplace la génération coûteuse de variantes de circuits du côté serveur, afin que vous puissiez affiner l'atténuation des erreurs et d'autres techniques sans sacrifier les performances. Ce modèle explicite et composable facilite l'expérimentation de nouvelles techniques, la reproduction des résultats et le partage des méthodes.
Dans sa version bêta, le modèle d'exécution dirigée se concentre sur le contrôle des techniques intégrées à l'échantillonneur et à l'estimateur existants, notamment le tourbillon de Pauli, l'apprentissage et l'injection de modèles de bruit et les changements de base. La prise en charge d'autres capacités sera ajoutée progressivement.
Flux de travaux
L'un des principaux objectifs du modèle d'exécution dirigée est de fournir un moyen modulaire d'appliquer des méthodes d'atténuation des erreurs. Par exemple, vous pouvez définir les couches du circuit à atténuer ou ajuster les taux de bruit injectés dans le circuit.
Pour appliquer l'atténuation des erreurs à un circuit dans le cadre du système, votre flux de travail comprendra généralement les étapes suivantes (les outils mentionnés ici sont décrits plus en détail dans la section suivante ) :
-
Regrouper les instructions dans des cases et les annoter. Les annotations capturent la transformation voulue sans générer les variantes de circuit.
Si nécessaire : découvrez les modèles de bruit des différentes couches grâce à la nouvelle fonctionnalité « NoiseLearnerV3 ».
-
Construisez le circuit modèle et l'échantillonx du circuit encadré.
-
Exécutez le circuit modèle et le samplex à l'aide de la primitive Executor, qui générera et exécutera les variantes du circuit conformément aux instructions.
-
Résultats de l'exécution du post-traitement. Par exemple, vous pouvez appliquer une post-sélection ou extrapoler des valeurs attendues atténuées à partir des résultats d'exécution.
Outils pour le modèle d'exécution dirigée
Les outils suivants peuvent être utilisés conjointement pour mettre en œuvre une technique d'atténuation des erreurs dans le modèle d'exécution dirigée.
Samplomatic
Samplomatic est une nouvelle bibliothèque open-source qui prend en charge les randomisations d'échantillonnage personnalisées. Il utilise la construction de boîtes pour raisonner sur des collections d'opérations de circuit qui devraient être traitées comme ayant un contexte de bruit stable, et utilise des annotations sur les boîtes pour vous permettre de déclarer et de configurer des intentions. Par exemple, vous pouvez stratifier votre circuit en boîtes, ajouter une annotation de tournoiement à chaque boîte et spécifier le groupe de tournoiement à utiliser, comme le montre la figure suivante :

Un circuit comportant des cases annotées peut alors être utilisé pour générer un circuit modèle et un samplex. Le circuit de modèle de sortie est un circuit paramétré qui sera exécuté sans autre modification (si ce n'est l'attribution de valeurs différentes aux paramètres). Le « samplex », qui constitue le type principal de la bibliothèque Samplomatic, représente une distribution de probabilité paramétrique sur les paramètres du circuit modèle et d'autres champs à valeurs matricielles. Ces champs peuvent être utilisés pour traiter les données recueillies lors de l'exécution du circuit de modèle lié. En d'autres termes, le circuit modèle et le samplex indiquent ensemble à la primitive Executor quels paramètres générer et quels circuits liés exécuter. Comme ces deux structures sont créées côté client, vous pouvez procéder à une inspection et à un échantillonnage locaux afin de vérifier les résultats avant de les envoyer pour exécution matérielle.
Pour simplifier le processus de génération de boîtes annotées, la bibliothèque Samplomatic fournit également des passes de transpilation qui regroupent automatiquement les instructions de circuit dans des boîtes annotées, sur la base des stratégies que vous fournissez.
Pour en savoir plus sur Samplomatic, consultez les guides et la documentation de référence de l'API. N'hésitez pas à faire part de vos commentaires et à signaler les bogues dans son GitHub dépôt.
Primitive d'exécution
« Executor » est une nouvelle primitive d' IBM Quantum qui prend en entrée le couple (circuit modèle, samplex), génère et associe des valeurs de paramètres en fonction du samplex, exécute les circuits associés sur le matériel, puis renvoie les résultats d'exécution et les métadonnées. Il suit les instructions de la paire d'entrées et ne prend aucune décision implicite à votre place, ce qui garantit un processus à la fois transparent et performant.
NoiseLearnerV3
À l'instar de la version actuelle NoiseLearner, ce programme utilitaire qiskit-ibm-runtime renvoie le modèle de bruit de Pauli-Lindblad clairsemé utilisé dans de nombreuses méthodes d'atténuation des erreurs, notamment PEC, PEA et PNA. Dans la version originale NoiseLearner, on lui transmet une liste de circuits, et le programme organise ces circuits en couches, puis renvoie le modèle de bruit pour chaque couche distincte. NoiseLearnerV3, En revanche, cela vous permet de contrôler la manière dont vous souhaitez structurer vos circuits, et le programme se contente de prendre en entrée une liste d'instructions de circuit encadrées (par exemple, des couches distinctes).
NoiseLearnerV3 prend également en charge l'apprentissage du bruit de mesure. Pour chaque ensemble d'instructions de la liste d'entrée, il exécute le protocole d'apprentissage de Pauli-Lindblad si cet ensemble contient des portes à un et deux qubits, et le protocole TREX s'il contient des mesures.
NoiseLearnerV3 a été publié avec qiskit-ibm-runtimev0.47.0. Pour en savoir plus, consultez le guide d'aide à l'apprentissage de Noise et reportez-vous à la documentation de référence de son API.
Etapes suivantes
- Consultez les deux modules complémentaires Qiskit, Shaded lightcones et Propagated noise absorption, qui s'appuient sur ce modèle d'exécution.