Wprowadzenie do korzystania z aprowizowania wdrożeń w usłudze Azure OpenAI
W poniższym przewodniku przedstawiono kluczowe kroki tworzenia aprowizowanego wdrożenia za pomocą zasobu usługi Azure OpenAI Service. Aby uzyskać więcej informacji na temat omówionych tutaj pojęć, zobacz:
- Przewodnik dołączania aprowizacji usługi Azure OpenAI
- Pojęcia dotyczące aprowizowania usługi Azure OpenAI
Wymagania wstępne
- Subskrypcja platformy Azure — utwórz bezpłatnie
- Rola Współautor platformy Azure lub Współautor usług Cognitive Services
- Dostęp do programu Azure OpenAI Studio
Uzyskaj/zweryfikuj dostępność limitu przydziału ptU.
Aprowizowanie wdrożeń przepływności ma rozmiar w jednostkach o nazwie Aprowizowanie jednostek przepływności (PTU). Limit przydziału jednostek PTU jest przyznawany subskrypcji regionalnie i ogranicza całkowitą liczbę jednostek PTU, które można wdrożyć w tym regionie we wszystkich modelach i wersjach.
Utworzenie nowego wdrożenia wymaga dostępnego (nieużywanego) limitu przydziału w celu pokrycia żądanego rozmiaru wdrożenia. Na przykład: jeśli subskrypcja ma następujące elementy w południowo-środkowych stanach USA:
- Łączny limit przydziału jednostek PTU = 500 jednostek PTU
- Wdrożeń:
- 100 JEDNOSTEK PTU: GPT-4o, 2024-05-13
- 100 JEDNOSTEK PTU: GPT-4, 0613
Następnie 200 jednostek PTU przydziału jest uznawanych za używane, a do tworzenia nowych wdrożeń jest dostępnych 300 jednostek PTU.
Do wszystkich subskrypcji w kilku regionach jest przypisywana domyślna aprowizowana kwota aprowizowanego przydziału globalnego. Możesz wyświetlić dostępny limit przydziału w regionie, odwiedzając blok Limity przydziału w programie Azure OpenAI Studio i wybierając odpowiednią subskrypcję i region. Na przykład poniższy zrzut ekranu przedstawia limit przydziału 500 jednostek PTU w regionie Zachodnie stany USA dla wybranej subskrypcji. Pamiętaj, że mogą być widoczne niższe wartości dostępnych przydziałów domyślnych.
Można zażądać dodatkowego limitu przydziału, klikając link Żądaj limitu przydziału z prawej strony kolumny "Użycie/limit". (Jest to ekran wyłączony na powyższym zrzucie ekranu).
Tworzenie zasobu usługi Azure OpenAI
Aprowizowanie i globalne aprowizowanie wdrożeń jest tworzone za pośrednictwem obiektów zasobów usługi Azure OpenAI na platformie Azure. Musisz mieć zasób usługi Azure OpenAI w każdym regionie, w którym zamierzasz utworzyć wdrożenie. Użyj witryny Azure Portal, aby utworzyć zasób w regionie z dostępnym limitem przydziału, jeśli jest to wymagane.
Uwaga
Zasoby usługi Azure OpenAI mogą obsługiwać wiele typów wdrożeń usługi Azure OpenAI jednocześnie. Nie jest konieczne dedykowanie nowych zasobów dla aprowizowania ani globalnych wdrożeń aprowizowania.
Tworzenie aprowizowanego lub globalnego wdrożenia aprowizowania — pojemność jest dostępna
po zweryfikowaniu limitu przydziału możesz utworzyć wdrożenie. Aby utworzyć aprowizowane wdrożenie, możesz wykonać następujące kroki: opisane opcje odzwierciedlają wpisy wyświetlane na zrzucie ekranu.
Zaloguj się do programu Azure OpenAI Studio
Wybierz subskrypcję, która została włączona dla aprowizowania i globalnych wdrożeń aprowizowanych, a następnie wybierz żądany zasób w regionie, w którym masz przydział.
W obszarze Zarządzanie w okienku nawigacji po lewej stronie wybierz pozycję Wdrożenia.
Wybierz pozycję Utwórz nowe wdrożenie i skonfiguruj następujące pola. Rozwiń menu rozwijane opcje zaawansowane.
Wypełnij wartości w każdym polu. Oto przykład:
Pole | opis | Przykład |
---|---|---|
Wybieranie modelu | Wybierz konkretny model, który chcesz wdrożyć. | GPT-4 |
Wersja modelu | Wybierz wersję modelu do wdrożenia. | 0613 |
Nazwa wdrożenia | Nazwa wdrożenia jest używana w kodzie do wywoływania modelu przy użyciu bibliotek klienckich i interfejsów API REST. | gpt-4 |
Filtr zawartości | Określ zasady filtrowania, które mają być stosowane do wdrożenia. Dowiedz się więcej na temat instrukcji filtrowania zawartości. | Wartość domyślna |
Typ wdrożenia programu | Ma to wpływ na przepływność i wydajność. Wybierz pozycję Aprowizacja zarządzana lub Globalna aprowizacja zarządzana dla wdrożenia | Aprowizacja zarządzana |
Aprowizowanie jednostek przepływności | Wybierz ilość przepływności, którą chcesz uwzględnić we wdrożeniu. | 100 |
Ważne kwestie do zapamiętania:
- Okno dialogowe wdrażania zawiera przypomnienie, że możesz kupić rezerwację platformy Azure dla usługi Azure OpenAI aprowizowaną w celu uzyskania znacznego rabatu na zobowiązanie terminowe.
Po wprowadzeniu ustawień wdrożenia kliknij pozycję Potwierdź cennik , aby kontynuować. Zostanie wyświetlone okno dialogowe potwierdzenia cen, w którym zostanie wyświetlona cena katalogowa wdrożenia, jeśli zdecydujesz się zapłacić za niego co godzinę, bez rezerwacji platformy Azure w celu zapewnienia rabatu terminowego.
Jeśli nie masz pewności co do kosztów, anuluj wdrożenie i kontynuuj po zapoznaniu się z modelem płatności i podstawowymi kosztami aprowizowania wdrożenia. Ten krok może uniemożliwić nieoczekiwane, wysokie opłaty na fakturze płatniczej. Zasoby, które należy edukować samodzielnie, obejmują:
Na poniższej ilustracji przedstawiono potwierdzenie cennika. Wyświetlana cena jest tylko przykładem.
Jeśli chcesz programowo utworzyć wdrożenie, możesz to zrobić za pomocą następującego polecenia interfejsu wiersza polecenia platformy Azure. Aby określić typ wdrożenia, zmodyfikuj sku-name
wartość na ProvisionedManaged
lub GlobalProvisionedManaged
na podstawie zamierzonego typu wdrożenia. Zaktualizuj element sku-capacity
za pomocą żądanej liczby aprowizowanych jednostek przepływności.
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
Interfejs REST, szablon usługi ARM, Bicep i narzędzie Terraform mogą również służyć do tworzenia wdrożeń. Zobacz sekcję dotyczącą automatyzowania wdrożeń w przewodniku z instrukcjami dotyczącymi zarządzania limitami przydziału i zastąp element sku.name
"ProvisionedManaged" lub "GlobalProvisionedManaged", a nie "Standard".
Tworzenie aprowizowanego lub globalnego wdrożenia aprowizowania — pojemność jest niedostępna
Ze względu na dynamiczny charakter dostępności pojemności możliwe jest, że region wybranego zasobu może nie mieć pojemności usługi w celu utworzenia wdrożenia określonego modelu, wersji i liczby jednostek PTU.
W tym przypadku usługa Azure OpenAI Studio przekieruje Cię do innych regionów z dostępnym limitem przydziału i pojemnością, aby utworzyć wdrożenie żądanego modelu. W takim przypadku okno dialogowe wdrażania będzie wyglądać następująco:
Kwestie do zauważenia:
- Zostanie wyświetlony komunikat z wyświetlonymi wieloma jednostkami PTU w dostępnym limitzie przydziału i liczbą aktualnie wdrożonych w tej chwili.
- W przypadku wybrania liczby jednostek PTU większej niż pojemność usługi zostanie wyświetlony komunikat zawierający opcje uzyskania większej pojemności oraz przycisk umożliwiający wybranie alternatywnego regionu. Kliknięcie przycisku "Zobacz inne regiony" spowoduje wyświetlenie okna dialogowego zawierającego listę zasobów usługi Azure OpenAI, w których można utworzyć wdrożenie, wraz z wdrożeniem o maksymalnym rozmiarze, które można utworzyć na podstawie dostępnego limitu przydziału i pojemności usługi w każdym regionie.
Wybranie zasobu i kliknięcie przycisku Przełącz zasób spowoduje ponowne ponowne redysponowanie okna dialogowego wdrażania przy użyciu wybranego zasobu. Następnie możesz kontynuować tworzenie wdrożenia w nowym regionie.
Opcjonalnie kup rezerwację
Po utworzeniu wdrożenia możesz kupić rabat na okres za pośrednictwem rezerwacji platformy Azure. Rezerwacja platformy Azure może zapewnić znaczną zniżkę na stawkę godzinową dla użytkowników, którzy zamierzają korzystać z wdrożenia poza kilka dni.
Aby uzyskać więcej informacji na temat modelu zakupu i rezerwacji, zobacz:
- Oszczędzaj koszty dzięki aprowizowanej rezerwacji usługi Microsoft Azure OpenAI.
- Przewodnik dołączania aprowizacji w usłudze Azure OpenAI
- Przewodnik dotyczący aprowizowania rezerwacji usługi Azure OpenAI
Ważne
Dostępność pojemności dla wdrożeń modelu jest dynamiczna i często zmienia się w różnych regionach i modelach. Aby zapobiec zakupieniu rezerwacji dla większej liczby jednostek PTU niż można użyć, najpierw utwórz wdrożenia, a następnie kup rezerwację platformy Azure, aby pokryć wdrożone jednostki PTU. To najlepsze rozwiązanie zapewni pełne wykorzystanie rabatu za rezerwację i uniemożliwi zakup zobowiązania terminowego, którego nie można użyć.
Wykonaj pierwsze wywołania wnioskowania
Kod wnioskowania dla aprowizowania wdrożeń jest taki sam jak standardowy typ wdrożenia. Poniższy fragment kodu przedstawia wywołanie uzupełniania czatu do modelu GPT-4. Podczas pierwszego korzystania z tych modeli programowo zalecamy rozpoczęcie pracy z naszym przewodnikiem Szybki start. Naszym zaleceniem jest użycie biblioteki OpenAI w wersji 1.0 lub nowszej, ponieważ obejmuje to logikę ponawiania prób w bibliotece.
#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)
Ważne
W przypadku środowiska produkcyjnego użyj bezpiecznego sposobu przechowywania i uzyskiwania dostępu do poświadczeń, takich jak usługa Azure Key Vault. Aby uzyskać więcej informacji na temat zabezpieczeń poświadczeń, zobacz artykuł Zabezpieczenia usług Azure AI.
Opis oczekiwanej przepływności
Ilość przepływności, którą można osiągnąć w punkcie końcowym, jest czynnikiem liczby wdrożonych jednostek PTU, rozmiaru danych wejściowych, rozmiaru danych wyjściowych i szybkości wywołań. Liczba współbieżnych wywołań i łączna liczba przetworzonych tokenów może się różnić w zależności od tych wartości. Zalecanym sposobem określania przepływności wdrożenia jest następujące:
- Użyj kalkulatora pojemności w celu oszacowania rozmiaru. Kalkulator pojemności można znaleźć w narzędziu Azure OpenAI Studio na stronie limitów przydziału i karcie Aprowizowanie.
- Przeprowadź test porównawczy obciążenia przy użyciu obciążenia ruchu rzeczywistego. Aby uzyskać więcej informacji na temat testów porównawczych, zobacz sekcję dotyczącą testów porównawczych .
Mierzenie wykorzystania wdrożenia
Podczas wdrażania określonej liczby aprowizowanych jednostek przepływności (PTU) dla tego punktu końcowego jest udostępniana określona przepływność wnioskowania. Wykorzystanie tej przepływności jest złożoną formułą opartą na modelu, szybkości wywołania wersji modelu, rozmiarze monitu, rozmiarze generowania. Aby uprościć to obliczenie, udostępniamy metrykę wykorzystania w usłudze Azure Monitor. Wdrożenie zwraca wartość 429 dla nowych wywołań po wzroście wykorzystania powyżej 100%. Aprowizowane wykorzystanie jest definiowane w następujący sposób:
Wykorzystanie wdrożenia PTU = (jednostki PTU używane w okresie) / (jednostki PTU wdrożone w okresie)
Miarę wykorzystania można znaleźć w sekcji Azure-Monitor dla zasobu. Aby uzyskać dostęp do logowania się do https://portal.azure.compulpitów nawigacyjnych monitorowania, przejdź do zasobu usługi Azure OpenAI i wybierz stronę Metryki z lewej nawigacji. Na stronie metryk wybierz metrykę "Aprowizowane wykorzystanie zarządzane w wersji 2". Jeśli w zasobie znajduje się więcej niż jedno wdrożenie, należy również podzielić wartości poszczególnych wdrożeń, klikając przycisk "Zastosuj podział".
Aby uzyskać więcej informacji na temat monitorowania wdrożeń, zobacz stronę Monitorowanie usługi Azure OpenAI.
Obsługa wysokiego wykorzystania
Aprowidowane wdrożenia zapewniają przydzieloną ilość mocy obliczeniowej do uruchomienia danego modelu. Metryka "Aprowizowane wykorzystanie zarządzane" w usłudze Azure Monitor mierzy wykorzystanie wdrożenia w jednominutowych przyrostach. Wdrożenia zarządzane przez aprowizację są również zoptymalizowane tak, aby wywołania akceptowane były przetwarzane przy użyciu spójnego opóźnienia maksymalnego dla poszczególnych wywołań. Gdy obciążenie przekroczy przydzieloną pojemność, usługa zwraca kod stanu HTTP 429, dopóki użycie nie spadnie poniżej 100%. Czas przed ponowną próbą jest podany w retry-after
nagłówkach odpowiedzi i retry-after-ms
, które zapewniają odpowiednio czas w sekundach i milisekundach. Takie podejście utrzymuje cele opóźnienia poszczególnych wywołań, zapewniając deweloperowi kontrolę nad sposobem obsługi sytuacji o dużym obciążeniu — na przykład ponawianie próby lub przekierowanie do innego środowiska/punktu końcowego.
Co należy zrobić, gdy otrzymuję odpowiedź 429?
Odpowiedź 429 wskazuje, że przydzielone jednostki PTU są w pełni używane w momencie wywołania. Odpowiedź zawiera retry-after-ms
nagłówki i retry-after
, które informują o czasie oczekiwania przed zaakceptowaniem następnego wywołania. Sposób obsługi odpowiedzi 429 zależy od wymagań aplikacji. Oto kilka zagadnień:
- Jeśli masz problemy z dłuższymi opóźnieniami poszczególnych wywołań, zaimplementuj logikę ponawiania po stronie klienta, aby poczekać i ponowić próbę
retry-after-ms
. Takie podejście pozwala zmaksymalizować przepływność wdrożenia. Zestawy SDK klienta dostarczone przez firmę Microsoft obsługują je już z rozsądnymi wartościami domyślnymi. Nadal może być konieczne dalsze dostrajanie na podstawie przypadków użycia. - Rozważ przekierowanie ruchu do innych modeli, wdrożeń lub środowisk. Takie podejście jest rozwiązaniem o najniższym opóźnieniu, ponieważ tę akcję można podjąć natychmiast po otrzymaniu sygnału 429. Sygnał 429 nie jest nieoczekiwanym komunikatem o błędzie podczas wypychania do wysokiego wykorzystania, ale zamiast tego częścią projektu do zarządzania kolejkowaniem i wysokim obciążeniem dla aprowizowania wdrożeń.
Modyfikowanie logiki ponawiania prób w bibliotekach klienta
Zestawy SDK usługi Azure OpenAI domyślnie ponawiają próby odpowiedzi 429 i za kulisami w kliencie (maksymalnie ponawiane próby). Biblioteki szanują retry-after
czas. Możesz również zmodyfikować zachowanie ponawiania w celu lepszego dopasowania do środowiska. Oto przykład z biblioteką języka Python.
Możesz użyć max_retries
opcji , aby skonfigurować lub wyłączyć ustawienia ponawiania prób:
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?"}
]
)
Uruchamianie testu porównawczego
Dokładne możliwości wydajności i przepływności wystąpienia zależą od rodzaju żądań i dokładnego obciążenia. Najlepszym sposobem określenia przepływności obciążenia jest uruchomienie testu porównawczego na własnych danych.
Aby ułatwić ci pracę, narzędzie do testów porównawczych umożliwia łatwe uruchamianie testów porównawczych we wdrożeniu. Narzędzie zawiera kilka możliwych wstępnie skonfigurowanych kształtów obciążeń i generuje kluczowe metryki wydajności. Dowiedz się więcej o ustawieniach narzędzia i konfiguracji w naszym repozytorium GitHub: https://aka.ms/aoai/benchmarking.
Zalecamy następujący przepływ pracy:
- Szacowanie przepływności jednostek PTU przy użyciu kalkulatora pojemności.
- Uruchom test porównawczy z tym kształtem ruchu przez dłuższy czas (10+ min), aby obserwować wyniki w stanie stałym.
- Obserwuj użycie, przetworzone tokeny i wartości współczynnika wywołań z poziomu narzędzia porównawczego i usługi Azure Monitor.
- Uruchom test porównawczy z własnym kształtem ruchu i obciążeniami przy użyciu implementacji klienta. Pamiętaj, aby zaimplementować logikę ponawiania prób przy użyciu biblioteki klienta usługi Azure OpenAI lub logiki niestandardowej.
Następne kroki
- Aby uzyskać więcej informacji na temat najlepszych rozwiązań dotyczących aplikacji w chmurze, zapoznaj się z tematem Najlepsze rozwiązania w aplikacjach w chmurze
- Aby uzyskać więcej informacji na temat aprowizowania wdrożeń, zobacz Co to jest aprowizowana przepływność?
- Aby uzyskać więcej informacji na temat logiki ponawiania prób w ramach każdego zestawu SDK, zobacz: