Perspektiva rozhraní Azure Well-Architected Framework ve službě Azure OpenAI

Služba Azure OpenAI poskytuje přístup rozhraní REST API k velkým jazykovým modelům OpenAI a přidává síťové funkce a možnosti zabezpečení Azure. Tento článek obsahuje doporučení pro architekturu, která vám pomůžou činit informovaná rozhodnutí, když používáte Azure OpenAI jako součást architektury úloh. Pokyny jsou založené na pilířích rozhraní Azure Well-Architected Framework.

Důležité

Jak používat tohoto průvodce

Každá část obsahuje kontrolní seznam návrhu , který představuje oblasti zájmu o architekturu spolu se strategiemi návrhu lokalizovanými do oboru technologie.

Součástí jsou také doporučení týkající se technologických možností, které můžou pomoct tyto strategie materializovat. Doporučení nepředstavují vyčerpávající seznam všech konfigurací dostupných pro Azure OpenAI a jejích závislostí. Místo toho vypisují klíčová doporučení mapovaná na perspektivy návrhu. Doporučení využijte k vytvoření testování konceptu nebo optimalizaci stávajících prostředí.

Základní architektura, která demonstruje klíčová doporučení: Základní referenční architektura chatu OpenAI

Rozsah technologie

Tato kontrola se zaměřuje výhradně na Azure OpenAI.

Spolehlivost

Účelem pilíře spolehlivosti je poskytovat nepřetržité funkce vytvořením dostatečné odolnosti a schopnosti rychle se zotavit z selhání.

Principy návrhu spolehlivosti poskytují strategii návrhu na vysoké úrovni, která se používá pro jednotlivé komponenty, systémové toky a systém jako celek.

Kontrolní seznam návrhu

Zahajte strategii návrhu na základě kontrolního seznamu pro kontrolu návrhu pro spolehlivost. Určete jeho relevantnost pro vaše obchodní požadavky. Rozšiřte strategii tak, aby zahrnovala další přístupy podle potřeby.

  • Odolnost: Zvolte vhodnou možnost nasazení pro průběžné platby nebo zřízenou propustnost na základě vašeho případu použití. Vzhledem k tomu, že rezervovaná kapacita zvyšuje odolnost, zvolte zřízenou propustnost pro produkční řešení. Přístup k průběžným platbě je ideální pro vývojová a testovací prostředí.

  • Redundance: Před nasazení Azure OpenAI přidejte příslušné brány. Brána musí mít schopnost odolat přechodným selháním, jako je omezování, a také směrovat na více instancí Azure OpenAI. Pokud chcete vytvořit regionální redundanci, zvažte směrování na instance v různých oblastech.

  • Odolnost: Pokud používáte zřízenou propustnost, zvažte také nasazení instance s průběžnými platbami, která bude zpracovávat přetečení. Když je váš model zřízené propustnosti omezený, můžete přes bránu směrovat volání do instance s průběžnými platbami. Monitorování můžete také použít k predikci, kdy bude model omezen, a preventivně směrovat volání do instance s průběžným platbami.

  • Odolnost: Monitorujte využití kapacity, abyste měli jistotu, že nepřekračujete limity propustnosti. Pravidelně kontrolujte využití kapacity, abyste dosáhli přesnějších prognóz a zabránili přerušení služeb kvůli omezením kapacity.

  • Odolnost: Postupujte podle pokynů pro velké datové soubory a naimportujte data z úložiště objektů blob v Azure. Velké soubory o velikosti 100 MB nebo větší můžou být při nahrávání prostřednictvím formulářů s více částmi nestabilní, protože požadavky jsou atomické a nejde je opakovat ani obnovit.

  • Obnovení: Definujte strategii obnovení, která zahrnuje plán obnovení pro vyladěné modely a pro trénovací data nahraná do Azure OpenAI. Vzhledem k tomu, že Azure OpenAI nemá automatické převzetí služeb při selhání, musíte navrhnout strategii, která zahrnuje celou službu a všechny závislosti, například úložiště, které obsahuje trénovací data.

Doporučení

Doporučení Výhoda
Monitorování limitů sazeb pro průběžné platby: Pokud používáte přístup s průběžným platbami, spravujte limity přenosové rychlosti pro nasazení modelu a monitorujte využití tokenů za minutu (TPM) a požadavků za minutu (RPM). Tyto důležité informace o propustnosti poskytují informace potřebné k zajištění toho, abyste z kvóty přiřadili dostatek čipu TPM pro splnění požadavků na vaše nasazení.

Přiřazení dostatečné kvóty zabrání omezování volání nasazených modelů.
Monitorování využití zřízené propustnosti spravovaného zřízením: Pokud používáte platební model zřízené propustnosti , monitorujte využití spravované zřízením. Abyste zabránili omezování volání nasazených modelů, je důležité monitorovat využití spravovaného zřizováním, abyste měli jistotu, že nepřekročí 100 %.
Povolení funkce dynamické kvóty: Pokud to rozpočet úloh podporuje, proveďte nadlimitní zřízení povolením dynamické kvóty pro nasazení modelů. Dynamická kvóta umožňuje, aby nasazení spotřebovalo větší kapacitu, než jakou obvykle využívá vaše kvóta, pokud je k dispozici kapacita z pohledu Azure. Nadbytečná kapacita kvóty může potenciálně zabránit nežádoucímu omezování.
Ladění filtrů obsahu: Vylaďte filtry obsahu, abyste minimalizovali falešně pozitivní výsledky z příliš agresivních filtrů. Filtry obsahu blokují výzvy nebo dokončení na základě analýzy neprůsvných rizik. Ujistěte se, že jsou filtry obsahu vyladěné tak, aby umožňovaly očekávané využití pro vaši úlohu.

Zabezpečení

Účelem pilíře Zabezpečení je poskytnout sadě funkcí záruky důvěrnosti, integrity a dostupnosti .

Principy návrhu zabezpečení poskytují strategii návrhu na vysoké úrovni pro dosažení těchto cílů použitím přístupů k technickému návrhu v rámci Azure OpenAI.

Kontrolní seznam návrhu

Zahajte strategii návrhu na základě kontrolního seznamu pro kontrolu návrhu pro zabezpečení a identifikujte ohrožení zabezpečení a ovládací prvky, abyste zlepšili stav zabezpečení. Pak si projděte standardní hodnoty zabezpečení Azure pro Azure OpenAI. Nakonec rozšiřte strategii tak, aby podle potřeby zahrnovala více přístupů.

  • Ochrana důvěrnosti: Pokud nahráváte trénovací data do Azure OpenAI, použijte klíče spravované zákazníkem k šifrování dat, implementujte strategii obměně klíčů a odstraňte data trénování, ověřování a výsledků trénování. Pokud pro trénování dat používáte externí úložiště dat, postupujte podle osvědčených postupů zabezpečení pro toto úložiště. Například pro Azure Blob Storage použijte klíče spravované zákazníkem pro šifrování a implementujte strategii obměně klíčů. Použijte spravovaný přístup na základě identity, implementujte hraniční síť pomocí privátních koncových bodů a povolte protokoly přístupu.

  • Ochrana důvěrnosti: Chraňte před exfiltrací dat omezením odchozích adres URL, ke kterým můžou prostředky Azure OpenAI přistupovat.

  • Ochrana integrity: Implementujte řízení přístupu k ověřování a autorizaci přístupu uživatelů k systému pomocí principu nejnižších oprávnění a použití jednotlivých identit místo klíčů.

  • Ochrana integrity: Implementujte detekci rizika jailbreaku , abyste ochránili nasazení jazykových modelů před útoky prostřednictvím injektáže výzev.

  • Ochrana dostupnosti: Pomocí bezpečnostních prvků můžete zabránit útokům, které můžou vyčerpat kvóty využití modelů. Můžete nakonfigurovat ovládací prvky pro izolaci služby v síti. Pokud služba musí být přístupná z internetu, zvažte použití brány, která blokuje podezření na zneužití pomocí směrování nebo omezování.

Doporučení

Doporučení Výhoda
Zabezpečené klíče: Pokud vaše architektura vyžaduje ověřování na základě klíčů Azure OpenAI, ukládejte tyto klíče v Azure Key Vault, ne v kódu aplikace. Oddělení tajných kódů od kódu jejich uložením do Key Vault snižuje riziko úniku tajných kódů. Oddělení také usnadňuje centrální správu tajných kódů a usnadňuje tak povinnosti, jako je obměny klíčů.
Omezit přístup: Zakažte veřejný přístup k Azure OpenAI, pokud to vaše úloha nevyžaduje. Pokud se připojujete od uživatelů ve virtuální síti Azure, vytvořte privátní koncové body . Řízení přístupu k Azure OpenAI pomáhá předcházet útokům neoprávněných uživatelů. Použití privátních koncových bodů zajistí, že síťový provoz zůstane mezi aplikací a platformou privátní.
Microsoft Entra ID: K ověřování a autorizaci přístupu k Azure OpenAI pomocí řízení přístupu na základě role (RBAC) použijte Microsoft Entra ID. Zakažte místní ověřování ve službách Azure AI a nastavte disableLocalAuth na true. Udělte identitám, které provádějí dokončování nebo generování obrázků, roli uživatele OpenAI služeb Cognitive Services . Udělte kanálům automatizace modelů a ad hoc přístup k datovým vědám roli, jako je přispěvatel OpenAI služeb Cognitive Services. Použití Microsoft Entra ID centralizuje komponentu správy identit a eliminuje používání klíčů rozhraní API. Použití RBAC s Microsoft Entra ID zajistí, že uživatelé nebo skupiny budou mít přesně ta oprávnění, která potřebují ke své práci. Tento druh jemně odstupňovaného řízení přístupu není u klíčů rozhraní API Azure OpenAI možný.
Použití klíčů spravovaných zákazníkem: Klíče spravované zákazníkem použijte pro jemně vyladěné modely a trénovací data, která se nahrávají do Azure OpenAI. Použití klíčů spravovaných zákazníkem poskytuje větší flexibilitu při vytváření, obměně, zákazu a odvolávání řízení přístupu.
Ochrana před útoky na jailbreak: Pomocí nástroje Bezpečnost obsahu Azure AI Studio detekujte rizika jailbreaku. Detekujte pokusy o jailbreak za účelem identifikace a blokování výzev, které se snaží obejít bezpečnostní mechanismy nasazení Azure OpenAI.

Optimalizace nákladů

Optimalizace nákladů se zaměřuje na zjišťování vzorců útraty, stanovení priorit investic v důležitých oblastech a optimalizaci v ostatních oblastech tak, aby splňovaly rozpočet organizace a současně splňovaly obchodní požadavky.

Přečtěte si principy návrhu optimalizace nákladů , kde se dozvíte o přístupech k dosažení těchto cílů a o kompromisech potřebných při volbě technického návrhu souvisejících s Azure OpenAI.

Kontrolní seznam návrhu

Zahajte strategii návrhu na základě kontrolního seznamu pro kontrolu návrhu pro optimalizaci nákladů pro investice. Vylaďte návrh tak, aby úloha odpovídala přidělenému rozpočtu. Váš návrh by měl využívat příslušné možnosti Azure, monitorovat investice a hledat příležitosti k optimalizaci v průběhu času.

  • Správa nákladů: Vývoj nákladového modelu s ohledem na velikosti výzev Vysvětlení velikosti vstupních výzev a odpovědí a toho, jak se text překládá na tokeny, vám pomůže vytvořit životaschopný model nákladů.

  • Optimalizace využití: Začněte s cenami průběžných plateb pro Azure OpenAI, dokud nebude využití tokenů předvídatelné.

  • Optimalizace rychlosti: Pokud je využití tokenů dostatečně vysoké a předvídatelné v určitém časovém období, použijte pro lepší optimalizaci nákladů cenový model zřízené propustnosti .

  • Optimalizace využití: Při výběru modelů zvažte ceny a možnosti modelů. Začněte s méně nákladnými modely pro méně složité úlohy, jako je generování textu nebo úkoly dokončení. U složitějších úloh, jako je překlad jazyka nebo porozumění obsahu, zvažte použití pokročilejších modelů. Při výběru modelu, který je vhodný pro případy použití, jako je vkládání textu, generování obrázků nebo přepis, zvažte různé možnosti modelu a limity maximálního využití tokenů. Když pečlivě vyberete model, který nejlépe vyhovuje vašim potřebám, můžete optimalizovat náklady a zároveň dosáhnout požadovaného výkonu aplikace.

  • Optimalizace využití: Použijte omezení omezující tokeny nabízená voláními rozhraní API, jako max_tokens jsou a n, která určují počet dokončení, která se mají vygenerovat.

  • Optimalizace využití: Maximalizujte cenové zarážky Azure OpenAI, například jemné doladění a zarážky modelu, jako je generování obrázků. Vzhledem k tomu, že se jemné ladění účtuje po hodinách, využijte tolik času, kolik máte k dispozici za hodinu, abyste vylepšili výsledky a zároveň se vyhnuli sklouznutí do dalšího fakturačního období. Podobně jsou náklady na generování 100 obrázků stejné jako náklady na 1 obrázek. Maximalizujte cenové zarážky ve svůj prospěch.

  • Optimalizace využití: Odeberte nepoužívané jemně vyladěné modely, když už se nespotřebovávají, abyste se vyhnuli průběžným poplatkům za hostování.

  • Upravit využití: Optimalizujte vstup výzvy a délku odpovědi. Delší výzvy generují náklady tím, že spotřebovávají více tokenů. Výzvy, kterým chybí dostatečný kontext, ale nepomůžou modelům přinést dobré výsledky. Vytvořte stručné výzvy, které poskytují dostatečný kontext, aby model mohl vygenerovat užitečnou odpověď. Také se ujistěte, že optimalizujete limit délky odezvy.

  • Efektivita nákladů: Pokud je to možné, vyžaduje batch, aby se minimalizovala režie na volání, což může snížit celkové náklady. Ujistěte se, že optimalizujete velikost dávky.

  • Efektivita nákladů: Vzhledem k tomu, že modely mají různé náklady na vyladění, zvažte tyto náklady, pokud vaše řešení vyžaduje jemné doladění.

  • Monitorování a optimalizace: Nastavte systém sledování nákladů, který monitoruje využití modelu. Tyto informace vám pomůžou informovat o možnostech modelu a velikostech výzev.

Doporučení

Doporučení Výhoda
Navrhněte kód klienta tak, aby nastavil limity: Vlastní klienti by měli používat funkce omezení rozhraní API pro dokončování Azure OpenAI, jako je například maximální limit počtu tokenů na model (max_tokens) nebo počet dokončení do generování (n). Nastavení limitů zajistí, že server nevytváří více, než klient potřebuje. Použití funkcí rozhraní API k omezení využití slaďuje spotřebu služby s potřebami klientů. To šetří peníze tím, že model negeneruje příliš dlouhou odpověď, která spotřebovává více tokenů, než je nutné.
Monitorování využití průběžných plateb: Pokud používáte přístup s průběžnými platbami, monitorujte využití čipů TPM a RPM. Tyto informace použijte k informacím o rozhodnutích o návrhu architektury, jako jsou modely, které se mají použít, a k optimalizaci velikostí výzev. Průběžné monitorování TPM a RPM poskytuje relevantní metriky pro optimalizaci nákladů na modely Azure OpenAI. Pokud chcete optimalizovat využití modelu, můžete toto monitorování sdružovat s funkcemi modelu a cenami modelu. Toto monitorování můžete použít také k optimalizaci velikostí výzev.
Monitorování využití zřízené propustnosti: Pokud používáte zřízenou propustnost, monitorujte využití spravované zřizováním, abyste měli jistotu, že nevyužíváte zřízenou propustnost, kterou jste zakoupili. Průběžné monitorování využití spravovaného zřizováním poskytuje informace, které potřebujete pochopit, pokud nevyužíváte zřízenou propustnost.
Správa nákladů: Pomocí funkcí správy nákladů s OpenAI můžete monitorovat náklady, nastavovat rozpočty pro správu nákladů a vytvářet upozornění, která upozorní účastníky na rizika nebo anomálie. Monitorování nákladů, nastavení rozpočtů a nastavení upozornění poskytují zásady správného řízení s příslušnými procesy odpovědnosti.

Efektivita provozu

Efektivita provozu se primárně zaměřuje na postupy pro vývojové postupy, pozorovatelnost a správu verzí.

Principy návrhu efektivity provozu poskytují strategii návrhu vysoké úrovně pro dosažení těchto cílů směrem k provozním požadavkům úloh.

Kontrolní seznam návrhu

Vytvořte strategii návrhu na základě kontrolního seznamu kontroly návrhu pro efektivitu provozu. Tento kontrolní seznam definuje procesy pro pozorovatelnost, testování a nasazení související s Azure OpenAI.

  • Jazyková verze Azure DevOps: Zajistěte nasazení instancí Azure OpenAI napříč různými prostředími, jako je vývoj, testování a produkce. Ujistěte se, že máte prostředí pro podporu průběžného učení a experimentování v průběhu vývojového cyklu.

  • Pozorovatelnost: Monitorujte, agregujte a vizualizujte vhodné metriky.

  • Pozorovatelnost: Pokud diagnostika Azure OpenAI není pro vaše potřeby dostatečná, zvažte použití brány, jako je Azure API Management před Azure OpenAI, a pokud je to povolené, protokolovat příchozí výzvy i odchozí odpovědi. Tyto informace vám můžou pomoct pochopit efektivitu modelu pro příchozí výzvy.

  • Nasazení s jistotou: Použijte infrastrukturu jako kód (IaC) k nasazení Azure OpenAI, nasazení modelů a další infrastruktury potřebné k vyladění modelů.

  • Nasazení s jistotou: Postupujte podle postupů operací s rozsáhlými jazykovými modely (LLMOps) a zprovozněte správu prostředí Azure OpenAI LLM, včetně nasazení, jemného doladění a rychlé přípravy.

  • Automatizace z důvodu efektivity: Pokud používáte ověřování na základě klíčů, implementujte strategii automatizované obměně klíčů.

Doporučení

Doporučení Výhoda
Povolení a konfigurace Azure Diagnostics: Povolte a nakonfigurujte diagnostiku pro službu Azure OpenAI. Diagnostika shromažďuje a analyzuje metriky a protokoly a pomáhá monitorovat dostupnost, výkon a provoz Azure OpenAI.

Efektivita výkonu

Efektivita výkonu spočívá v zachování uživatelského prostředí, i když se zvýší zatížení , a to díky správě kapacity. Tato strategie zahrnuje škálování prostředků, identifikaci a optimalizaci potenciálních kritických bodů a optimalizaci výkonu ve špičce.

Principy návrhu efektivity výkonu poskytují strategii návrhu vysoké úrovně pro dosažení těchto cílů kapacity oproti očekávanému využití.

Kontrolní seznam návrhu

Začněte strategii návrhu na základě kontrolního seznamu pro kontrolu návrhu pro efektivitu výkonu , abyste mohli definovat směrný plán založený na klíčových ukazatelích výkonu pro úlohy Azure OpenAI.

  • Kapacita: Odhad požadavků spotřebitelů na elasticitu. Identifikujte provoz s vysokou prioritou, který vyžaduje synchronní odpovědi, a provoz s nízkou prioritou, který může být asynchronní a dávkový.

  • Kapacita: Požadavky na spotřebu tokenů srovnávacího testu založené na odhadovaných požadavcích od spotřebitelů. Pokud používáte nasazení jednotek zřízené propustnosti (PTU), zvažte použití nástroje pro srovnávací testy Azure OpenAI , který vám pomůže ověřit propustnost.

  • Kapacita: Pro produkční úlohy použijte zřízenou propustnost. Zřízená propustnost nabízí vyhrazenou paměť a výpočetní prostředky, rezervovanou kapacitu a konzistentní maximální latenci pro zadanou verzi modelu. Nabídka průběžných plateb může trpět hlučnými problémy sousedů , jako je zvýšená latence a omezování v oblastech s intenzivním využitím. Přístup s průběžnými platbou navíc nenabízí zaručenou kapacitu.

  • Kapacita: Přidejte příslušné brány před nasazení Azure OpenAI. Ujistěte se, že brána může směrovat do více instancí ve stejné nebo v různých oblastech.

  • Kapacita: Přidělte jednotky PTU na pokrytí předpokládaného využití a doplňte je nasazením TPM, abyste zvládli elasticitu nad tímto limitem. Tento přístup z důvodu efektivity kombinuje základní propustnost s elastickou propustností. Podobně jako u jiných aspektů tento přístup vyžaduje implementaci vlastní brány, která bude směrovat požadavky na nasazení čipu TPM při dosažení limitů PTU.

  • Kapacita: Požadavky s vysokou prioritou se odesílají synchronně. Požadavky s nízkou prioritou se zasílají do fronty a při nízké poptávce je odesílají v dávkách.

  • Kapacita: Vyberte model, který odpovídá vašim požadavkům na výkon, a to s ohledem na kompromis mezi rychlostí a složitostí výstupu. Výkon modelu se může výrazně lišit v závislosti na zvoleném typu modelu. Modely navržené pro rychlost nabízejí rychlejší dobu odezvy, což může být výhodné pro aplikace, které vyžadují rychlé interakce. Naopak sofistikovanější modely můžou poskytovat kvalitnější výstupy za cenu delší doby odezvy.

  • Dosažení výkonu: U aplikací, jako jsou chatovací roboti nebo konverzační rozhraní, zvažte implementaci streamování. Streamování může zvýšit vnímaný výkon aplikací Azure OpenAI tím, že uživatelům doručuje odpovědi přírůstkově a zlepšuje uživatelské prostředí.

  • Dosažení výkonu: Před potvrzením jemného ladění určete, kdy se má použít jemné ladění. I když existují vhodné případy použití pro jemné doladění, například když jsou informace potřebné k řízení modelu příliš dlouhé nebo složité a nevejdou se do výzvy, ujistěte se, že přístupy rychlého inženýrství a generování rozšířeného načítání (RAG) nefungují nebo jsou prokazatelně dražší.

  • Dosažení výkonu: Zvažte použití vyhrazených nasazení modelů na skupinu příjemců, abyste zajistili izolaci využití podle modelu, která může pomoct zabránit hlučným sousedům mezi skupinami příjemců.

Doporučení

Pro efektivitu výkonu pro Azure OpenAI se nedoporučují žádné konfigurace.

Azure Policy

Azure poskytuje rozsáhlou sadu předdefinovaných zásad souvisejících s Azure OpenAI a jejími závislostmi. Některá z předchozích doporučení je možné auditovat prostřednictvím Azure Policy. Zvažte následující definice zásad:

Tyto definice Azure Policy jsou také doporučeními k osvědčeným postupům zabezpečení Azure Advisoru pro Azure OpenAI.

Další kroky

Následující články zvažte jako zdroje informací, které ukazují doporučení zvýrazněná v tomto článku.