Sdílet prostřednictvím


Perspektiva dobře architektuře Azure na službu Azure OpenAI

Služba Azure OpenAI poskytuje přístup k rozhraní REST API pro velké jazykové modely OpenAI (LLM) a přidává možnosti sítí a zabezpečení Azure. Tento článek obsahuje doporučení k architektuře, která vám pomůžou činit informovaná rozhodnutí při používání Azure OpenAI v rámci architektury vaší úlohy. Pokyny vycházejí z pilířů architektury 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 architektury spolu se strategiemi návrhu lokalizovanými do oboru technologie.

Zahrnuté 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 jejich závislosti. Místo toho zobrazí seznam klíčových doporučení mapovaných na perspektivy návrhu. Pomocí doporučení můžete vytvořit testování konceptu nebo optimalizovat vaše stávající prostředí.

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

Rozsah technologií

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

Spolehlivost

Účelem pilíře Spolehlivosti je poskytovat nepřetržitou funkčnost tím, že vytváří dostatečnou odolnost a schopnost rychle se zotavit z selhání.

Principy návrhu spolehlivosti poskytují strategii návrhu vysoké úrovně použité 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 její význam pro vaše obchodní požadavky. Rozšiřte strategii tak, aby podle potřeby zahrnovala více přístupů.

  • Odolnost: Zvolte v závislosti na vašem případu použití příslušnou možnost nasazení s průběžnými platbou nebo zřízenou propustnost. Vzhledem k tomu, že rezervovaná kapacita zvyšuje odolnost, zvolte zřízenou propustnost pro produkční řešení. Přístup s průběžným platbou 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 možnost odolat přechodným selháním, jako je omezování, a také směrovat do několika instancí Azure OpenAI. Zvažte směrování do instancí v různých oblastech, abyste vytvořili regionální redundanci.

  • Odolnost: Pokud používáte zřízenou propustnost, zvažte nasazení instance s průběžnými platbami pro zpracování přetečení. Volání instance s průběžnými platbami můžete směrovat přes bránu, když dojde k omezení modelu zřízené propustnosti.

  • Odolnost: Monitorujte využití kapacity a ujistěte se, že nepřekračujete limity propustnosti. Pravidelně kontrolujte využití kapacity, abyste dosáhli přesnějšího prognózování a pomohli zabránit přerušení služeb kvůli omezením kapacity.

  • Odolnost: Postupujte podle pokynů k vyladění velkých datových souborů a importu dat z úložiště objektů blob Azure. Velké soubory o velikosti 100 MB nebo větší můžou být při nahrá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 modely, které jsou jemně vyladěné 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, jako je úložiště obsahující 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 sazeb pro nasazení modelu a monitorujte využití tokenů za minutu (TPM) a žádosti za minutu (RPM). Tyto důležité informace o propustnosti poskytují informace potřebné k tomu, abyste zajistili, že z kvóty přiřadíte dostatek čipu TPM, abyste splnili poptávku po vašich nasazeních.

Přiřazení dostatečné kvóty brání omezování volání nasazených modelů.
Monitorování využití zřízené propustnosti spravovaného zřizováním: Pokud používáte platební model zřízené propustnosti, monitorujte využití spravované zřizováním. Je důležité monitorovat využití spravovaného zřizováním, aby se zajistilo, že nepřekročí 100 %, aby se zabránilo omezování volání nasazených modelů.
Povolte funkci dynamické kvóty: Pokud ho rozpočet úloh podporuje, povolte dynamickou kvótu pro nasazení modelu. Dynamická kvóta umožňuje, aby vaše nasazení spotřebovalo větší kapacitu než vaše kvóta obvykle, pokud je dostupná 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ě neprůrazné analýzy 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 úlohu záruky důvěrnosti, integrity a dostupnosti .

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

Kontrolní seznam návrhu

Zahajte strategii návrhu na základě kontrolního seznamu pro kontrolu návrhu zabezpečení a identifikujte ohrožení zabezpečení a kontroly, 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 zahrnovala více přístupů podle potřeby.

  • Ochrana důvěrnosti: Pokud nahrajete trénovací data do Azure OpenAI, použijte klíče spravované zákazníkem pro šifrování dat, implementujte strategii obměně klíčů a odstraňte trénovací, ověřovací a trénovací data výsledků. Pokud pro trénovací data 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 přístup založený na spravované identitě, implementujte hraniční síť pomocí privátních koncových bodů a povolte protokoly přístupu.

  • Ochrana důvěrnosti: Ochrana před exfiltrací dat omezením odchozích adres URL, ke kterým mají prostředky Azure OpenAI přístup.

  • 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, která chrání nasazení jazykového modelu před útoky prostřednictvím injektáže výzvy.

  • Ochrana dostupnosti: Pomocí kontrolních mechanismů zabezpečení můžete zabránit útokům, které by mohly vyčerpat kvóty využití modelu. Můžete nakonfigurovat ovládací prvky pro izolaci služby v síti. Pokud musí být služba přístupná z internetu, zvažte použití brány k blokování podezřelého 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í založené na klíčích Azure OpenAI, uložte tyto klíče ve službě Azure Key Vault, ne v kódu aplikace. Oddělení tajných kódů od kódu jejich uložením ve službě Key Vault snižuje riziko úniku tajných kódů. Oddělení také usnadňuje centrální správu tajných kódů, což usnadňuje odpovědnost, jako je obměny klíčů.
Omezit přístup: Pokud to vaše úloha nevyžaduje, zakažte veřejný přístup k Azure OpenAI. Pokud se připojujete z příjemců ve virtuální síti Azure, vytvořte privátní koncové body . Řízení přístupu k Azure OpenAI pomáhá zabránit útokům neoprávněných uživatelů. Použití privátních koncových bodů zajišťuje, že síťový provoz zůstává 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 truehodnotu . Udělte identitám, které provádějí dokončování nebo generování image, 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 pro správu identit a eliminuje použití klíčů rozhraní API. Použití RBAC s Microsoft Entra ID zajišťuje, aby uživatelé nebo skupiny měli přesně 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: Použijte klíče spravované zákazníkem pro jemně vyladěné modely a trénovací data nahraná 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 s jailbreakem: Pomocí nástroje Azure AI Content Safety Studio detekujte rizika jailbreaku. Detekujte pokusy o jailbreak, abyste identifikovali a blokovali výzvy, které se pokusí obejít bezpečnostní mechanismy nasazení Azure OpenAI.

Optimalizace nákladů

Optimalizace nákladů se zaměřuje na zjišťování vzorců výdajů, stanovení priorit investic do kritických oblastí a optimalizaci v jiných oblastech, aby splňovaly rozpočet organizace při plnění obchodních požadavků.

Přečtěte si principy návrhu optimalizace nákladů a seznamte se s přístupy k dosažení těchto cílů a kompromisů nezbytných v technických možnostech 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. Dolaďte návrh tak, aby úloha byla v souladu s přiděleným rozpočtem. Váš návrh by měl používat vhodné funkce 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 Pochopení velikosti zadávání výzvy a odpovědí a způsob překladu textu na tokeny vám pomůže vytvořit realizovatelný nákladový model.

  • Optimalizace využití: Začněte s průběžnými platbami za Azure OpenAI, dokud nebude využití tokenu předvídatelné.

  • Optimalizace rychlosti: Pokud je využití tokenu 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 modelů a možnosti. Začněte s méně nákladnými modely pro méně složité úkoly, 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 vhodného pro případy použití, jako je vkládání textu, generování obrázků nebo scénáře přepisu, zvažte různé možnosti modelu a maximální limity využití tokenů. Pečlivým výběrem modelu, 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, například max_tokens a noznačující počet dokončení, které se mají vygenerovat.

  • Optimalizace využití: Maximalizujte cenové zarážky Azure OpenAI, například jemné ladění a zarážky modelu, jako je generování obrázků. Vzhledem k tomu, že se jemné ladění účtuje za hodinu, použijte tolik času, kolik máte k dispozici za hodinu, abyste vylepšili výsledky jemného ladění a vyhnuli se vyklouznutí 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 pro vaši výhodu.

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

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

  • Efektivita nákladů: Požadavky služby Batch, pokud je to možné, minimalizují režijní náklady na volání, což může snížit celkové náklady. Ujistěte se, že optimalizujete velikost dávky.

  • Nákladová efektivita: 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é ladění.

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

Doporučení

Doporučení Výhoda
Navrhněte kód klienta tak, aby nastavil limity: Vlastní klienti by měli používat limitní funkce rozhraní API pro dokončování Azure OpenAI, například maximální limit počtu tokenů na model (max_tokens) nebo počet dokončení generování (n). Nastavení limitů zajišťuje, že server nevygeneruje více, než klient potřebuje. Použití funkcí rozhraní API k omezení využití odpovídá spotřebě služeb s potřebami klientů. Tím ušetříte peníze tím, že se zajistí, že model nevygeneruje příliš dlouhou odpověď, která spotřebovává více tokenů, než je potřeba.
Monitorování využití průběžných plateb: Pokud používáte přístup s průběžným platbami, monitorujte využití čipu TPM a RPM. Pomocí těchto informací můžete informovat rozhodnutí o návrhu architektury, jako jsou modely, které se mají použít, a optimalizovat velikosti výzev. Průběžné monitorování čipu TPM a RPM poskytuje relevantní metriky pro optimalizaci nákladů na modely Azure OpenAI. Toto monitorování můžete spojit s funkcemi modelu a cenami modelů za účelem optimalizace využití 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 a ujistěte se, ž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 nedostatečně využí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á budou informovat zúčastněné strany o rizicích nebo anomáliích. 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 vývoje, 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 úlohy.

Kontrolní seznam návrhu

Zahajte strategii návrhu na základě kontrolního seznamu pro kontrolu návrhu pro efektivitu provozu. Tento kontrolní seznam definuje procesy pozorovatelnosti, 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 produkční prostředí. Ujistěte se, že máte prostředí, která podporují průběžné učení a experimentování v průběhu vývojového cyklu.

  • Pozorovatelnost: Monitorování, agregace a vizualizace vhodných metrik

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

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

  • Nasazení s jistotou: Pokud chcete zprovoznit správu prostředí Azure OpenAI LLM, včetně nasazení, vyladění a přípravy výzev, postupujte podle postupů velkých operací jazykového modelu (LLMOps ).

  • Automatizace efektivity: Pokud používáte ověřování založené na klíčích, implementujte strategii automatizované rotace klíčů.

Doporučení

Doporučení Výhoda
Povolení a konfigurace diagnostiky Azure: Povolení a konfigurace diagnostiky 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 se týká zachování uživatelského prostředí i v případě, že se zvyšuje zatížení díky správě kapacity. 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 proti očekávanému využití.

Kontrolní seznam návrhu

Zahajte strategii návrhu na základě kontrolního seznamu pro kontrolu výkonu pro definování standardních hodnot založených na klíčových ukazatelích výkonu pro úlohy Azure OpenAI.

  • Kapacita: Odhad požadavků na elasticitu spotřebitelů. 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ích testů založené na odhadovaných požadavcích od spotřebitelů Zvažte použití srovnávacího testu Azure OpenAI, který vám pomůže ověřit propustnost, pokud používáte zřízená nasazení jednotek propustnosti (PTU).

  • Kapacita: Použijte zřízenou propustnost pro produkční úlohy. 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 s průběžným platbami může trpět problémy s hlučným sousedem , jako je zvýšená latence a omezování v oblastech, ve kterých se velké využití využívá. Také přístup s průběžným platbou nenabízí garantovanou kapacitu.

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

  • Kapacita: Přidělte PTU k pokrytí předpovídaného využití a tyto PTU doplňují nasazením TPM, aby zvládly elasticitu nad tímto limitem. Tento přístup kombinuje základní propustnost s elastickou propustností pro zajištění efektivity. Stejně jako jiné aspekty vyžaduje tento přístup vlastní implementaci brány, která bude směrovat požadavky na nasazení TPM při dosažení limitů PTU.

  • Kapacita: Synchronně odesílat žádosti s vysokou prioritou. Zařadíte požadavky s nízkou prioritou do fronty a posílají je v dávkách, když je poptávka nízká.

  • 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 výstupy s vyšší kvalitou na úkor zvýšené 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 poskytuje odpovědi přírůstkovým způsobem, což zlepšuje uživatelské prostředí.

  • Dosažení výkonu: Určete, kdy použít jemné ladění , než se potvrdíte k jemnému ladění. I když existují vhodné případy použití pro vyladění, například v případě, že informace potřebné ke ztlumení modelu jsou příliš dlouhé nebo složité, aby se do výzvy vešly, ujistěte se, že přístupy rag (prompt engineering and retrieval-augmented generation) nefungují nebo jsou prokazatelně dražší.

  • Dosažení výkonu: Zvažte použití vyhrazených nasazení modelů na skupinu příjemců k zajištění izolace využití jednotlivých modelů, která může pomoct zabránit hlučným sousedům mezi skupinami příjemců.

Doporučení

Pro Efektivitu výkonu pro Azure OpenAI nejsou k dispozici žádné doporučené 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 služby Azure Policy. Zvažte následující definice zásad:

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

Další kroky

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