Rozwiązywanie problemów w Azure Quantum

Podczas pracy z usługą Azure Quantum mogą wystąpić problemy z połączeniem lub zadaniami. W tym artykule wyjaśniono, jak rozwiązywać te problemy.

Problemy z połączeniem obszaru roboczego

Problem: Nie mogę uwierzytelnić się w Azure Quantum przy użyciu pytket-azure

Podczas próby uwierzytelnienia w Azure Quantum przy użyciu pakietu pytket-azure w środowisku ciągłej integracji przy użyciu zmiennych środowiskowych "AZURE_TENANT_ID", "AZURE_CLIENT_ID" i "AZURE_CLIENT_SECRET" może wystąpić następujący błąd:

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

Aby rozwiązać ten problem, użyj ciągu połączenia i zmiennej środowiskowej "AZURE_QUANTUM_CONNECTION_STRING" do uwierzytelniania. Aby uzyskać więcej informacji, zobacz Połączenie za pomocą łańcucha połączenia.

connection_string = "" # Add your connection string

import os 

os.environ["AZURE_QUANTUM_CONNECTION_STRING"] = connection_string 

Problemy z przesyłaniem zadań

Problem: Nie mogę znaleźć elementu target , do którego chcę przesłać zadanie

Jeśli Azure Quantum target, na której chcesz uruchomić zadanie, nie znajduje się na dostępnej liście target, zaktualizuj do najnowszej wersji Quantum Development Kit (QDK) dla Visual Studio Code (VS Code). Aby uzyskać więcej informacji, zobacz Aktualizowanie zestawu QDK.

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

Aby rozwiązać ten problem, wykonaj poniższe czynności:

  1. Zaloguj się do portalu Azure i uwierzytelnij swoje konto.
  2. Przejdź do obszaru roboczego Quantum, do którego próbujesz przesłać zadanie.
  3. W okienku nawigacji obszaru roboczego wybierz pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami).
  4. Wybierz przycisk Wyświetl mój dostęp . Otwiera się panel przypisania.
  5. W kolumnie Rola tabeli Przypisania ról sprawdź, czy masz rolę Właściciel lub Współautor .
  6. Jeśli nie masz żadnej roli, poproś administratora subskrypcji o przypisanie Ci roli Właściciel lub Współautor dla tego obszaru roboczego.

Problem: "AuthorizationFailure — to żądanie nie jest autoryzowane do wykonania tej operacji"

Jeśli ten komunikat zostanie wyświetlony nawet wtedy, gdy masz prawidłowo nawiązane połączenie z usługą Azure Quantum, konto magazynu danych może być skonfigurowane do blokowania dostępu do sieci publicznych. Usługa Azure Quantum obsługuje tylko konta magazynowe, które mają publiczny dostęp do internetu.

Aby sprawdzić ustawienia konta magazynu, wykonaj następujące kroki:

  1. Zaloguj się do portalu Azure.
  2. Przejdź do obszaru roboczego Quantum.
  3. Na stronie Przegląd wybierz konto magazynu.
  4. W okienku nawigacji rozwiń listę rozwijaną Zabezpieczenia i sieć , a następnie wybierz pozycję Sieć.
  5. W sekcji Dostęp do sieci publicznej na karcie Dostęp publiczny wybierz przycisk Zarządzaj .
  6. Dla ustawienia Dostęp do sieci publicznej wybierz pozycję Włącz. Dla ustawienia Zakres dostępu do sieci publicznej wybierz pozycję Włącz ze wszystkich sieci.
  7. Wybierz przycisk Zapisz .

Problem: "Nie można skompilować programu" podczas przesyłania programu w języku Q# z Azure CLI

Podczas przesyłania zadania za pomocą polecenia az quantum submit Azure CLI 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. Upewnij się, że kod języka Q# ma prawidłową składnię.

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

Podczas przesyłania zadania do aplikacji Quantinuum z lokalnego środowiska Jupyter Notebook lub interfejsu wiersza polecenia i używasz starszej wersji translatora QASM (OPENQASM 2.0), może wystąpić ten 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 inny niż kropka jest używany jako separator dziesiętny. Zastąp wszystkie separatory dziesiętne bez kropki kropkami ". Przykład:

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

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

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

Po uruchomieniu komórki kodu języka Q# w Jupyter Notebook w programie VS Code może wystąpić błąd:

<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 QIR (kwantowa reprezentacja pośrednia) target ma wartość Base , gdy funkcja wymaga profilu bez ograniczeńtarget . Jeśli nie określisz target typu profilu, kompilator automatycznie ustawia target jako Unrestricted.

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

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

Ten problem występuje podczas tworzenia nowego obszaru roboczego w portalu Azure, a Azure Quantum nie może ukończyć przypisania roli, które łączy obszar roboczy z określonym kontem magazynowym. Może się to zdarzyć po zamknięciu karty lub przeglądarki internetowej przed ukończeniem tworzenia obszaru roboczego.

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

  1. Przejdź do obszaru roboczego Quantum w portalu Azure.
  2. Na stronie Przegląd wybierz konto magazynu.
  3. W okienku nawigacji wybierz pozycję Access Control (IAM).
  4. Wybierz kartę Przypisania ról .
  5. W kolumnie Rola sprawdź, czy konto magazynu obszaru roboczego ma rolę Współtwórcy konta magazynu i rolę Współtwórcy danych obiektu blob.

Jeśli obszar roboczy nie ma obu wymaganych ról na koncie magazynu, wykonaj jedną z następujących czynności:

  • Utwórz nowy obszar roboczy i upewnij się, że tworzenie obszaru roboczego zostało ukończone przed zamknięciem okna lub karty przeglądarki internetowej.
  • Przypisz role Współtwórca konta magazynowego i Współtwórca danych obiektów blob do twojego obszaru roboczego dla konta magazynowego.

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

Po przesłaniu zadania na Rigetti target i niepowodzeniu zadania, w konsoli Zarządzanie zadaniami dla obszaru roboczego Quantum w portalu Azure może zostać wyświetlony następujący komunikat o błędzie:

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 bibliotekę qdk Python za pomocą azure i qiskit dodatki:

pip install --upgrade "qdk[azure,qiskit]"

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

Po przesłaniu zadania do sprzętu target może ono oczekiwać w kolejce przez kilka godzin lub dni, zanim się zakończy niepowodzeniem.

Aby pobrać więcej informacji o niepowodzeniu zadania, wykonaj jedną z następujących czynności:

  • Aby wyświetlić dane wyjściowe zadania lub komunikat o błędzie, użyj metody get_results() z modułu qdk.azure Python:

    job.get_results()
    
  • W obszarze roboczym Quantum w portalu Azure przejdź do listy rozwijanej Job Management z listy rozwijanej Operations a następnie wybierz zadanie Name aby otworzyć okienko Szczegóły zadania.

  • W obszarze roboczym Quantum w portalu Azure przejdź do listy rozwijanej Providers z listy rozwijanej Operations. Sprawdź, czy target sprzęt jest dostępny. Jeśli target stan jest degradacja, zadania mogą pozostawać w kolejce dłużej niż zwykle. Czasami zadania są przetwarzane, ale czasami upłynął limit czasu i zwrócił błąd niedostępnościtarget.

Problem: Azure Quantum prosi mnie o uwierzytelnienie, gdy programowo nawiążę połączenie z moim obszarem roboczym

Jeśli używasz Azure Quantum Python SDK i łączysz się z obszarem roboczym przy użyciu klasy AzureQuantumProvider, może wystąpić wyskakujące okienko do uwierzytelnienia w Azure za każdym razem, gdy uruchamiasz skrypt.

Pojawienie się tego okienka wynika z faktu, że twój token zabezpieczający jest resetowany za każdym razem, gdy uruchamiasz skrypt.

Aby rozwiązać ten problem, uruchom az login z Azure CLI. Aby uzyskać więcej informacji, zobacz az login.

Microsoft Problemy z narzędziem do szacowania zasobów kwantowych

Następujące problemy mogą spowodować niepowodzenie zadań szacowania zasobów.

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

Aby uwzględnić mapowanie dowolnego programu kwantowego na tablicę 2D kubitów logicznych, narzędzie do szacowania zasobów zakłada, że równoległe sekwencyjne obliczenia Pauli (PSSPC) są wykonywane w programie wejściowym. W tym podejściu wszystkie operacje Clifforda są komutowane przez wszystkie bramki T, bramki rotacyjne i operację pomiaru, pozostawiając jedną operację Clifforda, która może być wydajnie oceniona klasycznie. 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. Fabryki T są używane do tworzenia stanów T z wymaganym współczynnikiem błędów stanu logicznego T z fizycznych bram T, które mają fizyczny współczynnik błędów bramy T. Zazwyczaj fizyczna szybkość błędów bramy T jest wyższa niż wymagana logiczna szybkość błędów bramy T. W niektórych scenariuszach fizyczny wskaźnik błędów bramy T jest znacznie wyższy w porównaniu z wymaganym wskaźnikiem błędów logicznego stanu T, tak że nie można znaleźć żadnej fabryki T, która mogłaby generować logiczne stany T wystarczającej jakości.

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

Aby rozwiązać ten problem, wykonaj jedną z następujących czynności:

  • Zwiększ budżet błędów — sumę lub część przeznaczoną na stany T.
  • Zmniejsz współczynnik błędów bramy T w parametrach kubitowych.
  • 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

Jeśli fizyczny wskaźnik błędów bramy T jest niższy niż wymagany wskaźnik błędów logicznego stanu T, nie potrzebujesz fabryki T, ponieważ fizyczny wskaźnik błędów bramy T jest wystarczający. Należy jednak rozważyć wpływ jednostek transferu, które przenoszą fizyczne stany T z odległości 1 kodu do odległości kodu algorytmu (zobacz arXiv:2211.07629, dodatek C). Ogólnie rzecz biorąc, w obecności fabryk T koszt jednostek transferowych jest niewielki.

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.

Aby rozwiązać ten problem, wykonaj jedną z następujących czynności:

  • Zwiększ współczynnik błędów fizycznej bramy T w parametrach kubitu do wymaganego współczynnika błędów logicznego stanu T.
  • Zmniejsz budżet na błędy lub tylko część dotyczącą stanów T.

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

Współczynniki błędów mogą mieć tylko wartość z zakresu od 0 do 1. Aby korekcja błędów była skuteczna, fizyczny współczynnik błędów dla bram i pomiarów musi być niższy od wartości zależnej od właściwości kodu korekcji błędów i wymaganego logicznego współczynnika błędów.

Aby rozwiązać ten problem, wykonaj jedną z następujących czynności:

  • 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.

Problem: Ograniczenia maksymalnego czasu działania i maksymalnej liczby kubitów fizycznych wzajemnie się wykluczają

Narzędzie do szacowania zasobów akceptuje tylko jedno z ograniczeń: maxDuration lub maxPhysicalQubits. Jeśli podasz zarówno ograniczenia maxDuration i maxPhysicalQubits dla pojedynczego zadania, zadanie zwróci błąd BothDurationAndPhysicalQubitsProvided.

Problem: Uruchamianie kontenera liczników oszacowań QIR: niezdefiniowany symbol __quantum__rt__result_record_output

Ten błąd występuje podczas generowania QIR dla obwodów Qiskit z pakietem qiskit_qir Python i nie ustawiasz parametru record_output na False.

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

  • Użyj modułu qdk.azure Python, aby przesłać obwody Qiskit do Azure Quantum (zalecane).
  • Jeśli używasz pakietu qiskit_qir Python, przed przesłaniem obwodu ustaw parametr record_output na False.

problemy z tworzeniem obszaru roboczego Azure Quantum

Podczas tworzenia obszaru roboczego quantum w portalu Azure mogą wystąpić następujące problemy.

Problem: Nie możesz uzyskać dostępu do formularza tworzenia obszaru roboczego w portalu Azure i zamiast tego zostanie wyświetlony monit o zarejestrowanie się w celu uzyskania subskrypcji

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

Po zarejestrowaniu się na 30-dniową bezpłatną wersję próbną subskrypcji Azure otrzymujesz bezpłatne kredyty Azure. Po wykorzystaniu wszystkich darmowych kredytów lub 30 dni po zarejestrowaniu się, należy zaktualizować do subskrypcji pay-as-you-go, aby móc dalej korzystać z usług Azure Quantum. Jeśli masz aktywną subskrypcję, portal Azure umożliwia dostęp do formularza tworzenia obszaru roboczego.

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

Uwaga

Kredyty Azure z subskrypcji próbnej Azure w ciągu 30 dni nie kwalifikują się do użycia u dostawców sprzętu kwantowego.

Problem: Opcja Szybkiego tworzenia jest niedostępna

Aby użyć opcji Szybkie tworzenie, musisz być właścicielem 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: Podczas wybierania 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 niedawno udzielono ci dostępu, może być konieczne odświeżenie strony. Zastosowanie nowych przypisań ról może potrwać do jednej godziny, zanim zacznie działać w cache'owanych uprawnieniach w całym stosie.

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. Aby uzyskać listę dostawców i ich dostępność według kraju/regionu, zobacz Globalna dostępność dostawców Azure Quantum.

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

Ten problem może obejmować więcej szczegółów, takich jak "ResourceDeploymentFailure — operacja zasobu "AzureAsyncOperationWaiting" zakończona z stanem aprowizacji terminalu "Niepowodzenie". lub "ProviderDeploymentFailure — nie można utworzyć planu dla dostawcy: <nazwa dostawcy>".

Ten błąd występuje, ponieważ użytkownik nie włączył zakupów w Azure Marketplace. Wykonaj kroki opisane w Włączanie zakupów w Azure Marketplace w celu włączenia zakupów w Azure Marketplace.

Problem: Wdrażanie kwantowego obszaru roboczego lub konta magazynu kończy się niepowodzeniem

Podczas próby wdrożenia obszaru roboczego kwantowego lub konta magazynu może wystąpić jeden z następujących błędów:

  • Obszar roboczy: "Operacja zapisu zasobu nie powiodła się, ponieważ osiągnięto stan aprowizacji terminalu "Niepowodzenie".
  • Konto magazynu: "Wdrożenie szablonu nie powiodło się z powodu naruszenia zasad".

Ten problem może wystąpić, jeśli zasady zabezpieczeń subskrypcji blokują tworzenie kont magazynu z włączonym dostępem publicznym. Usługa Azure Quantum obsługuje tylko konta magazynowe, które mają 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ć.