Solução de problemas comuns no Azure Quantum
Ao trabalhar com o serviço Azure Quantum, você pode se deparar com esses problemas comuns. Veja como pode resolvê-los.
Conectando-se ao seu espaço de trabalho
Problema: Não é possível autenticar no Azure Quantum via pytket-azure CI
Ao tentar autenticar no Azure Quantum por meio do pytket-azure
pacote em um ambiente de CI usando as variáveis de ambiente "AZURE_TENANT_ID", "AZURE_CLIENT_ID" e "AZURE_CLIENT_SECRET", você pode encontrar o erro:
Code: InsufficientPermissions
Message: There are not enough permissions to perform this operation.
Para resolver esse problema, tente autenticar usando uma cadeia de conexão e a variável de ambiente "AZURE_QUANTUM_CONNECTION_STRING" em vez disso. Para obter mais informações, consulte Conectar-se com uma cadeia de conexão.
connection_string = "[Copy connection string]"
import os
os.environ["AZURE_QUANTUM_CONNECTION_STRING"] = connection_string
Submeter trabalhos
Problema: Ausente targets
Se o target local onde você deseja executar seu trabalho estiver faltando na lista disponível target , você provavelmente precisará atualizar para a versão mais recente do Quantum Development Kit para Visual Studio Code. Para obter mais informações, consulte Atualizar o QDK.
Problema: a operação retorna um código de status inválido 'Não autorizado'
Passos para resolver este problema:
Abra seu portal do Azure (https://portal.azure.com) e autentique sua conta.
Em Navegar, selecione Subscrições e selecione a sua subscrição.
Selecione Controlo de acesso (IAM) .
Em Verificar acesso, procure o seu endereço de e-mail e selecione a conta.
Você não deve ver uma função de Proprietário ou Colaborador listada.
Selecione o separador Atribuição de funções.
Nota
Se não vir o separador Atribuições de funções, poderá ter de expandir o portal para ecrã inteiro ou fechar o< painel de atribuições de nomes>.
Selecione a lista suspensa Função , selecione Proprietário ou Colaborador, insira seu endereço de e-mail e selecione sua conta.
Selecione Guardar.
Agora você deve ver seu conjunto de contas configurado com a função de Proprietário ou Colaborador .
Crie seu espaço de trabalho do Azure Quantum novamente e, em seguida, envie um trabalho nesse novo Espaço de Trabalho.
Problema: "AuthorizationFailure - Esta solicitação não está autorizada a executar esta operação"
Se um envio de trabalho falhar com essa mensagem, mesmo que você tenha uma conexão válida com o serviço Azure Quantum, a conta de armazenamento poderá ser configurada para bloquear o acesso à rede pública. O serviço Azure Quantum suporta apenas contas de armazenamento através do acesso público à Internet.
Para verificar a conta de armazenamento:
- Na página do espaço de trabalho quântico no Portal do Azure, selecione Visão geral e selecione a conta de armazenamento.
- Na página da conta de armazenamento, em Segurança + rede, selecione Rede.
- Na guia Firewalls e redes virtuais em Acesso à rede pública, verifique se a opção Habilitar todas as redes está selecionada.
Problema: "Falha ao compilar o programa" ao tentar enviar um programa Q# através da CLI
Ao tentar enviar um trabalho no prompt de comando usando o az quantum submit
comando, você pode encontrar a seguinte mensagem de erro:
az quantum job submit ...
Failed to compile program.
Command ran in 21.181 seconds (init: 0.457, invoke: 20.724)
Este erro ocorre quando há um problema com o programa Q# que faz com que a compilação falhe.
Problema: Erro do compilador "Número errado de parâmetros de porta"
Ao enviar um trabalho para o Quantinuum a partir de um Jupyter Notebook local ou ambiente de linha de comando, e usando o tradutor QASM herdado (OPENQASM 2.0), você pode encontrar este erro:
Job ID <jobId> failed or was cancelled with the message: 1000: Compile error: [<file, line>] Wrong number of gate parameters
Este erro ocorre quando uma vírgula "," ou outro caractere sem ponto é usado como um separador decimal, como é comum em muitos idiomas. Substitua quaisquer separadores decimais que não sejam de período por pontos ".".
// replace this line:
rx(1,5707963267948966) q[0];
// with this:
rx(1.5707963267948966) q[0];
Nota
Esse problema não ocorre em blocos de anotações hospedados no portal Azure Quantum, somente em ambientes de desenvolvimento local.
Problema: erro do compilador "não disponível para a configuração de compilação atual"
Quando você executa uma célula de código Q# em um Jupyter Notebook no VS Code, você pode encontrar o erro:
<function name> not found. Found a matching item `<function name>' that is not available for the current compilation configuration
Este erro indica que o perfil QIR target está definido como Basic e a função em questão requer o perfil Irrestritotarget . Para definir o target perfil como Sem restrições:
- Enquanto estiver no seu programa Q# no VS Code, selecione Q#: QIR base na barra de status inferior.
- Nas opções exibidas na barra de status superior, selecione Q#: irrestrito.
Problema: a operação devolveu um código de estado inválido 'Proibido'
Quando submetes o teu primeiro emprego, podes receber um código de erro 'proibido'.
Esse problema pode ter origem durante a criação do espaço de trabalho: o Azure Quantum não consegue concluir a atribuição de função que vincula o novo espaço de trabalho à conta de armazenamento especificada. Cenário típico: esta situação ocorrerá se o separador ou a janela do browser fechar antes de a criação da área de trabalho estar concluída.
Você pode verificar se está enfrentando esse problema de atribuição de função seguindo estas etapas:
- Navegue até seu novo espaço de trabalho quântico no Portal do Azure
- Em Visão geral>da conta de armazenamento do Essentials>, selecione no link da conta de armazenamento
- Na barra de navegação esquerda, selecione Controlo de Acesso (IAM)
- Selecione Atribuições de Funções
- Verifique se seu espaço de trabalho aparece como um Colaborador
- Se o espaço de trabalho não aparecer como Colaborador , você poderá:
- Crie um novo espaço de trabalho e certifique-se de aguardar a conclusão da criação do espaço de trabalho antes de fechar a guia ou janela do navegador da Web.
- Adicionar a atribuição de função adequada na conta de armazenamento
- Controle de acesso (IAM) > Adicionar atribuições de função
- Colaborador da função >
- Atribuir acesso a Utilizador, grupo ou entidade de > serviço
- Selecione > [Nome do espaço de trabalho]
- Guardar
Problema: o trabalho falha com o código de erro: QIRPreProcessingFailed
Quando você envia um trabalho para um provedor Rigetti, o trabalho falha e é relatado no console de gerenciamento de tarefas no portal do Azure:
Error code: QIRPreProcessingFailed
Error message: No match found for output recording set converter from outputrecordingset.v2.labeled to outputrecordingset.v1.nonlabeled
Este erro pode ser causado por um conflito de dependência com uma versão anterior do pyqir ou qiskit-qir. Desinstale todas as versões de pyqir, pyqir-* e qiskit-qir em sua máquina local e instale ou atualize o pacote azure-quantum Python usando o parâmetro [qiskit]:
pip install --upgrade azure-quantum[qiskit]
Problema: recuperando informações básicas sobre trabalhos com falha
Depois de enviar um trabalho para um hardware target, ele pode ficar na fila por várias horas, ou até mesmo um ou dois dias, antes de falhar.
Para recuperar mais informações sobre a falha:
- Use o
get_results()
método com o objeto de trabalho para exibir a saída ou a mensagem de erro retornada:
job.get_results()
- No espaço de trabalho do Portal do Azure, selecione Gerenciamento de Trabalho de Operações > e selecione o Nome do trabalho para abrir um painel de detalhes.
- No espaço de trabalho do Portal do Azure, selecione Provedores de Operações>. Verifique a disponibilidade da target máquina. Os trabalhos enviados targets com um status de Degradado podem permanecer na fila por mais tempo do que o normal. Às vezes, os trabalhos são processados, mas às vezes eles expiram e retornam um erro de target indisponível.
Problema: continua a ser-me pedido para autenticar quando me ligo programaticamente à minha área de trabalho
Se você estiver usando o SDK do Azure Quantum Python (dentro de blocos de anotações Jupyter, por exemplo) e estiver se conectando ao seu espaço de trabalho usando a classe AzureQuantumProvider, poderá experimentar um pop-up para autenticar no Azure toda vez que executar seu script.
Isso acontece porque seu token de segurança está sendo redefinido toda vez que você executa o script.
Você pode resolver esse problema executando az login
usando a CLI do Azure. Para obter mais informações, consulte az login.
Problema: depois de atualizar o pacote azure-quantum, recebo o erro "ModuleNotFoundError: Nenhum módulo chamado qiskit.tools" ao monitorar um trabalho
A partir do Qiskit 1.0, o qiskit.tools
módulo, que é necessário para a job_monitor()
função, foi preterido. Para monitorar trabalhos, use as wait_for_final_state()
funções ou .result
job = MyTarget.run(circuit, shots=100)
# to wait until the job is complete
job.wait_for_final_state()
# to return the results of the job
result = job.result()
Azure Quantum Resource Estimator
Os cenários comuns a seguir podem impedir a conclusão de trabalhos de estimativa de recursos. Veja como resolvê-los.
Problema: o algoritmo quântico deve conter pelo menos um estado T ou medição
Para explicar o mapeamento de um programa quântico arbitrário para uma matriz 2D de qubits lógicos, o Estimador de Recursos assume que a Computação Pauli Sequencial de Síntese Paralela (PSSPC) (ver arXiv:2211.07629, Apêndice D) é realizada no programa de entrada. Nessa abordagem, todas as operações Clifford são comutadas através de todos os portões T, portões de rotação e operações de medição, deixando uma única operação Clifford que pode ser avaliada classicamente de forma eficiente. Portanto, um programa quântico que não contém estados T, por exemplo, de portas T ou portas de rotação, nem operações de medição não requer nenhum recurso físico de computação quântica.
Error message: Algorithm requires at least one T state or measurement to estimate resources
Problema: a taxa de erro da porta T física é muito alta
A taxa de erro do estado T lógico depende do orçamento de erro e do número de estados T no programa quântico. As fábricas T são usadas para criar estados T com a taxa de erro de estado T lógica necessária a partir de portas T físicas, que têm uma taxa de erro de porta T física . Normalmente, a taxa de erro da porta T física é muito maior do que a taxa de erro da porta T lógica necessária. Em alguns cenários, a taxa de erro física da porta T é muito maior em comparação com a taxa de erro de estado T lógica necessária, de modo que nenhuma fábrica T pode ser encontrada que possa produzir estados T lógicos de qualidade suficiente.
Error message: No T factory can be found, because the required logical T state error rate is too low
Aqui está o que você poderia fazer em tal cenário:
- Aumente o orçamento de erro, total ou parte para estados T.
- Reduza a taxa de erro da porta T física nos parâmetros qubit.
- Reduza o número de estados T no programa quântico reduzindo portas T, portas de rotação e portas Toffoli.
Problema: a taxa de erro da porta T física é muito baixa
Há também o cenário oposto, no qual a taxa de erro física da porta T é menor do que a taxa de erro do estado T lógico exigida. Nesses casos, nenhuma fábrica T é necessária, porque a taxa de erro física T gate já é de qualidade suficiente. No entanto, isso requer uma consideração cuidadosa do impacto das unidades de transferência que transferem os estados físicos T da distância de código 1 para a distância de código do algoritmo (ver arXiv:2211.07629, Apêndice C). Em geral, na presença de fábricas T, o custo das unidades de transferência é insignificante.
Error message: No T factory can be found, because the required logical T state error rate is too high; transfer units are necessary to perform a resource estimation accurately. One possibility to circumvent this problem is to increase the physical T gate error rate of the qubit parameters.
Aqui está o que você poderia fazer em tal cenário:
- Aumente a taxa de erro física da porta T nos parâmetros qubit para a taxa de erro de estado T lógica necessária.
- Reduza o orçamento de erro ou apenas a parte para os estados T.
Problema: a taxa de erro deve ser um número entre 0 e 1
As taxas de erro devem ser sempre valores entre 0 e 1. Além disso, para que a correção de erros seja eficaz, a taxa de erro físico para portas e medições deve ser inferior a um valor que depende das propriedades do código de correção de erro e da taxa de erro lógica necessária.
Aqui está o que você poderia fazer em tal cenário:
- Aumente o orçamento de erros, total ou a parte para erros lógicos.
- Reduza as taxas de erro físico nos parâmetros de qubit.
Problema: o tempo de execução máximo e o número máximo de qubits físicos das restrições são mutuamente exclusivos
O Estimador de Recursos aceita apenas uma ou maxDuration
maxPhysicalQubits
restrições no momento, mas não duas. Se você fornecer ambos e maxDuration
maxPhysicalQubits
restrições para um único trabalho, ele retornará o BothDurationAndPhysicalQubitsProvided
erro.
Problema: executar o contêiner de contagem de estimativa QIR: símbolo indefinido __quantum__rt__result_record_output
Este erro resulta da geração de QIR para circuitos Qiskit através do pacote qiskit_qir Python sem definir o record_output
parâmetro como False
.
Para evitar esse erro, siga um destes procedimentos:
- Use o pacote azure_quantum Python para enviar circuitos Qiskit para o Azure Quantum (recomendado).
- Ao usar o pacote qiskit_qir Python, certifique-se de definir o
record_output
parâmetro comoFalse
antes de enviar seu circuito.
Criando um espaço de trabalho do Azure Quantum
Os seguintes problemas podem ocorrer quando você usa o portal do Azure para criar um espaço de trabalho.
Problema: não é possível acessar o formulário de criação de espaço de trabalho no portal do Azure; Em vez disso, ser-lhe-á pedido que se inscreva numa subscrição
Esse problema ocorre porque você não tem uma assinatura ativa.
Por exemplo, você pode ter se inscrito para a assinatura de avaliação gratuita de 30 dias do Azure, que inclui Créditos do Azure gratuitos de USD200 para usar nos serviços do Azure. Observe que esses créditos do Azure não são iguais aos Créditos Quânticos do Azure e não são qualificados para uso em provedores de hardware quântico. Após 30 dias de inscrição ou depois de consumir os $200 de créditos gratuitos do Azure (o que ocorrer primeiro), tem de atualizar para uma subscrição pré-paga para continuar a utilizar os serviços Azure Quantum. Depois de ter uma assinatura ativa, o portal do Azure permitirá que você acesse o formulário de criação de espaço de trabalho.
Para ver uma lista das suas subscrições e funções associadas, consulte Verificar as suas subscrições.
Problema: a opção Criação rápida não está disponível
Você deve ser um proprietário da assinatura selecionada para usar a opção Criação rápida . Para ver uma lista das suas subscrições e funções associadas, consulte Verificar as suas subscrições. Se você for um Colaborador de assinatura, poderá usar a opção Criação avançada para criar um espaço de trabalho.
Problema: não é possível criar ou selecionar um grupo de recursos ou uma conta de armazenamento
Esse problema ocorre porque você não tem a autorização necessária no nível de assinatura, grupo de recursos ou conta de armazenamento. Para obter mais informações sobre os níveis de acesso necessários, consulte Requisitos de função para criar um espaço de trabalho.
Problema: a mensagem de erro "Falha na validação da implantação" aparece depois que você seleciona Criar
Essa mensagem de erro pode incluir mais detalhes, como "O cliente não tem autorização para executar a ação".
Esse problema ocorre porque você não tem a autorização necessária no nível de assinatura, grupo de recursos ou conta de armazenamento. Para obter mais informações sobre os níveis de acesso necessários, consulte Requisitos de função para criar um espaço de trabalho.
Se o acesso tiver sido concedido recentemente, talvez seja necessário atualizar a página. Às vezes, pode levar até uma hora para que novas atribuições de função entrem em vigor sobre as permissões armazenadas em cache na pilha.
Problema: você não vê um provedor de hardware quântico específico na guia Provedores
Este problema ocorre porque o fornecedor não suporta a região de faturação em que a sua subscrição está definida. Por exemplo, se sua assinatura estiver definida em Israel, a guia Provedores não listará Rigetti como um provedor disponível. Para obter uma lista de provedores e sua disponibilidade por país/região, consulte Disponibilidade global de provedores do Azure Quantum.
Problema: a criação de espaço de trabalho ou a adição/remoção de provedores falha com "ResourceDeploymentFailure" ou "ProviderDeploymentFailure"
Esse problema pode incluir mais detalhes, como "ResourceDeploymentFailure - A operação de recurso 'AzureAsyncOperationWaiting' concluída com o estado de provisionamento do terminal 'Failed'.", ou "ProviderDeploymentFailure - Failed to create plan for provider: <Name of the provider>".
Isso ocorre porque o locatário não habilitou as compras do Azure Marketplace. Siga os passos em Ativar compras do Azure Marketplace para ativar compras no Azure Marketplace.
Problema: a implantação de um espaço de trabalho quântico ou de uma conta de armazenamento falha com um dos seguintes erros:
- Espaço de trabalho: "A operação de gravação de recursos não foi concluída com êxito, porque atingiu o estado de provisionamento do terminal 'Falhou'".
- Conta de armazenamento: "A implantação do modelo falhou devido a violação de política".
Esse problema pode ocorrer se sua política de segurança de assinatura bloqueia a criação de contas de armazenamento que têm acesso público habilitado. O serviço Azure Quantum suporta apenas contas de armazenamento através do acesso público à Internet.
Para resolver isso, trabalhe com o administrador da assinatura para obter uma exceção para a conta de armazenamento que você deseja usar.
Portal do Azure Quantum
Problema: os blocos de notas guardados não carregam
Depois de selecionar Blocos de Anotações em seu espaço de trabalho, a lista de seus blocos de anotações salvos exibe uma barra de progresso, mas nunca carrega.
Isso pode acontecer por três motivos:
Se a conta de armazenamento não existir mais. Isso pode acontecer se a conta de armazenamento vinculada ao espaço de trabalho foi excluída. Para verificar, selecione a página Visão geral do espaço de trabalho e selecione o link para a conta de armazenamento. Se a conta de armazenamento tiver sido excluída, você verá um erro 404 - Não encontrado .
Se a conta de armazenamento não estiver habilitada para acesso público à Internet. Consulte Falha de autorização para obter mais informações.
Se a identidade gerenciada do espaço de trabalho não for um Colaborador da conta de armazenamento. Verifique se a identidade do espaço de trabalho (que usa o mesmo nome do espaço de trabalho) ainda tem a atribuição da função de Colaborador à conta de armazenamento. Para verificar, selecione a página Visão geral do espaço de trabalho e selecione o link para a conta de armazenamento. Na página Visão geral da conta de armazenamento, selecione Controle de acesso (IAM) e verifique se o espaço de trabalho está listado em Colaborador.