Skip to main content
IBM Quantum Platform

Configurez votre compte « Compute Service » d' IBM Quantum

Avant d'utiliser le service de calcul « IBM Quantum® », vous devez initialiser (instancier) votre compte en soumettant (chargeant) vos identifiants. Ces identifiants peuvent être saisis manuellement à chaque fois que vous initialisez le service de calcul d' IBM Quantum, ou vous pouvez les enregistrer pour les réutiliser ultérieurement.

Remarques

Avant de commencer

Assurez-vous que vous avez bien suivi ces étapes :

  1. Assurez-vous d'être membre d'un compte IBM Cloud. Voir la section Configurer votre compte IBM Cloud pour les instructions.
  2. Créer (ou avoir accès à) au moins une instance. Procédez comme suit pour vérifier :
    1. Se connecter à IBM Quantum Platform.
    2. Assurez-vous que le bon compte et la bonne région sont sélectionnés dans le sélecteur de compte dans l'en-tête.
    3. Si une ou plusieurs instances s'affichent, vous avez terminé cette étape. Sinon, créez une instance.
  3. Assurez-vous de travailler dans un environnement Python actif, sur lequel l' Qiskit SDK est installé qiskit-ibm-runtime .
  4. Activez l'environnement virtuel Python et exécutez Python dans votre environnement virtuel.

Trouvez vos identifiants d'accès

  1. Trouvez votre clé API (également appelée jeton API). Dans le tableau de bord, créez votre clé API, puis copiez-la dans un endroit sûr afin de pouvoir l'utiliser pour l'authentification. Le jeton ne sera plus visible. Notez que vous pouvez utiliser une seule clé API pour vous connecter à n'importe quelle région.
  2. Facultatif : Recherchez l'instance que vous souhaitez utiliser dans la page Instances. Survolez son CRN, cliquez sur l'icône pour le copier, puis sauvegardez-le dans un endroit sûr afin de pouvoir l'utiliser pour identifier l'instance.

Connectez Qiskit à votre instance du service de calcul « IBM Quantum »

Note

Ces instructions sont conçues pour qiskit_ibm_runtime v0.42 ou une version ultérieure. Certaines fonctionnalités ne sont pas activées dans les versions antérieures de qiskit_ibm_runtime. Dans ces cas, vous devez toujours fournir une valeur pour channel, token, et instance, soit explicitement, soit par l'intermédiaire d'un compte enregistré.

Voici le code de base permettant de connecter Qiskit à votre instance Quantum Compute. Il existe toutefois plusieurs façons de personnaliser ces options QiskitRuntimeService , en fonction de vos besoins. Ces options sont décrites dans les sections ci-après.

from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService(channel=<channel>,
            # For `token`, use the 44-character API_KEY you created 
            # and saved from the IBM Quantum Platform dashboard
            token=<your-API_KEY>, 
            instance=<instance_CRN>)
Note

Le canal par défaut est ibm_quantum_platform. Comme il s'agit presque toujours du canal approprié, il n'est pas inclus dans les exemples.

Chemin d'accès rapide : spécifiez explicitement les informations d'identification

La méthode la plus rapide pour lancer une instance QiskitRuntimeService consiste à recourir à l'instanciation directe : vous devez fournir explicitement le jeton API (clé) et l' CRN (identifiant d'instance) à chaque fois que vous devez initialiser le service de calcul d' IBM Quantum. Si nécessaire, consultez la section « Retrouvez vos identifiants d'accès ».

from qiskit_ibm_runtime import QiskitRuntimeService

# For `token`, use the 44-character API_KEY you created 
# and saved from the IBM Quantum Platform dashboard
service = QiskitRuntimeService(token=<cloud_api_key>, 
            instance=<instance_CRN>)

Cette méthode est fiable mais peut s'avérer fastidieuse si vous devez charger les mêmes informations à plusieurs reprises. Pour éviter de charger plusieurs fois vos informations d'identification, si vous travaillez dans un environnement de confiance Python (par exemple sur un ordinateur portable ou un poste de travail personnel), vous pouvez utiliser des informations d'identification de compte sauvegardées, comme décrit dans la section suivante.

Bien que le paramètre d'entrée instance soit facultatif, il est recommandé de toujours fournir cette information, à moins que vous ne souhaitiez utiliser un seul service pour travailler avec plusieurs instances. Dans ce cas, voir la section sur la sélection automatique des instances.

Chemin d'accès rapide : spécifier les informations d'identification enregistrées

Si vous avez déjà enregistré vos informations d'identification, utilisez le code suivant pour appliquer vos informations d'identification par défaut. Pour obtenir des instructions sur la sauvegarde des identifiants, consultez la section Sauvegarder vos identifiants d'accès.

from qiskit_ibm_runtime import QiskitRuntimeService

# run every time you need the service
service = QiskitRuntimeService()
...

Si vous avez nommé un ou plusieurs jeux d'identifiants - par exemple, pour l'accès ouvert et l'accès premium - utilisez le code suivant pour utiliser un jeu d'identifiants nommés.

from qiskit_ibm_runtime import QiskitRuntimeService

# run every time you need the service
service = QiskitRuntimeService(name="<name_of_saved_credentials>")
...

Considérations lors du chargement des informations d'identification enregistrées

  • Si vous initialisez un service avec token et name, token est ignoré et les détails sauvegardés du compte name sont chargés.

    Dans l'exemple suivant, le service charge les détails à partir de account_A et n'utilise pas token_B:

    from qiskit_ibm_runtime import QiskitRuntimeService
    
    service = QiskitRuntimeService(token="token_B", name="account_A")
  • Si vous fournissez un name et un instance lors de l'initialisation d'un service, le service tente de charger le compte name et de se connecter au instance spécifié. En cas de conflit, un avertissement est émis.

    Dans l'exemple suivant, le service tente de charger les informations d'identification pour account_A et d'utiliser l'instance CRN_B - même si une instance différente est spécifiée dans account_A:

    from qiskit_ibm_runtime import QiskitRuntimeService
    
    service = QiskitRuntimeService(instance="CRN_B", name="account_A")
  • Le service tente de charger le compte enregistré par défaut uniquement si vous ne fournissez pas de token ou name lors de l'initialisation d'un service. Toutefois, si une adresse instance est fournie explicitement, le service tente de se connecter à cette instance en utilisant les informations d'identification par défaut. En cas de conflit, un avertissement est émis.

    Dans l'exemple suivant, le service tente de charger les informations d'identification par défaut et d'utiliser l'instance CRN_B - même si une instance différente est spécifiée dans le compte par défaut :

    from qiskit_ibm_runtime import QiskitRuntimeService
    
    service = QiskitRuntimeService(instance="CRN_B")
  • Si vous enregistrez plusieurs jeux d'identifiants sans en spécifier un lors de l'initialisation du service et qu'il n'y a pas de compte enregistré par défaut, c'est celui dont le nom vient en dernier dans l'ordre alphabétique qui est utilisé.

    Dans l'exemple suivant, l'utilisateur a sauvegardé les comptes "my_premium" et "my_open" mais n'a marqué aucun d'entre eux comme défaut. Ils ont ensuite initialisé le service en utilisant le code suivant. Dans ce cas, les informations d'identification "my_premium" sont utilisées :

    from qiskit_ibm_runtime import QiskitRuntimeService
    
    service = QiskitRuntimeService()
  • Si vous obtenez systématiquement l'erreur « 401 Non autorisé », vous essayez peut-être d'utiliser un jeton porteur au lieu de votre clé API.

Sélectionner automatiquement l'instance

Si vous fournissez un jeton mais pas de CRN d'instance lors de l'instanciation du service, QiskitRuntimeService s'authentifie auprès du compte identifié par le jeton et utilise la sélection automatique d'instance pour choisir l'instance la plus pertinente pour la tâche demandée. Si vous avez plusieurs instances disponibles dans votre compte, le service choisit automatiquement parmi les instances disponibles, en fonction de la ressource demandée et de ces options QiskitRuntimeService (si elles sont définies) : plans_preference, region, tags.

  • plans_preference: Les types de plans d'instance à privilégier. Par exemple, si [open] est introduit, seules les instances de plan ouvert sont disponibles. Les valeurs acceptées sont open, premium, pay-as-you-go, flex, et on-prem. Si plans_preference n'est pas spécifié, les plans gratuits sont prioritaires sur les plans payants.
  • region: La région de l'instance. Les valeurs acceptées sont us-east et eu-de.
  • tags: Les étiquettes de l'instance. Accepte une liste de chaînes de noms de balises.
Note

Vous pouvez configurer vos informations d'identification enregistrées pour sélectionner automatiquement une instance.

L'instance est trouvée et utilisée dans cet ordre :

  1. Si votre compte n'a accès qu'à une seule instance, celle-ci est sélectionnée par défaut.
  2. Si des informations d'identification enregistrées sont utilisées et qu'une instance a été spécifiée avec ces informations, cette instance est utilisée. Voir Considérations lors du chargement des informations d'identification enregistrées.
  3. Si votre compte comporte plusieurs instances pouvant accéder à la QPU demandée, le système utilise les préférences de forfait que vous avez définies pour choisir un forfait et une instance. Pour les versions v0.42qiskit-ibm-runtime et ultérieures, les formules gratuites sont prioritaires par défaut.
  4. Si votre compte a accès à plusieurs instances mais qu'une seule peut accéder à la QPU demandée, l'instance qui y a accès est sélectionnée. Si cette instance n'est pas associée à un plan gratuit, un coût sera encouru.

Exemples

Dans cet exemple, le service recherche toutes les instances disponibles pour le compte afin de trouver celles qui peuvent accéder au backend spécifié :

service = QiskitRuntimeService(token=<your-API_KEY>)

Dans cet exemple, le service recherche toutes les instances disponibles pour le compte dans la région de l'UE afin de trouver celles qui peuvent accéder au backend spécifié :

service = QiskitRuntimeService(token=<your-API_KEY>, region="eu-de")

Dans cet exemple, le service recherche toutes les instances disponibles pour le compte et marquées comme services pour trouver celles qui peuvent accéder au backend spécifié :

service = QiskitRuntimeService(token=<your-API_KEY>, tags=['services'])

Dans cet exemple, le service recherche toutes les instances premium et ouvertes disponibles pour le compte afin de trouver celles qui peuvent accéder au backend spécifié. Si un backend fait partie à la fois d'une instance Premium et d'une instance Open Plan, l'instance Premium Plan est prioritaire car premium est spécifié en premier dans plans_preference.

service = QiskitRuntimeService(token=<your-API_KEY>, 
    plans_preference=['premium', 'open'])

Déterminer quelle instance a été choisie

L'instance sélectionnée est renvoyée sous forme d'avertissement. En outre, vous pouvez exécuter service.active_instance() pour déterminer l'instance active.

Tests en milieu local avec qiskit-ibm-runtime

La classe QiskitRuntimeService peut être initialisée avec channel=local pour effectuer une simulation locale. Dans ce cas, l'authentification n'est pas requise et il n'est pas nécessaire de fournir des valeurs pour token ou instance. Il n'est donc pas recommandé d'enregistrer un compte local. Au lieu de cela, vous pouvez procéder à une instanciation directe :

from qiskit_ibm_runtime import QiskitRuntimeService

# Initialize for local testing

service = QiskitRuntimeService(channel="local")

Etapes suivantes

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.