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
- Estimator
- Sampler
- 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.
- 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.
- 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.
- Estimator
- Sampler
default_shots
default_shotsO número total de shots a usar por Circuit por configuração.
Opções: Inteiro >= 0
Padrão: None
default_precision
default_precisionA 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))
dynamical_decoupling
dynamical_decouplingControla as configurações de mitigação de erros por desacoplamento dinâmico.
dynamical_decoupling documentação da API
dynamical_decoupling.enable
dynamical_decoupling.enableOpções: True, False
Padrão: False
dynamical_decoupling.extra_slack_distribution
dynamical_decoupling.extra_slack_distributionOpções: middle, edges
Padrão: middle
dynamical_decoupling.scheduling_method
dynamical_decoupling.scheduling_methodOpções: asap, alap
Padrão: alap
dynamical_decoupling.sequence_type
dynamical_decoupling.sequence_typeOpções: XX, XpXm, XY4
Padrão: XX
dynamical_decoupling.skip_reset_qubits
dynamical_decoupling.skip_reset_qubitsOpções: True, False
Padrão: False
environment
environmentenvironment documentação da API
environment.callback
environment.callbackFunção chamável que recebe o Job ID e o Job result.
Opções: None
Padrão: None
environment.job_tags
environment.job_tagsLista de tags.
Opções: None
Padrão: None
environment.log_level
environment.log_levelOpções: DEBUG, INFO, WARNING, ERROR, CRITICAL
Padrão: WARNING
environment.private
environment.privateOpções: True, False
Padrão: False
execution
executionexecution.init_qubits
execution.init_qubitsSe os Qubits devem ser redefinidos para o estado fundamental a cada shot.
Opções: True, False
Padrão: True
execution.rep_delay
execution.rep_delayO 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
max_execution_timeOpções: Número inteiro de segundos no intervalo [1, 10800]
Padrão: 10800 (3 horas)
resilience
resilienceOpções avançadas de resiliência para ajustar a estratégia de resiliência.
resilience documentação da API
resilience.layer_noise_learning
resilience.layer_noise_learningOpções para aprendizado de ruído por camada.
resilience.layer_noise_learning.layer_pair_depths
resilience.layer_noise_learning.layer_pair_depthsOpçõ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
resilience.layer_noise_learning.max_layers_to_learnOpções: None, Inteiro >= 1
Padrão: 4
resilience.layer_noise_learning.num_randomizations
resilience.layer_noise_learning.num_randomizationsOpções: Inteiro >= 1
Padrão: 32
resilience.layer_noise_learning.shots_per_randomization
resilience.layer_noise_learning.shots_per_randomizationOpções: Inteiro >= 1
Padrão: 128
resilience.layer_noise_model
resilience.layer_noise_modelOpções: NoiseLearnerResult, Sequence[LayerError]
Padrão: None
resilience.measure_mitigation
resilience.measure_mitigationOpções: True, False
Padrão: True
resilience.measure_noise_learning
resilience.measure_noise_learningOpções para aprendizado de ruído de medição.
resilience.measure_noise_learning.num_randomizations
resilience.measure_noise_learning.num_randomizationsOpções: Inteiro >= 1
Padrão: 32
resilience.measure_noise_learning.shots_per_randomization
resilience.measure_noise_learning.shots_per_randomizationOpções: Inteiro, auto
Padrão: auto
resilience.pec_mitigation
resilience.pec_mitigationOpções: True, False
Padrão: False
resilience.pec
resilience.pecOpções de mitigação por cancelamento probabilístico de erros.
resilience.pec.max_overhead
resilience.pec.max_overheadOpções: None, Inteiro >= 1
Padrão: 100
resilience.pec.noise_gain
resilience.pec.noise_gainOpções: auto, float no intervalo [0, 1]
Padrão: auto
resilience.zne_mitigation
resilience.zne_mitigationOpções: True, False
Padrão: False
resilience.zne
resilience.zneresilience.zne.amplifier
resilience.zne.amplifierOpções: gate_folding, gate_folding_front, gate_folding_back, pea
Padrão: gate_folding
resilience.zne.extrapolated_noise_factors
resilience.zne.extrapolated_noise_factorsOpções: Lista de floats
Padrão: [0, *noise_factors]
resilience.zne.extrapolator
resilience.zne.extrapolatorOpções: Um ou mais de: exponential, linear, double_exponential, polynomial_degree_(1 <= k <= 7), fallback
Padrão: (exponential, linear)
resilience.zne.noise_factors
resilience.zne.noise_factorsOpções: Lista de floats; cada float >= 1
Padrão: (1, 1.5, 2) para PEA, e (1, 3, 5) nos demais casos
resilience_level
resilience_levelO 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
seed_estimator
seed_estimatorsimulator
simulatorOpções a passar ao simular um Backend
simulator.basis_gates
simulator.basis_gatesOpçõ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
simulator.coupling_mapOpçõ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
simulator.noise_modelOpções: Qiskit Aer NoiseModel, ou sua representação
Padrão: None
simulator.seed_simulator
simulator.seed_simulatorOpções: Inteiro
Padrão: None
twirling
twirlingOpções de twirling
twirling.enable_gates
twirling.enable_gatesOpções: True, False
Padrão: False
twirling.enable_measure
twirling.enable_measureOpções: True, False
Padrão: True
twirling.num_randomizations
twirling.num_randomizationsOpções: auto, Inteiro >= 1
Padrão: auto
twirling.shots_per_randomization
twirling.shots_per_randomizationOpções: auto, Inteiro >= 1
Padrão: auto
twirling.strategy
twirling.strategyOpções: active, active-circuit, active-accum, all
Padrão: active-accum
experimental
experimentalOpções experimentais, quando disponíveis.
default_shots
default_shotsO número total de shots a usar por Circuit por configuração.
Opções: Inteiro >= 0
Padrão: None
dynamical_decoupling
dynamical_decouplingControla as configurações de mitigação de erros por desacoplamento dinâmico.
dynamical_decoupling documentação da API
dynamical_decoupling.enable
dynamical_decoupling.enableOpções: True, False
Padrão: False
dynamical_decoupling.extra_slack_distribution
dynamical_decoupling.extra_slack_distributionOpções: middle, edges
Padrão: middle
dynamical_decoupling.scheduling_method
dynamical_decoupling.scheduling_methodOpções: asap, alap
Padrão: alap
dynamical_decoupling.sequence_type
dynamical_decoupling.sequence_typeOpções: XX, XpXm, XY4
Padrão: XX
dynamical_decoupling.skip_reset_qubits
dynamical_decoupling.skip_reset_qubitsOpções: True, False
Padrão: False
environment
environmentenvironment documentação da API
environment.job_tags
environment.job_tagsLista de tags.
Opções: None
Padrão: None
environment.log_level
environment.log_levelOpções: DEBUG, INFO, WARNING, ERROR, CRITICAL
Padrão: WARNING
environment.private
environment.privateOpções: True, False
Padrão: False
execution
executionexecution.init_qubits
execution.init_qubitsSe os Qubits devem ser redefinidos para o estado fundamental a cada shot.
Opções: True, False
Padrão: True
execution.rep_delay
execution.rep_delayO 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
execution.meas_type
execution.meas_typeOpções: classified, kerneled, avg_kerneled
Padrão: classified
max_execution_time
max_execution_timeOpções: Número inteiro de segundos no intervalo [1, 10800]
Padrão: 10800 (3 horas)
simulator
simulatorOpções a passar ao simular um Backend
simulator.basis_gates
simulator.basis_gatesOpçõ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
simulator.coupling_mapOpçõ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
simulator.noise_modelOpções: Qiskit Aer NoiseModel, ou sua representação
Padrão: None
simulator.seed_simulator
simulator.seed_simulatorOpções: Inteiro
Padrão: None
twirling
twirlingOpções de twirling
twirling.enable_gates
twirling.enable_gatesOpções: True, False
Padrão: False
twirling.enable_measure
twirling.enable_measureOpções: True, False
Padrão: False
twirling.num_randomizations
twirling.num_randomizationsOpções: auto, Inteiro >= 1
Padrão: auto
twirling.shots_per_randomization
twirling.shots_per_randomizationOpções: auto, Inteiro >= 1
Padrão: auto
twirling.strategy
twirling.strategyOpções: active, active-circuit, active-accum, all
Padrão: active-accum
experimental
experimentalOpçõ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:
- Dynamic circuits
- Dynamical decoupling
- Fractional gates
- Gate-folding ZNE
- Gate twirling
- PEA
- PEC
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-runtimev0.42.0 ou posterior.
Incompatível com circuits dinâmicos.
Incompatível com:
- Twirling de Gate
- PEA
- PEC
Compatível com circuits dinâmicos ao usar qiskit-ibm-runtime v0.42.0 ou posterior.
Incompatível com:
- Circuits dinâmicos
- PEA
- PEC
Pode não funcionar ao usar gates personalizadas.
Incompatível com gates fracionárias ou com stretches.
Outras observações:
- Pode ser usado com circuits dinâmicos com gates não condicionais.
- Não funciona com entrelaçadores não Clifford.
Incompatível com:
- Circuits dinâmicos
- Gates fracionárias
- ZNE por dobramento de Gate
- PEC
Incompatível com:
- Circuits dinâmicos
- Gates fracionárias
- ZNE por dobramento de Gate
- PEA
Próximos passos
- Encontre mais detalhes sobre os métodos do
EstimatorV2na referência de API do Estimator. - Encontre mais detalhes sobre os métodos do
SamplerV2na referência de API do Sampler. - Encontre detalhes sobre como configurar supressão de erros e mitigação de erros.
- Aprenda como especificar opções.