Kom igång med hjälp av etablerade distributioner i Azure OpenAI-tjänsten

Följande guide vägleder dig genom viktiga steg när du skapar en etablerad distribution med din Azure OpenAI Service-resurs. Mer information om begreppen som beskrivs här finns i:

Förutsättningar

  • En Azure-prenumeration – Skapa en kostnadsfritt
  • Rollen Azure-deltagare eller Cognitive Services-deltagare
  • Åtkomst till Azure OpenAI Studio

Hämta/verifiera PTU-kvottillgänglighet.

Distributioner av etablerat dataflöde är storleksanpassade i enheter som kallas etablerade dataflödesenheter (PTUs). PTU-kvoten beviljas till en prenumeration regionalt och begränsar det totala antalet PTU:er som kan distribueras i den regionen i alla modeller och versioner.

För att skapa en ny distribution krävs tillgänglig (oanvänd) kvot för att täcka den önskade storleken på distributionen. Exempel: Om en prenumeration har följande i USA, södra centrala:

  • Total PTU-kvot = 500 PTUs
  • Distributioner:
    • 100 PTUs: GPT-4o, 2024-05-13
    • 100 PTUs: GPT-4, 0613

Sedan anses 200 PTUs för kvot användas och det finns 300 PTU:er tillgängliga för användning för att skapa nya distributioner.

Ett standardbelopp för etablerad och global etablerad kvot tilldelas till alla prenumerationer i flera regioner. Du kan visa den tillgängliga kvoten i en region genom att gå till bladet Kvoter i Azure OpenAI Studio och välja önskad prenumeration och region. Skärmbilden nedan visar till exempel en kvotgräns på 500 PTUs i USA, västra för den valda prenumerationen. Observera att du kan se lägre värden för tillgängliga standardkvoter.

En skärmbild av den tillgängliga kvoten i Azure OpenAI Studio.

Du kan begära ytterligare kvot genom att klicka på länken Förfrågningskvot till höger om kolumnen "Användning/gräns". (Det här är utanför skärmen i skärmbilden ovan).

Skapa en Azure OpenAI-resurs

Etablerade och globala etablerade distributioner skapas via Azure OpenAI-resursobjekt i Azure. Du måste ha en Azure OpenAI-resurs i varje region där du tänker skapa en distribution. Använd Azure Portal för att skapa en resurs i en region med tillgänglig kvot om det behövs.

Kommentar

Azure OpenAI-resurser kan ha stöd för flera typer av Azure OpenAI-distributioner samtidigt. Det är inte nödvändigt att dedikera nya resurser för dina etablerade eller globala etablerade distributioner.

Skapa din etablerade eller globala etablerade distribution – kapaciteten är tillgänglig

När du har verifierat din kvot kan du skapa en distribution. Om du vill skapa en etablerad distribution kan du följa dessa steg. de val som beskrivs återspeglar de poster som visas i skärmbilden.

Skärmbild av distributionssidan för Azure OpenAI Studio för en etablerad distribution.

  1. Logga in på Azure OpenAI Studio

  2. Välj den prenumeration som har aktiverats för etablerade och globala etablerade distributioner och välj önskad resurs i en region där du har kvoten.

  3. Under Hantering i det vänstra navigeringsfältet väljer du Distributioner.

  4. Välj Skapa ny distribution och konfigurera följande fält. Expandera listrutan Avancerade alternativ .

  5. Fyll i värdena i varje fält. Här är ett exempel:

Fält Description Exempel
Välj en modell Välj den specifika modell som du vill distribuera. GPT-4
Modellversion Välj vilken version av modellen som ska distribueras. 0613
Distributionsnamn Distributionsnamnet används i koden för att anropa modellen med hjälp av klientbiblioteken och REST-API:erna. gpt-4
Innehållsfilter Ange den filtreringsprincip som ska tillämpas på distributionen. Läs mer om hur du filtrerar innehåll. Standardvärde
Distributionstyp Detta påverkar dataflödet och prestandan. Välj Provisioned-Managed eller Global Provisioned-Managed för distributionen Etablerad hanterad
Etablerade dataflödesenheter Välj den mängd dataflöde som du vill inkludera i distributionen. 100

Viktiga saker att notera:

  • Distributionsdialogrutan innehåller en påminnelse om att du kan köpa en Azure-reservation för Azure OpenAI Provisioned för att få en betydande rabatt för ett termåtagande.

När du har angett distributionsinställningarna klickar du på Bekräfta priser för att fortsätta. En dialogruta för prisbekräftelse visas som visar listpriset för distributionen, om du väljer att betala för den per timme, utan azure-reservation för att tillhandahålla en termrabatt.

Om du är osäker på kostnaderna avbryter du distributionen och fortsätter när du förstår betalningsmodellen och underliggande kostnader för etablerad distribution. Det här steget kan förhindra oväntade, höga avgifter på din betalningsfaktura. Resurser för att utbilda dig själv är:

Bilden nedan visar den prisbekräftelse som du ser. Det pris som visas är endast ett exempel.

Skärmbild som visar skärmen för prisbekräftelse.

Om du vill skapa distributionen programmatiskt kan du göra det med följande Azure CLI-kommando. Om du vill ange distributionstypen ändrar du sku-name till ProvisionedManaged eller GlobalProvisionedManaged baserat på den avsedda distributionstypen. sku-capacity Uppdatera med önskat antal etablerade dataflödesenheter.

az cognitiveservices account deployment create \
--name <myResourceName> \
--resource-group <myResourceGroupName> \
--deployment-name MyModel \
--model-name GPT-4 \
--model-version 0613  \
--model-format OpenAI \
--sku-capacity 100 \
--sku-name ProvisionedManaged

REST, ARM-mall, Bicep och Terraform kan också användas för att skapa distributioner. Se avsnittet om att automatisera distributioner i guiden Hantera kvot och ersätt sku.name med "ProvisionedManaged" eller "GlobalProvisionedManaged" i stället för "Standard".

Skapa din etablerade eller globala etablerade distribution – Kapaciteten är inte tillgänglig

På grund av den dynamiska karaktären hos kapacitetstillgänglighet är det möjligt att regionen för den valda resursen kanske inte har tjänstkapaciteten för att skapa distributionen av den angivna modellen, versionen och antalet PTU:er.

I det här fallet dirigerar Azure OpenAI Studio dig till andra regioner med tillgänglig kvot och kapacitet för att skapa en distribution av den önskade modellen. Om detta händer ser distributionsdialogrutan ut så här:

Skärmbild av distributionssidan för Azure OpenAI Studio för en etablerad distribution utan tillgänglig kapacitet.

Saker att märka:

  • Ett meddelande visas som visar många PTU:er som du har i tillgänglig kvot och hur många som för närvarande kan distribueras just nu.
  • Om du väljer ett antal PTU:er som är större än tjänstkapaciteten visas ett meddelande som innehåller alternativ för att få mer kapacitet och en knapp som gör att du kan välja en alternativ region. Om du klickar på knappen "Se andra regioner" visas en dialogruta som visar en lista över Azure OpenAI-resurser där du kan skapa en distribution, tillsammans med den maximala distribution som kan skapas baserat på tillgänglig kvot och tjänstkapacitet i varje region.

Skärmbild av distributionssidan för Azure OpenAI Studio för att välja en annan resurs och region.

Om du väljer en resurs och klickar på Växla resurs kommer distributionsdialogrutan att spelas upp på nytt med hjälp av den valda resursen. Du kan sedan fortsätta att skapa distributionen i den nya regionen.

Du kan också köpa en reservation

När du har skapat distributionen kanske du vill köpa en termrabatt via en Azure-reservation. En Azure-reservation kan ge en betydande rabatt på timpriset för användare som tänker använda distributionen längre än några dagar.

Mer information om inköpsmodellen och reservationer finns i:

Viktigt!

Kapacitetstillgängligheten för modelldistributioner är dynamisk och ändras ofta mellan regioner och modeller. Om du vill förhindra att du köper en reservation för fler PTUs än du kan använda skapar du distributioner först och köper sedan Azure-reservationen för att täcka de PTU:er som du har distribuerat. Den här bästa metoden säkerställer att du kan dra full nytta av reservationsrabatten och hindra dig från att köpa ett åtagande som du inte kan använda.

Gör dina första slutsatsdragningsanrop

Inferenskoden för etablerade distributioner är samma standarddistributionstyp. Följande kodfragment visar ett samtal om att chatten har slutförts till en GPT-4-modell. För första gången du använder dessa modeller programmatiskt rekommenderar vi att du börjar med vår snabbstartsguide. Vår rekommendation är att använda OpenAI-biblioteket med version 1.0 eller senare eftersom detta inkluderar omprövningslogik i biblioteket.

    #Note: The openai-python library support for Azure OpenAI is in preview. 
    import os
    from openai import AzureOpenAI

    client = AzureOpenAI(
        azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"), 
        api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
        api_version="2024-02-01"
    )

    response = client.chat.completions.create(
        model="gpt-4", # model = "deployment_name".
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
            {"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
            {"role": "user", "content": "Do other Azure AI services support this too?"}
        ]
    )

    print(response.choices[0].message.content)

Viktigt!

För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter som Azure Key Vault. Mer information om säkerhet för autentiseringsuppgifter finns i artikeln om Säkerhet för Azure AI-tjänster.

Förstå förväntat dataflöde

Mängden dataflöde som du kan uppnå på slutpunkten är en faktor för antalet distribuerade PTU:er, indatastorlek, utdatastorlek och anropsfrekvens. Antalet samtidiga anrop och totalt antal bearbetade token kan variera beroende på dessa värden. Vårt rekommenderade sätt att fastställa dataflödet för distributionen är följande:

  1. Använd kapacitetskalkylatorn för en storleksuppskattning. Du hittar kapacitetskalkylatorn i Azure OpenAI Studio under kvotsidan och fliken Etablerad.
  2. Prestandatesta belastningen med verklig trafikarbetsbelastning. Mer information om benchmarking finns i avsnittet om benchmarking .

Mäta distributionsanvändningen

När du distribuerar ett angivet antal etablerade dataflödesenheter (PTUs) görs en viss mängd slutsatsdragningsdataflöde tillgängligt för slutpunkten. Användningen av det här dataflödet är en komplex formel som baseras på modellen, anropsfrekvensen för modellversion, promptstorlek, generationsstorlek. För att förenkla den här beräkningen tillhandahåller vi ett användningsmått i Azure Monitor. Distributionen returnerar 429 för alla nya anrop när användningen överstiger 100 %. Den etablerade användningen definieras på följande sätt:

PTU-distributionsanvändning = (PTU:er som förbrukats under tidsperioden) / (PTU:er som distribuerats under tidsperioden)

Du hittar användningsmåttet i avsnittet Azure-Monitor för din resurs. Om du vill komma åt övervakningsinstrumentpanelerna loggar du in https://portal.azure.compå , går till din Azure OpenAI-resurs och väljer sidan Mått i det vänstra navigeringsfältet. På sidan mått väljer du måttet "Etablerad hanterad användning V2". Om du har mer än en distribution i resursen bör du också dela upp värdena efter varje distribution genom att klicka på knappen Tillämpa delning.

Skärmbild av den etablerade hanterade användningen på resursens måttblad i Azure Portal.

Mer information om hur du övervakar dina distributioner finns på sidan Övervakning av Azure OpenAI-tjänsten .

Hantera hög användning

Etablerade distributioner ger dig en allokerad mängd beräkningskapacitet för att köra en viss modell. Måttet "Etablerad hanterad användning" i Azure Monitor mäter användningen av distributionen i steg om en minut. Etableringshanterade distributioner optimeras också så att anrop som accepteras bearbetas med en konsekvent maximal svarstid per anrop. När arbetsbelastningen överskrider sin allokerade kapacitet returnerar tjänsten en HTTP-statuskod på 429 tills användningen sjunker under 100 %. Tiden innan du försöker igen anges i svarshuvudena retry-after och retry-after-ms som anger tiden i sekunder respektive millisekunder. Den här metoden upprätthåller målen för svarstid per anrop samtidigt som utvecklaren får kontroll över hur man hanterar situationer med hög belastning – till exempel försök igen eller vidarekoppla till en annan upplevelse/slutpunkt.

Vad ska jag göra när jag får ett 429-svar?

Ett 429-svar anger att de allokerade PTU:erna förbrukas fullt ut vid tidpunkten för anropet. Svaret innehåller rubrikerna retry-after-ms och retry-after som talar om att det är dags att vänta innan nästa anrop godkänns. Hur du väljer att hantera ett 429-svar beror på dina programkrav. Här följer några överväganden:

  • Om du har problem med längre svarstider per anrop implementerar du logik för återförsök på klientsidan för att vänta på retry-after-ms tiden och försöka igen. Med den här metoden kan du maximera dataflödet för distributionen. Microsoft-klient-SDK:er hanterar det redan med rimliga standardvärden. Du kan fortfarande behöva ytterligare justering baserat på dina användningsfall.
  • Överväg att omdirigera trafiken till andra modeller, distributioner eller upplevelser. Den här metoden är lösningen med lägsta svarstid eftersom den här åtgärden kan vidtas så snart du får 429-signalen. 429-signalen är inte ett oväntat felsvar vid push-överföring till hög användning, utan en del av designen för att hantera köer och hög belastning för etablerade distributioner.

Ändra logik för återförsök i klientbiblioteken

Azure OpenAI-SDK:erna försöker som standard 429 svar igen och i bakgrunden i klienten (upp till maximalt antal återförsök). Biblioteken respekterar retry-after tiden. Du kan också ändra återförsöksbeteendet så att det passar din upplevelse bättre. Här är ett exempel med Python-biblioteket.

Du kan använda alternativet max_retries för att konfigurera eller inaktivera återförsöksinställningar:

from openai import AzureOpenAI

# Configure the default for all requests:
client = AzureOpenAI(
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"),
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),
    api_version="2024-02-01",
    max_retries=5,# default is 2
)

# Or, configure per-request:
client.with_options(max_retries=5).chat.completions.create(
    model="gpt-4", # model = "deployment_name".
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
        {"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
        {"role": "user", "content": "Do other Azure AI services support this too?"}
    ]
)

Kör ett riktmärke

De exakta prestanda- och dataflödesfunktionerna i din instans beror på vilken typ av begäran du gör och den exakta arbetsbelastningen. Det bästa sättet att fastställa dataflödet för din arbetsbelastning är att köra ett riktmärke på dina egna data.

För att hjälpa dig med det här arbetet är benchmarking-verktyget ett sätt att enkelt köra benchmarks på din distribution. Verktyget levereras med flera möjliga förkonfigurerade arbetsbelastningsformer och utdata för viktiga prestandamått. Läs mer om verktygs- och konfigurationsinställningarna i vår GitHub-lagringsplats: https://aka.ms/aoai/benchmarking.

Vi rekommenderar följande arbetsflöde:

  1. Beräkna dina dataflödes-PTU:er med hjälp av kapacitetskalkylatorn.
  2. Kör ett riktmärke med den här trafikformen under en längre tidsperiod (10+ min) för att observera resultatet i ett stabilt tillstånd.
  3. Observera användning, bearbetade token och anropsfrekvensvärden från benchmark-verktyget och Azure Monitor.
  4. Kör ett riktmärke med din egen trafikform och dina arbetsbelastningar med hjälp av klientimplementeringen. Se till att implementera omprövningslogik med antingen ett Azure OpenAI-klientbibliotek eller anpassad logik.

Nästa steg