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.
PennyLane Utilízalo con Amazon Braket
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 EC2 instancia o un portátil) y las instrucciones cuánticas se ejecutan en un simulador o en un ordenador cuántico. Se recomienda ejecutar algoritmos híbridos mediante la función Hybrid Jobs. Para obtener más información, consulta Cuándo usar Amazon Braket Jobs.
Amazon Braket le permite configurar y ejecutar algoritmos cuánticos híbridos con la ayuda del complemento Amazon Braket o con el SDK de Python de Amazon PennyLane 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álculo aumenta la probabilidad de añadir ruido; por lo tanto, los algoritmos de larga duración pueden verse abrumados por el ruido, lo que resulta en un cálculo defectuoso.
Los algoritmos cuánticos puros, como el de Shor (por ejemplo, la estimación de fase cuántica)
En los algoritmos cuánticos híbridos, las unidades de procesamiento cuántico (QPUs) funcionan como coprocesadores en los algoritmos clásicos CPUs, específicamente para acelerar ciertos cálculos en un algoritmo clásico. Las ejecuciones de los circuitos son 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 con herramientas conocidas de aprendizaje automático, entre las que se incluyen PyTorch y TensorFlow, para que el entrenamiento de los 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, abra un cuaderno e importe la PennyLane biblioteca con el siguiente comando.
import pennylane as qml
Los cuadernos tutoriales le ayudan a empezar rápidamente. Como alternativa, puedes usarlo PennyLane en Amazon Braket desde el IDE que prefieras.
-
El PennyLane complemento Amazon Braket: para usar su propio IDE, puede instalar el complemento Amazon Braket manualmente PennyLane . El complemento se conecta PennyLane con el SDK de Python de Amazon Braket
, por lo que puede ejecutar circuitos PennyLane en dispositivos Amazon Braket. 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 más información al respecto PennyLane, consulte el repositorio de ejemplos de Amazon Braket
El PennyLane complemento Amazon Braket le permite cambiar entre la QPU de 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.qubit
para funcionar con los dispositivos cuánticos del servicio Amazon Braket, incluidos QPUs los simuladores -
braket.local.qubit
para correr 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 PennyLane complementos
Para obtener más información al respecto PennyLane, consulte la documentación del sitio PennyLane web
Algoritmos híbridos en cuadernos de ejemplo de Amazon Braket
Amazon Braket proporciona una variedad de cuadernos de ejemplo que no dependen del PennyLane complemento para ejecutar algoritmos híbridos. Puedes empezar con cualquiera de estos cuadernos de ejemplo híbridos de Amazon Braket
Los cuadernos de ejemplo de Amazon Braket se basan en el 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 integrados de alto rendimiento basados en CPU y GPU de. PennyLanelightning.qubit
simulador vectorial de estado, el simulador acelerado mediante la biblioteca lightning.gpu
CuQuantum de NVIDIA y otros.
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 Amazon Braket bajo demanda, como, por ejemploSV1, o directamente utilizando el simulador integrado. PennyLane
El simulador integrado ya está disponible con el contenedor Hybrid Jobs, simplemente necesitas decorar tu función principal de Python con el @hybrid_job
decorador. Para usar el PennyLane lightning.gpu
simulador, también debes 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.p3.8xlarge")) def function(wires): dev = qml.device("lightning.gpu", wires=wires) ...
Consulta el cuaderno de ejemplo
Activa el gradiente adjunto PennyLane con los simuladores Amazon Braket
Con el PennyLane complemento para Amazon Braket, puede calcular gradientes mediante el método de diferenciación adjunto cuando se ejecuta en el simulador vectorial de estado local o. SV1
Nota: Para utilizar el método de diferenciación adjunto, debe especificarlo diff_method='device'
en el suyo 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 calculará los índices de agrupamiento para los hamiltonianos QAOA y los utilizará para dividir el hamiltoniano en varios valores esperados. Si desea utilizar la capacidad SV1 de diferenciación adjunta al ejecutar el QAOA desde, tendrá que reconstruir el coste hamiltoniano eliminando los índices de PennyLane agrupamiento, 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)