Dela via


Distribuera ett flöde som en hanterad onlineslutpunkt för slutsatsdragning i realtid

När du har skapat ett flöde och testat det korrekt kanske du vill distribuera det som en slutpunkt så att du kan anropa slutpunkten för slutsatsdragning i realtid.

I den här artikeln får du lära dig hur du distribuerar ett flöde som en hanterad onlineslutpunkt för slutsatsdragning i realtid. De steg du ska utföra är:

Viktigt!

Objekt markerade (förhandsversion) i den här artikeln är för närvarande i offentlig förhandsversion. Förhandsversionen tillhandahålls utan ett serviceavtal och rekommenderas inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.

Förutsättningar

  • Lär dig hur du skapar och testar ett flöde i promptflödet.

  • Ha grundläggande förståelse om hanterade onlineslutpunkter. Hanterade onlineslutpunkter fungerar med kraftfulla PROCESSOR- och GPU-datorer i Azure på ett skalbart, fullständigt hanterat sätt som frigör dig från kostnaderna för att konfigurera och hantera den underliggande distributionsinfrastrukturen. Mer information om hanterade onlineslutpunkter finns i Onlineslutpunkter och distributioner för slutsatsdragning i realtid.

  • Rollbaserade åtkomstkontroller i Azure (Azure RBAC) används för att bevilja åtkomst till åtgärder i Azure Machine Learning. För att kunna distribuera en slutpunkt i promptflödet måste ditt användarkonto tilldelas AzureML-dataexperten eller rollen med fler behörigheter för Azure Machine Learning-arbetsytan.

  • Ha grundläggande förståelse för hanterade identiteter. Läs mer om hanterade identiteter.

Kommentar

Hanterad onlineslutpunkt stöder endast hanterat virtuellt nätverk. Om din arbetsyta finns i ett anpassat virtuellt nätverk måste du prova andra distributionsalternativ, till exempel distribuera till Kubernetes onlineslutpunkt med CLI/SDK eller distribuera till andra plattformar som Docker.

Skapa flödet och gör det redo för distribution

Om du redan har slutfört självstudien kom igång har du redan testat flödet korrekt genom att skicka batchkörningen och utvärdera resultaten.

Om du inte har slutfört självstudien måste du skapa ett flöde. Att testa flödet korrekt efter batchkörning och utvärdering före distribution är en rekommenderad metod.

Vi använder exempelflödets webbklassificering som exempel för att visa hur du distribuerar flödet. Det här exempelflödet är ett standardflöde. Distributionen av chattflöden är liknande. Utvärderingsflödet stöder inte distribution.

Definiera den miljö som används av distributionen

När du distribuerar promptflöde till hanterad onlineslutpunkt i användargränssnittet använder distributionen som standard miljön som skapats baserat på den senaste avbildningen av promptflödet och beroenden som anges i requirements.txt flödet. Du kan ange extra paket som du behövde i requirements.txt. Du hittar requirements.txt i rotmappen i flödesmappen.

Skärmbild av flödeskrav-text.

Kommentar

Om du använder privata feeds i Azure-devops behöver du skapa avbildningen med privata feeds först och välja anpassad miljö att distribuera i användargränssnittet.

Skapa en onlinedistribution

Nu när du har skapat ett flöde och testat det korrekt är det dags att skapa din onlineslutpunkt för realtidsinferens.

Med promptflödet kan du distribuera slutpunkter från ett flöde eller en batchkörning. Vi rekommenderar att du testar flödet före distributionen.

Välj Distribuera på sidan för flödesredigering eller körningsinformation.

Flödesredigeringssida:

Skärmbild av webbklassificering på flödesredigeringssidan.

Sidan Kör information:

Skärmbild av webbklassificering på sidan med körningsinformation.

En guide som du kan använda för att konfigurera slutpunkten sker och inkludera följande steg.

Grundläggande inställningar

Skärmbild av distributionsguiden på slutpunktssidan.

Med det här steget kan du konfigurera de grundläggande inställningarna för distributionen.

Property beskrivning
Slutpunkt Du kan välja om du vill distribuera en ny slutpunkt eller uppdatera en befintlig slutpunkt.
Om du väljer Ny måste du ange slutpunktsnamnet.
Distributionsnamnet – Inom samma slutpunkt ska distributionsnamnet vara unikt.
– Om du väljer en befintlig slutpunkt och anger ett befintligt distributionsnamn skrivs distributionen över med de nya konfigurationerna.
Virtuell maskin Den VM-storlek som ska användas för distributionen. Listan över storlekar som stöds finns i SKU-listan för hanterade onlineslutpunkter.
Antal instanser Antalet instanser som ska användas för distributionen. Ange värdet för den arbetsbelastning som du förväntar dig. För hög tillgänglighet rekommenderar vi att du anger värdet till minst 3. Vi reserverar ytterligare 20 % för att utföra uppgraderingar. Mer information finns i kvoter för hanterade onlineslutpunkter
Insamling av slutsatsdragningsdata Om du aktiverar detta samlas flödesindata och utdata in automatiskt i en Azure Machine Learning-datatillgång och kan användas för senare övervakning. Mer information finns i övervaka generativa AI-program.

När du har slutfört de grundläggande inställningarna kan du granska+skapa direkt för att slutföra skapandet, eller så kan du välja Nästa för att konfigurera Avancerade inställningar.

Avancerade inställningar – Slutpunkt

Du kan ange följande inställningar för slutpunkten.

Skärmbild av slutpunktsinställningarna för distributionsguiden.

Authentication type

Autentiseringsmetoden för slutpunkten. Nyckelbaserad autentisering ger en primär och sekundär nyckel som inte upphör att gälla. Tokenbaserad autentisering i Azure Machine Learning tillhandahåller en token som uppdateras automatiskt med jämna mellanrum. Mer information om autentisering finns i Autentisera till en onlineslutpunkt.

Identitetstyp

Slutpunkten måste komma åt Azure-resurser, till exempel Azure Container Registry eller dina arbetsyteanslutningar för slutsatsdragning. Du kan ge slutpunkten behörighet att komma åt Azure-resurser genom att ge behörighet till dess hanterade identitet.

Systemtilldelad identitet skapas automatiskt när slutpunkten har skapats, medan användartilldelad identitet skapas av användaren. Läs mer om hanterade identiteter.

Systemtilldelad

Du kommer att märka att det finns ett alternativ om Framtvinga åtkomst till anslutningshemligheter (förhandsversion). Om ditt flöde använder anslutningar måste slutpunkten komma åt anslutningar för att utföra slutsatsdragning. Alternativet är som standard aktiverat, slutpunkten får rollen Azure Machine Learning Workspace Anslut ion Secrets Reader för att få åtkomst till anslutningar automatiskt om du har behörighet att läsa anslutningshemligheter. Om du inaktiverar det här alternativet måste du bevilja den här rollen till den systemtilldelade identiteten manuellt själv eller be administratören om hjälp. Läs mer om hur du beviljar behörighet till slutpunktsidentiteten.

Användartilldelad

När du skapar distributionen försöker Azure hämta användarcontaineravbildningen från arbetsytans Azure Container Registry (ACR) och montera användarmodellen och kodartefakter i användarcontainern från arbetsytans lagringskonto.

Om du skapade den associerade slutpunkten med användartilldelad identitet måste användartilldelad identitet beviljas följande roller innan distributionen skapas. Annars misslyckas distributionen.

Omfattning Roll Varför det behövs
Azure Machine Learning-arbetsyta Azure Machine Learning Workspace Connection Secrets Reader role ELLER en anpassad roll med"Microsoft.MachineLearningServices/workspaces/connections/listsecrets/action" Hämta arbetsyteanslutningar
Arbetsytans containerregister ACR-pull Hämta containeravbildning
Standardlagring för arbetsyta Storage Blob Data-läsare Läsa in modellen från lagring
(Valfritt) Azure Machine Learning-arbetsyta Måttskrivare för arbetsytan När du har distribuerat slutpunkten måste du ge den här behörigheten till identiteten om du vill övervaka slutpunktsrelaterade mått som CPU/GPU/disk/minnesanvändning.

Se detaljerad vägledning om hur du beviljar behörigheter till slutpunktsidentiteten i Bevilja behörigheter till slutpunkten.

Viktigt!

Om ditt flöde använder Microsoft Entra ID-baserade autentiseringsanslutningar, oavsett om du använder systemtilldelad identitet eller användartilldelad identitet, måste du alltid bevilja den hanterade identiteten lämpliga roller för motsvarande resurser så att den kan göra API-anrop till den resursen. Om din Azure OpenAI-anslutning till exempel använder Microsoft Entra ID-baserad autentisering måste du bevilja din slutpunktshanterade identitet Cognitive Services OpenAI-användare eller Cognitive Services OpenAI-deltagarroll för motsvarande Azure OpenAI-resurser.

Avancerade inställningar – Distribution

I det här steget, förutom taggar, kan du också ange den miljö som används av distributionen.

Skärmbild av distributionsmiljön.

Använda miljön för aktuell flödesdefinition

Som standard använder distributionen miljön som skapats baserat på basavbildningen flow.dag.yaml som anges i och beroenden requirements.txtsom anges i .

  • Du kan ange basavbildningen flow.dag.yaml i genom att Raw file mode välja flödet. Om ingen avbildning har angetts är standardbasavbildningen den senaste basavbildningen för promptflöde.

    Skärmbild av att ange basavbildningen i yaml-råfilen för flödet.

  • Du hittar requirements.txt i rotmappen i flödesmappen och lägger till beroenden i den.

    Skärmbild av text för flödeskrav.

Använda anpassad miljö

Du kan också skapa en anpassad miljö och använda den för distributionen.

Kommentar

Din anpassade miljö måste uppfylla följande krav:

  • docker-avbildningen måste skapas baserat på basavbildningen för promptflöde, mcr.microsoft.com/azureml/promptflow/promptflow-runtime-stable:<newest_version>. Du hittar den senaste versionen här.
  • miljödefinitionen måste innehålla inference_config.

Följande är ett exempel på en anpassad miljödefinition.

$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: pf-customized-test
build:
  path: ./image_build
  dockerfile_path: Dockerfile
description: promptflow customized runtime
inference_config:
  liveness_route:
    port: 8080
    path: /health
  readiness_route:
    port: 8080
    path: /health
  scoring_route:
    port: 8080
    path: /score

Aktivera spårning genom att aktivera Application Insights-diagnostik (förhandsversion)

Om du aktiverar detta samlas spårning av data och systemmått under inferenstid (till exempel tokenantal, flödesfördröjning, flödesbegäran och så vidare) in i arbetsytans länkade Application Insights. Mer information finns i promptflöde som hanterar spårningsdata och mått.

Om du vill ange en annan Application Insights än den länkade arbetsytan kan du konfigurera av CLI.

Avancerade inställningar – Utdata och Anslut joner

I det här steget kan du visa alla flödesutdata och ange vilka utdata som ska ingå i svaret för slutpunkten som du distribuerar. Som standard är alla flödesutdata markerade.

Du kan också ange de anslutningar som används av slutpunkten när den utför slutsatsdragning. Som standard ärvs de från flödet.

När du har konfigurerat och granskat alla steg ovan kan du välja Granska+Skapa för att slutföra skapandet.

Kommentar

Förvänta dig att det tar cirka 15 minuter att skapa slutpunkten eftersom den innehåller flera steg, inklusive att skapa slutpunkt, registrera modell, skapa distribution osv.

Du kan förstå förloppet när distributionen skapas via meddelandet startas av distributionen av promptflödet. Skärmbild av distributionsmeddelande.

Bevilja behörigheter till slutpunkten

Viktigt!

Det är bara ägaren av de specifika Azure-resurserna som kan bevilja behörigheter (lägga till rolltilldelning). Du kan behöva be IT-administratören om hjälp. Vi rekommenderar att du beviljar roller till den användartilldelade identiteten innan distributionen skapas. Det tar mer än 15 minuter innan den beviljade behörigheten börjar gälla.

Du kan bevilja alla behörigheter i azure-portalens användargränssnitt genom att följa stegen nedan.

  1. Gå till översiktssidan för Azure Machine Learning-arbetsytan i Azure-portalen.

  2. Välj Åtkomstkontroll och välj Lägg till rolltilldelning. Skärmbild av Åtkomstkontroll med lägg till rolltilldelning markerat.

  3. Välj Azure Machine Learning Workspace Anslut ion Secrets Reader och gå till Nästa.

    Kommentar

    Azure Machine Learning Workspace Anslut ion Secrets Reader är en inbyggd roll som har behörighet att hämta anslutningar till arbetsytor.

    Om du vill använda en anpassad roll kontrollerar du att den anpassade rollen har behörigheten "Microsoft.MachineLearningServices/workspaces/connections/listsecrets/action". Läs mer om hur du skapar anpassade roller.

  4. Välj Hanterad identitet och välj medlemmar.

    För systemtilldelad identitet väljer du Machine learning online-slutpunkt under Systemtilldelad hanterad identitet och söker efter slutpunktsnamn.

    För användartilldelad identitet väljer du Användartilldelad hanterad identitet och söker efter identitetsnamn.

  5. För användartilldelad identitet måste du även bevilja behörigheter till arbetsytans containerregister och lagringskonto. Du hittar containerregistret och lagringskontot på arbetsytans översiktssida i Azure-portalen.

    Skärmbild av översiktssidan med lagrings- och containerregistret markerat.

    Gå till översiktssidan för arbetsytans containerregister, välj Åtkomstkontroll och välj Lägg till rolltilldelning och tilldela ACR-pull |Hämta containeravbildningen till slutpunktsidentiteten.

    Gå till arbetsytans standardöversiktssida för lagring, välj Åtkomstkontroll och välj Lägg till rolltilldelning och tilldela Storage Blob Data Reader till slutpunktsidentiteten.

  6. (valfritt) Om du vill övervaka slutpunktsrelaterade mått som CPU/GPU/Disk/Minnesanvändning för användartilldelade identiteter måste du även ge arbetsytans skrivroll för arbetsytans mått.

Kontrollera slutpunktens status

Det kommer att finnas meddelanden när du har slutfört distributionsguiden. När slutpunkten och distributionen har skapats kan du välja Distribuera information på sidan meddelande till slutpunktsinformation.

Du kan också gå direkt till sidan Slutpunkter i studion och kontrollera statusen för slutpunkten som du distribuerade.

Skärmbild av sidan med slutpunktsinformation som visar en lyckad distribution.

Testa slutpunkten med exempeldata

På sidan slutpunktsinformation växlar du till fliken Test .

Du kan ange värdena och välja knappen Testa .

Testresultatet visas som följande:

Skärmbild av sidan med slutpunktsinformation på testfliken.

Testa slutpunkten som distribuerats från ett chattflöde

För slutpunkter som distribueras från chattflödet kan du testa det i ett uppslukande chattfönster.

Skärmbild av en slutpunkt som distribuerats från chattflödet.

Angavs chat_input under utvecklingen av chattflödet. Du kan ange meddelandet chat_input i indatarutan. Panelen Indata till höger är till för att du ska kunna ange värden för andra indata förutom chat_input. Läs mer om hur du utvecklar ett chattflöde.

Använda slutpunkten

På sidan slutpunktsinformation växlar du till fliken Förbruka . Du hittar REST-slutpunkten och nyckeln/token för att använda slutpunkten. Det finns också exempelkod som du kan använda slutpunkten på olika språk.

Observera att du måste fylla i datavärdena enligt dina flödesindata. Ta exempelflödet som används i den här artikeln Webbklassificering som exempel. Du måste ange data = {"url": "<the_url_to_be_classified>"} och fylla i nyckeln eller token i exempelförbrukningskoden.

Skärmbild av sidan med slutpunktsinformation med förbrukningskod.

Övervaka slutpunkter

Visa vanliga mått för hanterade onlineslutpunkter med Azure Monitor (valfritt)

Du kan visa olika mått (begärandenummer, svarstid för begäranden, nätverksbyte, cpu/GPU/disk/minne med mera) för en onlineslutpunkt och dess distributioner genom att följa länkarna från sidan Information i slutpunkten i studion. Genom att följa dessa länkar kommer du till den exakta måttsidan i Azure-portalen för slutpunkten eller distributionen.

Kommentar

Om du anger användartilldelad identitet för slutpunkten kontrollerar du att du har tilldelat arbetsytemåttskrivarenför Azure Machine Learning-arbetsytan till din användartilldelade identitet. Annars kan slutpunkten inte logga måtten.

Skärmbild av slutpunktsinformationssidan med visningsmått markerade.

Mer information om hur du visar slutpunktsmått online finns i Övervaka onlineslutpunkter.

Visa slutpunkter för promptflödesspecifika mått och spårningsdata (valfritt)

Om du aktiverar Application Insights-diagnostik i distributionsguiden för användargränssnittet samlas spårningsdata och flödesspecifika mått in till den länkade Application Insights-arbetsytan. Se information om hur du aktiverar spårning för distributionen.

Felsöka slutpunkter som distribuerats från promptflödet

Saknar behörighet att utföra åtgärden "Microsoft.MachineLearningService/workspaces/datastores/read"

Om ditt flöde innehåller verktyget Index Look Up måste slutpunkten efter distributionen av flödet komma åt arbetsytans datalager för att läsa MLIndex yaml-fil eller FAISS-mapp som innehåller segment och inbäddningar. Därför måste du manuellt ge slutpunktsidentiteten behörighet att göra det.

Du kan antingen bevilja slutpunktsidentiteten AzureML-Dataforskare på arbetsytans omfång eller en anpassad roll som innehåller åtgärden "MachineLearningService/workspace/datastore/reader".

MissingDriverProgram-fel

Om du distribuerar ditt flöde med anpassad miljö och stöter på följande fel kan det bero på att du inte angav inference_config i din anpassade miljödefinition.

'error': 
{
    'code': 'BadRequest', 
    'message': 'The request is invalid.', 
    'details': 
         {'code': 'MissingDriverProgram', 
          'message': 'Could not find driver program in the request.', 
          'details': [], 
          'additionalInfo': []
         }
}

Det finns två sätt att åtgärda det här felet.

  • (Rekommenderas) Du hittar containeravbildnings-URI:n på din anpassade miljöinformationssida och anger den som flödesbasavbildningen i filen flow.dag.yaml. När du distribuerar flödet i användargränssnittet väljer du bara Använd miljö för aktuell flödesdefinition, så skapar serverdelstjänsten den anpassade miljön baserat på den här basavbildningen och requirement.txt för distributionen. Läs mer om miljön som anges i flödesdefinitionen.

    Skärmbild av sidan med anpassad miljöinformation.

    Skärmbild av att ange basavbildningen i yaml-råfilen för flödet.

  • Du kan åtgärda det här felet genom att lägga till inference_config den anpassade miljödefinitionen. Läs mer om hur du använder anpassad miljö.

    Följande är ett exempel på en anpassad miljödefinition.

$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: pf-customized-test
build:
  path: ./image_build
  dockerfile_path: Dockerfile
description: promptflow customized runtime
inference_config:
  liveness_route:
    port: 8080
    path: /health
  readiness_route:
    port: 8080
    path: /health
  scoring_route:
    port: 8080
    path: /score

Modellsvaret tar för lång tid

Ibland kanske du märker att distributionen tar för lång tid att svara. Det finns flera potentiella faktorer för att detta ska inträffa.

  • Modellen är inte tillräckligt kraftfull (till ex. använd gpt över text-ada)
  • Indexfrågan är inte optimerad och tar för lång tid
  • Flow har många steg att bearbeta

Överväg att optimera slutpunkten med ovanstående överväganden för att förbättra modellens prestanda.

Det gick inte att hämta distributionsschemat

När du har distribuerat slutpunkten och vill testa den på fliken Test på sidan med slutpunktsinformation kan du prova följande två metoder för att åtgärda problemet på flikenTest:

Skärmbild av felet att det inte gick att hämta distributionsschemat på fliken Test i slutpunktsinformationssidan.

Åtkomst nekad till lista med arbetsytehemligheter

Om du stöter på ett fel som "Åtkomst nekad att visa arbetsytehemlighet" kontrollerar du om du har beviljat rätt behörighet till slutpunktsidentiteten. Läs mer om hur du beviljar behörighet till slutpunktsidentiteten.

Rensa resurser

Om du inte använder slutpunkten när du har slutfört den här självstudien bör du ta bort slutpunkten.

Kommentar

Den fullständiga borttagningen kan ta cirka 20 minuter.

Nästa steg