Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Uso con Amazon Braket PennyLane
Los algoritmos híbridos son algoritmos que contienen instrucciones clásicas y cuánticas. Las instrucciones clásicas se ejecutan en un hardware clásico (una instancia de EC2 o su portátil) y las instrucciones cuánticas se ejecutan en un simulador o en una computadora cuántica. Se recomienda ejecutar algoritmos híbridos mediante la característica de trabajos híbridos. Para obtener más información, consulte Cuándo utilizar los trabajos de Amazon Braket.
Amazon Braket le permite configurar y ejecutar algoritmos cuánticos híbridos con la ayuda del PennyLane complemento Amazon Braket o con el SDK de Python de Amazon Braket y repositorios de cuadernos de ejemplo. Los cuadernos de ejemplo de Amazon Braket, basados en el SDK, permiten configurar y ejecutar determinados algoritmos híbridos sin el complemento. PennyLane Sin embargo, lo recomendamos PennyLane porque proporciona una experiencia más rica.
Acerca de los algoritmos cuánticos híbridos
Los algoritmos cuánticos híbridos son importantes para la industria actual porque los dispositivos de computación cuántica contemporáneos generalmente producen ruido y, por lo tanto, errores. Cada puerta cuántica que se añade a un cómputo aumenta la probabilidad de añadir ruido; por lo tanto, los algoritmos de larga duración pueden verse abrumados por el ruido, lo que da lugar a cómputos erróneos.
Los algoritmos cuánticos puros como el de Shor (ejemplo de estimación de fase cuántica)
En los algoritmos cuánticos híbridos, las unidades de procesamiento cuántico (QPU) funcionan como coprocesadores de las CPU clásicas, concretamente para acelerar determinados cálculos en un algoritmo clásico. Las ejecuciones de circuitos se vuelven mucho más cortas, al alcance de las capacidades de los dispositivos actuales.
En esta sección:
Amazon Braket con PennyLane
Amazon Braket ofrece soporte para PennyLane
La PennyLane biblioteca proporciona interfaces para herramientas conocidas de aprendizaje automático, como PyTorch y TensorFlow, para que el entrenamiento de circuitos cuánticos sea rápido e intuitivo.
-
La PennyLane biblioteca: PennyLane viene preinstalada en los cuadernos Amazon Braket. Para acceder a los dispositivos Amazon Braket desde PennyLane, abre una libreta e importa la PennyLane biblioteca con el siguiente comando.
import pennylane as qml
Los cuadernos de tutoriales lo ayudan a empezar rápidamente. También puedes usarlo PennyLane en Amazon Braket desde un IDE de tu elección.
-
El PennyLane complemento Amazon Braket: para usar tu propio IDE, puedes instalar el complemento Amazon Braket manualmente PennyLane . El complemento se conecta PennyLane con el SDK de Python de Amazon Braket
, por lo que puedes ejecutar circuitos en PennyLane dispositivos Braket. Amazon Para instalar el PennyLane complemento, utilice el siguiente comando.
pip install amazon-braket-pennylane-plugin
El siguiente ejemplo muestra cómo configurar el acceso a los dispositivos Amazon Braket en PennyLane:
# to use SV1 import pennylane as qml sv1 = qml.device("braket.aws.qubit", device_arn="arn:aws:braket:::device/quantum-simulator/amazon/sv1", wires=2) # to run a circuit: @qml.qnode(sv1) def circuit(x): qml.RZ(x, wires=0) qml.CNOT(wires=[0,1]) qml.RY(x, wires=1) return qml.expval(qml.PauliZ(1)) result = circuit(0.543) #To use the local sim: local = qml.device("braket.local.qubit", wires=2)
Para ver ejemplos de tutoriales y obtener más información al respecto PennyLane, consulte el repositorio de ejemplos de Amazon Braket.
El PennyLane complemento Amazon Braket te permite cambiar entre la QPU Amazon Braket y los dispositivos simuladores integrados PennyLane con una sola línea de código. Ofrece dos dispositivos cuánticos Amazon Braket con los que trabajar: PennyLane
-
braket.aws.qubitpara ejecutarse con los dispositivos cuánticos del servicio de Amazon Braket, incluidas las QPU y los simuladores. -
braket.local.qubitpara ejecutarse con el simulador local del SDK de Amazon Braket.
El PennyLane plugin Amazon Braket es de código abierto. Puedes instalarlo desde el GitHub repositorio de
Para obtener más información al respecto PennyLane, consulta la documentación del sitio PennyLane web
Algoritmos híbridos en cuadernos de ejemplo de Amazon Braket
Amazon Braket ofrece diversos cuadernos de ejemplo que no utilizan el PennyLane complemento para ejecutar algoritmos híbridos. Puede empezar con cualquiera de estos cuadernos de ejemplos híbridos de Amazon Braket
Los cuadernos de ejemplo de Amazon Braket se basan en el SDK de Python de Amazon Braket
Puede explorar Amazon Braket más a fondo con nuestros cuadernos de ejemplo
Algoritmos híbridos con simuladores integrados PennyLane
Amazon Braket Hybrid Jobs ahora incluye simuladores GPU-based integrados y de CPU de alto rendimiento de. PennyLane lightning.qubit, el simulador lightning.gpu acelerado mediante la biblioteca cuQuantum
Con Hybrid Jobs, ahora puede ejecutar el código de su algoritmo variacional utilizando una combinación de un coprocesador clásico y una QPU, un simulador bajo demanda de Amazon Braket, como, por ejemploSV1, o directamente utilizando el simulador integrado de. PennyLane
El simulador integrado ya está disponible con el contenedor de trabajos híbridos y usted debe decorar su función principal de Python con el decorador @hybrid_job. Para usar el PennyLane lightning.gpu simulador, también necesitas especificar una instancia de GPU InstanceConfig como se muestra en el siguiente fragmento de código:
import pennylane as qml from braket.jobs import hybrid_job from braket.jobs.config import InstanceConfig @hybrid_job(device="local:pennylane/lightning.gpu", instance_config=InstanceConfig(instanceType="ml.g4dn.xlarge")) def function(wires): dev = qml.device("lightning.gpu", wires=wires) ...
Consulta el cuaderno de ejemplo
Gradiente adjunto activado PennyLane con los simuladores de Amazon Braket
Con el complemento PennyLane para Amazon Braket, puede computar gradientes mediante el método de diferenciación adjunta cuando se ejecuta en el simulador de vector de estado local o en SV1.
Note: Para utilizar el método de diferenciación adjunta, debe especificar diff_method='device' en su qnode, y no diff_method='adjoint'. Consulte el siguiente ejemplo.
device_arn = "arn:aws:braket:::device/quantum-simulator/amazon/sv1" dev = qml.device("braket.aws.qubit", wires=wires, shots=0, device_arn=device_arn) @qml.qnode(dev, diff_method="device") def cost_function(params): circuit(params) return qml.expval(cost_h) gradient = qml.grad(circuit) initial_gradient = gradient(params0)
nota
Actualmente, PennyLane computará los índices de agrupación para los hamiltonianos de QAOA y los utilizará para dividir el hamiltoniano en diversos valores esperados. Si desea utilizar la capacidad de diferenciación adjunta de SV1 al ejecutar QAOA desde PennyLane, deberá reconstruir el hamiltoniano de costo eliminando los índices de agrupación de la siguiente manera: cost_h, mixer_h = qml.qaoa.max_clique(g, constrained=False)
cost_h = qml.Hamiltonian(cost_h.coeffs, cost_h.ops)