Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Jelenleg megtekintés:Foundry (klasszikus) portálverzió - Váltás az új Foundry portál verziójára
Megjegyzés
A cikkben szereplő hivatkozások megnyithatják a tartalmat az új Microsoft Foundry-dokumentációban a most megtekintett Foundry (klasszikus) dokumentáció helyett.
A kvóta lehetővé teszi, hogy aktívan kezelje a forgalmi korlátok kiosztását az előfizetésen belüli implementációk között. Ez a cikk végigvezeti a Azure OpenAI-kvóta kezelésének folyamatán.
Előfeltételek
Fontos
Az elérhető kvóta megtekintését igénylő feladatokhoz használja a Cognitive Services Használati adatok olvasó szerepkörét . Ez a szerepkör minimális hozzáférést biztosít a kvótahasználat megtekintéséhez egy Azure-előfizetésben. További információ: Hozzáférési kvóta és használati adatok.
A Azure portálon nyissa meg az Előfizetések>hozzáférés-vezérlése (IAM)>Szerepkör-hozzárendelés hozzáadása lehetőséget, és keresse meg a Cognitive Services Használati adatok olvasóját. Rendelje hozzá a szerepkört az előfizetés hatóköréhez. Egy erőforráscsoport vagy erőforrásszintű hozzárendelés nem engedélyezi az előfizetés hatókörű Használati API-hoz való hozzáférést.
Az előfizetés-olvasó szerepkör hozzáférést is biztosít, de olvasási hozzáférést biztosít a kvóta- és modelltelepítések megtekintéséhez szükségesen túl.
Bevezetés a kvóta használatába
Azure OpenAI kvótafunkciója lehetővé teszi a sebességkorlátok hozzárendelését az üzemelő példányokhoz, egészen a kvóta nevű globális korlátig. A kvóta régiónkénti, modellenkénti, üzembehelyezési típusú alapon van hozzárendelve az előfizetéshez a Tokens-per-Minute (TPM) egységekben. Amikor regisztrál az Azure OpenAI-előfizetéshez, a legtöbb elérhető modell számára alapértelmezett kvótát kap. Ezután minden egyes üzembe helyezéshez hozzárendeli a TPM-et a létrehozás pillanatában, és az adott modellre rendelkezésre álló kvótát ennyivel csökkenti. Továbbra is létrehozhat üzembe helyezéseket, és hozzárendelheti azokat a TPM-hez, amíg el nem éri a kvótakorlátot. Ha ez megtörténik, a modell új üzembe helyezését csak úgy hozhatja létre, ha csökkenti az ugyanazon modell más üzemelő példányaihoz rendelt TPM-et (így felszabadítja a TPM-et használat céljából), vagy a kívánt régióban a modellkvóta növelésének kérelmezésével és jóváhagyásával.
Megjegyzés
Az USA keleti régiójában a GPT-4o esetében 240 000 TPM-es kvótával az ügyfelek egyetlen, 240 K TPM-es üzembe helyezést, egyenként 2 120 K TPM-es üzembe helyezést, vagy egy vagy több Azure OpenAI-erőforráson belüli üzembe helyezést hozhatnak létre, feltéve, hogy a TPM-jük összesen kevesebb mint 240 K-t ad hozzá az adott régióban.
Az üzembe helyezés létrehozásakor a hozzárendelt TPM közvetlenül összefüggésben áll a következtetésekre vonatkozó, percenkénti átviteli korláttal. A kérések –Per-Minute (RPM) sebességkorlát is érvényesítve van, amelynek értéke a TPM-hozzárendeléssel arányosan van beállítva a következő arány használatával:
Fontos
A percenkénti kérelmek (RPM) és a percenkénti tokenek (TPM) aránya modellenként változhat. Amikor programozott módon helyez üzembe egy modellt, vagy kvótanövelést kér , nincs részletes vezérlése a TPM és az RPM felett független értékekként. A kvóta kapacitásegységekben van lefoglalva, amelyek megfelelő mennyiségű RPM > TPM-et tartalmaznak:
| Modell | Kapacitás | Kérések percenként (RPM) | Tokenek percenként (TPM) |
|---|---|---|---|
| Régebbi csevegési modellek | 1 egység | 6 fordulat/perc | 1 000 TPM |
| o1 &o1-preview | 1 egység | 1 fordulat/perc | 6 000 TPM |
| o3 | 1 egység | 1 fordulat/perc | 1 000 TPM |
| o4-mini | 1 egység | 1 fordulat/perc | 1 000 TPM |
| o3-mini | 1 egység | 1 fordulat/perc | 10 000 TPM |
| o1-mini | 1 egység | 1 fordulat/perc | 10 000 TPM |
| o3-pro | 1 egység | 1 fordulat/perc | 10 000 TPM |
Ez különösen fontos a programozott modellek üzembe helyezése szempontjából, mivel az RPM/TPM arány változása a kvóta véletlen helytelen áthelyezését eredményezheti.
A TPM globális elosztásának rugalmassága egy előfizetésen és régión belül lehetővé tette Azure OpenAI számára, hogy enyhítse az egyéb korlátozásokat:
- A régiónkénti erőforrások maximális száma 30-ra nő.
- Az erőforrásban lévő ugyanazon modell egynél több üzembe helyezésének létrehozására vonatkozó korlát el lett távolítva.
További kvóta kérése
Nyújtsa be a kvótanövelési kéreleműrlapot a Azure által értékesített Foundry-modellek, az Azure OpenAI-modellek és az Anthropic modellek kvótanövelésének igényléséhez. A Anthropic modellek kivételével a partnerek és a közösség modelljei nem támogatják a kvótanövelést.
A kvótanövelési kérelmek feldolgozása a beérkezésük sorrendjében történik, és a prioritás azoknak az ügyfeleknek szól, akik aktívan használják a meglévő kvótafoglalásukat. A feltételnek nem megfelelő kérések megtagadhatók.
Modellspecifikus beállítások
A különböző modelltelepítések, más néven modellosztályok egyedi maximális TPM-értékekkel rendelkeznek, amelyeket most már szabályozhat. Ez az adott régióban az adott modelltelepítéshez lefoglalható maximális TPM-mennyiséget jelenti.
Minden más modellosztály közös maximális TPM-értékkel rendelkezik.
Megjegyzés
Kvóta Tokens-Per-Minute (TPM) kiosztása nem kapcsolódik a modell maximális bemeneti tokenkorlátjához. A modell bemeneti jogkivonatának korlátai a modelltáblában vannak meghatározva, és nem érintik a TPM módosításai.
Kvóta hozzárendelése
Modelltelepítés létrehozásakor lehetősége van Tokens-Per-Minute (TPM) értéket rendelni az adott telepítéshez. A TPM 1000 növekményesen módosítható, és megfelelteti az üzembe helyezéskor érvényes TPM- és RPM-sebességkorlátoknak, ahogy azt fentebb említettük.
Új üzembe helyezés létrehozásához az Microsoft Foundry portálon válassza a Deployments>Deploy model>Deploy base model>Select Model>Confirm.
Az üzembe helyezés után módosíthatja a TPM-foglalást, ha kiválasztja és szerkeszti a modellt az Foundry portálÜzembe helyezések lapján. Ezt a beállítást a Felügyeleti>modell kvóta lapján is módosíthatja.
Fontos
A kvóták és a korlátok változhatnak. A legfrissebb információkért tekintse meg a kvótákat és korlátokat ismertető cikket.
Kvóta megtekintése és kérése
Ha egy adott régióban lévő telepítések kvótaelosztásait szeretné áttekinteni, válassza a Management>Quota (Felügyeletikvóta) lehetőséget a Foundry portálon:
- Üzembe helyezés: Modelltelepítések modellosztály szerint osztva.
- Kvótatípus: Minden modelltípushoz régiónként egy kvótaérték tartozik. A kvóta a modell összes verzióját lefedi.
- Kvótakiosztás: A kvótanév esetén ez azt mutatja, hogy az üzemelő példányok mennyi kvótát használnak fel, valamint mennyi a jóváhagyott teljes kvóta az adott előfizetés és régió számára. Ez a felhasznált kvótamennyiség a sávdiagramon is megjelenik.
- Kérelemkvóta: Az ikon erre az űrlapra lép, ahol a kvótanövelési kérelmek elküldhetők.
Meglévő telepítések migrációja
Az új kvótarendszerre és a TPM-alapú foglalásra való áttérés részeként az összes meglévő Azure OpenAI-modell üzembe helyezése automatikusan át lett migrálva a kvóta használatára. Azokban az esetekben, amikor a meglévő TPM/RPM-foglalás túllépi az alapértelmezett értékeket a korábbi egyéni sebességkorlát-növekedések miatt, a rendszer egyenértékű TPM-et rendelt az érintett üzemelő példányokhoz.
A sebességkorlátok ismertetése
A TPM üzembe helyezéshez való hozzárendelése beállítja a Tokens-Per-Minute (TPM) és a Requests -Per-Minute (RPM) sebességkorlátokat az üzembe helyezéshez a fent leírtak szerint. A TPM-sebességkorlátok azon jogkivonatok maximális számán alapulnak, amelyeket egy kérés a kérés beérkezésének időpontjában feldolgozni fog. Ez nem ugyanaz, mint a számlázáshoz használt tokenek száma, amelyet az összes feldolgozás befejezése után számítanak ki.
Az egyes kérések érkeztével Azure OpenAI kiszámítja a feldolgozott tokenek becsült maximális számát, amely a következőket tartalmazza:
- Szöveg és darabszám kérése
- A max_tokens paraméterbeállítás
- A best_of paraméter beállítása
Amikor a kérések bekerülnek az üzembehelyezési végpontba, a becsült maximálisan feldolgozott tokenek száma hozzá lesz adva az összes kérés futó token számlálójához, amely percenként alaphelyzetbe áll. Ha ebben a percben bármikor eléri a TPM sebességkorlátját, a további kérések 429-es válaszkódot kapnak, amíg a számláló alaphelyzetbe nem áll.
Fontos
A sebességkorlát kiszámításához használt jogkivonatok száma részben az API-kérés karakterszámán alapuló becslés. A művelet-korlát becslése nem ugyanaz, mint a számlázásra használt jogkivonat-számítás, valamint annak meghatározása, hogy egy kérés a modell bemeneti jogkivonat-korlátja alatt van-e. A sebességkorlát token számításának hozzávetőleges jellege miatt várható, hogy a sebességkorlát az egyes kérések pontos tokenszámával való összehasonlításhoz képest a vártnál korábban léphet életbe.
Az RPM sebességkorlátjai az idő múlásával fogadott kérések számán alapulnak. A sebességkorlát arra számít, hogy a kérések egyenletesen oszlanak el egyperces időszak alatt. Ha ez az átlagos áramlás nincs fenntartva, akkor a kérések 429 választ kaphatnak annak ellenére, hogy nem éri el a korlátot, egy perces méréssel. Ennek a viselkedésnek a megvalósítása érdekében Azure OpenAI kiértékeli a bejövő kérések sebességét kis idő alatt, általában 1 vagy 10 másodperc alatt. Ha az adott időszakban beérkezett kérelmek száma meghaladja a megadott RPM-korlátnál elvárt értéket, akkor az új kérések a következő értékelési időszakig 429 válaszkódot kapnak. Ha például Azure OpenAI 1 másodperces időközönként figyeli a kérelmek sebességét, akkor a sebességkorlátozás 600 RPM-alapú üzemelő példány esetén történik, ha minden 1 másodperces időszakban több mint 10 kérés érkezik (percenként 600 kérelem = 10 kérés másodpercenként).
Megjegyzés
Ha kiosztott átviteli egységeket (PTU) használ, a rendszer másképp számítja ki a sebességkorlátokat. További részletekért tekintse meg a kihasználtságalapú kérés értékelése szakaszt a Foundry-modellek kiosztott átviteli sebessége című dokumentumban.
Sebességkorlátozás válaszfejlécei
Azure Az OpenAI minden API-hívás HTTP-válaszfejlécében tartalmazza a sebességkorlátot. Ezekkel a fejlécekkel programozott módon monitorozhatja a használatot, és proaktív módon elkerülheti a 429-et.
| Fejléc | Példaérték | Leírás |
|---|---|---|
x-ratelimit-limit-requests |
60 |
A telepítéshez percenként engedélyezett kérelmek maximális száma. |
x-ratelimit-limit-tokens |
150000 |
A telepítéshez percenként engedélyezett tokenek maximális száma. |
x-ratelimit-remaining-requests |
59 |
A hátralévő kérések mielőtt elérjük a sebességkorlátot. |
x-ratelimit-remaining-tokens |
149984 |
Megmaradó tokenek száma a kvóta elérése előtt. |
x-ratelimit-reset-requests |
10 |
A kérelemalapú sebességkorlát alaphelyzetbe állításáig eltelt idő. |
x-ratelimit-reset-tokens |
300 |
Az idő hátravan a token alapú sebességkorlát alaphelyzetbe állításáig. |
retry-after-ms |
2000 |
Benne van a 429 válaszban. Az újrapróbálkozás előtt javasolt várakozási idő (ezredmásodpercben). |
Tipp
A 429-hez való hozzáférés előtt figyelje x-ratelimit-remaining-requests és x-ratelimit-remaining-tokens figyelje meg az alkalmazásban, hogy észlelje, mikor közeledik a korlátokhoz, és proaktív módon szabályozza a kéréseket.
Sebességkorlátozási legjobb gyakorlatok
A sebességkorlátokkal kapcsolatos problémák minimalizálásához használja az alábbi technikákat:
A kérések optimalizálása
- Állítsa be
max_tokensa forgatókönyvet kiszolgáló minimális értéket. A sebességkorlát token becslése tartalmazzamax_tokens, még akkor is, ha a tényleges válasz sokkal rövidebb. Ha például körülbelül 200 token válaszokat vár, ne állítsamax_tokensértékét 4000-re. -
Állítsa
best_of1 értékre , kivéve, ha kifejezetten több befejezésre van szüksége. Minden egyesbest_ofnövekedés megszorozza a tokenek számát, befolyásolva a sebességkorlátot. - Lehetőség szerint csökkentse a kérés méretét . Rövidebb kérések kevesebb tokeneket használnak fel a korlátozás szempontjából.
Újrapróbálkozási logika implementálása exponenciális visszalépéssel
Automatikusan próbálkozzon újra a kérésekkel, amikor 429-választ kap. Használja a retry-after-ms fejléc értékét, ha van, ellenkező esetben használja az exponenciális visszalépést véletlenszerű jitterrel:
- Várjon egy rövid, véletlenszerű késleltetést az első hiba után.
- Ha az újrapróbálkozás sikertelen, duplázza meg a késleltetést (exponenciális visszatartás).
- Véletlenszerű késleltetés hozzáadásával megakadályozhatja, hogy az összes ügyfél egyszerre próbálkozzon újra.
- Állítsa be az újrapróbálkozások maximális számát (például 5–10) a végtelen ciklusok elkerülése érdekében.
Fontos
A sikertelen kérések továbbra is beleszámítanak a percenkénti sebességkorlátba. A kérések folyamatos újraküldése biztonsági mentés nélkül rosszabbá teszi a szabályozást.
1. lehetőség: Az SDK beépített újrapróbálkozása (a legegyszerűbb – ajánlott)
Az Azure OpenAI Python SDK (openai v1.0+) beépített automatikus újrapróbálkozást végez exponenciális visszatéréses késleltetéssel a 429-es és az átmeneti hibák esetén. Az alapértelmezett érték két újrapróbálkozás. Növelheti azt:
from openai import AzureOpenAI
# Set max_retries globally on the client (default is 2)
client = AzureOpenAI(
azure_endpoint="https://<your-resource>.openai.azure.com/",
api_key="<your-api-key>",
api_version="2024-10-21",
max_retries=5 # up to 5 retries with automatic exponential backoff
)
# All calls through this client automatically retry on 429
response = client.chat.completions.create(
model="gpt-4o", # deployment name
messages=[{"role": "user", "content": "Hello"}]
)
# Or override per-request:
response = client.with_options(max_retries=8).chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Hello"}]
)
Megjegyzés
Az SDK automatikusan tiszteletben tartja a retry-after fejléceket, és exponenciális visszalépést használ a jitter használatával. A legtöbb alkalmazás esetében az ügyfélen való konfigurálás max_retries elegendő – nincs szükség harmadik féltől származó újrapróbálkozási kódtárra.
2. lehetőség: Egyéni újrapróbálkozás a tenacity tárral (speciális)
Ezt akkor használja, ha nagyobb mértékben kell szabályoznia az újrapróbálkozások viselkedését (például egyéni naplózás, szelektív kivételkezelés, megszakítók):
import openai
from openai import AzureOpenAI
from tenacity import (
retry,
retry_if_exception_type,
stop_after_attempt,
wait_random_exponential,
)
client = AzureOpenAI(
azure_endpoint="https://<your-resource>.openai.azure.com/",
api_key="<your-api-key>",
api_version="2024-10-21",
max_retries=0 # disable SDK built-in retry to avoid double-retrying
)
@retry(
wait=wait_random_exponential(min=1, max=60),
stop=stop_after_attempt(6),
retry=retry_if_exception_type(openai.RateLimitError), # only retry on 429
reraise=True
)
def chat_completion_with_backoff(**kwargs):
return client.chat.completions.create(**kwargs)
response = chat_completion_with_backoff(
model="gpt-4o",
messages=[{"role": "user", "content": "Hello"}]
)
Fontos
Az SDK-ügyfél beépített újrapróbálkozásának letiltásához állítsa be a max_retries=0 értéket, amikor egyéni újrapróbálkozás-kódtárat használ. Ellenkező esetben a kitartás minden egyes kísérlete akár két további SDK-újrapróbálkozási kísérletet is elindíthat, ami a vártnál sokkal több kérést eredményez.
3. lehetőség: Manuális implementálás (nincs külső kódtár)
import time
import random
import openai
from openai import AzureOpenAI
client = AzureOpenAI(
azure_endpoint="https://<your-resource>.openai.azure.com/",
api_key="<your-api-key>",
api_version="2024-10-21",
max_retries=0 # disable SDK built-in retry
)
def retry_with_exponential_backoff(
func,
initial_delay: float = 1,
exponential_base: float = 2,
jitter: bool = True,
max_retries: int = 10,
errors: tuple = (openai.RateLimitError,),
):
"""Retry a function with exponential backoff."""
def wrapper(*args, **kwargs):
num_retries = 0
delay = initial_delay
while True:
try:
return func(*args, **kwargs)
except errors as e:
num_retries += 1
if num_retries > max_retries:
raise Exception(
f"Maximum number of retries ({max_retries}) exceeded."
) from e
delay *= exponential_base * (1 + jitter * random.random())
time.sleep(delay)
except Exception as e:
raise e
return wrapper
@retry_with_exponential_backoff
def chat_completion_with_backoff(**kwargs):
return client.chat.completions.create(**kwargs)
C# példa a Polly (v7) használatával:
using Azure;
using Azure.AI.OpenAI;
using Polly;
var retryPolicy = Policy
.Handle<RequestFailedException>(ex => ex.Status == 429)
.WaitAndRetryAsync(
retryCount: 6,
sleepDurationProvider: (retryAttempt, exception, context) =>
{
// Use retry-after-ms header if available
if (exception is RequestFailedException rfEx)
{
var raw = rfEx.GetRawResponse();
if (raw != null && raw.Headers.TryGetValue("retry-after-ms", out string value)
&& int.TryParse(value, out int ms))
{
return TimeSpan.FromMilliseconds(ms);
}
}
// Otherwise, exponential backoff with jitter
return TimeSpan.FromSeconds(Math.Pow(2, retryAttempt))
+ TimeSpan.FromMilliseconds(Random.Shared.Next(0, 1000));
},
onRetry: (exception, timespan, retryCount, context) =>
{
Console.WriteLine($"Retry {retryCount} after {timespan.TotalSeconds:F1}s due to: {exception.Message}");
}
);
// Usage
var endpoint = new Uri("https://<your-resource>.openai.azure.com/");
var credential = new AzureKeyCredential("<your-api-key>");
var client = new AzureOpenAIClient(endpoint, credential);
await retryPolicy.ExecuteAsync(async () =>
{
var response = await client.GetChatClient("gpt-4o")
.CompleteChatAsync([new UserChatMessage("Hello")]);
Console.WriteLine(response.Value.Content[0].Text);
});
Megjegyzés
A .NET Azure SDK beépített újrapróbálkozás-támogatással is rendelkezik. A AzureOpenAIClientOptions megépítésekor konfigurálhatja a options.Retry.MaxRetries és a options.Retry.Mode = RetryMode.Exponential anélkül, hogy Pollyt használná. Használja a Pollyt, ha speciálisabb mintákra (megszakítókra, válaszfalakra stb.) van szüksége.
Üzembehelyezési szintű használat figyelése és kezelése
- Ellenőrizze az üzemelő példányonkénti TPM-kiosztást, nem csak az előfizetési szintű kvótát. Előfordulhat, hogy az előfizetés szintjén jóváhagyott kvótával rendelkezik, de 429-es hibába ütközik, mert a kvóta nincs hozzárendelve a forgalmat fogadó konkrét üzemelő példányhoz.
- Kvóták újraegyensúlyozása az üzemelő példányok között a megfigyelt használat alapján. A Azure Monitor metrikák használatával áttekintheti a 24 órás és a hétnapos használati trendeket, és észlelheti a kiugró mintázatokat.
- A Foundry portál kvótakezelésével növelheti a TPM-et a nagy forgalmú telepítéseken, és csökkentheti a TPM-et az alulhasznált telepítéseken.
Forgalom egyenletes elosztása
- Kerülje a számítási feladatok éles kiugrását. Az RPM sebességkorlátjai arra számítanak, hogy a kérések egyenletesen oszlanak el minden percben. Még akkor is, ha az összes kérés a percenkénti korlát alatt van, egy 1 másodperces vagy 10 másodperces ablakban történő kirobbanás 429-et aktiválhat.
- Az új számítási feladatok előkészítésekor vagy a terhelés növelésekor fokozatosan növelje a forgalmat.
- Ha a számítási feladat nagyobb átviteli sebességet igényel, mint amennyit egyetlen üzembe helyezés támogat, eloszthatja a kérelmeket több üzemelő példány vagy régió között.
Lehetőség szerint aszinkron/kötegelt feldolgozás használata
Ha a használati eset nem igényel azonnali választ, fontolja meg az aszinkron minták használatát:
- Várólista-kérelmek és azok feldolgozása szabályozott sebességgel.
- Több üzemeltetés használatával párhuzamosíthatja a feldolgozást anélkül, hogy bármelyik üzemeltetés sebességkorlátját túllépi.
429 túlterhelési hibák megértése és megoldási lehetőségek
A 429-s hiba ("Túl sok kérelem") azt jelenti, hogy a rendszer elutasította a kérést, mert túllépték a sebességkorlátot, vagy a rendszer jelenleg nem tudja feldolgozni a kérést. Nem minden 429 hiba ugyanazzal a kiváltó okokkal rendelkezik, és a helyes művelet attól függ, hogy miért történt a 429.
A 429-hibák típusai
| Forgatókönyv | Hibaüzenet-jelző | Kiváltó ok | Javasolt művelet |
|---|---|---|---|
| Túllépte a sebességkorlátot | Kérések... korlátozott" vagy "A sebességkorlát túllépve" | A kérések túllépték az üzembe helyezés lefoglalt kvótájára vonatkozó TPM- vagy RPM-sebességkorlátot. | Növelje az üzembe helyezéshez rendelt TPM-kiosztást, egyensúlyozza újra a kvótát az üzembe helyezések között, vagy kérjen kvótanövelést. |
| Rendszerkapacitás szabályozása | "A szolgáltatás átmenetileg nem tudja feldolgozni a kérést" vagy "A rendszer nagy terhelést tapasztal" | A háttérkapacitás korlátozott. Ez a feltétel gyakran átmeneti. | Próbálkozzon újra a retry-after-ms késés után. Ha állandó, fontolja meg a kiépített átviteli sebességre (PTU) való frissítést a garantált kapacitás érdekében. |
| Ideiglenes sebességkorlát módosítása | 429 válasz történik, de a konfigurált kvóta nem változott; x-ratelimit-limit-tokens a válaszfejlécek kisebbek, mint az üzembe helyezés által konfigurált TPM |
A standard (használatalapú fizetéses) telepítések közös erőforráskészletet használnak. Amikor az igény megközelíti a kapacitáskorlátokat, a rendszer ideiglenesen csökkenti az üzembe helyezés tényleges sebességkorlátját, hogy minden ügyfél számára fenntartsa a megbízhatóságot. Ez a csökkentés védő jellegű és átmeneti. | Próbálkozzon újra a visszatartási stratégiával retry-after-ms. A módosítás általában néhány órán belül megszűnik. A konzisztens átviteli sebességet igénylő számítási feladatok esetében fontolja meg a kiosztott átviteli sebesség (PTU) használatát. |
| A kérelem paraméterei túllépték a token kvótáját | A sebességkorlát aktiválva van, de a tokenhasználati metrikák alacsonynak tűnnek | A sebességkorlát számítása magában foglalja max_tokens és a kérés becslését, nem csak a számlázott tokeneket. A nagy max_tokens értékű kérelmek akkor is felhasználhatják a sebességkorlát költségvetését, ha a tényleges válasz kicsi. |
Csökkentse max_tokens a várt válaszméretre. |
Fontos
Sok ügyfél tévesen értelmezi a kapacitással kapcsolatos 429-et kvótaproblémákként, ami helytelen szervizeléshez vezet (például kvótanövelés kérése átmeneti kapacitásterhelés esetén). A művelet végrehajtása előtt mindig ellenőrizze a hibaüzenetek és a válaszfejléceket a kiváltó ok azonosításához.
Miért láthat 429-et akkor is, ha a tokenhasználati metrikák a kvóta alatt vannak?
Azure OpenAI sebességkorlátozás és használati mutatók nem ugyanaz:
- Token használati metrikák az Azure Monitorban mutatják a számlázott tokeneket a sikeresen feldolgozott kérelmek alapján.
- A sebességkorlátozás a beérkezéskor érvényes API-kérelmekre vonatkozik, beleértve a később elutasított vagy soha nem számlázott kérelmeket is.
A különbség miatt 429 választ kaphat akkor is, ha a tokenhasználati metrikák jóval a kvóta alatt jelennek meg. Gyakori okok a következők:
-
max_tokenstúlbecslés: A mértékhatárok kiszámítása a becsült maximális jogkivonatszámon (felszólítás +max_tokens) alapul, nem pedig a ténylegesen létrehozott jogkivonatszámon. - Elutasított kérelmek: Előfordulhat, hogy a bemeneti hosszkorlátok (HTTP 400) miatt elutasított kérelmek továbbra is beleszámítanak a sebességkorlátozásba, de nem jelennek meg a számlázott jogkivonat-metrikákban.
- Kipukkadási minták: Az RPM érvényesítés kis időablakokban (1–10 másodperc) a kérések értékelését végzi. A kérések rövid ablakban történő sorozata akkor is szabályozást vált ki, ha a percenkénti összeg a korlátokon belül van.
-
A szolgáltatás megbízhatóságának ideiglenes sebességkorlát-módosítása: A standard (használatalapú fizetéses) üzemelő példányok közös erőforráskészletet használnak az ügyfelek között. A szolgáltatás megbízhatóságának és tisztességes állapotának megőrzése érdekében a rendszer folyamatosan figyeli a megosztott készletre vonatkozó igényeket. Ha az üzembe helyezési igények megközelítik vagy túllépik a kapacitáskorlátokat, a rendszer ideiglenesen csökkentheti az üzembe helyezés tényleges sebességkorlátját . Ebben a kiigazítási időszakban a normál feltételek mellett elfogadott kérések 429 választ adnak vissza , annak ellenére, hogy a konfigurált kvóta nem változott. Ez a védelmi intézkedés megakadályozza az erőforráskészletet megosztó összes ügyfél szolgáltatáscsökkenését. A beállítás ideiglenes , és általában néhány órán belül megoldódik, amint a forgalom stabilizálódik. Ennek a feltételnek a figyeléséhez ellenőrizze, hogy a tényleges sebességkorlát (a válaszfejlécekben
x-ratelimit-limit-tokenslátható) alacsonyabb-e a konfigurált TPM-foglalásnál. - Elosztott kényszerítés: Előfordulhat, hogy az elosztott infrastruktúra sebességkorlát-kényszerítése nem teljesen pontos vagy azonnal tükröződik az összesített metrikákban.
Tipp
Ha 429 válasz jelenik meg egy ideiglenes sebességkorlát-kiigazítási időszakban:
-
Próbálkozzon újra a visszalépéssel – tisztelje meg a fejlécet
retry-after-ms. A kiigazítás ideiglenes, és a kereslet stabilizálása során megoldódik. - Forgalom elosztása – ha lehetséges, a kérések elosztása több üzembe helyezés vagy régió között.
- Tekintse át a forgalmi mintázatot – a leggyakoribb kiváltó okok a tartós erős kitörések. A számítási feladatok fokozatos felfutása csökkenti a kiigazítások valószínűségét.
- Fontolja meg a kiosztott átviteli sebességet (PTU) – a megosztott készlet variabilitása nélküli konzisztens átviteli sebességet igénylő éles számítási feladatok esetében a kiosztott átviteli sebesség garantált sebességkorlátokkal rendelkező dedikált kapacitást biztosít.
Mire kell támaszkodni:
- Tokenhasználati metrikák használatával megismerheti a számlázott felhasználást.
-
HTTP-válaszkódok (429) és válaszfejlécek (
x-ratelimit-remaining-*,x-ratelimit-limit-*) használatával valós időben észlelhet és válaszolhat a sebességkorlát-kényszerítésekre. - Hasonlítsa össze
x-ratelimit-limit-tokensa válaszfejlécekben a konfigurált TPM-mel annak észlelésére, hogy egy ideiglenes módosítás aktív-e.
Mikor kell újrapróbálkoznia és mikor kell eszkalálnia?
| Helyzet | Akció |
|---|---|
Esetenkénti 429-es hibák, amelyek késleltetéssel oldódnak meg retry-after-ms |
Újrapróbálkozás – ez a viselkedés normál és elvárt a megosztott (Standard) üzemelő példányok esetében. |
| 429-es hibák a fejlesztés vagy tesztelés során | Gyakran elfogadható – a teszt környezeti 429-es kódok szándékos költségkorlátok lehetnek. |
| Tartósan 429-et gyártottak, a jóváhagyott kvóta alatt | Eszkalálás — támogatási igény benyújtása mérnöki vizsgálatra. |
| A sebességkorlátozások növekedése nem tükröződik a tényleges korlátokban | Eszkalálás – először ellenőrizze a kvótakiosztást az üzembe helyezés szintjén, majd eszkalálja, ha a probléma továbbra is fennáll. |
| Alacsony késleltetésre érzékeny vagy kritikus éles üzemeltetési feladatok gyakori 429-es hibakódot tapasztalnak. | Frissítés – fontolja meg a kiosztott átviteli sebességet (PTU) a garantált kapacitás és a késési SLA érdekében. |
Megjegyzés
A standard (fizetés per használatú) telepítések megosztott erőforráskészletet használnak. A korlátozás az összes felhasználó számára a szolgáltatás általános megbízhatóságát védi. Az átmeneti 429-et a várt viselkedés, nem pedig a szolgáltatás hibája jelzi. A kiszámítható késést és garantált átviteli sebességet igénylő számítási feladatok esetében a kiépített átviteli sebesség (PTU) az ajánlott üzembehelyezési típus.
A kvóta és a kapacitás programozott ellenőrzése
A Foundry portál mellett két Azure Resource Manager REST API-t is használhat az előfizetés kvótahasználatának és a modell rendelkezésre álló kapacitásának programozott ellenőrzéséhez.
Válassza ki a megfelelő API-t
| Usages API | Modellkapacitások API | |
|---|---|---|
| A kérdés, amelyre választ ad | A kvótám mekkora részét használtam fel a korlátomhoz képest? | Mennyi üzembe helyezhető kapacitás érhető el egy adott modellhez? |
| Scope | Előfizetés + hely | Előfizetés (az összes helyszín egyszerre) |
| Input | Csak helyadat | Modell neve, verziója és formátuma |
| Visszatérési érték | Az adott régió összes kvótasora – aktuális használat és korlát | Rendelkezésre álló kapacitás helyenként és üzembe helyezési típusonként egy modellhez |
| Tipikus használati eset | A fogyasztás figyelése, riasztások aktiválása a korlátok közeledésekor | Kapacitás előzetes ellenőrzése üzembe helyezés létrehozása vagy skálázása előtt |
| API-referencia | Felhasználások – Lista | Modellkapacitások – Lista |
Használja a Usages API-t , ha szüksége van egy főkönyvnézetre a felhasznált adatokról és a maradékokról. A Model Capacityes API-t akkor használja, ha tudni szeretné, hogy hol helyezhet üzembe egy modellt, és mennyi kapacitás érhető el az egyes helyeken.
Megjegyzés
Mindkét API az előfizetéshez társított összes modell adatait adja vissza, beleértve az új üzembe helyezésekhez már nem elérhető kivont modelleket is.
Használati adatok API-ja
A Usages API egy adott régió összes kvótasorát visszaadja, beleértve az aktuális felhasználást (currentValue) és a hozzárendelt korlátot.
kérelem:
GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.CognitiveServices/locations/{location}/usages?api-version=2024-10-01
Példa – kvótahasználat ellenőrzése az USA keleti régiójában:
import requests
import json
from azure.identity import DefaultAzureCredential
subscription_id = "<your-subscription-id>"
location = "eastus"
credential = DefaultAzureCredential()
token = credential.get_token("https://management.azure.com/.default")
headers = {"Authorization": f"Bearer {token.token}"}
url = (
f"https://management.azure.com/subscriptions/{subscription_id}"
f"/providers/Microsoft.CognitiveServices/locations/{location}/usages"
f"?api-version=2024-10-01"
)
response = requests.get(url, headers=headers)
usages = response.json()
# Show quota lines that have a non-zero limit
for item in usages["value"]:
if item["limit"] > 0:
print(f"{item['name']['localizedValue']}: {item['currentValue']}/{item['limit']}")
Kulcsmezők:
| Field | Leírás |
|---|---|
name.value |
A kvóta neve a következő formátumban: {Provider}.{DeploymentType}.{Model} |
name.localizedValue |
ember által olvasható leírás, beleértve a mértékegységet is |
currentValue |
Mennyit használnak fel jelenleg ebből a kvótából a telepítések |
limit |
Az előfizetés kvótakorlátja ehhez a modellhez és üzembe helyezési típushoz |
Modellkapacitás API
A Model Capacityes API egy adott modell rendelkezésre álló üzembehelyezési kapacitását adja vissza az előfizetésben lévő összes helyen és üzembe helyezési típusban.
kérelem:
GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.CognitiveServices/modelCapacities?api-version=2024-10-01&modelFormat={format}&modelName={name}&modelVersion={version}
Példa – ellenőrizze, hogy hol érhető el a gpt-4o kapacitás:
import requests
import json
from azure.identity import DefaultAzureCredential
subscription_id = "<your-subscription-id>"
model_name = "gpt-4o"
model_version = "2024-08-06"
credential = DefaultAzureCredential()
token = credential.get_token("https://management.azure.com/.default")
headers = {"Authorization": f"Bearer {token.token}"}
url = (
f"https://management.azure.com/subscriptions/{subscription_id}"
f"/providers/Microsoft.CognitiveServices/modelCapacities"
f"?api-version=2024-10-01"
f"&modelFormat=OpenAI&modelName={model_name}&modelVersion={model_version}"
)
response = requests.get(url, headers=headers)
capacities = response.json()
# Show locations with available capacity for Standard deployments
for item in capacities["value"]:
props = item["properties"]
if props["availableCapacity"] > 0 and "Standard" in props["skuName"]:
print(f"{item['location']} ({props['skuName']}): {props['availableCapacity']} available")
Kulcsmezők:
| Field | Leírás |
|---|---|
location |
Azure-régió |
properties.skuName |
Üzembe helyezés típusa (Standard, GlobalStandard, DataZoneStandard, ProvisionedManaged stb.) |
properties.availableCapacity |
Az előfizetésben elérhető kapacitásegységek ehhez a modellhez, helyhez és üzembe helyezési típushoz |
properties.availableFinetuneCapacity |
Rendelkezésre álló finomhangolási kapacitás (ha van) |
Üzembe helyezés automatizálása
Az Azure OpenAI-telepítések programozott létrehozásáról és a percenkénti tokenkvóta (TPM) REST, Azure CLI, Azure PowerShell, ARM, Bicep vagy Terraform használatával történő hozzárendeléséről a Azure OpenAI-telepítések automatizálása kvótával a Microsoft Foundryban című cikkben olvashat.
Erőforrás törlése
Ha egy Azure OpenAI-erőforrás törlésére tett kísérlet történik az Azure portálról, a törlés blokkolva van, amíg a társított üzemelő példányok jelen vannak. A telepítések először történő törlése lehetővé teszi a kvótalefoglalások megfelelő felszabadítását, így azok felhasználhatók új telepítéseknél.
Ha azonban a REST API-val vagy más programozott módszerrel töröl egy erőforrást, akkor ez előbb átmegy az üzembe helyezések törlésének szükségességén. Amikor ez megtörténik, a hozzárendelt kvóta nem lesz elérhető új telepítéshez 48 órán keresztül, amíg az erőforrás meg nem tisztul. Ha egy törölt erőforrás azonnali kiürítését szeretné aktiválni a kvóta felszabadításához, kövesse a törölt erőforrás-utasítások törlését.
Következő lépések
- Az OpenAI-Azure kvóta alapértelmezett értékének áttekintéséhez tekintse át a
quotas & korlátokról szóló cikket