
Un guide pratique pour choisir le bon SDK Quantum
quiconque essaie de se lancer dans l’informatique quantique ou de l’utiliser pour créer quelque chose profite de l’abondance de SDK disponibles. La mission de chaque grande entreprise et nouvelle startup est de créer un package Python qui peut être utilisé soit pour apprendre les principes fondamentaux de l’informatique quantique, soit pour développer un algorithme. Mais en tant que personne qui aime à la fois les logiciels et le quantique, j’aime installer plusieurs packages juste pour les essayer et conseiller aux gens celui à utiliser pour ce qu’ils veulent faire.
Vous recherchez un tutoriel, vous installez quelque chose, puis autre chose. Avant de vous en rendre compte, vous avez Qiskit, Cirq, PennyLane et peut-être même quelque chose d’obscur dans votre environnement… et vous n’avez aucune idée réelle de celui que vous êtes censé utiliser pour créer l’application que vous aviez en tête lorsque vous avez commencé. J’écris cet article pour vous faire gagner du temps.
La vérité est (que vous savez peut-être déjà) que vous n’avez pas besoin de tous. Vous n’en avez probablement même pas besoin de deux.
L’astuce n’est pas de choisir le « meilleur » SDK (qui, je dirais, n’existe pas, pas encore en tout cas), mais de choisir celui qui convient à ce que vous essayez de faire.
Les SDK Quantum ne sont pas interchangeables ; ils sont construits avec des priorités très différentes : certains sont axés d’abord sur l’éducation, d’autres sur le matériel, d’autres encore sur l’apprentissage automatique et certains sont des terrains de jeu pour la recherche.
Une fois que vous voyez cela et que vous avez un objectif clair en tête, l’écosystème devient beaucoup moins déroutant. Dans cet article, nous discuterons des 4 SDK les plus utilisés et aborderons généralement d’autres outils qui peuvent ne pas être aussi couramment utilisés.
Alors, allons-y…
Qiskit : le point de départ « par défaut »
Si vous ne savez pas par où commencer, commencez ici. Si vous recherchez même l’expression « informatique quantique » sur Google, vous trouverez Qiskit dans la première page des résultats de recherche, voire dans les 3 premiers résultats !
Qiskit est devenu le point d’entrée de facto pour beaucoup de gens car il fait très bien certaines choses ! Il offre des ressources d’apprentissage propres, un accès à du matériel quantique réel et, plus important encore, un écosystème vaste et actif.
Qiskit ressemble à un environnement structuré. Vous définissez des circuits, vous les exécutez et vous obtenez des résultats qui reflètent la façon dont la plupart des gens apprennent l’informatique quantique. Et dans bien des cas, l’informatique.
Pour créer un circuit simple dans Qiskit, vous n’avez besoin que de quelques lignes de code :
Et juste comme ça, vous avez créé une superposition et l’avez mesurée.
Bien que Qiskit soit utile à utiliser pour l’enseignement et l’apprentissage, pour expérimenter avec de vrais appareils et des flux de travail basés sur des circuits standard, il présente encore des difficultés à bien des égards.
Étant donné que le but de la création de Qiskit est de fournir un cadre général pour l’informatique quantique, il est à la fois très général et assez vague, et parfois peu documenté, en particulier pour les nouvelles fonctions spécifiques aux applications. Par conséquent, cela peut sembler un peu lourd et ce n’est certainement pas idéal pour les flux de travail basés sur des dégradés ou lourds en ML.
PennyLane : conçu pour l’apprentissage automatique quantique
Maintenant, changeons de sujet. Si votre intérêt pour l’informatique quantique implique l’optimisation, les gradients ou l’apprentissage automatique, PennyLane appartient à une catégorie différente.
Il n’a pas été conçu comme un SDK à usage général. Il a été conçu spécifiquement pour les flux de travail hybrides quantiques-classiques.
La plupart des algorithmes quantiques à court terme ressemblent à ceci :
- Préparez un circuit quantique paramétré.
- Exécutez-le.
- Mesurer quelque chose.
- Introduisez cela dans un optimiseur classique.
- Répétez autant de fois que nécessaire pour obtenir les résultats souhaités.
C’est dans cette boucle que PennyLane brille.
Par exemple, considérons l’idée centrale de l’apprentissage automatique quantique : vous disposez d’un circuit quantique paramétré et vous pouvez l’optimiser à l’aide de gradients. Vous pouvez simplement le faire dans PennyLane comme suit :
Cette dernière ligne est la clé qui explique pourquoi l’utilisation de PennyLane rend les choses beaucoup plus faciles ici.
Donc, si vous souhaitez créer une application qui implique un apprentissage automatique quantique, des algorithmes variationnels ou une optimisation basée sur le gradient, PennyLane est la voie à suivre !
Maintenant, vous avez peut-être remarqué que le code de PennyLane n’est pas aussi simple et intuitif que celui de Qiskit ; c’est l’un des inconvénients de son utilisation. Il peut avoir une barrière à l’entrée légèrement plus élevée et il est moins centré sur le matériel que Qiskit.
Cirq : pour quand vous voulez plus de contrôle
Jusqu’à présent, nous avons Qiskit pour les applications générales, PennyLane pour QML, et maintenant nous avons Cirq. Cirq se trouve dans un espace intéressant.
Ce n’est pas aussi convivial pour les débutants que Qiskit, et il n’est pas aussi axé sur le ML que PennyLane. Au lieu de cela, il vous donne un contrôle de niveau inférieur sur les circuits et l’exécution. Cela le rend populaire pour le développement d’algorithmes, la recherche et la conception de circuits sensibles au matériel.
Cirq se sent plus proche du « métal ». Vous pensez plus explicitement aux qubits, aux portes et à la planification.
Par exemple, je peux reproduire le même circuit que nous avons construit auparavant avec Qiskit, en utilisant Cirq comme suit :
Pour moi, Cirq est souvent utilisé lorsque vous souhaitez un contrôle précis de votre circuit, devez maintenir des flux de travail de recherche ou souhaitez des définitions de circuits claires. Par conséquent, parce qu’il fournit ce contrôle matériel, sa courbe d’apprentissage est plus abrupte et son intégration moins structurée que Qiskit et PennyLane.
Il convient de noter que vous pouvez atteindre le même niveau de contrôle matériel avec Qiskit qu’avec Cirq, avec une courbe d’apprentissage moins profonde.
Amazon Braket : le terrain de jeu multi-matériel
Enfin, parlons de Braket ! Braket concerne moins la façon dont vous écrivez des circuits que l’endroit où vous les exécutez. Il vous donne accès à plusieurs fournisseurs de matériel quantique via une seule interface.
Différentes plates-formes matérielles se comportent différemment. Aujourd’hui, nous disposons de différentes modalités de qubits : les qubits supraconducteurs, les ions piégés et les qubits photoniques, pour n’en nommer que quelques-uns. Braket vous permet d’expérimenter ces éléments sans changer d’écosystème.
Ainsi, si vous souhaitez accéder au matériel entre fournisseurs, aux flux de travail basés sur le cloud ou pour exécuter des expérimentations, Braket est votre outil de choix. Cela dit, Braket est moins opiniâtre que les autres SDK et nécessite plus de contexte pour être utilisé efficacement.
Ceux que la plupart des gens oublient
C’est là que les choses deviennent intéressantes et plus étroites ! Voyons donc quelques exemples de différentes façons de gérer les technologies quantiques.
Océan D-Wave
Jusqu’à présent, nous n’avons discuté que de l’informatique quantique basée sur des portes ! Le SDK de D-Wave est conçu pour le recuit quantique, et non pour l’informatique basée sur des portes. Cela signifie : vous ne construisez pas de circuits, mais vous définissez des problèmes d’optimisation.
Strawberry Fields : informatique quantique photonique
La plupart des frameworks supposent des qubits. Ce n’est pas le cas de Strawberry Fields. Il fonctionne avec des systèmes quantiques à variation continue, souvent utilisés en informatique quantique photonique.
qBraid : relier l’écosystème
qBraid essaie de résoudre un problème réel : et si vous n’aviez pas à choisir un seul SDK ?
Il vous permet de convertir des circuits entre des frameworks comme Qiskit, Cirq et autres.
QuTiP, ProjectQ et autres
Ces outils ont tendance à être plus académiques, plus spécialisés et un peu moins conviviaux pour les débutants.
Ils sont utiles, mais ce n’est pas par où commencer.
| Si votre objectif est | Commencez par… |
| Bases d’apprentissage | Kit Qiskit |
| Fonctionnant sur du matériel réel | Kit Qiskit |
| Apprentissage automatique quantique | PennyLane |
| Recherche / contrôle d’algorithmes | Cirque |
| Essayer plusieurs backends matériels | Recherche/contrôle d’algorithmes |
Alors lequel devriez-vous utiliser ?
Pour répondre à cette question, vous devez d’abord savoir ce que vous essayez de construire ! Disons que vous souhaitez construire un circuit variationnel.
Si vous utilisez Qiskit, vous gérerez manuellement les paramètres et l’optimisation se fera en dehors du framework.
Dans PennyLane, les paramètres et les dégradés sont intégrés, ce qui est naturel pour les flux de travail ML.
Si vous décidez de faire appel à Cirq, vous gagnez en flexibilité et assumez plus de responsabilités.
Même idée. Expérience complètement différente. C’est pourquoi le choix du SDK est important.
Si vous n’êtes toujours pas sûr, voici une recommandation simple :
- Commencez par Qiskit si vous êtes nouveau.
- Commencez par PennyLane si vous vous souciez du ML.
- Passez à Cirq lorsque vous souhaitez plus de contrôle.
Et ne touchez à rien d’autre pour l’instant.
Pensée finale
Je suis très conscient de combien il peut être déroutant et accablant de décider quel outil utiliser, encore moins lorsque vous êtes nouveau dans un domaine ! Les choses deviennent très vite incontrôlables. L’écosystème quantique ne prête pas à confusion car il est mal conçu. C’est déroutant car cela évolue encore. Différents outils existent parce que les gens résolvent différents problèmes à l’aide de l’informatique quantique.
La question ici n’est donc pas vraiment « Quel SDK est le meilleur ? » ; techniquement, aucun d’entre eux n’est censé l’être. Au lieu de cela, la question que vous devriez vous poser pour vous aider à décider est « Quel SDK correspond à ce que je veux faire ? » Une fois que vous avez la réponse, tout devient beaucoup plus clair. Et plus important encore, vous pouvez réellement commencer à construire.



