Nasazení toku jako spravovaného online koncového bodu pro odvozování v reálném čase

Po vytvoření toku a jeho správném otestování můžete chtít nasadit jako koncový bod, abyste mohli koncový bod vyvolat pro odvozování v reálném čase.

V tomto článku se dozvíte, jak nasadit tok jako spravovaný online koncový bod pro odvozování v reálném čase. Kroky, které provedete, jsou:

Důležité

Položky označené (Preview) v tomto článku jsou aktuálně ve verzi Public Preview. Verze Preview je poskytována bez smlouvy o úrovni služeb a nedoporučuje se pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

Požadavky

  • Zjistěte , jak vytvořit a otestovat tok v toku výzvy.

  • Základní znalosti o spravovaných online koncových bodech. Spravované online koncové body pracují s výkonnými procesory a počítači GPU v Azure škálovatelným a plně spravovaným způsobem, který vám uvolní režii při nastavování a správě základní infrastruktury nasazení. Další informace ospravovaných

  • Řízení přístupu na základě role v Azure (Azure RBAC) slouží k udělení přístupu k operacím ve službě Azure Machine Learning. Aby bylo možné nasadit koncový bod v toku výzvy, musí být vašemu uživatelskému účtu přiřazen datový vědec nebo role AzureML s více oprávněními pro pracovní prostor Azure Machine Učení.

  • Základní znalosti o spravovaných identitách Přečtěte si další informace o spravovaných identitách.

Sestavení toku a příprava na nasazení

Pokud jste už dokončili úvodní kurz, už jste tok správně otestovali odesláním dávkového spuštění a vyhodnocením výsledků.

Pokud jste kurz nedokončili, musíte vytvořit tok. Osvědčeným postupem je správné testování toku podle dávkového spuštění a vyhodnocení před nasazením.

Jako příklad použijeme ukázkovou webovou klasifikaci toku, abychom ukázali, jak tok nasadit. Tento ukázkový tok je standardní tok. Nasazení toků chatu je podobné. Tok vyhodnocení nepodporuje nasazení.

Definování prostředí používaného nasazením

Když nasadíte tok výzvy do spravovaného online koncového bodu v uživatelském rozhraní, použije se ve výchozím nastavení prostředí vytvořené na základě nejnovější image toku výzvy a závislostí zadaných v requirements.txt toku. Můžete zadat další balíčky, které potřebujete v requirements.txt. V kořenové složce složky toku najdete requirements.txt .

Snímek obrazovky s textem požadavků na tok

Pokud k vytvoření modulu runtime výpočetní instance používáte prostředí zákazníka, najdete image na stránce podrobností prostředí v studio Azure Machine Learning. Další informace najdete v tématu Přizpůsobení prostředí s kontextem Dockeru pro modul runtime.

Snímek obrazovky s názvem obrázku na stránce podrobností prostředí

Pak potřebujete také zadat obrázek do environmentflow.dag.yaml složky toku.

Snímek obrazovky s přizpůsobením prostředí pro automatický modul runtime na stránce toku

Poznámka:

Pokud v Azure DevOps používáte privátní informační kanály, musíte nejprve sestavit image s privátními informačními kanály a vybrat vlastní prostředí pro nasazení v uživatelském rozhraní.

Vytvoření online nasazení

Teď, když jste vytvořili tok a správně ho otestovali, je čas vytvořit online koncový bod pro odvozování v reálném čase.

Tok výzvy podporuje nasazení koncových bodů z toku nebo dávkového spuštění. Doporučuje se otestovat tok před nasazením.

Na stránce pro vytváření toku nebo na stránce podrobností o spuštění vyberte Nasadit.

Stránka vytváření toku:

Snímek obrazovky webové klasifikace na stránce vytváření toku

Stránka s podrobnostmi o spuštění:

Snímek obrazovky webové klasifikace na stránce podrobností o spuštění

Provede se průvodce konfigurací koncového bodu a zahrnuje následující kroky.

Základní nastavení

Snímek obrazovky s průvodcem nasazením na stránce koncového bodu

Tento krok umožňuje nakonfigurovat základní nastavení nasazení.

Vlastnost Popis
Koncový bod Můžete vybrat, jestli chcete nasadit nový koncový bod, nebo aktualizovat existující koncový bod.
Pokud vyberete Možnost Nový, musíte zadat název koncového bodu.
Název nasazení – V rámci stejného koncového bodu by měl být název nasazení jedinečný.
– Pokud vyberete existující koncový bod a zadáte existující název nasazení, bude toto nasazení přepsáno novými konfiguracemi.
Virtuální počítač Velikost virtuálního počítače, která se má použít pro nasazení. Seznam podporovaných velikostí najdete v seznamu skladových položek spravovaných online koncových bodů.
Počet instancí Početinstancích Zadejte hodnotu očekávané úlohy. Pro zajištění vysoké dostupnosti doporučujeme nastavit hodnotu alespoň na 3. Pro provádění upgradů si vyhrazujeme dalších 20 %. Další informace najdete v tématu spravované kvóty online koncových bodů.
Shromažďování dat odvozování Pokud to povolíte, vstupy a výstupy toku se automaticky shromažďují ve službě Azure Machine Učení datovém prostředku a dají se použít pro pozdější monitorování. Další informace najdete v tématu monitorování aplikací generující umělé inteligence.
Diagnostika Application Insights Pokud to povolíte, systémové metriky během doby odvozování (například počet tokenů, latence toku, žádost o tok atd.) se shromáždí do výchozího aplikačního Přehledy pracovního prostoru. Další informace najdete v tématu Výzva toku obsluhující metriky.

Jakmile dokončíte základní nastavení, můžete vytvoření dokončit přímo zkontrolovat a vytvořit nebo můžete vybrat Další a nakonfigurovat upřesňující nastavení.

Upřesnit nastavení – koncový bod

Pro koncový bod můžete zadat následující nastavení.

Snímek obrazovky s nastavením koncového bodu průvodce nasazením

Authentication type

Metoda ověřování pro koncový bod. Ověřování na základě klíčů poskytuje primární a sekundární klíč, jehož platnost nevyprší. Ověřování založené na tokenech Azure Machine Učení poskytuje token, který se pravidelně aktualizuje automaticky. Další informace o ověřování najdete v tématu Ověřování u online koncového bodu.

Typ identity

Koncový bod potřebuje přístup k prostředkům Azure, jako je Azure Container Registry nebo připojení pracovního prostoru k odvozování. Přístup k prostředkům Azure můžete povolit tak, že koncovému bodu udělíte oprávnění ke své spravované identitě.

Identita přiřazená systémem se po vytvoření koncového bodu automaticky vytvoří, zatímco identitu přiřazenou uživatelem vytvoří uživatel. Přečtěte si další informace o spravovaných identitách.

Přiřazeno systémem

Všimněte si, že existuje možnost vynutit přístup k tajným kódům připojení (Preview). Pokud váš tok používá připojení, musí koncový bod přistupovat k připojením, aby bylo možné provést odvozování. Možnost je ve výchozím nastavení povolená, koncový bod se udělí roli Azure Machine Učení Workspace Připojení ion Secrets Reader pro přístup k připojením automaticky, pokud máte oprávnění ke čtení tajných kódů připojení. Pokud tuto možnost zakážete, musíte tuto roli udělit identitě přiřazené systémem ručně sami nebo požádat o pomoc správce. Přečtěte si další informace o tom, jak udělit oprávnění identitě koncového bodu.

Přiřazeno uživatelem

Při vytváření nasazení se Azure pokusí vyžádat image kontejneru uživatele z pracovního prostoru Azure Container Registry (ACR) a připojit uživatelský model a artefakty kódu do kontejneru uživatele z účtu úložiště pracovního prostoru.

Pokud jste vytvořili přidružený koncový bod s identitou přiřazenou uživatelem, musí být před vytvořením nasazení udělena následující role. Jinak vytvoření nasazení selže.

Obor Role Proč je to potřeba
Pracovní prostor služby Azure Machine Learning Role Čtenář tajných kódů pro připojení pracovního prostoru Azure Machine LearningNEBO přizpůsobená role s klíčem „Microsoft.MachineLearningServices/workspaces/connections/listsecrets/action“ Získejte připojení k pracovnímu prostoru
Registr kontejneru pracovního prostoru ACR pull Image kontejneru pro přijetí změn
Výchozí úložiště pracovního prostoru Čtenář dat v objektech blob služby Storage Načtení modelu z úložiště
(Volitelné) Pracovní prostor Azure Machine Learning Zapisovač metrik pracovního prostoru Toto oprávnění je nutné identitě udělit v případě, že po nasazení koncového bodu chcete monitorovat metriky související s koncovými body, jako je využití procesoru, GPU, disku nebo paměti.

Podrobné pokyny k udělení oprávnění identitě koncového bodu najdete v tématu Udělení oprávnění ke koncovému bodu.

Upřesňující nastavení – Nasazení

V tomto kroku kromě značek můžete také zadat prostředí používané nasazením.

Snímek obrazovky s prostředím nasazení

Použití prostředí aktuální definice toku

Ve výchozím nastavení bude nasazení používat prostředí vytvořené na základě základní image zadané v flow.dag.yaml závislosti zadané v souboru requirements.txt.

  • Základní image můžete zadat výběrem flow.dag.yamlRaw file mode toku. Pokud není zadána žádná image, výchozí základní image je nejnovější základní image toku výzvy.

    Snímek obrazovky s určením základního obrázku v nezpracovaném souboru yaml toku

  • V kořenové složce složky toku můžete najít requirements.txt závislosti a přidat do ní závislosti.

    Snímek obrazovky s textem požadavků na tok

Použití přizpůsobeného prostředí

Můžete také vytvořit přizpůsobené prostředí a použít ho pro nasazení.

Poznámka:

Vaše vlastní prostředí musí splňovat následující požadavky:

  • Image dockeru musí být vytvořena na základě základní image toku výzvy, mcr.microsoft.com/azureml/promptflow/promptflow-runtime-stable:<newest_version>. Nejnovější verzi najdete tady.
  • definice prostředí musí obsahovat inference_config.

Následuje příklad přizpůsobené definice prostředí.

$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

Upřesnit nastavení – Výstupy a Připojení iony

V tomto kroku můžete zobrazit všechny výstupy toku a určit, které výstupy se zahrnou do odpovědi na nasazený koncový bod. Ve výchozím nastavení jsou vybrány všechny výstupy toku.

Můžete také určit připojení používaná koncovým bodem při jeho odvozování. Ve výchozím nastavení jsou zděděné z toku.

Jakmile nakonfigurujete a zkontrolujete všechny výše uvedené kroky, můžete vytvoření dokončit výběrem možnosti Zkontrolovat a vytvořit .

Poznámka:

Počítejte s tím, že vytvoření koncového bodu bude trvat přibližně 15 minut, protože obsahuje několik fází, mezi které patří vytvoření koncového bodu, registrace modelu, vytvoření nasazení atd.

Průběh vytváření nasazení můžete pochopit prostřednictvím oznámení, které začíná nasazením toku výzvy. Snímek obrazovky s oznámením o nasazení

Udělení oprávnění koncovému bodu

Důležité

Udělení oprávnění (přidání přiřazení role) je povoleno jen pro vlastníka konkrétních prostředků Azure. Možná budete muset požádat správce IT o pomoc. Před vytvořením nasazení se doporučuje udělit rolím identitu přiřazenou uživatelem. Než se udělené oprávnění projeví, trvá to déle než 15 minut.

Všechna oprávnění můžete udělit v uživatelském rozhraní webu Azure Portal pomocí následujícího postupu.

  1. Na webu Azure Portal přejděte na stránku přehledu pracovního prostoru Azure Machine Učení.

  2. Vyberte Řízení přístupu a vyberte Přidat přiřazení role. Snímek obrazovky řízení přístupu se zvýrazněným přiřazením role pro přidání

  3. Vyberte Azure Machine Učení Workspace Připojení ion Secrets Reader, přejděte na Další.

    Poznámka:

    Azure Machine Učení Workspace Připojení ion Secrets Reader je integrovaná role, která má oprávnění získat připojení pracovního prostoru.

    Pokud chcete použít přizpůsobenou roli, ujistěte se, že přizpůsobená role má oprávnění Microsoft.Machine Učení Services/workspaces/connections/listsecrets/action. Přečtěte si další informace o vytváření vlastních rolí.

  4. Vyberte spravovanou identitu a vyberte členy.

    Jako identitu přiřazenou systémem vyberte online koncový bod strojového učení v části Spravovaná identita přiřazená systémem a vyhledejte podle názvu koncového bodu.

    Jako identitu přiřazenou uživatelem vyberte spravovanou identitu přiřazenou uživatelem a vyhledejte ji podle názvu identity.

  5. Pro identitu přiřazenou uživatelem musíte také udělit oprávnění registru kontejneru pracovního prostoru a účtu úložiště. Registr kontejneru a účet úložiště najdete na stránce přehledu pracovního prostoru na webu Azure Portal.

    Snímek obrazovky se stránkou přehledu se zvýrazněným registrem úložiště a kontejneru

    Přejděte na stránku přehledu registru kontejneru pracovního prostoru, vyberte Řízení přístupu a vyberte Přidat přiřazení role a přiřaďte přijetí změn ACR |Načíst image kontejneru do identity koncového bodu

    Přejděte na výchozí stránku přehledu úložiště pracovního prostoru, vyberte Řízení přístupu a vyberte Přidat přiřazení role a přiřaďte čtenář dat objektů blob služby Storage identitě koncového bodu.

  6. (volitelné) Pokud chcete u identity přiřazené uživatelem monitorovat metriky související s koncovým bodem, jako je využití procesoru, GPU, disku nebo paměti, musíte identitě udělit také roli zapisovače metrik pracovního prostoru.

Kontrola stavu koncového bodu

Po dokončení průvodce nasazením budou k dispozici oznámení. Po úspěšném vytvoření koncového bodu a nasazení můžete v oznámení na stránce podrobností koncového bodu vybrat podrobnosti o nasazení.

Můžete také přímo přejít na stránku Koncové body v sadě Studio a zkontrolovat stav nasazeného koncového bodu.

Snímek obrazovky se stránkou podrobností koncového bodu zobrazující úspěšné nasazení

Testování koncového bodu s ukázkovými daty

Na stránce podrobností koncového bodu přepněte na kartu Test .

Můžete zadat hodnoty a vybrat tlačítko Test .

Výsledek testu ukazuje následující:

Snímek obrazovky se stránkou podrobností koncového bodu na kartě Test

Testování koncového bodu nasazeného z toku chatu

U koncových bodů nasazených z toku chatu ho můžete otestovat v imerzivním okně chatu.

Snímek obrazovky s koncovým bodem nasazeným z toku chatu

Během chat_input vývoje toku chatu byla nastavena. Zprávu můžete zadat do vstupního chat_input pole. Panel Vstupy na pravé straně je určen pro zadání hodnot pro ostatní vstupy chat_inputkromě . Přečtěte si další informace o tom, jak vyvíjet tok chatu.

Využití koncového bodu

Na stránce podrobností koncového bodu přepněte na kartu Spotřebovávat . Můžete najít koncový bod REST a klíč/token pro využívání koncového bodu. K dispozici je také ukázkový kód, který můžete využívat koncový bod v různých jazycích.

Všimněte si, že je potřeba vyplnit hodnoty dat podle vstupů toku. Příklad ukázkového toku použitého v této klasifikaci webu v tomto článku je třeba zadat data = {"url": "<the_url_to_be_classified>"} a vyplnit klíč nebo token v ukázkovém kódu consumption.

Snímek obrazovky se stránkou podrobností koncového bodu s kódem consumption

Zobrazení metrik koncových bodů

Zobrazení běžných metrik spravovaných online koncových bodů pomocí služby Azure Monitor (volitelné)

Různé metriky (čísla požadavků, latence požadavků, bajty sítě, využití procesoru, GPU, disku nebo paměti a další) pro online koncový bod a jeho nasazení můžete zobrazit pomocí odkazů na stránce podrobností koncového bodu v sadě Studio. Následující odkazy vás přesnou stránku metrik na webu Azure Portal pro koncový bod nebo nasazení převezmou.

Poznámka:

Pokud pro svůj koncový bod zadáte identitu přiřazenou uživatelem, ujistěte se, že jste přiřadili zapisovač metrik pracovního prostoru služby Azure Machine Učení Workspace vaší identitě přiřazené uživatelem. Jinak koncový bod nebude moct metriky protokolovat.

Snímek obrazovky se stránkou podrobností koncového bodu se zvýrazněnou metrikou zobrazení

Další informace o tom, jak zobrazit metriky online koncových bodů, najdete v tématu Monitorování online koncových bodů.

Zobrazení metrik specifických pro koncové body toku výzvy (volitelné)

Pokud v průvodci nasazením uživatelského rozhraní povolíte diagnostiku Přehledy aplikace nebo ji nastavíte app_insights_enabled=true v definici nasazení pomocí kódu, zobrazí se následující metriky specifické pro koncové body toku výzvy shromážděné ve výchozím Přehledy aplikace pracovního prostoru.

Název metrik Typ Dimenze Popis
token_consumption counter -Tok
-Uzel
- llm_engine
- token_type: prompt_tokens: Vstupní tokeny rozhraní LLM API; completion_tokens: Tokeny odpovědí rozhraní LLM API ; total_tokens = prompt_tokens + completion tokens
Metriky spotřeby tokenů Openai
flow_latency Histogram tok, response_code, streamování, response_type náklady na provedení požadavku, response_type znamená, jestli je úplná/ firstbyte/lastbyte
flow_request counter tok, response_code, výjimka, streamování počet požadavků toku
node_latency Histogram flow, node, run_status Náklady na spuštění uzlu
node_request counter flow, node, exception, run_status Počet spuštění uzlu
rpc_latency Histogram flow, node, api_call Náklady na rpc
rpc_request counter flow, node, api_call, exception Počet rpc
flow_streaming_response_duration Histogram tok streaming response sending cost, from sending first byte to sending last byte

Výchozí Přehledy aplikace pracovního prostoru najdete na stránce pracovního prostoru na webu Azure Portal.

Snímek obrazovky s výchozím Přehledy aplikace pracovního prostoru

Otevřete Přehledy aplikace a v levém navigačním panelu vyberte Využití a odhadované náklady. Vyberte Vlastní metriky (Preview) a vyberte S dimenzemi a uložte změnu.

Snímek obrazovky s povolením multidimenzionálních metrik

V levém navigačním panelu vyberte kartu Metriky . V oboru názvů metrik vyberte standardní metrikypromptflow a metriky můžete prozkoumat z rozevíracího seznamu Metriky s různými metodami agregace.

Snímek obrazovky s metrikami koncového bodu toku výzvy

Řešení potíží s koncovými body nasazenými pomocí toku instrukcí

Chybí autorizace k provedení akce Microsoft.Machine Učení Service/workspaces/datastores/read.

Pokud tok obsahuje nástroj Vyhledávání indexu po nasazení toku, musí koncový bod přistupovat k úložišti dat pracovního prostoru, aby četl soubor YAML MLIndex nebo složku FAISS obsahující bloky dat a vkládání. Proto musíte ručně udělit identitě koncového bodu oprávnění k tomu.

Identitě koncového bodu můžete udělit AzureML Datoví vědci v oboru pracovního prostoru nebo vlastní roli, která obsahuje akci Machine Učení Service/workspace/datastore/reader.

Chyba MissingDriverProgram

Pokud tok nasadíte s vlastním prostředím a dojde k následující chybě, může to být proto, že jste nezadali v definici vlastního inference_config prostředí.

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

Existují 2 způsoby, jak tuto chybu opravit.

  • (Doporučeno) Identifikátor URI image kontejneru najdete na stránce podrobností vlastního prostředí a nastavíte ho jako základní image toku v souboru flow.dag.yaml. Když tok nasadíte v uživatelském rozhraní, stačí vybrat Použít prostředí aktuální definice toku a back-endová služba vytvoří přizpůsobené prostředí založené na této základní imagi a requirement.txt pro vaše nasazení. Přečtěte si další informace o prostředí určeném v definici toku.

    Snímek obrazovky se stránkou podrobností vlastního prostředí

    Snímek obrazovky s určením základního obrázku v nezpracovaném souboru yaml toku

  • Tuto chybu můžete opravit přidáním inference_config do vlastní definice prostředí. Přečtěte si další informace o tom, jak používat přizpůsobené prostředí.

    Následuje příklad přizpůsobené definice prostředí.

$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

Reakce modelu trvá příliš dlouho

Někdy si můžete všimnout, že reakce nasazení trvá příliš dlouho. K tomu může dojít několika potenciálními faktory.

  • Model není dostatečně výkonný (např. použijte gpt přes text ada).
  • Dotaz indexu není optimalizovaný a trvá příliš dlouho.
  • Tok má mnoho kroků ke zpracování.

Zvažte optimalizaci koncového bodu s výše uvedenými aspekty, abyste zlepšili výkon modelu.

Nepovedlo se načíst schéma nasazení

Když nasadíte koncový bod a chcete ho otestovat na kartě Test na stránce podrobností o koncovém bodu, můžete zkusit následující 2 metody, které tento problém zmírní:

Snímek obrazovky s chybou, která nemůže načíst schéma nasazení na kartě Test na stránce podrobností koncového bodu

  • Ujistěte se, že jste identitě koncového bodu udělili správná oprávnění. Přečtěte si další informace o tom, jak udělit oprávnění identitě koncového bodu.
  • Důvodem může být to, že jste tok spustili v modulu runtime staré verze a pak jste tok nasadili, nasazení použilo prostředí modulu runtime, které bylo také ve staré verzi. Aktualizujte modul runtime podle těchto pokynů a znovu spusťte tok v nejnovějším modulu runtime a pak tok znovu nasaďte.

Odepření přístupu pro výpis tajných kódů pracovního prostoru

Pokud dojde k chybě typu Přístup odepřen výpisu tajného kódu pracovního prostoru, zkontrolujte, jestli jste udělili správná oprávnění k identitě koncového bodu. Přečtěte si další informace o tom, jak udělit oprávnění identitě koncového bodu.

Vyčištění prostředků

Pokud koncový bod po dokončení tohoto kurzu nepoužijete, měli byste koncový bod odstranit.

Poznámka:

Úplné odstranění může trvat přibližně 20 minut.

Další kroky