Dela via


Hantera beräkningssession för promptflöde i Azure Machine Learning-studio

En bearbetningssession för promptflöde innehåller databehandlingsresurser som krävs för att programmet ska kunna köras, inklusive en Docker-avbildning som innehåller alla nödvändiga beroendepaket. Den här tillförlitliga och skalbara miljön gör det möjligt för promptflöde att effektivt utföra sina uppgifter och funktioner för en sömlös användarupplevelse.

Behörigheter och roller för hantering av beräkningssessioner

Om du vill tilldela roller måste du ha owner eller Microsoft.Authorization/roleAssignments/write behörighet för resursen.

För användare av beräkningssessionen tilldelar du AzureML Data Scientist rollen på arbetsytan. Mer information finns i Hantera åtkomst till en Azure Machine Learning-arbetsyta.

Rolltilldelningen kan ta flera minuter att börja gälla.

Starta en beräkningssession i studio

Innan du använder Azure Machine Learning-studio för att starta en beräkningssession kontrollerar du att:

  • Du har AzureML Data Scientist rollen i arbetsytan.
  • Standarddatalagret (vanligtvis workspaceblobstore) på din arbetsyta är blobtypen.
  • Arbetskatalogen (workspaceworkingdirectory) finns på arbetsytan.
  • Om du använder ett virtuellt nätverk för promptflöde förstår du övervägandena i Nätverksisolering i promptflödet.

Starta en beräkningssession på en flödessida

Ett flöde binder till en beräkningssession. Du kan starta en beräkningssession på en flödessida.

  • Välj start. Starta en beräkningssession med hjälp av miljön som definierats i flow.dag.yaml flödesmappen. Den körs på den virtuella datorns storlek (VM) för serverlös beräkning som du har tillräckligt med kvot på arbetsytan.

    Skärmbild av promptflöde med standardinställningar för att starta en beräkningssession på en flödessida.

  • Välj Börja med avancerade inställningar. I de avancerade inställningarna kan du:

    • Välj beräkningstyp. Du kan välja mellan serverlös beräknings- och beräkningsinstans.
      • Om du väljer serverlös beräkning kan du ange följande inställningar:

        • Anpassa storleken på den virtuella datorn som beräkningssessionen använder. Välj VM-serien D och senare. Mer information finns i avsnittet om VM-serier och storlekar som stöds
        • Anpassa inaktivitetstiden, vilket tar bort beräkningssessionen automatiskt om den inte används på ett tag.
        • Ange den användartilldelade hanterade identiteten. Beräkningssessionen använder den här identiteten för att hämta en basavbildning, autentisering med anslutnings- och installationspaket. Kontrollera att den användartilldelade hanterade identiteten har tillräcklig behörighet. Om du inte anger den här identiteten använder vi användaridentiteten som standard.

        Skärmbild av promptflöde med avancerade inställningar med serverlös beräkning för att starta en beräkningssession på en flödessida.

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

        Om innehållet i workspace_update_with_multiple_UAIs.yml är följande:

        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>': {}
        

        Dricks

        Följande Azure RBAC-rolltilldelningar krävs på din användartilldelade hanterade identitet för din Azure Machine Learning-arbetsyta för att få åtkomst till data på de arbetsyteassocierade resurserna.

        Resurs Behörighet
        Azure Machine Learning-arbetsyta Deltagare
        Azure Storage Deltagare (kontrollplan) + Storage Blob Data Contributor + Storage File Data Privileged Contributor (dataplan, förbruka flödesutkast i fildelning och data i blob)
        Azure Key Vault (när du använder behörighetsmodellen åtkomstprinciper) Deltagare + eventuella behörigheter för åtkomstprinciper förutom rensningsåtgärder , det här är standardläget för länkade Azure Key Vault.
        Azure Key Vault (när du använder RBAC-behörighetsmodell) Deltagare (kontrollplan) + Key Vault-administratör (dataplan)
        Azure Container Registry Deltagare
        Azure Application Insights Deltagare

        Kommentar

        Jobbinskickare behöver ha assign behörighet för användartilldelad hanterad identitet. Du kan tilldela Managed Identity Operator rollen eftersom varje gång den skapar en serverlös beräkningssession tilldelar den användartilldelade hanterade identiteten till beräkning.

      • Om du väljer beräkningsinstans som beräkningstyp kan du bara ange inaktiv avstängningstid.

        • Eftersom den körs på en befintlig beräkningsinstans är vm-storleken fast och kan inte ändras på sessionssidan.

        • Identiteten som används för den här sessionen definieras också i beräkningsinstansen, som standard använder den användaridentiteten. Läs mer om hur du tilldelar identitet till beräkningsinstansen

        • För den inaktiva avstängningstiden används den för att definiera livscykeln för beräkningssessionen, om sessionen är inaktiv under den tid du anger tas den bort automatiskt. Och om du har inaktiv avstängning aktiverat på beräkningsinstansen börjar den gälla från beräkningsnivå.

          Skärmbild av promptflöde med avancerade inställningar med beräkningsinstans för att starta en beräkningssession på en flödessida.

        • Läs mer om hur du skapar och hanterar beräkningsinstanser

Använda en beräkningssession för att skicka en flödeskörning i CLI/SDK

Förutom Studio kan du också ange beräkningssessionen i CLI/SDK när du skickar en flödeskörning.

Du kan också ange instanstypen eller beräkningsinstansens namn under resursdelen. Om du inte anger instanstyp eller beräkningsinstansnamn väljer Azure Machine Learning en instanstyp (VM-storlek) baserat på faktorer som kvot, kostnad, prestanda och diskstorlek. Läs mer om serverlös beräkning.

$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

Skicka den här körningen via CLI:

pfazure run create --file run.yml

Kommentar

Den inaktiva avstängningen är en timme om du använder CLI/SDK för att skicka en flödeskörning. Du kan gå till beräkningssidan för att släppa beräkning.

Referensfiler utanför flödesmappen

Ibland kanske du vill referera till en requirements.txt fil som ligger utanför flödesmappen. Du kan till exempel ha ett komplext projekt som innehåller flera flöden, och de delar samma requirements.txt fil. Det gör du genom att lägga till det här fältet additional_includes i flow.dag.yaml. Värdet för det här fältet är en lista över den relativa sökvägen till flödesmappen. Om requirements.txt till exempel finns i den överordnade mappen i flödesmappen kan du lägga till ../requirements.txt i fältet additional_includes .

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

Filen requirements.txt kopieras till flödesmappen och använder den för att starta beräkningssessionen.

Uppdatera en beräkningssession på studioflödessidan

På en flödessida kan du använda följande alternativ för att hantera en beräkningssession:

  • Ändra inställningar för beräkningssessioner, du ändrar beräkningsinställningar som VM-storlek och e-användartilldelad hanterad identitet för serverlös beräkning, om du använder beräkningsinstansen kan du ändra till att använda en annan instans. Du kan också ändra
  • kan också ändra den användartilldelade hanterade identiteten för serverlös beräkning. Om du ändrar storleken på den virtuella datorn återställs beräkningssessionen med den nya VM-storleken. Om du
  • Installera paket från requirements.txt Öppna requirements.txt i användargränssnittet för promptflöde. Du kan lägga till paket i det.
  • Visa installerade paket visar de paket som är installerade i beräkningssessionen. Den innehåller paketen som installeras på basavbildningen och paket som requirements.txt anges i filen i flödesmappen.
  • Återställ beräkningssessionen tar bort den aktuella beräkningssessionen och skapar en ny med samma miljö. Om du stöter på ett problem med paketkonflikter kan du prova det här alternativet.
  • Stoppa beräkningssessionen tar bort den aktuella beräkningssessionen. Om det inte finns någon aktiv beräkningssession på den underliggande beräkningen tas även den serverlösa beräkningsresursen bort.

Skärmbild av åtgärder för en beräkningssession på en flödessida.

Du kan också anpassa miljön som du använder för att köra det här flödet genom att lägga till paket i requirements.txt filen i flödesmappen. När du har lagt till fler paket i den här filen kan du välja något av följande alternativ:

  • Spara och installera utlösare pip install -r requirements.txt i flödesmappen. Processen kan ta några minuter, beroende på vilka paket du installerar.
  • Spara sparar bara requirements.txt filen. Du kan installera paketen senare själv.

Skärmbild av alternativet att spara och installera paket för en beräkningssession på en flödessida.

Kommentar

Du kan ändra platsen och till och med filnamnet requirements.txtför , men se till att även ändra den i flow.dag.yaml filen i flödesmappen.

Fäst inte versionen av promptflow och promptflow-tools i requirements.txt, eftersom vi redan inkluderar dem i sessionsbasavbildningen.

requirements.txt stöder inte lokala hjulfiler. Skapa dem i avbildningen och uppdatera den anpassade basavbildningen i flow.dag.yaml. Läs mer om hur du skapar en anpassad basavbildning.

Lägga till paket i en privat feed i Azure DevOps

Följ dessa steg om du vill använda ett privat flöde i Azure DevOps:

  1. Tilldela hanterad identitet till arbetsyta eller beräkningsinstans.

    1. Använd serverlös beräkning som beräkningssession. Du måste tilldela användartilldelad hanterad identitet till arbetsytan.

      1. Skapa en användartilldelad hanterad identitet och lägg till den här identiteten i Azure DevOps-organisationen. Mer information finns i Använda tjänstens huvudnamn och hanterade identiteter.

        Kommentar

        Om knappen Lägg till användare inte visas har du förmodligen inte de behörigheter som krävs för att utföra den här åtgärden.

      2. Lägga till eller uppdatera användartilldelade identiteter till en arbetsyta.

        Kommentar

        Kontrollera att den användartilldelade hanterade identiteten har Microsoft.KeyVault/vaults/read på den länkade nyckelvaulten för arbetsytan.

    2. Använd beräkningsinstansen som beräkningssession. Du behöver tilldela en användartilldelad hanterad identitet till en beräkningsinstans.

  2. Lägg till {private} i din privata feed-URL. Om du till exempel vill installera test_package från test_feed i Azure DevOps lägger du till -i https://{private}@{test_feed_url_in_azure_devops} i requirements.txt:

    -i https://{private}@{test_feed_url_in_azure_devops}
    test_package
    
  3. Ange med användartilldelad hanterad identitet i konfigurationen av beräkningssessionen.

    1. Om du använder serverlös beräkning anger du den användartilldelade hanterade identiteten i Starta med avancerade inställningar om beräkningssessionen inte körs eller använder knappen Ändra inställningar för beräkningssession om beräkningssessionen körs.

      Skärmbild som visar växlingsknappen för att använda en användartilldelad hanterad identitet för arbetsytan.

    2. Om du använder beräkningsinstansen använder den den användartilldelade hanterade identiteten som du tilldelade till beräkningsinstansen.

Kommentar

Den här metoden fokuserar främst på snabb testning i flödesutvecklingsfasen, om du också vill distribuera det här flödet som slutpunkt skapar du det här privata flödet i avbildningen och uppdaterar anpassa basavbildningen i flow.dag.yaml. Läs mer om hur du skapar en anpassad basavbildning

Ändra basavbildningen för beräkningssessionen

Som standard använder vi den senaste basavbildningen för promptflöde. Om du vill använda en annan basavbildning kan du skapa en anpassad.

  • I Studio kan du ändra basavbildningen i basavbildningsinställningarna under inställningarna för beräkningssessionen.

Skärmbild av ändring av basavbildningen av en beräkningssession på en flödessida.

  • Du kan också ange den nya basavbildningen flow.dag.yaml under environment i filen i flödesmappen.

    Skärmbild av åtgärder för att anpassa en basavbildning för en beräkningssession på en flödessida.

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

Om du vill använda den nya basavbildningen måste du återställa beräkningssessionen. Den här processen tar flera minuter eftersom den hämtar den nya basavbildningen och installerar om paketen.

Hantera serverlös instans som används av beräkningssessionen

När du använder serverlös beräkning som en beräkningssession kan du hantera den serverlösa instansen. Visa den serverlösa instansen på fliken för beräkningssessionslistan på beräkningssidan.

Skärmbild av listan över serverlösa instanser.

Du kan också komma åt flöden och körningar som körs på beräkningen under fliken Aktiva flöden och körningar . När du tar bort instansen påverkas flödet och körs på den.

Skärmbild av beräkningsinformationssidan för serverlös instans.

Relation mellan beräkningssession, beräkningsresurs, flöde och användare

  • En enskild användare kan ha flera beräkningsresurser (serverlös eller beräkningsinstans). På grund av olika behov kan en enskild användare ha flera beräkningsresurser. En användare kan till exempel ha flera beräkningsresurser med olika VM-storlek eller en annan användartilldelad hanterad identitet.
  • En beräkningsresurs kan bara användas av en enskild användare. En beräkningsresurs används som en enskild användares privata utvecklingsruta. Flera användare kan inte dela samma beräkningsresurser.
  • En beräkningsresurs kan vara värd för flera beräkningssessioner. En beräkningssession är en container som körs på en underliggande beräkningsresurs. Till exempel behöver redigering av promptflöde inte för mycket beräkningsresurser, så en enda beräkningsresurs kan vara värd för flera beräkningssessioner från samma användare.
  • En beräkningssession tillhör bara en enda beräkningsresurs i taget. Men du kan ta bort eller stoppa en beräkningssession och omallokera den till en annan beräkningsresurs.
  • Ett flöde kan bara ha en beräkningssession. Varje flöde är fristående och definierar basavbildningen och nödvändiga Python-paket i flödesmappen för beräkningssessionen.

Växla körning till beräkningssession

Beräkningssessioner har följande fördelar jämfört med körning av beräkningsinstanser:

  • Automatisk hantering av livscykeln för session och underliggande beräkning. Du behöver inte skapa och hantera dem manuellt längre.
  • Anpassa enkelt paket genom att lägga till paket i requirements.txt filen i flödesmappen i stället för att skapa en anpassad miljö.

Växla en beräkningsinstanskörning till en beräkningssession med hjälp av följande steg:

  • requirements.txt Förbered filen i flödesmappen. Se till att du inte fäster versionen av promptflow och promptflow-tools i requirements.txt, eftersom vi redan inkluderar dem i basavbildningen. Compute-sessionen installerar paketen i requirements.txt filen när den startas.
  • Om du skapar en anpassad miljö för att skapa en körning av beräkningsinstansen kan du hämta avbildningen från miljöinformationssidan och ange den flow.dag.yaml i filen i flödesmappen. Mer information finns i Ändra basavbildningen för beräkningssessionen. Kontrollera att du eller den relaterade användartilldelade hanterade identiteten på arbetsytan har acr pull behörighet för avbildningen.

Skärmbild av att hitta bilden på sidan med miljöinformation.

  • För beräkningsresursen kan du fortsätta att använda den befintliga beräkningsinstansen om du vill hantera livscykeln manuellt eller om du kan prova serverlös beräkning vars livscykel hanteras av systemet.

Nästa steg