Udostępnij przez


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

Podczas pracy z usługą Azure Quantum możesz napotkać problemy z połączeniem lub związane z zadaniami. Zobacz, jak można rozwiązać te problemy.

Nawiązywanie połączenia z obszarem roboczym

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

Podczas próby uwierzytelnienia się w Azure Quantum w środowisku ciągłej integracji za pomocą pakietu pytket-azure, wykorzystując zmienne środowiskowe "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ń

Problem: Brak targets

target Jeśli brakuje miejsca, w którym chcesz uruchomić zadanie z listy dostępnychtarget, prawdopodobnie musisz zaktualizować do najnowszej Quantum Development Kit wersji zestawu (QDK) dla programu 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. Wybierz kartę Przypisania ról .

    Uwaga

    Jeśli nie widzisz karty Przypisania ról, może być konieczne rozwinięcie portalu do pełnego ekranu lub zamknięcie <okienka przypisań nazw>.

  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.

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

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:

  • Na stronie obszaru roboczego kwantowego w witrynie Azure Portal wybierz pozycję Przegląd i wybierz konto magazynu.
  • 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 QASM (OPENQASM 2.0) translator 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. Zastąp wszystkie separatory dziesiętne bez kropki kropkami ".".

// 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 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 dla profilu QIR (kwantowa reprezentacja pośrednia) target ustawiono wartość Podstawowa , a kwantowa funkcja wymaga profilu Bez ograniczeńtarget . Jeśli nie określisz target typu profilu, kompilator automatycznie ustawi target na wartość Unrestricted za Ciebie.

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
  • W obszarze Przegląd>Podstawowe>konto magazynu wybierz link do konta magazynu
  • Na lewym pasku nawigacji wybierz pozycję Kontrola dostępu (IAM)
  • Wybieranie przypisań ról
  • Sprawdź, czy obszar roboczy jest wyświetlany jako współautor
  • Jeśli obszar roboczy nie jest wyświetlany jako współautor, możesz wykonać następujące czynności:
    • Utwórz nowy obszar roboczy i poczekaj na ukończenie tworzenia obszaru roboczego przed zamknięciem karty lub okna przeglądarki internetowej.
    • Dodawanie odpowiedniego przypisania roli na koncie magazynu
      • Kontrola dostępu (zarządzanie dostępem i tożsamościami) > — dodawanie przypisań ról
      • Współautor roli >
      • Przypisywanie dostępu do > użytkownika, grupy lub jednostki usługi
      • 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 bibliotekę Python qdk z dodatkami azure i qiskit.

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, zadanie może pozostać 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.

  • W obszarze roboczym witryny Azure Portal wybierz pozycję Dostawcy operacji>. Sprawdź dostępność maszyny target . Zadania przesłane do targets ze stanem Zdegradowany 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: 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 AzureQuantumProvider klasy, 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 qdk[azure] pakietu 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 problemy mogą uniemożliwić ukończenie zadań szacowania zasobów. Zobacz, jak rozwiązać te problemy.

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 przetwarzanie równoległej syntezy sekwencyjnej Pauli (PSSPC) jest wykonywane w programie wejściowym. W tym podejściu wszystkie operacje Cliffordu są dojeżdżane przez wszystkie bramy T, bramy rotacji i operacje pomiaru, pozostawiając jedną operację Clifford, która może być wydajnie oceniana 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 fizyczna szybkość błędów bramy T jest znacznie wyższa w porównaniu z wymaganą logiczną szybkością błędów stanu T, tak aby nie można było odnaleźć żadnej fabryki T, która może 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

Oto co można zrobić w takim scenariuszu:

  • Zwiększ budżet błędów , łącznie lub część dla stanów T.
  • Zmniejsz szybkość błędów fizycznej bramy T w parametrach kubitu.
  • 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. W takich przypadkach nie jest wymagana żadna fabryka T, ponieważ fizyczna szybkość błędów bramy T jest już wystarczająca. 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). 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.

Oto co można zrobić w takim scenariuszu:

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

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.

Problem: Ograniczenia maksymalnego środowiska uruchomieniowego i maksymalnej liczby kubitów fizycznych wzajemnie się wykluczają

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.

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

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

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

  • Użyj modułu qdk.azure języka Python, aby przesłać obwody Qiskit do usługi Azure Quantum (zalecane).
  • Podczas korzystania z pakietu Python należy ustawić parametr qiskit_qir na record_output 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 wersji próbnej subskrypcji platformy Azure, która obejmuje bezpłatne środki na korzystanie z platformy Azure w wysokości 200 USD. Te środki na korzystanie z platformy Azure nie kwalifikują się do użycia u dostawców sprzętu kwantowego. Po 30 dniach rejestracji lub po wykorzystaniu 200 USD bezpłatnych środków na korzystanie z platformy Azure (w zależności od tego, co nastąpi wcześniej), musisz przeprowadzić uaktualnienie do subskrypcji z płatnością zgodnie z rzeczywistym użyciem , aby nadal korzystać z usług Azure Quantum. 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. Czasami może upłynąć do jednej godziny, aby nowe przypisania ról zaczęły obowiązywać w przypadku buforowanych uprawnień w obrębie stosu.

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"

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

Problem: Wdrażanie obszaru roboczego kwantowego lub wdrażanie konta magazynu kończy się niepowodzeniem z jednym 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 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ć.