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á.
Use 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 instância EC2 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.
AmazonO Braket permite que você configure e execute algoritmos quânticos híbridos com a ajuda do PennyLane plug-in Braket ou com o Amazon SDK Braket Amazon Python e exemplos de repositórios de notebooks. Amazon Os notebooks de exemplo do 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 CPUs clássicas, 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.
Amazon Braket com PennyLane
AmazonO Braket fornece suporte para 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.qubit
para funcionar com os dispositivos quânticos do serviço Amazon Braket, incluindo QPUs e simuladores -
braket.local.qubit
para execução com o simulador Amazon local do Braket SDK
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 notebooks de exemplo do Amazon Braket
AmazonO Braket fornece uma variedade de exemplos de notebooks que não dependem do PennyLane plug-in para executar algoritmos híbridos. Você pode começar com qualquer um desses notebooks híbridos Amazon Braket que ilustram métodos variacionais, como o Quantum Approximate
Os notebooks de exemplo do Amazon Braket dependem do SDK Amazon
Você pode explorar ainda mais o Amazon Braket com nossos exemplos
Algoritmos híbridos com PennyLane simuladores incorporados
AmazonO Braket Hybrid Jobs agora vem com simuladores incorporados de alto desempenho baseados em CPU e GPU da. PennyLanelightning.qubit
lightning.gpu
simulador acelerado usando a biblioteca CuQuantum da NVIDIA e outros.
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ê só precisa decorar sua função principal do Python com @hybrid_job
o decorador. 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 hybird_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) ...
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 no SV1.
Nota: Para usar o método de diferenciação adjunta, você deve especificar diff_method='device'
em seuqnode
, 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 de diferenciação adjunta do SV1 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)