Udostępnij za pośrednictwem


Rozwiązywanie typowych problemów w usłudze Azure Quantum

Podczas pracy z usługą Azure Quantum możesz napotkać te typowe problemy. Zobacz, jak można je rozwiązać.

Nawiązywanie połączenia z obszarem roboczym

Problem: Nie można uwierzytelnić się w usłudze Azure Quantum za pośrednictwem protokołu pytket-azure CI

Podczas próby uwierzytelniania w usłudze Azure Quantum za pomocą pakietu pytket-azure w środowisku CI, przy użyciu zmiennych środowiskowych "AZURE_TENANT_ID", "AZURE_CLIENT_ID" i "AZURE_CLIENT_SECRET", może wystąpić błąd:

Code: InsufficientPermissions
Message: There are not enough permissions to perform this operation.

Aby rozwiązać ten problem, spróbuj uwierzytelnić się przy użyciu łańcucha połączenia i zmiennej środowiskowej "AZURE_QUANTUM_CONNECTION_STRING". Aby uzyskać więcej informacji, zobacz Nawiązywanie połączenia za pomocą parametru połączenia.

connection_string = "[Copy connection string]" 

import os 

os.environ["AZURE_QUANTUM_CONNECTION_STRING"] = connection_string 

Przesyłanie zadań

Issue: Missing targets

If the target where you want to run your job is missing from the available target list, you likely need to update to the latest version of the Quantum Development Kit (QDK) for Visual Studio Code. Aby uzyskać więcej informacji, zobacz Aktualizowanie zestawu QDK.

Problem: Operacja zwraca nieprawidłowy kod stanu "Brak autoryzacji"

Kroki rozwiązywania tego problemu:

  1. Otwórz witrynę Azure Portal (https://portal.azure.com) i uwierzytelnij swoje konto.

  2. W obszarze Navigate (Nawiguj) wybierz pozycję Subskrypcje i wybierz swoją subskrypcję.

  3. Wybierz pozycję Kontrola dostępu (IAM) .

  4. W obszarze Sprawdź dostęp wyszukaj swój adres e-mail i wybierz konto.

  5. Nie powinnaś widzieć roli właściciel ani współautor.

  6. Select the Role assignments tab.

    Uwaga

    If you don't see the Role assignments tab, you may need to expand the portal to full screen or close the <your name> assignments pane.

  7. Wybierz listę rozwijaną Rola, wybierz pozycję Właściciel lub Współautor, a następnie wprowadź swój adres e-mail i wybierz konto.

  8. Wybierz pozycję Zapisz.

  9. Teraz powinien zostać wyświetlony zestaw kont skonfigurowany z rolą Właściciel lub Współautor .

  10. Ponownie utwórz obszar roboczy usługi Azure Quantum, a następnie prześlij zadanie względem tego nowego obszaru roboczego.

Issue: "AuthorizationFailure - This request is not authorized to perform this operation"

Jeśli przesyłanie zadania zakończy się niepowodzeniem z tym komunikatem, mimo że masz prawidłowe połączenie z usługą Azure Quantum, konto magazynowe może być skonfigurowane do blokowania dostępu do sieci publicznej. Usługa Azure Quantum obsługuje tylko konta magazynowe przez publiczny dostęp do Internetu.

Aby sprawdzić konto magazynowe:

  • On the quantum workspace page in the Azure Portal, select Overview and select the storage account.
  • Na stronie konta magazynowego w obszarze Zabezpieczenia i sieć wybierz pozycję Sieć.
  • Na karcie Zapory i sieci wirtualne w obszarze Dostęp do sieci publicznej upewnij się, że wybrano opcję Włącz wszystkie sieci .

Problem: "Nie można skompilować programu" podczas próby przesłania programu w języku Q# za pośrednictwem interfejsu wiersza polecenia

Podczas próby przesłania zadania w wierszu polecenia przy użyciu az quantum submit polecenia może wystąpić następujący komunikat o błędzie:

az quantum job submit ...
Failed to compile program.
Command ran in 21.181 seconds (init: 0.457, invoke: 20.724)

Ten błąd występuje, gdy występuje problem z programem języka Q#, który powoduje niepowodzenie kompilacji.

Problem: Błąd kompilatora "Nieprawidłowa liczba parametrów bramy"

Podczas przesyłania zadania do aplikacji Quantinuum z lokalnego środowiska jupyter Notebook lub wiersza polecenia oraz przy użyciu starszej wersji translatora QASM (OPENQASM 2.0) może wystąpić następujący błąd:

Job ID <jobId> failed or was cancelled with the message: 1000: Compile error: [<file, line>] Wrong number of gate parameters

Ten błąd występuje, gdy przecinek "" lub inny znak bez kropki jest używany jako separator dziesiętny, co jest powszechne w wielu językach. Replace any non-period decimal separators with periods ".".

// replace this line:
rx(1,5707963267948966) q[0];

// with this:
rx(1.5707963267948966) q[0];

Uwaga

Ten problem nie występuje w notesach hostowanych w witrynie Azure Quantum Portal tylko w lokalnych środowiskach deweloperskich.

Problem: Błąd kompilatora "niedostępny dla bieżącej konfiguracji kompilacji"

When you run a Q# code cell in a Jupyter Notebook in VS Code, you may encounter the error:

<function name> not found. Found a matching item `<function name>' that is not available for the current compilation configuration

Ten błąd wskazuje, że profil target QIR (reprezentacja pośrednia kwantowa) ma ustawioną wartość Basic, a kwestionowana funkcja wymaga profilu Bez ograniczeńtarget. Aby ustawić profil na targetBez ograniczeń:

  1. W programie Q# w programie VS Code wybierz pozycję Q#: QIR base na dolnym pasku stanu.
  2. Z opcji wyświetlanych na górnym pasku stanu wybierz pozycję Q#: unrestricted.

Problem: Operacja zwróciła nieprawidłowy kod stanu "Zabronione"

Podczas przesyłania pierwszego zadania może zostać wyświetlony kod błędu "Zabronione".

Ten problem może pochodzić z procesu tworzenia obszaru roboczego: usługa Azure Quantum nie może ukończyć przypisania roli łączącego nowy obszar roboczy z określonym kontem magazynu. Typowy scenariusz tej sytuacji polega na zamknięciu karty lub okna przeglądarki internetowej, zanim tworzenie obszaru roboczego zostanie ukończone.

Aby sprawdzić, czy występuje problem z przypisaniem roli, wykonaj następujące kroki:

  • Przejdź do nowego obszaru roboczego kwantowego w witrynie Azure Portal
  • Under Overview>Essentials>Storage account, select on the storage account link
  • Na lewym pasku nawigacji wybierz pozycję Kontrola dostępu (IAM)
  • Select Role Assignments
  • Verify that your workspace appears as a Contributor
  • If the workspace doesn't appear as a Contributor, you can either:
    • Utwórz nowy obszar roboczy i poczekaj na ukończenie tworzenia obszaru roboczego przed zamknięciem karty lub okna przeglądarki internetowej.
    • Add the proper role assignment under the storage account
      • Access Control (IAM) > Add role assignments
      • Role > Contributor
      • Assign access to > User, group, or service principal
      • Wybierz > [Nazwa obszaru roboczego]
      • Zapisz

Problem: Zadanie kończy się niepowodzeniem z kodem błędu: QIRPreProcessingFailed

Po przesłaniu zadania do dostawcy usługi Rigetti zadanie kończy się niepowodzeniem i jest zgłaszane w konsoli zarządzania zadaniami w witrynie Azure Portal:

Error code: QIRPreProcessingFailed
Error message: No match found for output recording set converter from outputrecordingset.v2.labeled to outputrecordingset.v1.nonlabeled

Ten błąd może być spowodowany konfliktem zależności z poprzednią wersją pyqir lub qiskit-qir. Odinstaluj wszystkie wersje pyqir, pyqir-*i qiskit-qir na komputerze lokalnym, a następnie zainstaluj lub zaktualizuj pakiet azure-quantum Python przy użyciu parametru [qiskit]:

pip install --upgrade azure-quantum[qiskit]

Problem: Pobieranie podstawowych informacji o zadaniach, które zakończyły się niepowodzeniem

Po przesłaniu zadania do sprzętu targetzadanie może znajdować się w kolejce przez kilka godzin, a nawet jeden lub dwa dni, zanim zakończy się niepowodzeniem.

Aby pobrać więcej informacji na temat błędu:

  • Aby wyświetlić dane wyjściowe lub zwrócony komunikat o błędzie, użyj metody get_results() z obiektem zadania:
job.get_results()
  • W obszarze roboczym witryny Azure Portal wybierz pozycję >, a następnie wybierz zadanie Nazwa, aby otworzyć okienko szczegółów.
  • In your Azure Portal workspace, select Operations > Providers. Sprawdź dostępność maszyny target . Jobs submitted to targets with a status of Degraded may stay in the queue longer than usual. Sometimes the jobs get processed, but sometimes they time out and return an error of target unavailable.

Problem: Otrzymuję monit o uwierzytelnienie podczas programowego nawiązywania połączenia z moim obszarem roboczym

Jeśli używasz zestawu Azure Quantum Python SDK, na przykład w notesie Jupyter i łączysz się z obszarem roboczym przy użyciu klasy AzureQuantumProvider, możesz zobaczyć wyskakujące okienko do uwierzytelniania na platformie Azure za każdym razem, gdy uruchamiasz skrypt.

To wyskakujące okienko pojawia się, ponieważ Twój token zabezpieczający jest resetowany za każdym razem, gdy uruchamiasz skrypt.

Ten problem można rozwiązać, uruchamiając polecenie az login przy użyciu interfejsu wiersza polecenia platformy Azure. Aby uzyskać więcej informacji, zobacz az login.

Problem: Po zaktualizowaniu pakietu azure-quantum występuje błąd "ModuleNotFoundError: Brak modułu o nazwie qiskit.tools" podczas monitorowania zadania

Od wersji Qiskit 1.0 moduł qiskit.tools, który jest wymagany dla funkcji job_monitor(), jest przestarzały. Aby monitorować zadania, użyj funkcji wait_for_final_state() lub 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()

Narzędzie do szacowania zasobów usługi Azure Quantum

Następujące typowe scenariusze mogą uniemożliwić ukończenie zadań szacowania zasobów. Zobacz, jak je rozwiązać.

Problem: Algorytm kwantowy musi zawierać co najmniej jeden stan lub pomiar T

To account for mapping an arbitrary quantum program to a 2D array of logical qubits, the Resource Estimator assumes that Parallel Synthesis Sequential Pauli Computation (PSSPC) is performed on the input program. In that approach, all Clifford operations are commuted through all T gates, rotation gates, and measurement operations, leaving a single Clifford operation that can be efficiently evaluated classically. W związku z tym program kwantowy, który nie zawiera stanów T, na przykład z bram T lub bram obrotowych lub operacji pomiaru, nie wymaga żadnych fizycznych zasobów obliczeniowych kwantowych. Aby uzyskać więcej informacji na temat sekwencyjnego obliczania Pauli w kontekście równoległej syntezy, zobacz arXiv:2211.07629, dodatek D.

Error message: Algorithm requires at least one T state or measurement to estimate resources

Problem: Fizyczny wskaźnik błędów bramy T jest zbyt wysoki

Współczynnik błędów logicznego stanu T zależy od budżetu błędu i liczby stanów T w programie kwantowym. T factories are used to create T states with the required logical T state error rate from physical T gates, which have a physical T gate error rate. Zazwyczaj fizyczna szybkość błędów bramy T jest wyższa niż wymagana logiczna szybkość błędów bramy T. In some scenarios, the physical T gate error rate is significantly higher compared to the required logical T state error rate, such that no T factory can be found that can produce logical T states of sufficient quality.

Error message: No T factory can be found, because the required logical T state error rate is too low

Oto co można zrobić w takim scenariuszu:

  • Increase the error budget, either total or the part for T states.
  • Reduce the physical T gate error rate in the qubit parameters.
  • Zmniejsz liczbę stanów T w programie kwantowym, zmniejszając liczbę bram T, bram rotacji i bram toffoli.

Problem: Fizyczny wskaźnik błędów bramy T jest zbyt niski

Istnieje również odwrotny scenariusz, w którym fizyczny wskaźnik błędów bramy T jest niższy niż wymagany wskaźnik błędów stanu logicznego T. In such cases, no T factory is required, because the physical T gate error rate is already of sufficient quality. Jednak ten scenariusz wymaga starannego rozważenia wpływu jednostek transferu, które przesyłają fizyczne stany T z odległości 1 kodu do odległości kodu algorytmu (zobacz arXiv:2211.07629, dodatek C). In general, in the presence of T factories, the cost of transfer units is negligible.

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.

Oto co można zrobić w takim scenariuszu:

  • Increase the physical T gate error rate in the qubit parameters to the required logical T state error rate.
  • Reduce the error budget or just the part for the T states.

Problem: Współczynnik błędów musi być liczbą z zakresu od 0 do 1

Współczynniki błędów powinny zawsze być wartościami z zakresu od 0 do 1. Ponadto, aby korekta błędów byłaby skuteczna, fizyczna szybkość błędów bram i pomiarów musi być niższa od właściwości kodu korekty błędów i wymaganego logicznego współczynnika błędów.

Oto co można zrobić w takim scenariuszu:

  • Zwiększ budżet błędów, albo całkowity, albo ten przeznaczony na błędy logiczne.
  • Zmniejsz współczynniki błędów fizycznych w parametrach kubitu.

Issue: Constraints maximum runtime and maximum number of physical qubits are mutually exclusive

Narzędzie do szacowania zasobów akceptuje tylko jedno z ograniczeń maxDuration lub maxPhysicalQubits, ale nie oba jednocześnie. Jeśli dla pojedynczego zadania podasz zarówno ograniczenie maxDuration, jak i maxPhysicalQubits, zostanie zwrócony błąd BothDurationAndPhysicalQubitsProvided.

Issue: Run QIR estimate counts container: undefined symbol __quantum__rt__result_record_output

Ten błąd wynika z generowania QIR dla obwodów Qiskit za pośrednictwem pakietu qiskit_qir Python bez ustawiania parametru record_output na False.

Aby uniknąć tego błędu, wykonaj jedną z następujących czynności:

  • Użyj pakietu azure_quantum Python, aby przesłać obwody Qiskit do usługi Azure Quantum (zalecane).
  • Aby korzystać z pakietu Pythona qiskit_qir, upewnij się, że parametr record_output jest ustawiony na False przed przesłaniem obwodu.

Tworzenie obszaru roboczego usługi Azure Quantum

Podczas tworzenia obszaru roboczego za pomocą witryny Azure Portal mogą wystąpić następujące problemy.

Problem: Nie można uzyskać dostępu do formularza tworzenia obszaru roboczego w witrynie Azure Portal; Zostanie wyświetlony monit o zarejestrowanie się w celu uzyskania subskrypcji

Ten problem występuje, ponieważ nie masz aktywnej subskrypcji.

Możesz na przykład zarejestrować się w 30-dniowej bezpłatnej subskrypcji platformy Azure, która obejmuje bezpłatne środki na korzystanie z platformy Azure w wysokości 200 USD. These Azure credits aren't eligible to use on quantum hardware providers. After 30 days of sign-up or once you consume the $200 of free Azure credits (whichever occurs first), you must upgrade to a pay-as-you-go subscription to continue using Azure Quantum services. Po utworzeniu aktywnej subskrypcji witryna Azure Portal umożliwia dostęp do formularza tworzenia obszaru roboczego.

Aby wyświetlić listę subskrypcji i skojarzonych ról, zobacz Sprawdzanie subskrypcji.

Problem: Opcja Szybkiego tworzenia jest niedostępna

Aby użyć opcji Szybkie tworzenie, musisz być właścicielem wybranej subskrypcji. Aby wyświetlić listę subskrypcji i skojarzonych ról, zobacz Sprawdzanie subskrypcji. Jeśli jesteś współautorem subskrypcji, możesz użyć opcji Tworzenie zaawansowane, aby utworzyć obszar roboczy.

Problem: Nie możesz utworzyć lub wybrać grupy zasobów lub konta magazynu

Ten problem występuje, ponieważ nie masz wymaganej autoryzacji na poziomie subskrypcji, grupy zasobów ani konta magazynu. Aby uzyskać więcej informacji na temat wymaganych poziomów dostępu, zobacz Wymagania dotyczące ról dotyczące tworzenia obszaru roboczego.

Problem: Po wybraniu pozycji Utwórz zostanie wyświetlony komunikat o błędzie "Weryfikacja wdrożenia nie powiodła się"

Ten komunikat o błędzie może zawierać więcej szczegółów, takich jak "Klient nie ma autoryzacji do wykonania akcji".

Ten problem występuje, ponieważ nie masz wymaganej autoryzacji na poziomie subskrypcji, grupy zasobów ani konta magazynu. Aby uzyskać więcej informacji na temat wymaganych poziomów dostępu, zobacz Wymagania dotyczące ról dotyczące tworzenia obszaru roboczego.

Jeśli dostęp został niedawno udzielony, może być konieczne odświeżenie strony. It can sometimes take up to one hour for new role assignments to take effect over cached permissions across the stack.

Problem: Na karcie Dostawcy nie widzisz określonego dostawcy sprzętu kwantowego

Ten problem występuje, ponieważ dostawca nie obsługuje regionu rozliczeniowego, w którym jest ustawiona subskrypcja. Jeśli na przykład twoja subskrypcja jest ustawiona w Izraelu, karta Dostawcy nie wyświetla listy Rigetti jako dostępnego dostawcy. Aby uzyskać listę dostawców i ich dostępność według kraju/regionu, zobacz Globalna dostępność dostawców usługi Azure Quantum.

Problem: Tworzenie obszaru roboczego lub dodawanie/usuwanie dostawców kończy się niepowodzeniem z komunikatem "ResourceDeploymentFailure" lub "ProviderDeploymentFailure"

This issue may include more details such as "ResourceDeploymentFailure - The 'AzureAsyncOperationWaiting' resource operation completed with terminal provisioning state 'Failed'.", or "ProviderDeploymentFailure - Failed to create plan for provider: <Name of the provider>".

Ten błąd ma miejsce, ponieważ klient nie włączył zakupów w witrynie Azure Marketplace. Wykonaj kroki opisane w sekcji Włączanie zakupów w Azure Marketplace, aby włączyć zakupy w Azure Marketplace.

Issue: Deploying a quantum workspace or deploying a storage account fails with one of the following errors:

  • Workspace: "The resource write operation failed to complete successfully, because it reached terminal provisioning state 'Failed'".
  • Storage account: "The template deployment failed because of policy violation".

This issue may occur if your subscription security policy blocks the creation of storage accounts that have public access enabled. Usługa Azure Quantum obsługuje tylko konta magazynowe przez publiczny dostęp do Internetu.

Aby rozwiązać ten problem, skontaktuj się z osobą zarządzającą subskrypcją, aby uzyskać wyjątek dla konta przechowywania, którego chcesz użyć.

Portal Azure Quantum

Problem: Zapisane notesy nie są ładowane

Po wybraniu pozycji Notesy w obszarze roboczym lista zapisanych notesów wyświetla pasek postępu, ale nigdy nie ładuje.

Ten scenariusz może wystąpić z trzech powodów:

  1. If the storage account no longer exists. Może się tak zdarzyć, jeśli zostanie usunięte konto magazynowe powiązane z obszarem roboczym. To verify, select the Overview page for the workspace and select the link to the storage account. If the storage account has been deleted, you see a 404 - Not found error.

  2. If the storage account is not enabled for public internet access. Aby uzyskać więcej informacji, zobacz Niepowodzenie autoryzacji.

  3. If the managed identity of the workspace is not a Contributor to the storage account. Check that the workspace identity (which uses the same name as the workspace) still has the Contributor role assignment to the storage account. To verify, select the Overview page for the workspace and select the link to the storage account. On the Overview page for the storage account, select Access control (IAM) and verify that the workspace is listed under Contributor.