GCP Vertex AI machine learning MLOps

Vertex AI: przekroczony limit wdrożenia lub brak GPU - limity CustomModelServing wg regionu

Rozwiązanie błędu DeployModel w Vertex AI spowodowanego przekroczonym limitem akceleratora CustomModelServing lub brakiem typu GPU/TPU w docelowym regionie: znalezienie dokładnego limitu, prośba o zwiększenie albo przeniesienie do dostępnego regionu, akceleratora lub rezerwacji.

Jerzy Kopaczewski ·
Wdrożenie modelu na endpoint Vertex AI kończy się błędem limitu nazywającym metrykę CustomModelServing...PerProjectPerRegion, albo akcelerator, o który poprosiłeś, jest niedostępny w regionie. Model i kontener są w porządku, wdrożenie blokuje limit akceleratora lub moc w regionie. Ten runbook znajduje dokładny limit, doprowadza do jego zwiększenia albo kieruje Cię do akceleratora i regionu, które działają.

Ten runbook dotyczy limitu i dostępności akceleratora w czasie wdrożenia. Jeśli model jest już wdrożony, a throttlowany jest ruch na żywo, to zamiast tego runbook o predykcji 429. Do planowania kosztu GPU zobacz jak działa cennik Vertex AI. Po pomoc praktyczną umów konsultację.

Objawy

Wywołanie DeployModel kończy się błędem limitu lub dostępności. Nazwa metryki to kluczowa wskazówka.

# Przekroczony limit akceleratora dla tego projektu i regionu
google.api_core.exceptions.ResourceExhausted: 429 The following
quotas are exceeded: CustomModelServingT4GPUsPerProjectPerRegion

# Zerowy limit przyznany dla akceleratora (częste w nowych projektach / free tier)
The following quotas are exceeded:
CustomModelServingL4GPUsPerProjectPerRegion  (limit: 0)

# Akcelerator po prostu niedostępny w wybranym regionie
# Wdrożenie wisi lub kończy się błędem mocy/dostępności dla
# żądanej pary machine-type + akcelerator w tym regionie.

Obserwowalny skutek:

  • Wdrożenie, które działało w jednym regionie, w innym kończy się błędem przy tej samej konfiguracji
  • Wdrożenie na GPU kończy się błędem, podczas gdy wdrożenie tego samego modelu tylko na CPU przechodzi
  • Zupełnie nowy projekt nie może wdrożyć żadnego modelu na GPU, bo limit akceleratora wynosi 0

Przyczyna

Custom model serving w Vertex AI korzysta z limitu na projekt, na region i na typ akceleratora, a nie każdy akcelerator istnieje w każdym regionie.

  • Limit akceleratora jest na region i na typ akceleratora. Metryka limitu wygląda jak CustomModelServing<AKCELERATOR>PerProjectPerRegion, na przykład CustomModelServingT4GPUsPerProjectPerRegion. Każdy typ GPU (T4, L4, A100 i tak dalej) ma własny licznik w każdym regionie. Uderzenie w niego blokuje wdrożenie niezależnie od ogólnego limitu GPU gdzie indziej.
  • Nowe projekty często startują od zera. W nowych projektach i w niektórych warunkach free tier limit serwowania dla danego akceleratora może wynosić 0, więc pierwsze wdrożenie na GPU kończy się błędem, dopóki nie poprosisz o zwiększenie.
  • Akcelerator nie jest oferowany w regionie. Nie każdy akcelerator jest dostępny w każdym regionie. Żądanie typu, którego region nie oferuje, kończy się błędem lub wisi, niezależnie od tego, ile limitu masz.

Rozwiązanie

Krok 1: Odczytaj dokładny limit z błędu

Nazwa metryki w błędzie mówi dokładnie, który licznik Cię blokuje. Zanotuj akcelerator i region.

CustomModelServingT4GPUsPerProjectPerRegion
                   ^^              ^^^^^^^^^^
                   akcelerator     zakres: na projekt, na region

Krok 2: Sprawdź bieżący limit i zużycie

Znajdź konkretną metrykę w konsoli Quotas lub przez gcloud, zawężoną do swojego regionu.

# Ścieżka w konsoli: IAM & Admin > Quotas
#   Service = "Vertex AI API"
#   Filtruj nazwę metryki z błędu, np. CustomModelServingT4GPUsPerProjectPerRegion
#   Wymiar region = us-central1

# Albo wylistuj limity serwowania przez gcloud (nazwy zawierają CustomModelServing)
gcloud alpha services quota list \
  --service=aiplatform.googleapis.com \
  --consumer=projects/YOUR_PROJECT 2>/dev/null | grep -i customModelServing

# Sprawdź też limit GPU w Compute Engine w tym regionie
gcloud compute regions describe us-central1 \
  --format="table(quotas.metric,quotas.limit,quotas.usage)" | grep -i gpu

Jeśli limit wynosi 0 lub jest na poziomie zużycia, przejdź do kroku 3 (zwiększenie) lub kroku 4 (przeniesienie).

Krok 3: Poproś o zwiększenie limitu

Jeśli region i akcelerator są właściwe, ale limit jest zbyt niski lub wynosi 0, poproś o zwiększenie dla dokładnie tej metryki.

# Konsola: IAM & Admin > Quotas > wybierz metrykę CustomModelServing<AKCEL>...
# dla swojego regionu > Edit Quotas > prześlij żądaną wartość.
# Zwiększenia są weryfikowane przez Google i mogą zająć czas, więc planuj z wyprzedzeniem.

Proś tylko o akcelerator i region, do których faktycznie wdrażasz. Zwiększenie na T4...us-central1 nic nie daje wdrożeniu L4...europe-west4.

Krok 4: Zmień akcelerator, region albo użyj rezerwacji

Jeśli limitu nie da się zwiększyć na czas albo akcelerator jest niedostępny w regionie, zmień cel, zamiast czekać.

# Opcja A: wdróż do regionu, który oferuje akcelerator i ma limit
gcloud ai endpoints deploy-model ENDPOINT_ID \
  --region=europe-west4 \
  --model=MODEL_ID \
  --machine-type=g2-standard-8 \
  --accelerator=type=nvidia-l4,count=1 \
  --min-replica-count=1 --max-replica-count=1

# Opcja B: użyj innego akceleratora, na który region ma limit
#   (na przykład L4 zamiast T4, albo A100 dla większych modeli)

# Opcja C: przy deficycie mocy wdróż na Spot VM lub z rezerwacją,
#   aby nie blokować się czekaniem na dostępność on-demand

Dla modelu, który nie wymaga bezwzględnie GPU, typ maszyny tylko na CPU całkowicie omija limit akceleratora, warto to sprawdzić przed gonieniem za zwiększeniem GPU.

Walidacja

Potwierdź, że wdrożenie kończy się teraz powodzeniem na wybranym akceleratorze i regionie.

# Operacja wdrożenia kończy się bez ResourceExhausted
gcloud ai endpoints deploy-model ENDPOINT_ID \
  --region=us-central1 --model=MODEL_ID \
  --machine-type=n1-standard-4 \
  --accelerator=type=nvidia-tesla-t4,count=1 \
  --min-replica-count=1 --max-replica-count=1
# Oczekiwane: operacja kończy się, bez błędu limitu CustomModelServing

# Endpoint pokazuje wdrożony model
gcloud ai endpoints describe ENDPOINT_ID --region=us-central1 \
  --format="value(deployedModels[].id)"
# Oczekiwane: id wdrożonego modelu

Moc serwowania na GPU to najdroższa pozycja wdrożenia Vertex AI i najbardziej deficytowa. Proś o limit tylko dla akceleratorów i regionów, których faktycznie użyjesz, i wybieraj najmniejszy akcelerator spełniający cel opóźnień. Przewymiarowany limit GPU jest trudniejszy do zatwierdzenia i droższy w utrzymaniu.

 

Jerzy Kopaczewski

Planujesz moc GPU na Vertex AI?

Umów bezpłatną rozmowę na 30 minut. Pomagamy zespołom dobrać właściwy akcelerator i region, zaplanować limit przed startem i wybrać między on-demand, Spot a rezerwacjami.

Umów rozmowę

Powiązane