Share via


Azure Well-Architected Framework-perspektiv på Azure OpenAI-tjänsten

Azure OpenAI-tjänsten ger REST API-åtkomst till OpenAI-modeller för stora språk (LLM: er) och lägger till Azure-nätverks- och säkerhetsfunktioner. Den här artikeln innehåller arkitektoniska rekommendationer som hjälper dig att fatta välgrundade beslut när du använder Azure OpenAI som en del av din arbetsbelastnings arkitektur. Vägledningen baseras på grundpelarna i Azure Well-Architected Framework.

Viktigt

Så här använder du den här guiden

Varje avsnitt har en checklista för design som visar arkitekturområden och designstrategier som är lokaliserade till teknikomfånget.

Det finns även rekommendationer om de teknikfunktioner som kan hjälpa till att materialisera dessa strategier. Rekommendationerna representerar inte en fullständig lista över alla konfigurationer som är tillgängliga för Azure OpenAI och dess beroenden. I stället listar de viktiga rekommendationer som mappats till designperspektiven. Använd rekommendationerna för att skapa ditt konceptbevis eller optimera dina befintliga miljöer.

Grundläggande arkitektur som visar de viktigaste rekommendationerna: Referensarkitektur för openai-chatt från slutpunkt till slutpunkt.

Teknikomfång

Den här recensionen fokuserar enbart på Azure OpenAI.

Tillförlitlighet

Syftet med grundpelarna för tillförlitlighet är att tillhandahålla fortsatt funktionalitet genom att skapa tillräcklig motståndskraft och möjlighet att snabbt återställa efter fel.

Designprinciperna för tillförlitlighet ger en övergripande designstrategi som tillämpas för enskilda komponenter, systemflöden och systemet som helhet.

Checklista för design

Starta din designstrategi baserat på checklistan för designgranskning för tillförlitlighet. Fastställ dess relevans för dina affärskrav. Utöka strategin till att omfatta fler metoder efter behov.

  • Återhämtning: Välj lämpligt distributionsalternativ för antingen betala per användning eller etablerat dataflöde baserat på ditt användningsfall. Eftersom reserverad kapacitet ökar återhämtningsförmågan väljer du etablerat dataflöde för produktionslösningar. Metoden betala per användning är idealisk för utvecklings-/testmiljöer.

  • Redundans: Lägg till lämpliga gatewayer framför dina Azure OpenAI-distributioner. Gatewayen måste kunna hantera tillfälliga fel som begränsning och även dirigera till flera Azure OpenAI-instanser. Överväg att dirigera till instanser i olika regioner för att skapa regional redundans.

  • Återhämtning: Om du använder etablerat dataflöde bör du även överväga att distribuera en betala per användning-instans för att hantera spill. Du kan dirigera anrop till instansen betala per användning via din gateway när din etablerade dataflödesmodell begränsas. Du kan också använda övervakning för att förutsäga när modellen kommer att begränsas och i förebyggande syfte dirigera anrop till instansen betala per användning.

  • Återhämtning: Övervaka kapacitetsanvändningen för att säkerställa att du inte överskrider dataflödesgränserna. Granska regelbundet kapacitetsanvändningen för att få mer exakta prognoser och förhindra avbrott i tjänsten på grund av kapacitetsbegränsningar.

  • Återhämtning: Följ riktlinjerna för stora datafiler och importera data från ett Azure Blob Store. Stora filer, 100 MB eller större, kan bli instabila när de laddas upp via formulär med flera delar eftersom begäranden är atomära och inte kan försökas igen eller återupptas.

  • Återställning: Definiera en återställningsstrategi som innehåller en återställningsplan för modeller som är finjusterade och för träningsdata som laddats upp till Azure OpenAI. Eftersom Azure OpenAI inte har automatisk redundans måste du utforma en strategi som omfattar hela tjänsten och alla beroenden, till exempel lagring som innehåller träningsdata.

Rekommendationer

Rekommendation Fördelar
Övervaka hastighetsgränser för användningsbaserad betalning: Om du använder metoden betala per användning hanterar du prisgränser för dina modelldistributioner och övervakar användningen av token per minut (TPM) och begäranden per minut (RPM). Den här viktiga dataflödesinformationen innehåller information som krävs för att säkerställa att du tilldelar tillräckligt med TPM från din kvot för att uppfylla efterfrågan för dina distributioner.

Om du tilldelar tillräckligt med kvot förhindras begränsning av anrop till dina distribuerade modeller.
Övervaka etableringshanterad användning för etablerat dataflöde: Om du använder betalningsmodellen för etablerat dataflöde övervakar du etableringshanterad användning. Det är viktigt att övervaka etableringshanterad användning för att säkerställa att den inte överskrider 100 %, för att förhindra begränsning av anrop till dina distribuerade modeller.
Aktivera funktionen för dynamisk kvot: Om din arbetsbelastningsbudget stöder den utför du överetablering genom att aktivera dynamisk kvot för modelldistributioner. Med dynamisk kvot kan distributionen förbruka mer kapacitet än vad din kvot normalt gör, förutsatt att det finns tillgänglig kapacitet ur ett Azure-perspektiv. Extra kvotkapacitet kan potentiellt förhindra oönstrade begränsningar.
Justera innehållsfilter: Justera innehållsfilter för att minimera falska positiva identifieringar från alltför aggressiva filter. Innehållsfilter blockerar uppmaningar eller slutföranden baserat på en ogenomskinlig riskanalys. Se till att innehållsfilter är inställda för att tillåta förväntad användning för din arbetsbelastning.

Säkerhet

Syftet med säkerhetspelare är att tillhandahålla konfidentialitet, integritet och tillgänglighetsgarantier för arbetsbelastningen.

Principerna för säkerhetsdesign ger en övergripande designstrategi för att uppnå dessa mål genom att tillämpa metoder för den tekniska designen kring Azure OpenAI.

Checklista för design

Starta din designstrategi baserat på checklistan för designgranskning för Säkerhet och identifiera säkerhetsrisker och kontroller för att förbättra säkerhetsstatusen. Granska sedan Azure-säkerhetsbaslinjen för Azure OpenAI. Slutligen utökar du strategin till att omfatta fler metoder efter behov.

  • Skydda konfidentialiteten: Om du laddar upp träningsdata till Azure OpenAI använder du kundhanterade nycklar för datakryptering, implementerar en strategi för nyckelrotation och tar bort tränings-, validerings- och träningsresultatdata. Om du använder ett externt datalager för träningsdata följer du rekommenderade säkerhetsmetoder för det arkivet. För Azure Blob Storage kan du till exempel använda kundhanterade nycklar för kryptering och implementera en strategi för nyckelrotation. Använd hanterad identitetsbaserad åtkomst, implementera en nätverksperimeter med hjälp av privata slutpunkter och aktivera åtkomstloggar.

  • Skydda konfidentialiteten: Skydda mot dataexfiltrering genom att begränsa de utgående URL:er som Azure OpenAI-resurser kan komma åt.

  • Skydda integritet: Implementera åtkomstkontroller för att autentisera och auktorisera användaråtkomst till systemet med hjälp av principen med lägsta behörighet och genom att använda enskilda identiteter i stället för nycklar.

  • Skydda integriteten: Implementera riskidentifiering för jailbreak för att skydda dina språkmodelldistributioner mot snabba inmatningsattacker.

  • Skydda tillgänglighet: Använd säkerhetskontroller för att förhindra attacker som kan uttömma modellanvändningskvoter. Du kan konfigurera kontroller för att isolera tjänsten i ett nätverk. Om tjänsten måste vara tillgänglig från Internet bör du överväga att använda en gateway för att blockera misstänkt missbruk med hjälp av routning eller begränsning.

Rekommendationer

Rekommendation Fördelar
Säkra nycklar: Om din arkitektur kräver nyckelbaserad Azure OpenAI-autentisering lagrar du nycklarna i Azure Key Vault, inte i programkod. Om du separerar hemligheter från kod genom att lagra dem i Key Vault minskar risken för att hemligheter läcker. Separation underlättar också central hantering av hemligheter, vilket minskar ansvarsområden som nyckelrotation.
Begränsa åtkomst: Inaktivera offentlig åtkomst till Azure OpenAI om inte din arbetsbelastning kräver det. Skapa privata slutpunkter om du ansluter från konsumenter i ett virtuellt Azure-nätverk. Genom att styra åtkomsten till Azure OpenAI kan du förhindra attacker från obehöriga användare. Om du använder privata slutpunkter ser du till att nätverkstrafiken förblir privat mellan programmet och plattformen.
Microsoft Entra ID: Använd Microsoft Entra ID för autentisering och för att auktorisera åtkomst till Azure OpenAI med hjälp av rollbaserad åtkomstkontroll (RBAC). Inaktivera lokal autentisering i Azure AI Services och ange disableLocalAuth till true. Bevilja identiteter som utför slutföranden eller bildgenerering av Cognitive Services OpenAI-användarrollen . Bevilja modellautomatiseringspipelines och ad hoc-datavetenskap åtkomst till en roll som Cognitive Services OpenAI-deltagare. Genom att använda Microsoft Entra ID centraliseras identitetshanteringskomponenten och användningen av API-nycklar elimineras. Genom att använda RBAC med Microsoft Entra ID ser du till att användare eller grupper har exakt de behörigheter de behöver för att utföra sitt jobb. Den här typen av detaljerad åtkomstkontroll är inte möjlig med Azure OpenAI API-nycklar.
Använd kundhanterade nycklar: Använd kundhanterade nycklar för finjusterade modeller och träningsdata som laddas upp till Azure OpenAI. Med kundhanterade nycklar får du större flexibilitet att skapa, rotera, inaktivera och återkalla åtkomstkontroller.
Skydda mot jailbreak-attacker: Använd Azure AI Innehållsäkerhet Studio för att identifiera risk för jailbreak. Identifiera jailbreak-försök att identifiera och blockera uppmaningar som försöker kringgå säkerhetsmekanismerna för dina Azure OpenAI-distributioner.

Kostnadsoptimering

Kostnadsoptimering fokuserar på att identifiera utgiftsmönster, prioritera investeringar inom kritiska områden och optimera i andra för att uppfylla organisationens budget samtidigt som affärskraven uppfylls.

Läs designprinciperna för kostnadsoptimering för att lära dig mer om metoder för att uppnå dessa mål och de kompromisser som krävs i tekniska designval relaterade till Azure OpenAI.

Checklista för design

Starta din designstrategi baserat på checklistan för designgranskning för kostnadsoptimering för investeringar. Finjustera designen så att arbetsbelastningen anpassas till den allokerade budgeten. Din design bör använda lämpliga Azure-funktioner, övervaka investeringar och hitta möjligheter att optimera över tid.

  • Kostnadshantering: Utveckla din kostnadsmodell med tanke på promptstorlekar. Genom att förstå storlekarna för snabbinmatning och svar och hur text översätts till token kan du skapa en livskraftig kostnadsmodell.

  • Användningsoptimering: Börja med betala per användning-priser för Azure OpenAI tills din tokenanvändning är förutsägbar.

  • Frekvensoptimering: När din tokenanvändning är tillräckligt hög och förutsägbar under en tidsperiod använder du prismodellen för etablerat dataflöde för bättre kostnadsoptimering.

  • Användningsoptimering: Överväg modellpriser och funktioner när du väljer modeller. Börja med mindre kostsamma modeller för mindre komplexa uppgifter som textgenerering eller slutförandeaktiviteter. Överväg att använda mer avancerade modeller för mer komplexa uppgifter som språköversättning eller innehållstolkning. Överväg olika modellfunktioner och maximala gränser för tokenanvändning när du väljer en modell som är lämplig för användningsfall som textinbäddning, bildgenerering eller transkriptionsscenarier. Genom att noggrant välja den modell som passar dina behov kan du optimera kostnaderna samtidigt som du uppnår önskad programprestanda.

  • Användningsoptimering: Använd de tokenbegränsningsbegränsningar som erbjuds av API-anropen, till exempel max_tokens och n, som anger antalet slutföranden som ska genereras.

  • Användningsoptimering: Maximera Azure OpenAI-pris brytpunkter, till exempel finjustering och modell brytpunkter som bildgenerering. Eftersom finjustering debiteras per timme använder du lika mycket tid som du har tillgängligt per timme för att förbättra finjusteringsresultatet samtidigt som du undviker att halka in i nästa faktureringsperiod. På samma sätt är kostnaden för att generera 100 bilder samma som kostnaden för 1 bild. Maximera pris brytpunkter till din fördel.

  • Användningsoptimering: Ta bort oanvända finjusterade modeller när de inte längre används för att undvika löpande värdavgifter.

  • Justera användningen: Optimera promptens indata och svarslängd. Längre uppmaningar ökar kostnaderna genom att använda fler token. Uppmaningar som saknar tillräcklig kontext hjälper dock inte modellerna att ge bra resultat. Skapa koncisa frågor som ger tillräckligt med kontext för att modellen ska generera ett användbart svar. Se också till att du optimerar gränsen för svarslängden.

  • Kostnadseffektivitet: Batch-begäranden där det är möjligt för att minimera kostnaderna per samtal, vilket kan minska de totala kostnaderna. Se till att du optimerar batchstorleken.

  • Kostnadseffektivitet: Eftersom modeller har olika finjusteringskostnader bör du överväga dessa kostnader om lösningen kräver finjustering.

  • Övervaka och optimera: Konfigurera ett kostnadsspårningssystem som övervakar modellanvändningen. Använd den informationen för att informera modellval och promptstorlekar.

Rekommendationer

Rekommendation Fördelar
Utforma klientkod för att ange gränser: Dina anpassade klienter bör använda gränsfunktionerna i API:et för Azure OpenAI-slutföranden, till exempel maximal gräns för antalet token per modell (max_tokens) eller antalet slutföranden till generering (n). Om du anger gränser ser du till att servern inte producerar mer än vad klienten behöver. Användning av API-funktioner för att begränsa användningen justerar tjänstförbrukningen efter klientbehoven. Detta sparar pengar genom att se till att modellen inte genererar ett alltför långt svar som förbrukar fler token än nödvändigt.
Övervaka användning med betala per användning: Om du använder metoden betala per användning övervakar du användningen av TPM och RPM. Använd den informationen för att informera beslut om arkitekturdesign, till exempel vilka modeller som ska användas och för att optimera promptstorlekar. Kontinuerlig övervakning av TPM och RPM ger dig relevanta mått för att optimera kostnaden för Azure OpenAI-modeller. Du kan koppla den här övervakningen med modellfunktioner och modellpriser för att optimera modellanvändningen. Du kan också använda den här övervakningen för att optimera promptstorlekarna.
Övervaka etablerad dataflödesanvändning: Om du använder etablerat dataflöde övervakar du etableringshanteradanvändning för att säkerställa att du inte underutnyttjar det etablerade dataflödet som du har köpt. Kontinuerlig övervakning av etableringshanterad användning ger dig den information du behöver för att förstå om du underutnyttjar ditt etablerade dataflöde.
Kostnadshantering: Använd funktioner för kostnadshantering med OpenAI för att övervaka kostnader, ange budgetar för att hantera kostnader och skapa aviseringar för att meddela intressenter om risker eller avvikelser. Kostnadsövervakning, budgetinställningar och inställningsaviseringar ger styrning med lämpliga ansvarsprocesser.

Driftseffektivitet

Operational Excellence fokuserar främst på procedurer för utvecklingsmetoder, observerbarhet och versionshantering.

Designprinciperna för operational excellence tillhandahåller en övergripande designstrategi för att uppnå dessa mål mot arbetsbelastningens driftskrav.

Checklista för design

Starta din designstrategi baserat på checklistan för designgranskning för operational excellence. Den här checklistan definierar processer för observerbarhet, testning och distribution som är relaterade till Azure OpenAI.

  • Azure DevOps-kultur: Se till att Azure OpenAI-instanser distribueras i olika miljöer, till exempel utveckling, test och produktion. Se till att du har miljöer som stöder kontinuerlig inlärning och experimentering under hela utvecklingscykeln.

  • Observerbarhet: Övervaka, aggregera och visualisera lämpliga mått.

  • Observerbarhet: Om Azure OpenAI-diagnostiken är otillräcklig för dina behov bör du överväga att använda en gateway som Azure API Management framför Azure OpenAI för att logga både inkommande och utgående svar där det är tillåtet. Den här informationen kan hjälpa dig att förstå modellens effektivitet för inkommande frågor.

  • Distribuera med säkerhet: Använd infrastruktur som kod (IaC) för att distribuera Azure OpenAI, modelldistributioner och annan infrastruktur som krävs för finjusteringsmodeller.

  • Distribuera med tillförsikt: Följ LLMOps-metoder (large language model operations) för att operationalisera hanteringen av dina Azure OpenAI LLMs, inklusive distribution, finjustering och snabbteknik.

  • Automatisera för effektivitet: Om du använder nyckelbaserad autentisering implementerar du en automatiserad strategi för nyckelrotation.

Rekommendationer

Rekommendation Fördelar
Aktivera och konfigurera Azure Diagnostics: Aktivera och konfigurera diagnostik för Azure OpenAI-tjänsten. Diagnostik samlar in och analyserar mått och loggar som hjälper dig att övervaka tillgänglighet, prestanda och drift av Azure OpenAI.

Prestandaeffektivitet

Prestandaeffektivitet handlar om att upprätthålla användarupplevelsen även när belastningen ökar genom att hantera kapaciteten. Strategin omfattar skalning av resurser, identifiering och optimering av potentiella flaskhalsar och optimering för högsta prestanda.

Designprinciperna för prestandaeffektivitet ger en övergripande designstrategi för att uppnå dessa kapacitetsmål mot den förväntade användningen.

Checklista för design

Starta din designstrategi baserat på checklistan för designgranskning för prestandaeffektivitet för att definiera en baslinje baserat på viktiga prestandaindikatorer för Azure OpenAI-arbetsbelastningar.

  • Kapacitet: Beräkna konsumenternas elasticitetskrav. Identifiera trafik med hög prioritet som kräver synkrona svar och trafik med låg prioritet som kan vara asynkron och batchbaserad.

  • Kapacitet: Prestandamått för tokenförbrukning baserat på uppskattade krav från konsumenter. Överväg att använda Azure OpenAI-benchmarkingverktyget för att hjälpa dig att verifiera dataflödet om du använder etablerade PTU-distributioner (dataflödesenhet).

  • Kapacitet: Använd etablerat dataflöde för produktionsarbetsbelastningar. Etablerat dataflöde erbjuder dedikerat minne och beräkning, reserverad kapacitet och konsekvent maximal svarstid för den angivna modellversionen. Erbjudandet betala per användning kan drabbas av problem med bullriga grannar , till exempel ökad svarstid och begränsning i regioner som används hårt. Dessutom erbjuder metoden betala per användning inte garanterad kapacitet.

  • Kapacitet: Lägg till lämpliga gatewayer framför dina Azure OpenAI-distributioner. Kontrollera att gatewayen kan dirigera till flera instanser i samma eller olika regioner.

  • Kapacitet: Allokera PTU:er för att täcka din förväntade användning och komplettera dessa PTU:er med en TPM-distribution för att hantera elasticitet över den gränsen. Den här metoden kombinerar basdataflöde med elastiskt dataflöde för effektivitet. Precis som andra överväganden kräver den här metoden en anpassad gatewayimplementering för att dirigera begäranden till TPM-distributionen när PTU-gränserna nås.

  • Kapacitet: Skicka högprioriterad begäranden synkront. Köa begäranden med låg prioritet och skicka dem i batchar när efterfrågan är låg.

  • Kapacitet: Välj en modell som överensstämmer med dina prestandakrav med tanke på kompromissen mellan hastighets- och utdatakomplexitet. Modellprestanda kan variera avsevärt beroende på den valda modelltypen. Modeller utformade för hastighet ger snabbare svarstider, vilket kan vara fördelaktigt för program som kräver snabba interaktioner. På motsvarande sätt kan mer avancerade modeller leverera utdata av högre kvalitet på bekostnad av ökad svarstid.

  • Uppnå prestanda: För program som chattrobotar eller konversationsgränssnitt bör du överväga att implementera strömning. Direktuppspelning kan förbättra den upplevda prestandan för Azure OpenAI-program genom att leverera svar till användare på ett inkrementellt sätt, vilket förbättrar användarupplevelsen.

  • Uppnå prestanda: Bestäm när du ska använda finjustering innan du åtar dig att finjustera. Även om det finns bra användningsfall för finjustering, till exempel när den information som behövs för att styra modellen är för lång eller komplex för att passa in i prompten, se till att snabbteknik- och hämtningsförhöjda genereringsmetoder (RAG) inte fungerar eller bevisligen är dyrare.

  • Uppnå prestanda: Överväg att använda dedikerade modelldistributioner per konsumentgrupp för att tillhandahålla användningsisolering per modell som kan hjälpa till att förhindra störningar mellan dina konsumentgrupper.

Rekommendationer

Det finns inga rekommenderade konfigurationer för prestandaeffektivitet för Azure OpenAI.

Azure Policy

Azure tillhandahåller en omfattande uppsättning inbyggda principer som rör Azure OpenAI och dess beroenden. Några av föregående rekommendationer kan granskas via Azure Policy. Överväg följande principdefinitioner:

Dessa Azure Policy definitioner är också rekommenderade säkerhetsmetoder för Azure Advisor för Azure OpenAI.

Nästa steg

Tänk på följande artiklar som resurser som visar de rekommendationer som beskrivs i den här artikeln.