Solución de problemas comunes en Azure Quantum
Al trabajar con el servicio Azure Quantum, puede encontrarse con estos problemas comunes. Vea cómo puede resolverlos.
Conexión al área de trabajo
Problema: No se puede autenticar en Azure Quantum mediante pytket-azure CI
Al intentar autenticarse en Azure Quantum a través del pytket-azure
paquete en un entorno de CI mediante las variables de entorno "AZURE_TENANT_ID", "AZURE_CLIENT_ID" y "AZURE_CLIENT_SECRET", puede producirse el error:
Code: InsufficientPermissions
Message: There are not enough permissions to perform this operation.
Para resolver este problema, intente autenticarse mediante un cadena de conexión y la variable de entorno "AZURE_QUANTUM_CONNECTION_STRING" en su lugar. Para obtener más información, consulte Conexión con un cadena de conexión.
connection_string = "[Copy connection string]"
import os
os.environ["AZURE_QUANTUM_CONNECTION_STRING"] = connection_string
Envío de trabajos
Problema: Falta targets
Si falta el lugar en el target que desea ejecutar el trabajo en la lista disponible target , es probable que tenga que actualizar a la versión más reciente de Quantum Development Kit para Visual Studio Code. Para obtener más información, consulte Actualización del QDK.
Problema: la operación ha devuelto un código de estado "No autorizado" no válido
Pasos para resolver este problema:
Abra Azure Portal (https://portal.azure.com) y autentique su cuenta.
En Navegar, seleccione Suscripciones y seleccione su suscripción.
Seleccione Control de acceso (IAM).
En Comprobar acceso, busque su dirección de correo electrónico y seleccione la cuenta.
No debería ver un rol propietario o colaborador en la lista.
Seleccione la pestaña Asignaciones de roles.
Nota:
Si no aparece la pestaña Asignaciones de roles, es posible que tenga que expandir el portal a pantalla completa o cerrar el panel Asignaciones de <su nombre>.
Seleccione la lista desplegable Rol , seleccione Propietario o Colaborador y escriba la dirección de correo electrónico y seleccione su cuenta.
Seleccione Guardar.
Ahora debería aparecer su cuenta configurada con el rol Propietario o Colaborador.
Vuelva a crear el área de trabajo de Azure Quantum y, a continuación, envíe un trabajo para esta nueva área de trabajo.
Problema: "AuthorizationFailure: esta solicitud no está autorizada para realizar esta operación"
Si se produce un error en el envío de un trabajo con este mensaje aunque tenga una conexión válida al servicio Azure Quantum, es posible que la cuenta de almacenamiento esté configurada para bloquear el acceso a la red pública. El servicio Azure Quantum solo admite cuentas de almacenamiento a través del acceso público a Internet.
Para comprobar la cuenta de almacenamiento:
- En la página área de trabajo cuántica de Azure Portal, seleccione Información general y seleccione la cuenta de almacenamiento.
- En la página de la cuenta de almacenamiento, en Seguridad y redes, seleccione Redes.
- En la pestaña Firewalls y redes virtuales del acceso a la red pública, asegúrese de que la opción Habilitar todas las redes está seleccionada.
Problema: mensaje de error "No se ha podido compilar el programa" al intentar enviar un programa de Q# a través de la CLI
Al intentar enviar un trabajo en el símbolo del sistema mediante el comando az quantum submit
, puede que se muestre el siguiente mensaje de error:
az quantum job submit ...
Failed to compile program.
Command ran in 21.181 seconds (init: 0.457, invoke: 20.724)
Este error se produce cuando hay un problema con el programa Q# que hace que se produzca un error en la compilación.
Problema: Error del compilador "Número incorrecto de parámetros de puerta"
Al enviar un trabajo a Quantinuum desde un entorno local de Jupyter Notebook o de línea de comandos, y mediante el traductor de QASM heredado (OPENQASM 2.0), puede producirse este error:
Job ID <jobId> failed or was cancelled with the message: 1000: Compile error: [<file, line>] Wrong number of gate parameters
Este error se produce cuando se usa una coma "," u otro carácter que no sea de punto como separador decimal, como es habitual en muchos idiomas. Reemplace los separadores decimales que no son de período por puntos "."".
// replace this line:
rx(1,5707963267948966) q[0];
// with this:
rx(1.5707963267948966) q[0];
Nota:
Este problema no se produce en cuadernos hospedados en el portal de Azure Quantum, solo en entornos de desarrollo local.
Problema: Error del compilador "no disponible para la configuración de compilación actual"
Al ejecutar una celda de código de Q# en un cuaderno de Jupyter Notebook en VS Code, es posible que encuentre el error:
<function name> not found. Found a matching item `<function name>' that is not available for the current compilation configuration
Este error indica que el perfil de QIR está establecido en Básico y la función en cuestión requiere el perfil Sin restriccionestarget.target Para establecer el target perfil en Sin restricciones:
- Mientras se encuentra en el programa de Q# en VS Code, seleccione Q#: BASE QIR en la barra de estado inferior.
- En las opciones que se muestran en la barra de estado superior, seleccione Q#: sin restricciones.
Problema: la operación ha devuelto un código de estado "Prohibido" no válido
Al enviar el primer trabajo, puede obtener un código de error "prohibido".
Este problema puede producirse durante la creación de un área de trabajo si Azure Quantum no puede completar la asignación de roles que vincula la nueva área de trabajo a la cuenta de almacenamiento que se ha especificado. Un escenario típico para esta situación se produce si la pestaña o la ventana del explorador web se cierra antes de que se complete la creación del área de trabajo.
Puede comprobar que se está ejecutando en este problema de asignación de roles siguiendo estos pasos:
- Vaya a la nueva área de trabajo cuántica en Azure Portal.
- En Overview Essentials Storage account (Información general>sobre la>cuenta de almacenamiento), seleccione en el vínculo de la cuenta de almacenamiento.
- En el panel de navegación izquierdo, seleccione Control de acceso (IAM) .
- Seleccione Asignaciones de roles.
- Compruebe que el área de trabajo aparezca como Colaborador.
- Si el área de trabajo no aparece como colaborador, puede:
- Cree un área de trabajo y asegúrese de que se haya completado el proceso de creación antes de cerrar la pestaña o ventana del explorador web.
- Adición de la asignación de roles adecuada en la cuenta de almacenamiento
- Control de acceso (IAM) > Agregar asignación de roles
- Rol > Colaborador
- Asignar acceso a > usuario, grupo o entidad de servicio
- Seleccionar > [nombre del área de trabajo]
- Guardar
Problema: Error en el trabajo con código de error: QIRPreProcessingFailed
Al enviar un trabajo a un proveedor de Rigetti, se produce un error en el trabajo y se notifica en la consola de administración de trabajos en Azure Portal:
Error code: QIRPreProcessingFailed
Error message: No match found for output recording set converter from outputrecordingset.v2.labeled to outputrecordingset.v1.nonlabeled
Este error puede deberse a un conflicto de dependencia con una versión anterior de pyqir o qiskit-qir. Desinstale todas las versiones de pyqir, pyqir-*y qiskit-qir en la máquina local y, a continuación, instale o actualice el paquete de Python de azure-quantum mediante el parámetro [qiskit]:
pip install --upgrade azure-quantum[qiskit]
Problema: Recuperación de información básica sobre trabajos con errores
Después de enviar un trabajo a un hardware target, el trabajo puede estar en la cola durante varias horas, o incluso uno o dos días, antes de que se produzca un error.
Para recuperar más información sobre el error:
- Use el
get_results()
método con el objeto job para ver la salida o el mensaje de error devuelto:
job.get_results()
- En el área de trabajo de Azure Portal, seleccione Operations Job Management (Administración de trabajos de operaciones>) y, a continuación, seleccione el nombre del trabajo para abrir un panel de detalles.
- En el área de trabajo de Azure Portal, seleccione Proveedores de operaciones>. Compruebe la disponibilidad de la target máquina. Los trabajos enviados a targets con un estado degradado pueden permanecer en la cola durante más tiempo de lo habitual. A veces, los trabajos se procesan, pero a veces agota el tiempo de espera y devuelven un error de target no disponible.
Problema: Se me pide que se autentique al conectarse mediante programación a mi área de trabajo.
Si usa el SDK de Python de Azure Quantum (por ejemplo, en cuadernos de Jupyter Notebook) y se conecta al área de trabajo mediante la clase AzureQuantumProvider, puede experimentar un elemento emergente para autenticarse en Azure cada vez que ejecute el script.
Esto sucede porque el token de seguridad se restablece cada vez que ejecute el script.
Para resolver este problema, ejecute az login
mediante la CLI de Azure. Para obtener más información, consulte az login.
Problema: Después de actualizar el paquete azure-quantum, obtengo el error "ModuleNotFoundError: no hay ningún módulo denominado qiskit.tools" al supervisar un trabajo.
A partir de Qiskit 1.0, el qiskit.tools
módulo, que es necesario para la job_monitor()
función, ha quedado en desuso. Para supervisar los trabajos, use las wait_for_final_state()
funciones o 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()
Estimador de recursos de Azure Quantum
Los siguientes escenarios comunes pueden impedir que se completen los trabajos de estimación de recursos. Vea cómo resolverlos.
Problema: El algoritmo cuántico debe contener al menos un estado T o una medida
Para tener en cuenta la asignación de un programa cuántico arbitrario a una matriz 2D de cúbits lógicos, el Estimador de recursos asume que el cálculo secuencial de síntesis paralela pauli (PSSPC) (vea arXiv:2211.07629, Apéndice D) se realiza en el programa de entrada. En ese enfoque, todas las operaciones de Clifford se desplazan a través de todas las puertas T, las puertas de rotación y las operaciones de medición, dejando una sola operación Clifford que se puede evaluar de forma clásica de forma eficaz. Por lo tanto, un programa cuántico que no contiene estados T, por ejemplo, desde puertas T o puertas de rotación, ni las operaciones de medición no requieren ningún recurso físico de computación cuántica.
Error message: Algorithm requires at least one T state or measurement to estimate resources
Problema: La tasa de errores de puerta T física es demasiado alta
La tasa de errores de estado T lógico depende del presupuesto de errores y del número de estados T del programa cuántico. Los generadores de T se usan para crear estados T con la tasa de errores de estado T lógico necesaria a partir de puertas T físicas , que tienen una tasa de errores de puerta T física . Normalmente, la tasa de errores de puerta T física es mucho mayor que la tasa de errores de puerta T lógica necesaria. En algunos escenarios, la tasa de errores de puerta T física es mucho mayor en comparación con la tasa de errores de estado T lógico necesaria, de modo que no se puede encontrar ningún generador de T que pueda producir estados T lógicos de calidad suficiente.
Error message: No T factory can be found, because the required logical T state error rate is too low
Esto es lo que podría hacer en este escenario:
- Aumente el presupuesto de errores, ya sea total o la parte para los estados T.
- Reduzca la tasa de errores de puerta T física en los parámetros de cúbit.
- Reduzca el número de estados T en el programa cuántico reduciendo las puertas T, las puertas de rotación y las puertas toffoli.
Problema: La tasa de errores de puerta T física es demasiado baja
También hay el escenario opuesto, en el que la tasa de errores de puerta T física es inferior a la tasa de errores de estado T lógico necesaria. En tales casos, no se requiere ningún generador de T, ya que la tasa de errores de puerta T física ya es de calidad suficiente. Sin embargo, esto requiere una consideración cuidadosa del impacto de las unidades de transferencia que transfieren los estados físicos de T desde la distancia del código 1 hasta la distancia de código del algoritmo (vea arXiv:2211.07629, Apéndice C). En general, en presencia de fábricas de T, el costo de las unidades de transferencia es 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.
Esto es lo que podría hacer en este escenario:
- Aumente la tasa de errores de puerta de T física en los parámetros de cúbit a la tasa de errores de estado T lógico necesaria.
- Reduzca el presupuesto de errores o simplemente la parte de los estados de T.
Problema: La tasa de errores debe ser un número entre 0 y 1
Las tasas de error siempre deben ser valores entre 0 y 1. Además, para que la corrección de errores sea efectiva, la tasa de errores física para las puertas y las medidas debe estar por debajo de un valor que dependa de las propiedades del código de corrección de errores y de la tasa de errores lógica necesaria.
Esto es lo que podría hacer en este escenario:
- Aumente el presupuesto de errores, ya sea total o la parte para los errores lógicos.
- Reduzca las tasas de errores físicos en los parámetros de cúbit.
Problema: Las restricciones del tiempo de ejecución máximo y el número máximo de cúbits físicos son mutuamente excluyentes
El estimador de recursos solo acepta una de las maxDuration
restricciones o maxPhysicalQubits
en el momento, pero no dos. Si proporciona restricciones maxDuration
y maxPhysicalQubits
para un único trabajo, devuelve el BothDurationAndPhysicalQubitsProvided
error.
Problema: Ejecución del contenedor de recuentos de estimación de QIR: símbolo no definido __quantum__rt__result_record_output
Este error se debe a la generación de circuitos QIR para Qiskit a través del paquete de Python de qiskit_qir sin establecer el record_output
parámetro False
en .
Para evitar este error, realice una de las siguientes acciones:
- Use el paquete de Python de azure_quantum para enviar circuitos Qiskit a Azure Quantum (recomendado).
- Al usar el paquete de Qiskit_qir Python, asegúrese de establecer el parámetro en
False
antes de enviar elrecord_output
circuito.
Creación de un área de trabajo de Azure Quantum
Los siguientes problemas pueden producirse al usar Azure Portal para crear un área de trabajo.
Problema: no se puede acceder al formulario de creación del área de trabajo en Azure Portal; Se le pide que se registre en una suscripción en su lugar.
Este problema se produce porque no tiene una suscripción activa.
Por ejemplo, es posible que se haya registrado en la suscripción gratuita de evaluación gratuita de 30 días de Azure, que incluye créditos de Azure gratuitos de USD200 para usarlos en los servicios de Azure. Tenga en cuenta que estos créditos de Azure no son los mismos que los créditos de Azure Quantum y no son aptos para su uso en proveedores de hardware cuántico. Después de 30 días de suscripción o una vez que haya consumido los 200 USD de créditos gratuitos de Azure (lo que ocurra primero), debe actualizar a una suscripción de pago por uso para seguir usando los servicios de Azure Quantum. Una vez que tenga una suscripción activa, Azure Portal le permitirá acceder al formulario de creación del área de trabajo.
Para ver una lista de las suscripciones y los roles asociados, consulte Comprobación de las suscripciones.
Problema: La opción Creación rápida no está disponible
Debe ser propietario de la suscripción que seleccione para poder usar la opción Creación rápida. Para ver una lista de las suscripciones y los roles asociados, consulte Comprobación de las suscripciones. Si es colaborador de la suscripción, puede usar la opción Creación avanzada para crear un área de trabajo.
Problema: No se puede crear o seleccionar un grupo de recursos o una cuenta de almacenamiento
Este problema se produce porque no tiene la autorización necesaria en el nivel de suscripción, grupo de recursos o cuenta de almacenamiento. Para obtener más información sobre los niveles de acceso necesarios, consulte Requisitos de rol para crear un área de trabajo.
Problema: aparece el mensaje de error "Error de validación de implementación" después de seleccionar Crear.
Este mensaje de error puede incluir más detalles, como "El cliente no tiene autorización para realizar la acción".
Este problema se produce porque no tiene la autorización necesaria en el nivel de suscripción, grupo de recursos o cuenta de almacenamiento. Para obtener más información sobre los niveles de acceso necesarios, consulte Requisitos de rol para crear un área de trabajo.
Si se concedió el acceso recientemente, es posible que tenga que actualizar la página. A veces, las nuevas asignaciones de roles pueden tardar hasta una hora en surtir efecto sobre los permisos almacenados en caché en la pila.
Problema: no ve un proveedor de hardware cuántico específico en la pestaña Proveedores
Este problema se produce porque el proveedor no admite la región de facturación en la que está establecida la suscripción. Por ejemplo, si la suscripción está establecida en Israel, la pestaña Proveedores no mostrará Rigetti como proveedor disponible. Para obtener una lista de proveedores y su disponibilidad por país o región, consulte Disponibilidad global de proveedores de Azure Quantum.
Problema: Se produce un error en la creación o eliminación del área de trabajo con "ResourceDeploymentFailure" o "ProviderDeploymentFailure"
Este problema puede incluir más detalles, como "ResourceDeploymentFailure: la operación de recurso "AzureAsyncOperation Await" completada con el estado de aprovisionamiento de terminal "Failed" o "ProviderDeploymentFailure- Failed to create plan for provider: <Name of the provider>".
Esto ocurre porque el inquilino no ha habilitado las compras de Azure Marketplace. Siga los pasos descritos en Habilitación de las compras de Azure Marketplace para habilitar las compras de Azure Marketplace.
Problema: la implementación de un área de trabajo cuántica o la implementación de una cuenta de almacenamiento produce uno de los siguientes errores:
- Área de trabajo: "La operación de escritura de recursos no se pudo completar correctamente, porque alcanzó el estado de aprovisionamiento de terminal 'Failed'".
- Cuenta de almacenamiento: "Error en la implementación de la plantilla debido a una infracción de directiva".
Este problema puede producirse si la directiva de seguridad de la suscripción bloquea la creación de cuentas de almacenamiento que tienen habilitado el acceso público. El servicio Azure Quantum solo admite cuentas de almacenamiento a través del acceso público a Internet.
Para resolverlo, trabaje con el administrador de la suscripción para obtener una excepción para la cuenta de almacenamiento que desea usar.
Portal de Azure Quantum
Problema: Los cuadernos guardados no se cargan
Después de seleccionar Cuadernos en el área de trabajo, la lista de los cuadernos guardados muestra una barra de progreso, pero nunca se carga.
Esto puede ocurrir por tres razones:
Si la cuenta de almacenamiento ya no existe. Esto puede ocurrir si se eliminó la cuenta de almacenamiento vinculada al área de trabajo. Para comprobarlo, seleccione la página Información general del área de trabajo y seleccione el vínculo a la cuenta de almacenamiento. Si se ha eliminado la cuenta de almacenamiento, verá un error 404: no encontrado .
Si la cuenta de almacenamiento no está habilitada para el acceso público a Internet. Consulte Error de autorización para obtener más información.
Si la identidad administrada del área de trabajo no es colaborador de la cuenta de almacenamiento. Compruebe que la identidad del área de trabajo (que usa el mismo nombre que el área de trabajo) todavía tiene la asignación de roles Colaborador a la cuenta de almacenamiento. Para comprobarlo, seleccione la página Información general del área de trabajo y seleccione el vínculo a la cuenta de almacenamiento. En la página Información general de la cuenta de almacenamiento, seleccione Control de acceso (IAM) y compruebe que el área de trabajo aparece en Colaborador.