Cualquiera que intente adentrarse en la computación cuántica o utilizarla para construir algo se debe a la gran cantidad de SDK disponibles. La misión de toda gran empresa y nueva startup es crear un paquete Python que pueda usarse para aprender los fundamentos de la computación cuántica o desarrollar un algoritmo. Pero como alguien a quien le gusta tanto el software como la tecnología cuántica, me gusta instalar varios paquetes solo para probarlos y aconsejar a las personas cuál usar para lo que quieren hacer.
Buscas un tutorial, instalas algo y luego algo más. Antes de que te des cuenta, tienes Qiskit, Cirq, PennyLane y tal vez incluso algo oscuro en tu entorno… y no tienes una idea real de cuál se supone que debes usar para crear cualquier aplicación que tenías en mente cuando empezaste. Estoy escribiendo este artículo para ahorrarle algo de tiempo.
La verdad es (que quizás ya sepas) que no los necesitas todos. Probablemente ni siquiera necesites dos.
El truco no está en elegir el “mejor” SDK (que yo diría que no existe, al menos todavía no), sino en elegir el correcto para lo que estás intentando hacer.
Los SDK de Quantum no son intercambiables; están construidos con prioridades muy diferentes: algunos son primero la educación, otros son el hardware primero, algunos son el aprendizaje automático primero y algunos son campos de juego de investigación.
Una vez que ves eso y tienes un objetivo claro en mente, el ecosistema se vuelve mucho menos confuso. En este artículo, analizaremos los 4 SDK más utilizados y, en general, abordaremos otras herramientas que pueden no usarse con tanta frecuencia.
Entonces, entremos en ello…
Qiskit: el punto de partida “predeterminado”
Si no está seguro de por dónde empezar, comience aquí. Incluso si busca en Google la frase “computación cuántica”, encontrará Qiskit en la primera página de resultados de búsqueda, ¡si no en los 3 primeros resultados!
¡Qiskit se ha convertido en el punto de entrada de facto para mucha gente porque hace algunas cosas realmente bien! Ofrece recursos de aprendizaje limpios, acceso a hardware cuántico real y, lo más importante, un ecosistema grande y activo.
Qiskit se siente como un entorno estructurado. Defines circuitos, los ejecutas y obtienes resultados de una manera que refleja cómo a la mayoría de las personas se les enseña computación cuántica. Y en muchos casos, informática.
Para crear un circuito simple en Qiskit, solo necesitas unas pocas líneas de código:
Y así, has creado una superposición y la has medido.
Aunque Qiskit es bueno para enseñar y aprender, experimentar con dispositivos reales y flujos de trabajo estándar basados en circuitos, todavía tiene problemas en muchos sentidos.
Debido a que el propósito de construir Qiskit es proporcionar un marco general para la computación cuántica, es a la vez muy general y bastante vago y, en ocasiones, no está bien documentado, especialmente para funciones nuevas y específicas de aplicaciones. Por lo tanto, puede parecer un poco pesado y definitivamente no es ideal para flujos de trabajo basados en gradientes o con mucho aprendizaje automático.
PennyLane: creado para el aprendizaje automático cuántico
Ahora cambiemos de tema. Si su interés en la computación cuántica implica optimización, gradientes o aprendizaje automático, PennyLane está en una categoría diferente.
No fue creado como un SDK de propósito general. Fue construido específicamente para flujos de trabajo híbridos cuánticos-clásicos.
La mayoría de los algoritmos cuánticos a corto plazo tienen este aspecto:
Prepare un circuito cuántico parametrizado. Ejecútelo. Medir algo. Introduzca eso en un optimizador clásico. Repita según sea necesario para obtener los resultados que desea.
En este circuito es donde brilla PennyLane.
Por ejemplo, consideremos la idea central detrás del aprendizaje automático cuántico: tienes un circuito cuántico parametrizado y puedes optimizarlo utilizando gradientes. Simplemente puedes hacerlo en PennyLane de la siguiente manera:
Esa última línea es la clave de por qué usar PennyLane hace las cosas mucho más fáciles aquí.
Entonces, si desea crear una aplicación que involucre aprendizaje automático cuántico, algoritmos variacionales u optimización basada en gradientes, ¡PennyLane es el camino a seguir!
Ahora, habrás notado que el código de PennyLane no es tan sencillo e intuitivo como el de Qiskit; Esa es una de las desventajas de usarlo. Puede tener una barrera de entrada ligeramente más alta y está menos centrado en el hardware que Qiskit.
Cirq: para cuando quieras más control
Hasta ahora, tenemos Qiskit para aplicaciones generales, PennyLane para QML y ahora tenemos Cirq. Cirq se encuentra en un espacio interesante.
No es tan amigable para principiantes como Qiskit y no está tan centrado en ML como PennyLane. En cambio, le brinda control de nivel inferior sobre los circuitos y la ejecución. Esto lo hace popular para el desarrollo de algoritmos, la investigación y el diseño de circuitos con reconocimiento de hardware.
Cirq se siente más cerca del “metal”. Estás pensando más explícitamente en qubits, puertas y programación.
Por ejemplo, puedo replicar el mismo circuito que construimos antes con Qiskit, usando Cirq de la siguiente manera:
Para mí, Cirq se usa a menudo cuando desea un control detallado sobre su circuito, necesita mantener flujos de trabajo de investigación o desea definiciones de circuito limpias. Posteriormente, debido a que proporciona este control de hardware, tiene una curva de aprendizaje más pronunciada y una incorporación menos estructurada que Qiskit y PennyLane.
Vale la pena señalar que puedes lograr el mismo nivel de control de hardware con Qiskit que con Cirq, con una curva de aprendizaje menos profunda.
Amazon Braket: el patio de juegos de hardware múltiple
Por último, pero no menos importante, ¡hablemos de Braket! Braket se trata menos de cómo escribir circuitos y más de dónde los ejecuta. Le brinda acceso a múltiples proveedores de hardware cuántico a través de una interfaz.
Las diferentes plataformas de hardware se comportan de manera diferente. Hoy en día tenemos diferentes modalidades de qubits: qubits superconductores, iones atrapados y qubits fotónicos, por nombrar algunos. Braket te permite experimentar con estos sin cambiar de ecosistema.
Por lo tanto, si desea acceso al hardware entre proveedores, flujos de trabajo basados en la nube o realizar experimentación, Braket es su herramienta preferida. Dicho esto, Braket es menos obstinado que otros SDK y requiere más contexto para usarlo de manera efectiva.
Los que la mayoría de la gente olvida
¡Aquí es donde las cosas se vuelven interesantes y más estrechas! Entonces, veamos algunos ejemplos de diferentes formas de abordar las tecnologías cuánticas.
Océano de onda D
¡Hasta ahora, sólo hemos hablado de la computación cuántica basada en puertas! El SDK de D-Wave está diseñado para recocido cuántico, no para computación basada en puertas. Eso significa: no construyes circuitos, sino que defines problemas de optimización.
Strawberry Fields: Computación cuántica fotónica
La mayoría de los marcos asumen qubits. Strawberry Fields no lo hace. Funciona con sistemas cuánticos de variable continua, utilizados a menudo en la computación cuántica fotónica.
qBraid: uniendo el ecosistema
qBraid intenta resolver un problema real: ¿Qué pasaría si no tuvieras que elegir solo un SDK?
Le permite convertir circuitos entre marcos como Qiskit, Cirq y otros.
QuTiP, ProjectQ y otros
Estas herramientas tienden a ser más académicas, más especializadas y algo menos amigables para principiantes.
Son útiles, pero no son el lugar por donde deberías empezar.
Entonces, ¿cuál deberías usar?
Para responder a esa pregunta, ¡primero necesitas saber qué estás intentando construir! Digamos que quieres construir un circuito variacional.
Si usa Qiskit, manejará los parámetros manualmente y la optimización se realizará fuera del marco.
En PennyLane, los parámetros y gradientes están integrados y es natural para los flujos de trabajo de ML.
Si decides utilizar Cirq, ganarás flexibilidad y asumirás más responsabilidades.
Misma idea. Experiencia completamente diferente. Por eso es importante la elección del SDK.
Si aún no estás seguro, aquí tienes una recomendación sencilla:
Comienza con Qiskit si eres nuevo. Comience con PennyLane si le interesa el aprendizaje automático. Pase a Cirq cuando desee tener más control.
Y no toques nada más todavía.
Pensamiento final
Soy muy consciente de lo confuso y abrumador que puede ser decidir qué herramienta utilizar, ¡y mucho menos cuando eres nuevo en un campo! Las cosas simplemente se salen de control muy rápido. El ecosistema cuántico no es confuso porque esté mal diseñado. Es confuso porque todavía está evolucionando. Existen diferentes herramientas porque las personas resuelven diferentes problemas utilizando la computación cuántica.
Entonces, la pregunta aquí no es realmente “¿Qué SDK es mejor?”; Técnicamente, ninguno de ellos está destinado a serlo. En cambio, la pregunta que debes hacerte para ayudarte a decidir es “¿Qué SDK se adapta a lo que quiero hacer?” Una vez que tienes la respuesta, todo se vuelve mucho más claro. Y lo que es más importante, puedes empezar a construir.