Zarządzanie sesją obliczeniową przepływu monitów w usłudze Azure Machine Edukacja Studio

Sesja obliczeniowa przepływu monitu udostępnia zasoby obliczeniowe wymagane do uruchomienia aplikacji, w tym obraz platformy Docker zawierający wszystkie niezbędne pakiety zależności. To niezawodne i skalowalne środowisko umożliwia wydajne wykonywanie zadań i funkcji w celu zapewnienia bezproblemowego środowiska użytkownika.

Uprawnienia i role do zarządzania sesjami obliczeniowymi

Aby przypisać role, musisz mieć owner uprawnienia lub Microsoft.Authorization/roleAssignments/write mieć uprawnienia do zasobu.

W przypadku użytkowników sesji obliczeniowej przypisz AzureML Data Scientist rolę w obszarze roboczym. Aby dowiedzieć się więcej, zobacz Zarządzanie dostępem do obszaru roboczego usługi Azure Machine Edukacja.

Przypisanie roli może potrwać kilka minut.

Uruchamianie sesji obliczeniowej w programie Studio

Przed rozpoczęciem sesji obliczeniowej przy użyciu programu Azure Machine Edukacja Studio upewnij się, że:

  • Masz AzureML Data Scientist rolę w obszarze roboczym.
  • Domyślny magazyn danych (zazwyczaj workspaceblobstore) w obszarze roboczym to typ obiektu blob.
  • Katalog roboczy (workspaceworkingdirectory) istnieje w obszarze roboczym.
  • Jeśli używasz sieci wirtualnej do przepływu monitów, rozumiesz zagadnienia związane z izolacją sieci w przepływie monitów.

Uruchamianie sesji obliczeniowej na stronie przepływu

Jeden przepływ wiąże się z jedną sesją obliczeniową. Sesję obliczeniową można uruchomić na stronie przepływu.

  • Wybierz Start. Uruchom sesję obliczeniową przy użyciu środowiska zdefiniowanego w flow.dag.yaml folderze przepływu. Jest on uruchamiany na maszynie wirtualnej o rozmiarze bezserwerowym zasobów obliczeniowych, które mają wystarczający limit przydziału w obszarze roboczym.

    Zrzut ekranu przedstawiający przepływ monitu z ustawieniami domyślnymi uruchamiania sesji obliczeniowej na stronie przepływu.

  • Wybierz pozycję Rozpocznij od ustawień zaawansowanych. W ustawieniach zaawansowanych można wykonywać następujące czynności:

    • Wybierz typ obliczeniowy. Możesz wybrać między bezserwerową usługą obliczeniową i wystąpieniem obliczeniowym.
      • Jeśli wybierzesz obliczenia bezserwerowe, możesz ustawić następujące ustawienia:

        • Dostosuj rozmiar maszyny wirtualnej używany przez sesję obliczeniową. Wybierz serię maszyn wirtualnych D i nowsze. Aby uzyskać więcej informacji, zobacz sekcję dotyczącą obsługiwanych serii i rozmiarów maszyn wirtualnych
        • Dostosuj czas bezczynności, który automatycznie usuwa sesję obliczeniową, jeśli nie jest używany przez jakiś czas.
        • Ustaw tożsamość zarządzaną przypisaną przez użytkownika. Sesja obliczeniowa używa tej tożsamości do ściągania obrazu podstawowego, uwierzytelniania z połączeniem i instalowania pakietów. Upewnij się, że tożsamość zarządzana przypisana przez użytkownika ma wystarczające uprawnienia. Jeśli nie ustawisz tej tożsamości, domyślnie użyjemy tożsamości użytkownika.

        Zrzut ekranu przedstawiający przepływ monitu z ustawieniami zaawansowanymi korzystającymi z obliczeń bezserwerowych na potrzeby uruchamiania sesji obliczeniowej na stronie przepływu.

        az ml workspace update -f workspace_update_with_multiple_UAIs.yml --subscription <subscription ID> --resource-group <resource group name> --name <workspace name>
        

        Gdzie zawartość workspace_update_with_multiple_UAIs.yml jest następująca:

        identity:
           type: system_assigned, user_assigned
           user_assigned_identities:
            '/subscriptions/<subscription_id>/resourcegroups/<resource_group_name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<uai_name>': {}
            '<UAI resource ID 2>': {}
        

        Napiwek

        Następujące przypisania ról RBAC platformy Azure są wymagane w tożsamości zarządzanej przypisanej przez użytkownika dla obszaru roboczego usługi Azure Machine Edukacja w celu uzyskania dostępu do danych w zasobach skojarzonych z obszarem roboczym.

        Zasób Uprawnienie
        Obszar roboczy usługi Azure Machine Learning Współautor
        Azure Storage Współautor (płaszczyzna sterowania) + Współautor danych obiektu blob usługi Storage + Współautor danych plików magazynu Uprzywilejowany współautor (płaszczyzna danych, korzystanie z wersji roboczej przepływu w udostępnianiu plików i danych w obiekcie blob)
        Azure Key Vault (w przypadku korzystania z modelu uprawnień RBAC) Współautor (płaszczyzna sterowania) + Administracja istrator usługi Key Vault (płaszczyzna danych)
        Azure Key Vault (w przypadku korzystania z modelu uprawnień zasad dostępu) Współautor i wszystkie uprawnienia zasad dostępu oprócz operacji przeczyszczania
        Azure Container Registry Współautor
        Azure Application Insights Współautor
      • W przypadku wybrania wystąpienia obliczeniowego jako typu obliczeniowego można ustawić tylko czas zamknięcia bezczynności.

        • Ponieważ jest ona uruchomiona w istniejącym wystąpieniu obliczeniowym, rozmiar maszyny wirtualnej jest stały i nie można go zmienić po stronie sesji.

        • Tożsamość używana na potrzeby tej sesji jest również definiowana w wystąpieniu obliczeniowym, domyślnie używa tożsamości użytkownika. Dowiedz się więcej o przypisywaniu tożsamości do wystąpienia obliczeniowego

        • W przypadku bezczynnego czasu zamknięcia jest używany do definiowania cyklu życia sesji obliczeniowej, jeśli sesja jest bezczynna przez ustawiony czas, zostanie ona usunięta automatycznie. Ponadto włączono bezczynne zamykanie w wystąpieniu obliczeniowym, a następnie ma to wpływ na poziom obliczeniowy.

          Zrzut ekranu przedstawiający przepływ monitu z ustawieniami zaawansowanymi przy użyciu wystąpienia obliczeniowego na potrzeby uruchamiania sesji obliczeniowej na stronie przepływu.

        • Dowiedz się więcej o tworzeniu wystąpienia obliczeniowego i zarządzaniu nim

Przesyłanie przebiegu przepływu w interfejsie wiersza polecenia/zestawie SDK przy użyciu sesji obliczeniowej

Oprócz programu Studio można również określić sesję obliczeniową w interfejsie wiersza polecenia/zestawie SDK podczas przesyłania przebiegu przepływu.

Można również określić typ wystąpienia lub nazwę wystąpienia obliczeniowego w ramach części zasobu. Jeśli nie określisz typu wystąpienia lub nazwy wystąpienia obliczeniowego, usługa Azure Machine Edukacja wybierze typ wystąpienia (rozmiar maszyny wirtualnej) na podstawie czynników, takich jak limit przydziału, koszt, wydajność i rozmiar dysku. Dowiedz się więcej o obliczeniach bezserwerowych.

$schema: https://azuremlschemas.azureedge.net/promptflow/latest/Run.schema.json
flow: <path_to_flow>
data: <path_to_flow>/data.jsonl

# specify identity used by serverless compute.
# default value
# identity:
#   type: user_identity 

# use workspace first UAI
# identity:
#   type: managed
  
# use specified client_id's UAI
# identity:
#   type: managed
#   client_id: xxx

column_mapping:
  url: ${data.url}

# define cloud resource

resources:
  instance_type: <instance_type> # serverless compute type
  # compute: <compute_instance_name> # use compute instance as compute type

Prześlij ten przebieg za pośrednictwem interfejsu wiersza polecenia:

pfazure run create --file run.yml

Uwaga

Zamknięcie bezczynności to jedna godzina, jeśli używasz interfejsu wiersza polecenia/zestawu SDK do przesłania przebiegu przepływu. Możesz przejść do strony obliczeniowej, aby zwolnić zasoby obliczeniowe

Odwołania do plików spoza folderu przepływu

Czasami warto odwołać requirements.txt się do pliku, który znajduje się poza folderem przepływu. Na przykład może istnieć złożony projekt zawierający wiele przepływów i współużytkujący ten sam requirements.txt plik. W tym celu możesz dodać to pole additional_includes do pliku flow.dag.yaml. Wartość tego pola to lista względnej ścieżki pliku/folderu do folderu przepływu. Jeśli na przykład requirements.txt znajduje się w folderze nadrzędnym folderu przepływu, możesz dodać ../requirements.txt go do additional_includes pola.

inputs:
  question:
    type: string
outputs:
  output:
    type: string
    reference: ${answer_the_question_with_context.output}
environment:
  python_requirements_txt: requirements.txt
additional_includes:
  - ../requirements.txt
...

Plik requirements.txt jest kopiowany do folderu przepływu i służy do uruchamiania sesji obliczeniowej.

Aktualizowanie sesji obliczeniowej na stronie przepływu programu Studio

Na stronie przepływu można użyć następujących opcji do zarządzania sesją obliczeniową:

  • Zmień ustawienia sesji obliczeniowej, zmienisz ustawienia obliczeniowe, takie jak rozmiar maszyny wirtualnej i tożsamość zarządzana przypisana przez użytkownika dla bezserwerowych zasobów obliczeniowych, jeśli używasz wystąpienia obliczeniowego, możesz zmienić je, aby użyć innego wystąpienia. Możesz również zmienić
  • może również zmienić tożsamość zarządzaną przypisaną przez użytkownika dla bezserwerowych zasobów obliczeniowych. Jeśli zmienisz rozmiar maszyny wirtualnej, sesja obliczeniowa zostanie zresetowana przy użyciu nowego rozmiaru maszyny wirtualnej. If you
  • Zainstaluj pakiety z requirements.txt Otwórz requirements.txt w interfejsie użytkownika przepływu monitu. Możesz dodawać w nim pakiety.
  • Widok zainstalowanych pakietów zawiera pakiety zainstalowane w sesji obliczeniowej. Obejmuje on pakiety instalowane w obrazie podstawowym i pakiety określone w requirements.txt pliku w folderze przepływu.
  • Resetowanie sesji obliczeniowej powoduje usunięcie bieżącej sesji obliczeniowej i utworzenie nowej sesji z tym samym środowiskiem. Jeśli wystąpi problem z konfliktem pakietów, możesz wypróbować tę opcję.
  • Zatrzymaj sesję obliczeniową usuwa bieżącą sesję obliczeniową. Jeśli nie ma aktywnej sesji obliczeniowej w bazowym środowisku obliczeniowym, zasób obliczeniowy bezserwerowy również zostanie usunięty.

Zrzut ekranu przedstawiający akcje sesji obliczeniowej na stronie przepływu.

Możesz również dostosować środowisko używane do uruchamiania tego przepływu, dodając pakiety w requirements.txt pliku w folderze przepływu. Po dodaniu kolejnych pakietów w tym pliku możesz wybrać jedną z następujących opcji:

  • Zapisywanie i instalowanie wyzwalaczy pip install -r requirements.txt w folderze przepływu. Proces może potrwać kilka minut, w zależności od zainstalowanych pakietów.
  • Zapisz tylko zapisuje requirements.txt plik. Pakiety można zainstalować samodzielnie.

Zrzut ekranu przedstawiający opcję zapisywania i instalowania pakietów dla sesji obliczeniowej na stronie przepływu.

Uwaga

Możesz zmienić lokalizację, a nawet nazwę requirements.txtpliku , ale pamiętaj, aby również zmienić ją w flow.dag.yaml pliku w folderze przepływu.

Nie przypinaj wersji elementu promptflow i promptflow-tools w requirements.txtpliku , ponieważ uwzględniamy je już w obrazie podstawowym sesji.

requirements.txt nie będzie obsługiwać plików koła lokalnego. Skompiluj je na obrazie i zaktualizuj dostosowany obraz podstawowy w programie flow.dag.yaml. Dowiedz się więcej na temat tworzenia niestandardowego obrazu podstawowego.

Dodawanie pakietów w prywatnym kanale informacyjnym w usłudze Azure DevOps

Jeśli chcesz użyć prywatnego źródła danych w usłudze Azure DevOps, wykonaj następujące kroki:

  1. Przypisz tożsamość zarządzaną do obszaru roboczego lub wystąpienia obliczeniowego.

    1. Użyj bezserwerowych zasobów obliczeniowych jako sesji obliczeniowej, musisz przypisać tożsamość zarządzaną przypisaną przez użytkownika do obszaru roboczego.

      1. Utwórz tożsamość zarządzaną przypisaną przez użytkownika i dodaj tę tożsamość w organizacji usługi Azure DevOps. Aby dowiedzieć się więcej, zobacz Używanie jednostek usługi i tożsamości zarządzanych.

        Uwaga

        Jeśli przycisk Dodaj użytkowników nie jest widoczny, prawdopodobnie nie masz niezbędnych uprawnień do wykonania tej akcji.

      2. Dodawanie lub aktualizowanie tożsamości przypisanych przez użytkownika do obszaru roboczego.

        Uwaga

        Upewnij się, że tożsamość zarządzana przypisana przez użytkownika jest włączona Microsoft.KeyVault/vaults/read w połączonym magazynie kluczy obszaru roboczego.

    2. Użyj wystąpienia obliczeniowego jako sesji obliczeniowej, musisz przypisać tożsamość zarządzaną przypisaną przez użytkownika do wystąpienia obliczeniowego.

  2. Dodaj {private} do adresu URL kanału prywatnego źródła danych. Jeśli na przykład chcesz zainstalować z test_packagetest_feed usługi Azure DevOps, dodaj polecenie :requirements.txt-i https://{private}@{test_feed_url_in_azure_devops}

    -i https://{private}@{test_feed_url_in_azure_devops}
    test_package
    
  3. Określ przy użyciu tożsamości zarządzanej przypisanej przez użytkownika w konfiguracji sesji obliczeniowej.

    1. Jeśli używasz bezserwerowych obliczeń, określ tożsamość zarządzaną przypisaną przez użytkownika w obszarze Rozpocznij od ustawień zaawansowanych, jeśli sesja obliczeniowa nie jest uruchomiona, lub użyj przycisku Zmień ustawienia sesji obliczeniowej, jeśli sesja obliczeniowa jest uruchomiona.

      Zrzut ekranu przedstawiający przełącznik umożliwiający korzystanie z tożsamości zarządzanej przypisanej przez użytkownika obszaru roboczego.

    2. Jeśli używasz wystąpienia obliczeniowego, używa przypisanej przez użytkownika tożsamości zarządzanej przypisanej do wystąpienia obliczeniowego.

Uwaga

Takie podejście koncentruje się głównie na szybkim testowaniu w fazie opracowywania przepływu, jeśli chcesz również wdrożyć ten przepływ jako punkt końcowy, skompiluj to prywatne źródło danych na obrazie i zaktualizuj niestandardowy obraz podstawowy w programie flow.dag.yaml. Dowiedz się więcej na temat tworzenia niestandardowego obrazu podstawowego

Zmienianie obrazu podstawowego dla sesji obliczeniowej

Domyślnie używamy najnowszego obrazu podstawowego przepływu monitów. Jeśli chcesz użyć innego obrazu podstawowego, możesz utworzyć niestandardowy obraz.

  • W programie Studio można zmienić obraz podstawowy w ustawieniach obrazu podstawowego w ustawieniach sesji obliczeniowej.

Zrzut ekranu przedstawiający zmienianie obrazu podstawowego sesji obliczeniowej na stronie przepływu.

  • Nowy obraz environment podstawowy można również określić w pliku w flow.dag.yaml folderze przepływu.

    Zrzut ekranu przedstawiający akcje dostosowywania obrazu podstawowego dla sesji obliczeniowej na stronie przepływu.

    environment:
        image: <your-custom-image>
        python_requirements_txt: requirements.txt
    

Aby użyć nowego obrazu podstawowego, należy zresetować sesję obliczeniową. Ten proces trwa kilka minut, gdy ściąga nowy obraz podstawowy i ponownie instaluje pakiety.

Zarządzanie wystąpieniem bezserwerowymi używanym przez sesję obliczeniową

Jeśli używasz bezserwerowych obliczeń jako sesji obliczeniowej, możesz zarządzać wystąpieniem bezserwerowym. Wyświetl wystąpienie bezserwerowe na karcie listy sesji obliczeniowych na stronie obliczeniowej.

Zrzut ekranu przedstawiający listę wystąpienia bezserwerowego.

Dostęp do przepływów i przebiegów uruchamianych na obliczeniach można również uzyskać na karcie Aktywne przepływy i uruchomienia . Usunięcie wystąpienia wpływa na przepływ i działa na nim.

Zrzut ekranu przedstawiający stronę szczegółów obliczeń wystąpienia bezserwerowego.

Relacja między sesją obliczeniową, zasobem obliczeniowym, przepływem i użytkownikiem

  • Jeden użytkownik może mieć wiele zasobów obliczeniowych (bezserwerowych lub obliczeniowych). Ze względu na różne potrzeby jeden użytkownik może mieć wiele zasobów obliczeniowych. Na przykład jeden użytkownik może mieć wiele zasobów obliczeniowych o innym rozmiarze maszyny wirtualnej lub innej tożsamości zarządzanej przypisanej przez użytkownika.
  • Jeden zasób obliczeniowy może być używany tylko przez jednego użytkownika. Zasób obliczeniowy jest używany jako prywatne pole programistyczne pojedynczego użytkownika. Wielu użytkowników nie może współużytkować tych samych zasobów obliczeniowych.
  • Jeden zasób obliczeniowy może hostować wiele sesji obliczeniowych. Sesja obliczeniowa to kontener działający na bazowym zasobie obliczeniowym. Na przykład tworzenie przepływu monitu nie wymaga zbyt dużej ilości zasobów obliczeniowych, więc pojedynczy zasób obliczeniowy może hostować wiele sesji obliczeniowych od tego samego użytkownika.
  • Jedna sesja obliczeniowa należy tylko do pojedynczego zasobu obliczeniowego jednocześnie. Można jednak usunąć lub zatrzymać sesję obliczeniową i ponownie przenieść ją do innego zasobu obliczeniowego.
  • Jeden przepływ może mieć tylko jedną sesję obliczeniową. Każdy przepływ jest samodzielny i definiuje obraz podstawowy i wymagane pakiety języka Python w folderze przepływu dla sesji obliczeniowej.

Przełączanie środowiska uruchomieniowego na sesję obliczeniową

Sesje obliczeniowe mają następujące zalety w przypadku środowisk uruchomieniowych wystąpień obliczeniowych:

  • Automatyczne zarządzanie cyklem życia sesji i bazowych zasobów obliczeniowych. Nie trzeba już tworzyć ich ręcznie i zarządzać nimi.
  • Łatwe dostosowywanie pakietów przez dodanie pakietów w requirements.txt pliku w folderze przepływu zamiast tworzenia środowiska niestandardowego.

Przełącz środowisko uruchomieniowe wystąpienia obliczeniowego na sesję obliczeniową, wykonując następujące czynności:

  • requirements.txt Przygotuj plik w folderze przepływu. Upewnij się, że nie przypięliśmy wersji promptflow elementu i promptflow-tools elementu requirements.txt, ponieważ dołączyliśmy je już do obrazu podstawowego. Sesja obliczeniowa instaluje pakiety w requirements.txt pliku po uruchomieniu.
  • Jeśli tworzysz środowisko niestandardowe w celu utworzenia środowiska uruchomieniowego wystąpienia obliczeniowego, możesz pobrać obraz ze strony szczegółów środowiska i określić go w flow.dag.yaml pliku w folderze przepływu. Aby dowiedzieć się więcej, zobacz Zmienianie obrazu podstawowego dla sesji obliczeniowej. Upewnij się, że użytkownik lub powiązana tożsamość zarządzana przypisana przez użytkownika w obszarze roboczym ma acr pull uprawnienia do obrazu.

Zrzut ekranu przedstawiający znajdowanie obrazu na stronie szczegółów środowiska.

  • W przypadku zasobu obliczeniowego możesz nadal używać istniejącego wystąpienia obliczeniowego, jeśli chcesz ręcznie zarządzać cyklem życia lub możesz wypróbować bezserwerowe obliczenia, których cykl życia jest zarządzany przez system.

Następne kroki