Udostępnij za pośrednictwem


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:

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 dla każdego aprowizowanego typu wdrożenia jest przyznawany subskrypcji w regionie i ogranicza łączną 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.

Domyślna ilość globalnego, strefy danych i regionalnego przydziału aprowizowania jest przypisywana do kwalifikujących się subskrypcji w kilku regionach. Możesz wyświetlić dostępny limit przydziału w regionie, przechodząc do okienka Limity przydziału w usłudze Azure AI Foundry 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.

Zrzut ekranu przedstawiający dostępny limit przydziału w narzędziu Azure OpenAI Studio.

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 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 wdrożeń.

Tworzenie aprowizowanego wdrożenia — 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.

Zrzut ekranu przedstawiający stronę wdrażania usługi Azure OpenAI Studio dla aprowizowania wdrożenia.

  1. Zaloguj się do usługi Azure AI Foundry

  2. Wybierz subskrypcję, która została włączona dla wdrożeń aprowizowanych i wybierz żądany zasób w regionie, w którym masz przydział.

  3. W obszarze Zarządzanie w okienku nawigacji po lewej stronie wybierz pozycję Wdrożenia.

  4. Wybierz pozycję Utwórz nowe wdrożenie i skonfiguruj następujące pola. Rozwiń menu rozwijane opcje zaawansowane.

  5. 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ę Global Provisioned-Managed, DataZone Provisioned-Managed lub Provisioned-Managed z listy rozwijanej okna dialogowego wdrażania 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.

Zrzut ekranu przedstawiający ekran potwierdzenia cen.

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 parametr sku-name na GlobalProvisionedManaged, DataZoneProvisionedManagedlub ProvisionedManaged 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ń. Zapoznaj się z sekcją dotyczącą automatyzowania wdrożeń w przewodniku z instrukcjami dotyczącymi zarządzania limitami przydziału i zastąp element sku.name DataZoneProvisionedManagedGlobalProvisionedManaged, lub ProvisionedManaged zamiast .Standard

Tworzenie aprowizowanego wdrożenia — 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 AI Foundry 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:

Zrzut ekranu przedstawiający stronę wdrażania usługi Azure OpenAI Studio dla aprowizowania wdrożenia bez dostępnej pojemności.

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.

Zrzut ekranu przedstawiający stronę wdrażania usługi Azure OpenAI Studio w celu wybrania innego zasobu i regionu.

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:

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:

  1. Użyj kalkulatora pojemności w celu oszacowania rozmiaru. Kalkulator pojemności można znaleźć w narzędziu Azure AI Foundry na stronie limitów przydziału i karcie Aprowizowanie.

  2. 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ł".

Zrzut ekranu przedstawiający aprowizowane użycie zarządzane w bloku metryk zasobu w witrynie Azure Portal.

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 wersji 2" w usłudze Azure Monitor mierzy wykorzystanie wdrożenia w ciągu jednej minuty. 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://github.com/Azure/azure-openai-benchmark.

Zalecamy następujący przepływ pracy:

  1. Szacowanie przepływności jednostek PTU przy użyciu kalkulatora pojemności.
  2. Uruchom test porównawczy z tym kształtem ruchu przez dłuższy czas (10+ min), aby obserwować wyniki w stanie stałym.
  3. Obserwuj użycie, przetworzone tokeny i wartości współczynnika wywołań z poziomu narzędzia porównawczego i usługi Azure Monitor.
  4. 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