Pular para o conteúdo principal

Introdução às opções

Você pode passar opções para as primitivas a fim de personalizá-las de acordo com suas necessidades. Esta seção foca nas opções das primitivas do Qiskit Runtime. Embora a interface do método run() das primitivas seja comum a todas as implementações, as opções não são. Consulte as referências de API correspondentes para obter informações sobre as opções de qiskit.primitives e qiskit_aer.primitives.

Visão geral

Estrutura

Ao chamar as primitivas, você pode passar opções usando uma classe de opções ou um dicionário. Opções usadas com frequência, como resilience_level, ficam no primeiro nível. Outras opções são agrupadas em diferentes categorias, como execution. Veja a seção Definir opções de primitivas para todos os detalhes.

Valores padrão

Se você não especificar um valor para uma opção, ela recebe um valor especial Unset e o valor padrão do servidor é utilizado. Assim, o valor padrão será o mesmo independentemente da versão do seu código.

As tabelas na seção Resumo das classes de opções listam os valores padrão.

Definir opções

As opções podem ser definidas antes de uma primitiva ser construída e passadas para ela, que faz uma cópia delas. Isso pode ser feito como um dicionário aninhado ou usando as classes de opções. Além disso, após a primitiva ser construída, suas opções podem ser alteradas. Use o fluxo de trabalho que melhor se adapte à sua aplicação. Veja Especificar opções para todos os detalhes.

Resumo das classes de opções

  • Dynamical decoupling: Opções para desacoplamento dinâmico.
  • Environment: Opções do ambiente de execução, como o nível de log a definir e tags de job a adicionar.
  • Execution: Opções de execução de primitivas, incluindo se os Qubits devem ser inicializados e o atraso de repetição.
  • Resilience: Opções avançadas para configurar métodos de mitigação de erros como mitigação de erros de medição, ZNE e PEC.
  • Simulator: Opções do simulador, como as gates de base, semente do simulador e mapa de acoplamento. Aplica-se apenas ao modo de teste local.
  • Twirling: Opções de twirling, como se deve aplicar twirling em gates de dois Qubits e o número de shots a executar para cada amostra aleatória.

Opções disponíveis

A tabela a seguir documenta as opções da versão mais recente do qiskit-ibm-runtime. Para ver versões anteriores das opções, acesse a referência de API do qiskit-ibm-runtime e selecione uma versão anterior.

default_shots

O número total de shots a usar por Circuit por configuração.

Opções: Inteiro >= 0

Padrão: None

default_shots documentação da API

default_precision

A precisão padrão a usar para qualquer chamada de PUB ou run() que não especifique uma.

Opções: Float > 0

Padrão: 0.015625 (1 / sqrt(4096))

default_precision documentação da API

dynamical_decoupling

Controla as configurações de mitigação de erros por desacoplamento dinâmico.

dynamical_decoupling documentação da API

dynamical_decoupling.enable

Opções: True, False

Padrão: False

dynamical_decoupling.extra_slack_distribution

Opções: middle, edges

Padrão: middle

dynamical_decoupling.scheduling_method

Opções: asap, alap Padrão: alap

dynamical_decoupling.sequence_type

Opções: XX, XpXm, XY4 Padrão: XX

dynamical_decoupling.skip_reset_qubits

Opções: True, False Padrão: False

environment

environment documentação da API

environment.callback

Função chamável que recebe o Job ID e o Job result.

Opções: None

Padrão: None

environment.job_tags

Lista de tags.

Opções: None

Padrão: None

environment.log_level

Opções: DEBUG, INFO, WARNING, ERROR, CRITICAL

Padrão: WARNING

environment.private

Opções: True, False

Padrão: False

execution

execution documentação da API

execution.init_qubits

Se os Qubits devem ser redefinidos para o estado fundamental a cada shot.

Opções: True, False

Padrão: True

execution.rep_delay

O atraso entre uma medição e o Circuit quântico subsequente.

Opções: Valor no intervalo fornecido por backend.rep_delay_range

Padrão: Fornecido por backend.default_rep_delay

max_execution_time

Opções: Número inteiro de segundos no intervalo [1, 10800]

Padrão: 10800 (3 horas)

max_execution_time documentação da API

resilience

Opções avançadas de resiliência para ajustar a estratégia de resiliência.

resilience documentação da API

resilience.layer_noise_learning

Opções para aprendizado de ruído por camada.

resilience.layer_noise_learning documentação da API

resilience.layer_noise_learning.layer_pair_depths

Opções: list[int] com 2 a 10 valores no intervalo [0, 200]

Padrão: (0, 1, 2, 4, 16, 32)

resilience.layer_noise_learning.max_layers_to_learn

Opções: None, Inteiro >= 1

Padrão: 4

resilience.layer_noise_learning.num_randomizations

Opções: Inteiro >= 1

Padrão: 32

resilience.layer_noise_learning.shots_per_randomization

Opções: Inteiro >= 1

Padrão: 128

resilience.layer_noise_model

Opções: NoiseLearnerResult, Sequence[LayerError]

Padrão: None

resilience.measure_mitigation

Opções: True, False

Padrão: True

resilience.measure_noise_learning

Opções para aprendizado de ruído de medição.

resilience.measure_noise_learning documentação da API

resilience.measure_noise_learning.num_randomizations

Opções: Inteiro >= 1

Padrão: 32

resilience.measure_noise_learning.shots_per_randomization

Opções: Inteiro, auto

Padrão: auto

resilience.pec_mitigation

Opções: True, False

Padrão: False

resilience.pec

Opções de mitigação por cancelamento probabilístico de erros.

resilience.pec documentação da API

resilience.pec.max_overhead

Opções: None, Inteiro >= 1

Padrão: 100

resilience.pec.noise_gain

Opções: auto, float no intervalo [0, 1]

Padrão: auto

resilience.zne_mitigation

Opções: True, False

Padrão: False

resilience.zne

resilience.zne.amplifier

Opções: gate_folding, gate_folding_front, gate_folding_back, pea

Padrão: gate_folding

resilience.zne.extrapolated_noise_factors

Opções: Lista de floats

Padrão: [0, *noise_factors]

resilience.zne.extrapolator

Opções: Um ou mais de: exponential, linear, double_exponential, polynomial_degree_(1 <= k <= 7), fallback

Padrão: (exponential, linear)

resilience.zne.noise_factors

Opções: Lista de floats; cada float >= 1

Padrão: (1, 1.5, 2) para PEA, e (1, 3, 5) nos demais casos

resilience_level

O nível de resiliência a construir contra erros. Níveis mais altos geram resultados mais precisos ao custo de tempos de processamento maiores.

Opções: 0, 1, 2

Padrão: 1

resilience_level documentação da API

seed_estimator

Opções: Inteiro

Padrão: None

seed_estimator

simulator

Opções a passar ao simular um Backend

simulator documentação da API

simulator.basis_gates

Opções: Lista de nomes de gates de base para desdobrar

Padrão: O conjunto de todas as gates de base suportadas pelo simulador Qiskit Aer

simulator.coupling_map

Opções: Lista de interações direcionadas entre dois Qubits

Padrão: None, o que implica ausência de restrições de conectividade (conectividade total).

simulator.noise_model

Opções: Qiskit Aer NoiseModel, ou sua representação

Padrão: None

simulator.seed_simulator

Opções: Inteiro

Padrão: None

twirling

Opções de twirling

twirling documentação da API

twirling.enable_gates

Opções: True, False

Padrão: False

twirling.enable_measure

Opções: True, False

Padrão: True

twirling.num_randomizations

Opções: auto, Inteiro >= 1

Padrão: auto

twirling.shots_per_randomization

Opções: auto, Inteiro >= 1

Padrão: auto

twirling.strategy

Opções: active, active-circuit, active-accum, all

Padrão: active-accum

experimental

Opções experimentais, quando disponíveis.

Compatibilidade de recursos

Devido a diferenças no processo de compilação do dispositivo, certos recursos do runtime não podem ser usados juntos em um único job. Clique na aba correspondente para ver a lista de recursos incompatíveis com o recurso selecionado:

Incompatível com:

  • ZNE por dobramento de Gate
  • PEA
  • PEC
  • Desacoplamento dinâmico

Outras observações:

  • Pode ser usado com twirling de Gate para gates não condicionais.
  • Compatível com gates fracionárias ao usar qiskit-ibm-runtime v0.42.0 ou posterior.

Próximos passos

Recomendações