As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Usando PennyLane com o Amazon Braket
Algoritmos híbridos são algoritmos que contêm instruções clássicas e quânticas. As instruções clássicas são executadas em hardware clássico (uma EC2 instância ou seu laptop), e as instruções quânticas são executadas em um simulador ou em um computador quântico. Recomendamos que você execute algoritmos híbridos usando o recurso Hybrid Jobs. Para obter mais informações, consulte Quando usar o Amazon Braket Jobs.
O Amazon Braket permite que você configure e execute algoritmos quânticos híbridos com a ajuda do plug-in Amazon Braket ou com o SDK Amazon PennyLane Braket para Python e exemplos de repositórios de notebooks. Os notebooks de exemplo do Amazon Braket, baseados no SDK, permitem que você configure e execute determinados algoritmos híbridos sem o plug-in. PennyLane No entanto, recomendamos PennyLane porque proporciona uma experiência mais rica.
Sobre algoritmos quânticos híbridos
Os algoritmos quânticos híbridos são importantes para a indústria atual porque os dispositivos de computação quântica contemporâneos geralmente produzem ruído e, portanto, erros. Cada porta quântica adicionada a uma computação aumenta a chance de adicionar ruído; portanto, algoritmos de longa execução podem ser sobrecarregados pelo ruído, o que resulta em cálculos defeituosos.
Algoritmos quânticos puros, como o de Shor (exemplo de estimativa de fase quântica)
Em algoritmos quânticos híbridos, as unidades de processamento quântico (QPUs) funcionam como coprocessadores para o clássico CPUs, especificamente para acelerar certos cálculos em um algoritmo clássico. As execuções de circuitos se tornam muito mais curtas, ao alcance dos recursos dos dispositivos atuais.
Nesta seção:
Amazon Braket com PennyLane
O Amazon Braket fornece suporte PennyLane
A PennyLane biblioteca fornece interfaces para ferramentas conhecidas de aprendizado de máquina, incluindo PyTorch e TensorFlow, para tornar o treinamento de circuitos quânticos rápido e intuitivo.
-
A PennyLane Biblioteca -— PennyLane está pré-instalada nos notebooks Amazon Braket. Para acessar os dispositivos Amazon Braket a partir de PennyLane, abra um notebook e importe a PennyLane biblioteca com o comando a seguir.
import pennylane as qml
Os cadernos tutoriais ajudam você a começar rapidamente. Como alternativa, você pode usar PennyLane no Amazon Braket a partir de um IDE de sua escolha.
-
O PennyLane plug-in Amazon Braket — Para usar seu próprio IDE, você pode instalar o plug-in Amazon PennyLane Braket manualmente. O plug-in se PennyLane conecta ao SDK Amazon Braket Python
, para que você possa executar circuitos em dispositivos Braket. PennyLane Amazon Para instalar o PennyLane plug-in, use o comando a seguir.
pip install amazon-braket-pennylane-plugin
O exemplo a seguir demonstra como configurar o acesso aos dispositivos Amazon Braket em: 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 exemplos de tutoriais e mais informações sobre isso PennyLane, consulte o repositório de exemplos do Amazon Braket
O PennyLane plug-in Amazon Braket permite que você alterne entre o Amazon Braket QPU e dispositivos simuladores incorporados PennyLane com uma única linha de código. Ele oferece dois dispositivos quânticos Amazon Braket para trabalhar com: PennyLane
-
braket.aws.qubitpara funcionar com os dispositivos quânticos do serviço Amazon Braket, inclusive simuladores QPUs -
braket.local.qubitpara execução com o simulador local do SDK do Amazon Braket
O PennyLane plugin Amazon Braket é de código aberto. Você pode instalá-lo a partir do GitHub repositório de PennyLane plug-ins
Para obter mais informações sobre PennyLane, consulte a documentação no PennyLane site
Algoritmos híbridos em cadernos de exemplo do Amazon Braket
O Amazon Braket fornece uma variedade de exemplos de notebooks que não dependem do plug-in para executar algoritmos PennyLane híbridos. Você pode começar com qualquer um destes cadernos de exemplo híbridos do Amazon Braket
Os cadernos de exemplo do Amazon Braket dependem do SDK Amazon Braket Python.
Você pode explorar ainda mais o Amazon Braket com nossos exemplos de cadernos
Algoritmos híbridos com PennyLane simuladores incorporados
O Amazon Braket Hybrid Jobs agora vem com simuladores incorporados de alto desempenho baseados em CPU e GPU da. PennyLanelightning.qubit de vetor de estado rápido, o simulador lightning.gpu acelerado usando a biblioteca cuQuantum da NVIDIA
Com o Hybrid Jobs, agora você pode executar seu código de algoritmo variacional usando uma combinação de um coprocessador clássico e uma QPU, um simulador sob demanda Amazon Braket, comoSV1, ou usando diretamente o simulador incorporado do. PennyLane
O simulador incorporado já está disponível com o contêiner Hybrid Jobs. Você precisa decorar sua função principal do Python com o decorador @hybrid_job. Para usar o PennyLane lightning.gpu simulador, você também precisa especificar uma instância de GPU no, InstanceConfig conforme mostrado no seguinte trecho 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) ...
Consulte o exemplo de caderno
Gradiente adjunto PennyLane com simuladores Amazon Braket
Com o PennyLane plug-in do Amazon Braket, você pode calcular gradientes usando o método de diferenciação adjunta ao executar no simulador vetorial estadual local ou. SV1
Nota: Para usar o método de diferenciação adjunta, você deve especificar diff_method='device' em seu qnode, e não diff_method='adjoint'. Veja o exemplo a seguir.
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
Atualmente, PennyLane calculará índices de agrupamento para hamiltonianos da QAOA e os usará para dividir o hamiltoniano em vários valores de expectativa. Se você quiser usar o recurso SV1 de diferenciação adjunta ao executar o QAOA a partir dePennyLane, precisará reconstruir o hamiltoniano de custo removendo os índices de agrupamento, da seguinte forma: cost_h, mixer_h = qml.qaoa.max_clique(g, constrained=False)
cost_h = qml.Hamiltonian(cost_h.coeffs, cost_h.ops)