Kompleksowa architektura referencyjna czatu openAI wg planu bazowego

Azure OpenAI Service
Azure Machine Learning
Azure App Service
Azure Key Vault
Azure Monitor

Aplikacje do czatów dla przedsiębiorstw mogą umożliwiać pracownikom interakcję konwersacyjną. Jest to szczególnie istotne ze względu na ciągły postęp dużych modeli językowych, takich jak modele GPT openAI i modele LLaMA firmy Meta. Te aplikacje do czatowania składają się z interfejsu użytkownika do czatowania, repozytoriów danych zawierających informacje specyficzne dla domeny istotne dla zapytań użytkownika, dużych modeli językowych (LLM), które są przyczyną danych specyficznych dla domeny w celu wygenerowania odpowiedniej odpowiedzi, oraz orkiestratora, który nadzoruje interakcję między tymi składnikami.

Ten artykuł zawiera architekturę bazową służącą do tworzenia i wdrażania aplikacji do czatów dla przedsiębiorstw korzystających z dużych modeli językowych usługi Azure OpenAI. Architektura korzysta z przepływu monitu usługi Azure Machine Edukacja (AML), aby utworzyć przepływy wykonywalne, które organizujące przepływ pracy z monitów przychodzących do magazynów danych w celu pobrania danych uziemień dla modułów LLM oraz dowolnej innej wymaganej logiki języka Python. Przepływ wykonywalny jest wdrażany w klastrze obliczeniowym usługi Azure Machine Edukacja za zarządzanym punktem końcowym online.

Hosting niestandardowego interfejsu użytkownika czatu jest zgodny ze wskazówkami dotyczącymi podstawowej aplikacji internetowej usług App Services dotyczącymi wdrażania bezpiecznej, strefowo nadmiarowej i wysokiej dostępności aplikacji internetowej w usługach aplikacja systemu Azure. W tej architekturze usługa App Service komunikuje się z usługami PaaS platformy Azure za pośrednictwem integracji sieci wirtualnej za pośrednictwem prywatnych punktów końcowych. Podobnie usługa App Service interfejsu użytkownika czatu komunikuje się z zarządzanym punktem końcowym online dla przepływu za pośrednictwem prywatnego punktu końcowego i dostępem publicznym do obszaru roboczego usługi Azure Machine Edukacja jest wyłączony.

Ważne

Artykuł nie obejmuje decyzji dotyczących składników ani architektury z poziomu podstawowej aplikacji internetowej usług app services. Przeczytaj ten artykuł, aby uzyskać wskazówki dotyczące architektury hostowania interfejsu użytkownika czatu.

Obszar roboczy Edukacja maszyny jest skonfigurowany z izolacją zarządzanej sieci wirtualnej, która wymaga zatwierdzenia wszystkich połączeń wychodzących. Dzięki tej konfiguracji tworzona jest zarządzana sieć wirtualna wraz z zarządzanymi prywatnymi punktami końcowymi, które umożliwiają łączność z zasobami prywatnymi, takimi jak miejsce pracy Azure Storage, Azure Container Registry i Azure OpenAI. Te połączenia prywatne są używane podczas tworzenia i testowania przepływu oraz przepływów wdrożonych w usłudze Azure Machine Edukacja obliczeniowych.

Napiwek

Logo usługi GitHubTen artykuł jest wspierany przez implementację referencyjną, która prezentuje kompleksową implementację czatu na platformie Azure według planu bazowego. Ta implementacja może służyć jako podstawa do tworzenia niestandardowych rozwiązań w pierwszym kroku w kierunku produkcji.

Architektura

Diagram przedstawiający kompleksową architekturę czatu odniesienia przy użyciu interfejsu OpenAI.

Rysunek 1. Podstawowa architektura kompleksowego czatu przy użyciu interfejsu OpenAI

Pobierz plik programu Visio z tą architekturą.

Składniki

Wiele składników tej architektury jest takich samych jak zasoby w podstawowej aplikacji internetowej usług app services, ponieważ hostowanie interfejsu użytkownika czatu w tej architekturze jest zgodne z architekturą podstawowej aplikacji internetowej usługi App Service. Składniki wyróżnione w tej sekcji koncentrują się na składnikach używanych do tworzenia i organizowania przepływów czatów oraz usług danych i usług uwidaczniających usługi LLM.

  • Usługa Azure Machine Edukacja to zarządzana usługa w chmurze używana do trenowania, wdrażania modeli uczenia maszynowego i zarządzania nimi. Ta architektura korzysta z kilku innych funkcji usługi Azure Machine Edukacja używanych do tworzenia i wdrażania przepływów wykonywalnych dla aplikacji sztucznej inteligencji obsługiwanych przez duże modele językowe:
    • Przepływ monitów usługi Azure Machine Edukacja to narzędzie programistyczne, które umożliwia tworzenie, ocenianie i wdrażanie przepływów, które łączą monity użytkownika, akcje za pomocą kodu języka Python i wywołania do llMs. Przepływ monitów jest używany w tej architekturze jako warstwa, która organizuje przepływy między monitem, różnymi magazynami danych i llM.
    • Zarządzane punkty końcowe online umożliwiają wdrażanie przepływu na potrzeby wnioskowania w czasie rzeczywistym. W tej architekturze są używane jako punkt końcowy paaS interfejsu użytkownika czatu w celu wywoływania przepływów monitów hostowanych przez usługę Azure Machine Edukacja.
  • Usługa Azure Storage służy do utrwalania plików źródłowych przepływu monitów na potrzeby tworzenia monitów dotyczących przepływu.
  • Usługa Azure Container Registry umożliwia tworzenie i przechowywanie obrazów kontenerów oraz artefaktów oraz zarządzanie nimi w prywatnym rejestrze dla wszystkich typów wdrożeń kontenerów. W tej architekturze przepływy są pakowane jako obrazy kontenerów i przechowywane w usłudze Azure Container Registry.
  • Azure OpenAI to w pełni zarządzana usługa, która zapewnia dostęp interfejsu API REST do dużych modeli językowych usługi Azure OpenAI, w tym zestawu modeli GPT-4, GPT-3.5-Turbo i osadzania. W tej architekturze oprócz dostępu do modelu jest ona używana do dodawania typowych funkcji przedsiębiorstwa, takich jak sieć wirtualna i link prywatny, obsługa tożsamości zarządzanej i filtrowanie zawartości.
  • Azure AI Search to usługa wyszukiwania w chmurze, która obsługuje wyszukiwanie pełnotekstowe, wyszukiwanie semantyczne, wyszukiwanie wektorowe i wyszukiwanie hybrydowe. Usługa Azure AI Search jest uwzględniona w architekturze, ponieważ jest to wspólna usługa używana w przepływach za aplikacjami do czatu. Usługa Azure AI Search może służyć do pobierania i indeksowania danych istotnych dla zapytań użytkowników. Przepływ monitu implementuje wzorzec RAG Pobieranie rozszerzonej generacji w celu wyodrębnienia odpowiedniego zapytania z monitu, zapytania dotyczącego wyszukiwania sztucznej inteligencji i użycia wyników jako danych uziemienia dla modelu usługi Azure OpenAI.

Przepływ monitu Edukacja maszyny platformy Azure

Zaplecze dla aplikacji do czatów dla przedsiębiorstw zwykle jest zgodne ze wzorcem podobnym do następującego przepływu:

  • Użytkownik wprowadza monit w niestandardowy interfejs użytkownika czatu
  • Ten monit jest wysyłany do zaplecza za pomocą kodu interfejsu
  • Intencja użytkownika (pytanie lub dyrektywa) jest wyodrębniona z monitu przez zaplecze
  • (opcjonalnie) Zaplecze określa magazyny danych, które przechowują dane istotne dla monitu użytkownika
  • Zaplecze wykonuje zapytania dotyczące odpowiednich magazynów danych
  • Zaplecze wysyła intencję, odpowiednie dane uziemienia i dowolną historię podaną w wierszu polecenia do usługi LLM.
  • Zaplecze zwraca wynik, aby można było go wyświetlić w interfejsie użytkownika

Zaplecze można zaimplementować w dowolnej liczbie języków i wdrożyć w różnych usługach platformy Azure. W tej architekturze wybrano przepływ monitów usługi Azure Machine Edukacja, ponieważ zapewnia usprawnione środowisko tworzenia, testowania i wdrażania przepływów, które organizują się między monitami, magazynami danych zaplecza i modułami LLM.

Sieć

Oprócz dostępu opartego na tożsamościach zabezpieczenia sieci są podstawą kompleksowej architektury czatu bazowego przy użyciu interfejsu OpenAI. Na wysokim poziomie architektura sieci zapewnia następujące elementy:

  • Pojedynczy bezpieczny punkt wejścia dla ruchu interfejsu użytkownika czatu
  • Ruch sieciowy jest filtrowany
  • Dane przesyłane są szyfrowane kompleksowo przy użyciu protokołu TLS
  • Eksfiltracja danych jest zminimalizowana przez utrzymywanie ruchu na platformie Azure przy użyciu usługi Private Link
  • Zasoby sieciowe są logicznie grupowane i odizolowane od siebie za pośrednictwem segmentacji sieci

Przepływy sieciowe

Diagram przedstawiający kompleksową architekturę czatu podstawowego z interfejsem OpenAI z numerami przepływów.

Rysunek 2. Przepływy sieciowe dla kompleksowej architektury czatów linii bazowej za pomocą interfejsu OpenAI

Dwa przepływy na tym diagramie zostały omówione w podstawowej aplikacji internetowej usług app services: 1. przepływ przychodzący od użytkownika końcowego do interfejsu użytkownika czatu i 2. przepływ usług App Service do usługi Azure PaaS. Zobacz ten artykuł, aby uzyskać szczegółowe informacje na temat tych przepływów. Ta sekcja koncentruje się na przepływie punktów końcowych online usługi Azure Machine Edukacja. Poniżej przedstawiono szczegółowe informacje o przepływie z interfejsu użytkownika czatu uruchomionego w podstawowej aplikacji internetowej usługi App Service do przepływu wdrożonego w usłudze Azure Machine Edukacja obliczeniach:

  1. Wywołanie z hostowanego interfejsu użytkownika czatu usługi App Service jest kierowane przez prywatny punkt końcowy do punktu końcowego usługi Azure Machine Edukacja online.
  2. Punkt końcowy online kieruje wywołanie do serwera z uruchomionym wdrożonym przepływem. Punkt końcowy online działa zarówno jako moduł równoważenia obciążenia, jak i router.
  3. Wywołania usług PaaS platformy Azure wymaganych przez wdrożony przepływ są kierowane za pośrednictwem zarządzanych prywatnych punktów końcowych.

Ruch przychodzący do usługi Azure Machine Edukacja

W tej architekturze publiczny dostęp do obszaru roboczego usługi Azure Machine Edukacja jest wyłączony i dostęp może wystąpić za pośrednictwem dostępu prywatnego, zgodnie z prywatnym punktem końcowym konfiguracji obszaru roboczego usługi Azure Machine Edukacja. W rzeczywistości prywatne punkty końcowe są używane w całej tej architekturze w celu uzupełnienia zabezpieczeń opartych na tożsamościach. Na przykład zezwalając interfejsowi użytkownika czatu hostowanego w usłudze App Service na łączenie się z usługami PaaS, które nie są widoczne dla publicznego Internetu, w tym z punktami końcowymi usługi Azure Machine Edukacja.

Dostęp do prywatnego punktu końcowego jest również wymagany do nawiązywania połączenia z obszarem roboczym usługi Azure Machine Edukacja na potrzeby tworzenia przepływu.

Diagram przedstawiający użytkownika łączącego się z obszarem roboczym usługi Azure Machine Edukacja za pośrednictwem pola przesiadkowego w celu utworzenia przepływu OpenAI z liczbami przepływów.

Rysunek 3. Przepływy sieciowe dla maszyny platformy Azure Edukacja autor przepływu monitu

Na diagramie przedstawiono autor przepływu monitów łączący się za pośrednictwem usługi Azure Bastion z serwerem przesiadkowym maszyny wirtualnej. Z tego serwera przesiadkowego autor może nawiązać połączenie z maszyną Edukacja Workspace za pośrednictwem prywatnego punktu końcowego w tej samej sieci co serwer przesiadkowy. Połączenie ivity z siecią wirtualną można również osiągnąć za pośrednictwem bram usługi ExpressRoute lub sieci VPN oraz komunikacji równorzędnej sieci wirtualnych.

Przepływ z usługi Azure Machine Edukacja zarządzanej sieci wirtualnej do usług PaaS platformy Azure

Zaleca się skonfigurowanie obszaru roboczego usługi Azure Machine Edukacja pod kątem izolacji zarządzanej sieci wirtualnej z konfiguracją, która wymaga zatwierdzenia wszystkich połączeń wychodzących. Ta architektura jest zgodna z tym zaleceniem. Istnieją dwa typy zatwierdzonych reguł ruchu wychodzącego. Wymagane reguły ruchu wychodzącego to zasoby wymagane do działania rozwiązania, takie jak Azure Container Registry i Azure Storage. Reguły ruchu wychodzącego zdefiniowane przez użytkownika to zasoby niestandardowe, takie jak Azure OpenAI lub Azure AI Search, które będą używane przez przepływ pracy. Twoim zadaniem jest skonfigurowanie reguł ruchu wychodzącego zdefiniowanego przez użytkownika, podczas gdy wymagane reguły ruchu wychodzącego są konfigurowane podczas tworzenia zarządzanej sieci wirtualnej.

Reguły ruchu wychodzącego mogą być prywatnymi punktami końcowymi, tagami usługi lub nazwami FQDN dla zewnętrznych publicznych punktów końcowych. W tej architekturze łączność z usługami platformy Azure, takimi jak Azure Container Registry, Azure Storage, Azure Key Vault, Azure OpenAI i Azure AI Search, są połączone za pośrednictwem łącza prywatnego. Chociaż nie w tej architekturze, niektóre typowe operacje, które mogą wymagać skonfigurowania reguły ruchu wychodzącego FQDN, pobierają pakiet pip, klonują repozytorium GitHub, pobierając podstawowe obrazy kontenerów z repozytoriów zewnętrznych.

Segmentacja i zabezpieczenia sieci wirtualnej

Sieć w tej architekturze ma oddzielne podsieci dla następujących elementów:

  • Application Gateway
  • Składniki integracji usługi App Service
  • Prywatne punkty końcowe
  • Azure Bastion
  • Maszyna wirtualna przesiadkowa
  • Trenowanie — nie jest używane do trenowania modelu w tej architekturze
  • Scoring (Ocenianie)

Każda podsieć ma sieciową grupę zabezpieczeń, która ogranicza zarówno ruch przychodzący, jak i wychodzący dla tych podsieci, tylko do tego, co jest wymagane. W poniższej tabeli przedstawiono uproszczony widok reguł sieciowej grupy zabezpieczeń dodaną do każdej podsieci. Tabela zawiera nazwę reguły i funkcję.

Podsieć Przychodzący Wychodzący
snet-appGateway Dodatki dla naszych użytkowników interfejsu użytkownika czatu źródłowe adresy IP (takie jak publiczny Internet) oraz wymagane elementy dla usługi Dostęp do prywatnego punktu końcowego usługi aplikacja systemu Azure oraz wymagane elementy dla usługi.
snet-PrivateEndpoints Zezwalaj tylko na ruch z sieci wirtualnej. Zezwalaj tylko na ruch do sieci wirtualnej.
snet-AppService Zezwalaj tylko na ruch z sieci wirtualnej. Zezwalaj na dostęp do prywatnych punktów końcowych i usługi Azure Monitor.
AzureBastionSubnet Zobacz wskazówki dotyczące pracy z dostępem sieciowej grupy zabezpieczeń i usługą Azure Bastion Zobacz wskazówki dotyczące pracy z dostępem sieciowej grupy zabezpieczeń i usługą Azure Bastion
snet-jumpbox Zezwalaj na przychodzące protokoły RDP i SSH z podsieci hosta usługi Bastion. Zezwalaj na dostęp do prywatnych punktów końcowych
snet-agents Zezwalaj tylko na ruch z sieci wirtualnej. Zezwalaj tylko na ruch do sieci wirtualnej.
snet-training Zezwalaj tylko na ruch z sieci wirtualnej. Zezwalaj tylko na ruch do sieci wirtualnej.
snet-scoring Zezwalaj tylko na ruch z sieci wirtualnej. Zezwalaj tylko na ruch do sieci wirtualnej.

Cały inny ruch jest jawnie odrzucany.

Podczas implementowania segmentacji i zabezpieczeń sieci wirtualnej należy wziąć pod uwagę następujące kwestie.

  • Włącz ochronę przed atakami DDoS dla sieci wirtualnej z podsiecią, która jest częścią bramy aplikacji z publicznym adresem IP.
  • W miarę możliwości dodaj sieciową grupę zabezpieczeń do każdej podsieci. Należy użyć najostrzejszych reguł, które umożliwiają korzystanie z pełnej funkcjonalności rozwiązania.
  • Użyj grup zabezpieczeń aplikacji. Grupy zabezpieczeń aplikacji umożliwiają grupowanie sieciowych grup zabezpieczeń, co ułatwia tworzenie reguł w złożonych środowiskach.

Filtrowanie zawartości i monitorowanie nadużyć

Usługa Azure OpenAI zawiera system filtrowania zawartości, który używa zestawu modeli klasyfikacji do wykrywania i zapobiegania określonym kategoriom potencjalnie szkodliwej zawartości w monitach wejściowych i uzupełnianiu danych wyjściowych. Kategorie potencjalnie szkodliwej zawartości obejmują nienawiść, seksualną, samookaleczenia, przemoc, wulgaryzmy i jailbreak (zawartość przeznaczona do obejścia ograniczeń LLM). Można skonfigurować ścisłość tego, co chcesz filtrować zawartość dla każdej kategorii, z opcjami niskimi, średnimi lub wysokimi. Ta architektura referencyjna przyjmuje rygorystyczne podejście. Ustawienia należy dostosować zgodnie z wymaganiami.

Oprócz filtrowania zawartości usługa Azure OpenAI implementuje funkcje monitorowania nadużyć. Monitorowanie nadużyć to operacja asynchroniczna przeznaczona do wykrywania i ograniczania liczby wystąpień cyklicznej zawartości i/lub zachowań sugerujących użycie usługi w sposób, który może naruszać kodeks postępowania usługi Azure OpenAI. Możesz zażądać wykluczenia monitorowania nadużyć i przeglądu ludzkiego , na przykład jeśli dane są wysoce wrażliwe lub czy istnieją wewnętrzne zasady lub obowiązujące przepisy prawne, które uniemożliwiają przetwarzanie danych w celu wykrywania nadużyć.

Niezawodność

Podstawowa architektura aplikacji internetowej usługi App Service koncentruje się na nadmiarowości strefowej dla kluczowych usług regionalnych. Strefy dostępności są fizycznie oddzielone lokalizacjami w obrębie regionu. Zapewniają one nadmiarowość w regionie na potrzeby obsługi usług, gdy w nich wdrożono co najmniej dwa wystąpienia. W przypadku przestoju w jednej strefie inne strefy w regionie mogą nadal nie mieć wpływu. Architektura zapewnia również wystarczającą liczbę wystąpień usług platformy Azure i konfigurację tych usług do rozpowszechniania w różnych strefach dostępności. Zapoznaj się z punktem odniesienia , aby przejrzeć te wskazówki.

Ta sekcja dotyczy niezawodności z perspektywy składników tej architektury, które nie są uwzględnione w punkcie odniesienia usługi App Service, w tym azure Machine Edukacja, Azure OpenAI i Azure AI Search.

Nadmiarowość strefowa dla wdrożeń przepływu

Wdrożenia w przedsiębiorstwie zwykle wymagają co najmniej nadmiarowości strefowej. Aby to osiągnąć na platformie Azure, zasoby muszą obsługiwać strefy dostępności i należy wdrożyć co najmniej wystąpienia zasobu lub włączyć obsługę platformy, gdy kontrola wystąpienia nie jest dostępna. Obecnie usługa Azure Machine Edukacja compute nie oferuje obsługi stref dostępności. Aby wyeliminować potencjalny wpływ awarii na poziomie centrum danych na składniki AML, należy ustanowić klastry w różnych regionach wraz z wdrożeniem modułu równoważenia obciążenia w celu dystrybucji wywołań między tymi klastrami. Należy użyć kontroli kondycji, aby upewnić się, że wywołania są kierowane tylko do klastrów, które działają prawidłowo.

Wdrażanie przepływów monitów nie jest ograniczone do klastrów obliczeniowych usługi Azure Machine Edukacja. Przepływ wykonywalny, będący konteneryzowaną aplikacją, można wdrożyć w dowolnej usłudze platformy Azure zgodnej z kontenerami. Te opcje obejmują usługi, takie jak Azure Kubernetes Service (AKS), Azure Functions, Azure Container Apps (ACA) i aplikacja systemu Azure Service. Każda z tych usług obsługuje strefy dostępności. Aby uzyskać nadmiarowość strefową na potrzeby wykonywania przepływu monitów, bez dodatkowej złożoności wdrożenia w wielu regionach należy wdrożyć przepływy w jednej z tych usług.

Poniżej przedstawiono alternatywną architekturę, w której przepływy monitów są wdrażane w usłudze aplikacja systemu Azure Service. Usługa App Service jest używana w tej architekturze, ponieważ obciążenie korzysta już z niego dla interfejsu użytkownika czatu i nie skorzystałoby z wprowadzenia nowej technologii do obciążenia. Zespoły obciążeń, które mają doświadczenie z usługą AKS, powinny rozważyć wdrożenie w tym środowisku, zwłaszcza jeśli usługa AKS jest używana dla innych składników obciążenia.

Diagram przedstawiający kompleksową architekturę czatu podstawowego z interfejsem OpenAI z przepływem monitu wdrożonym w usłudze aplikacja systemu Azure Service.

Rysunek 4. Alternatywna architektura kompleksowego czatu przy użyciu interfejsu OpenAI wdrażającego przepływy monitów w usługach aplikacja systemu Azure

Diagram jest numerowany dla obszarów, które są godne uwagi w tej architekturze:

  1. Przepływy są nadal tworzone w usłudze Azure Machine Edukacja przepływie monitów, a architektura sieci usługi Azure Machine Edukacja jest niezmieniona. Autorzy usługi Flow nadal łączą się ze środowiskiem tworzenia obszaru roboczego za pośrednictwem prywatnego punktu końcowego, a zarządzane prywatne punkty końcowe są używane do łączenia się z usługami platformy Azure podczas testowania przepływów.
  2. Ten kropkowany wiersz wskazuje, że konteneryzowane przepływy wykonywalne są wypychane do usługi Azure Container Registry (ACR). Nie pokazano na diagramie to potoki, które konteneryzują przepływy i wypychają do usługi ACR.
  3. W tym samym planie usługi App Service wdrożono inną aplikację internetową, która już hostuje interfejs użytkownika czatu. Nowa aplikacja internetowa hostuje przepływ monitu konteneryzowanego, colocated w tym samym planie usługi App Service, który działa już co najmniej trzy wystąpienia, rozłożone w różnych strefach dostępności. Te wystąpienia usługi App Service łączą się z usługą ACR za pośrednictwem prywatnego punktu końcowego podczas ładowania obrazu kontenera przepływu monitu.
  4. Kontener przepływu monitów musi nawiązać połączenie ze wszystkimi usługami zależnym na potrzeby wykonywania przepływu. W tej architekturze, która byłaby usługą Azure AI Search i Azure OpenAI. Usługi PaaS, które zostały uwidocznione tylko w podsieci prywatnego punktu końcowego zarządzanego przez usługę AML, muszą być teraz widoczne w sieci wirtualnej, aby można było ustanowić linię wzroku z usługi App Service.

Azure OpenAI — niezawodność

Usługa Azure OpenAI obecnie nie obsługuje stref dostępności. Aby zminimalizować potencjalny wpływ katastrofy na poziomie centrum danych na wdrożenia modelu w usłudze Azure OpenAI, należy wdrożyć usługę Azure OpenAI w różnych regionach wraz z wdrożeniem modułu równoważenia obciążenia w celu dystrybucji wywołań między regionami. Należy użyć kontroli kondycji, aby upewnić się, że wywołania są kierowane tylko do klastrów, które działają prawidłowo.

Aby efektywnie obsługiwać wiele wystąpień, zalecamy zewnętrzne dostosowywanie plików, takich jak konto usługi Azure Storage geograficznie nadmiarowe. Spowoduje to zminimalizowanie stanu przechowywanego w usłudze Azure OpenAI na region. Dostrajanie będzie nadal konieczne dla każdego wystąpienia w celu hostowania wdrożenia modelu.

Ważne jest, aby monitorować wymaganą przepływność w zakresie tokenów na minutę (TPM) i żądań na minutę (RPM), aby upewnić się, że przypisano wystarczającą liczbę modułów TPM z limitu przydziału, aby zaspokoić zapotrzebowanie na wdrożenia i zapobiec ograniczaniu wywołań do wdrożonych modeli. Bramę, taką jak usługa Azure API Management (APIM), można wdrożyć przed usługami OpenAI i można skonfigurować pod kątem ponawiania próby w przypadku błędów przejściowych i ograniczania przepustowości. Usługa APIM może być również używana jako wyłącznik , aby zapobiec przeciążeniu usługi wywołaniem, przekraczając limit przydziału.

Azure AI Search — niezawodność

Wdrażanie usługi Azure AI Search z warstwą cenową Standardowa lub nowszą w regionie obsługującym strefy dostępności i wdrażanie co najmniej trzech replik. Repliki są automatycznie rozłożone równomiernie w różnych strefach dostępności.

Rozważ następujące wskazówki dotyczące określania odpowiedniej liczby replik i partycji:

  • Postępuj zgodnie ze wskazówkami, aby monitorować usługę Azure AI Search.
  • Użyj metryk monitorowania i dzienników i analizy wydajności, aby określić odpowiednią liczbę replik, aby uniknąć ograniczania i partycji opartych na zapytaniach, aby uniknąć ograniczania opartego na indeksie.

Azure Machine Edukacja — niezawodność

W przypadku wdrożenia w klastrach obliczeniowych za punktem końcowym usługi Azure Machine Edukacja zarządzanym online należy wziąć pod uwagę następujące wskazówki dotyczące skalowania:

  • Postępuj zgodnie ze wskazówkami, aby automatycznie skalować punkty końcowe online, aby upewnić się, że wystarczająca pojemność jest dostępna do spełnienia wymagań. Jeśli sygnały użycia nie są wystarczająco czasochłonne ze względu na użycie serii, rozważ nadmierną aprowizowanie, aby zapobiec zbyt małej dostępności wystąpień.
  • Rozważ utworzenie reguł skalowania na podstawie metryk wdrożenia, takich jak obciążenie procesora CPU i metryki punktu końcowego, takie jak opóźnienie żądania.
  • W przypadku aktywnego wdrożenia produkcyjnego należy wdrożyć nie mniej niż trzy wystąpienia.
  • Unikaj wdrożeń względem wystąpień w użyciu. Zamiast tego należy wdrożyć w nowym wdrożeniu i przenieść ruch po zakończeniu wdrażania, aby odbierać ruch.

Uwaga

Te same wskazówki dotyczące skalowalności usługi App Service z architektury bazowej mają zastosowanie w przypadku wdrażania przepływu w usłudze aplikacja systemu Azure Service.

Zabezpieczenia

Ta architektura implementuje zarówno sieć, jak i obwód zabezpieczeń tożsamości. Z punktu widzenia sieci jedyną rzeczą, która powinna być dostępna z Internetu, jest interfejs użytkownika czatu za pośrednictwem usługi App Gateway. Z perspektywy tożsamości interfejs użytkownika czatu powinien uwierzytelniać i autoryzować żądania. Tożsamości zarządzane są używane w miarę możliwości do uwierzytelniania aplikacji w usługach platformy Azure.

Zabezpieczenia sieci zostały omówione w sekcji dotyczącej sieci. W tej sekcji omówiono zarządzanie tożsamościami i dostępem oraz zagadnienia dotyczące zabezpieczeń dotyczące rotacji kluczy i dostrajania modelu Azure OpenAI.

Zarządzanie tożsamościami i dostępem

Poniższe wskazówki rozszerzają wskazówki dotyczące zarządzania tożsamościami i dostępem w punkcie odniesienia usługi App Service:

  • Utwórz oddzielne tożsamości zarządzane dla następujących zasobów AML, jeśli ma to zastosowanie:
    • Obszar roboczy — używany podczas tworzenia przepływu i zarządzania
    • Wystąpienie obliczeniowe — używane podczas testowania przepływów
    • Punkt końcowy online — używany przez wdrożony przepływ, jeśli został wdrożony w zarządzanym punkcie końcowym online
  • Implementowanie mechanizmów kontroli dostępu do tożsamości dla interfejsu użytkownika czatu przy użyciu identyfikatora Entra firmy Microsoft

Role RBAC usługi Azure Machine Edukacja

Istnieją pięć ról domyślnych, których można użyć do zarządzania dostępem do obszaru roboczego usługi Azure Machine Edukacja: AzureML badacze dancyh, Operator obliczeniowy azureML, czytelnik, współautor i właściciel. Oprócz tych ról domyślnych istnieje czytelnik wpisów tajnych Połączenie ion usługi AzureML i użytkownik rejestru AzureML, który udziela dostępu do zasobów obszaru roboczego, takich jak wpisy tajne i rejestr obszaru roboczego.

Ta architektura jest zgodna z zasadą najniższych uprawnień, przypisując role tylko do powyższych tożsamości, w których są wymagane. Poniżej przedstawiono przypisania ról.

Tożsamość zarządzana Scope Przypisania ról
Tożsamość zarządzana obszaru roboczego Grupa zasobów Współautor
Tożsamość zarządzana obszaru roboczego Konto magazynu obszaru roboczego Współautor danych w usłudze Blob Storage
Tożsamość zarządzana obszaru roboczego Konto magazynu obszaru roboczego Uprzywilejowany współautor danych plików magazynu
Tożsamość zarządzana obszaru roboczego Magazyn kluczy obszaru roboczego Administracja istrator usługi Key Vault
Tożsamość zarządzana obszaru roboczego Rejestr kontenerów obszaru roboczego ACRPush
Tożsamość zarządzana punktu końcowego w trybie online Rejestr kontenerów obszaru roboczego AcrPull
Tożsamość zarządzana punktu końcowego w trybie online Konto magazynu obszaru roboczego Czytelnik danych obiektu BLOB usługi Storage
Tożsamość zarządzana punktu końcowego w trybie online Obszar roboczy Edukacja maszyny Czytelnik wpisów tajnych Połączenie ionu obszaru roboczego usługi AzureML
Tożsamość zarządzana wystąpienia obliczeniowego Rejestr kontenerów obszaru roboczego ACRPull
Tożsamość zarządzana wystąpienia obliczeniowego Konto magazynu obszaru roboczego Czytelnik danych obiektu BLOB usługi Storage

Wymiana kluczy

W tej architekturze istnieją dwie usługi korzystające z uwierzytelniania opartego na kluczach: Azure OpenAI i Azure Machine Edukacja zarządzanym punkcie końcowym online. Ponieważ używasz uwierzytelniania opartego na kluczach dla tych usług, ważne jest:

  • Przechowuj klucz w bezpiecznym magazynie, takim jak usługa Azure Key Vault, na potrzeby dostępu na żądanie od autoryzowanych klientów (takich jak aplikacja internetowa platformy Azure hostująca kontener przepływu monitów).
  • Zaimplementuj strategię rotacji kluczy. W przypadku ręcznego obracania kluczy należy utworzyć zasady wygasania kluczy i użyć zasad platformy Azure do monitorowania, czy klucz został obracany.

Dostrajanie modelu OpenAI

Jeśli w implementacji dostrajasz modele OpenAI, rozważ następujące wskazówki:

  • Jeśli przekazujesz dane szkoleniowe na potrzeby dostrajania, rozważ użycie kluczy zarządzanych przez klienta do szyfrowania tych danych.
  • Jeśli przechowujesz dane szkoleniowe w magazynie, takim jak Usługa Azure Blob Storage, rozważ użycie klucza zarządzanego przez klienta do szyfrowania danych, użycie tożsamości zarządzanej w celu kontrolowania dostępu do danych oraz prywatnego punktu końcowego w celu nawiązania połączenia z danymi.

Efektywność wydajności

Efektywność wydajności to możliwość skalowania obciążenia w celu zaspokojenia zapotrzebowania użytkowników w wydajny sposób. Aby uzyskać więcej informacji, zobacz Omówienie filaru wydajności.

W tej sekcji omówiono wydajność z perspektywy usług Azure Search, Azure OpenAI i Azure Machine Edukacja.

Azure Search — wydajność

Postępuj zgodnie ze wskazówkami, aby analizować wydajność w usłudze Azure AI Search.

Azure OpenAI — wydajność

  • Określ, czy aplikacja wymaga aprowizowanej przepływności , czy będzie używać modelu hostingu współużytkowanego (zużycie). Aprowizowana przepływność oferuje pojemność przetwarzania zarezerwowanego dla wdrożeń modelu OpenAI, zapewniając przewidywalną wydajność i przepływność dla modeli. Ten model rozliczeń jest w przeciwieństwie do modelu hostingu współużytkowanego (zużycie), który jest najlepszym rozwiązaniem i może podlegać hałaśliwym sąsiadom lub innym elementom stresu na platformie.
  • W przypadku aprowizowanej przepływności należy monitorować wykorzystanie zarządzane przez aprowizację

Azure Machine Edukacja — wydajność

W przypadku wdrażania w usłudze Azure Machine Edukacja punktów końcowych online:

  • Postępuj zgodnie ze wskazówkami dotyczącymi automatycznego skalowania punktu końcowego online, aby zachować ścisłe dopasowanie do zapotrzebowania bez nadmiernej aprowizacji, szczególnie w okresach niskiego użycia.
  • Wybierz odpowiednią jednostkę SKU maszyny wirtualnej dla punktu końcowego online, aby spełnić cele dotyczące wydajności. Chcesz przetestować wydajność zarówno mniejszej liczby wystąpień, jak i większych jednostek SKU oraz większej liczby wystąpień i mniejszych jednostek SKU, aby znaleźć optymalną konfigurację.

Optymalizacja kosztów

Optymalizacja kosztów dotyczy sposobów zmniejszenia niepotrzebnych wydatków i poprawy wydajności operacyjnej. Aby uzyskać więcej informacji, zobacz Omówienie filaru optymalizacji kosztów.

Aby wyświetlić przykład cen dla tego scenariusza, użyj kalkulatora cen platformy Azure. Musisz dostosować przykład, aby był zgodny z użyciem, ponieważ w tym przykładzie uwzględniono tylko składniki zawarte w architekturze. Najdroższe składniki w tym scenariuszu to interfejs użytkownika czatu i przetwarzanie przepływów monitów oraz usługa Azure AI Search, więc poszukaj optymalizacji wokół tych zasobów, aby zaoszczędzić najwięcej kosztów.

Compute

Przepływ monitu usługi Azure Machine Edukacja obsługuje wiele opcji hostowania przepływów wykonywalnych. Opcje obejmują zarządzane punkty końcowe online w usłudze Azure Machine Edukacja, Azure Kubernetes Service, aplikacja systemu Azure Service i Azure Container Service. Każda z tych opcji ma własny model rozliczeń. Wybór zasobów obliczeniowych ma wpływ na całkowity koszt rozwiązania.

Azure OpenAI

Azure OpenAI to usługa oparta na użyciu, a podobnie jak w przypadku dowolnej usługi opartej na użyciu, kontrolowanie zapotrzebowania na podaż jest podstawową kontrolą kosztów. Aby to zrobić w usłudze Azure OpenAI, należy stosować kombinację podejść:

  • Kontrolowanie klientów. Żądania klientów są podstawowym źródłem kosztów w modelu zużycia, ponieważ takie kontrolowanie zachowania klienta ma kluczowe znaczenie. Wszyscy klienci powinni:
    • Należy zatwierdzić. Unikaj uwidaczniania usługi w taki sposób, że obsługuje dostęp bezpłatny dla wszystkich. Ogranicz dostęp zarówno za pośrednictwem mechanizmów kontroli sieci, jak i tożsamości (klucz lub kontrola dostępu oparta na rolach).
    • Być samokontrolowane. Wymagaj od klientów używania ograniczeń ograniczania tokenów oferowanych przez wywołania interfejsu API, takich jak max_tokens i max_completions.
    • Używaj przetwarzania wsadowego, gdzie jest to praktyczne. Przejrzyj klientów, aby upewnić się, że są odpowiednio wsadowe monity.
    • Zoptymalizuj długość monitu i odpowiedzi. Dłuższe monity zużywają więcej tokenów, zwiększając koszt, ale monity, które nie mają wystarczającego kontekstu, nie pomagają modelom uzyskać dobre wyniki. Utwórz zwięzłe monity, które zapewniają wystarczającą ilość kontekstu, aby umożliwić modelowi generowanie przydatnej odpowiedzi. Podobnie należy zoptymalizować limit długości odpowiedzi.
  • Użycie środowiska zabaw platformy Azure OpenAI powinno być w razie potrzeby i w wystąpieniach przedprodukcyjnych, więc te działania nie generują kosztów produkcji.
  • Wybierz odpowiedni model AI. Wybór modelu odgrywa również dużą rolę w ogólnym koszcie usługi Azure OpenAI. Wszystkie modele mają mocne i słabe strony i są indywidualnie wyceniane. Użycie prawidłowego modelu dla przypadku użycia może upewnić się, że nie jest nadmiernie obciążany model, gdy tańszy model daje akceptowalne wyniki. W tej implementacji referencyjnej rozmowy GPT 3.5-turbo został wybrany przez GPT-4, aby zaoszczędzić na wielkości kosztów wdrażania modelu przy jednoczesnym uzyskaniu wystarczających wyników.
  • Informacje o punktach przerwania rozliczeń — dostrajanie jest naliczane za godzinę. Aby być najbardziej wydajnym, należy użyć jak największej ilości czasu dostępnego na godzinę, aby poprawić wyniki dostrajania, unikając po prostu poślizgu do następnego okresu rozliczeniowego. Podobnie koszt 100 obrazów z generowania obrazu jest taki sam jak koszt 1 obrazu. Maksymalizuj punkty przerwania cen na twoją korzyść.
  • Omówienie modeli rozliczeń — usługa Azure OpenAI jest również dostępna w modelu rozliczeń opartym na zobowiązaniach za pośrednictwem oferty aprowizowanej przepływności . Jeśli masz przewidywalne wzorce użycia, oceń przejście do tego modelu rozliczeń przed zakupem, jeśli ma być bardziej opłacalne na woluminie użycia.
  • Ustawianie limitów aprowizacji — upewnij się, że wszystkie przydziały aprowizacji są przydzielane tylko do modeli, które mają być częścią obciążenia na podstawie modelu. Przepływność do już wdrożonych modeli nie jest ograniczona do tego aprowizowanego limitu przydziału, podczas gdy przydział dynamiczny jest włączony. Należy pamiętać, że limit przydziału nie jest bezpośrednio mapowy na koszty i może się różnić.
  • Monitorowanie użycia płatności zgodnie z rzeczywistym użyciem — w przypadku korzystania z płatności zgodnie z rzeczywistym użyciem monitoruj użycie tokenów na minutę i żądania na minutę (RPM). Te informacje umożliwiają informowanie o decyzjach projektowych dotyczących architektury, takich jak modele do użycia, a także optymalizowanie rozmiarów monitów.
  • Monitorowanie aprowizowanego użycia przepływności — jeśli używasz aprowizowanej przepływności, monitoruj użycie zarządzane przez aprowizację, aby upewnić się, że nie korzystasz z zakupionej aprowizowanej przepływności.
  • Zarządzanie kosztami — postępuj zgodnie ze wskazówkami dotyczącymi korzystania z funkcji zarządzania kosztami w usłudze OpenAI , aby monitorować koszty, ustawiać budżety na zarządzanie kosztami i tworzyć alerty, aby powiadamiać uczestników projektu o ryzyku lub anomaliach.

Operacje modelu dużego języka (LLMOps)

Wdrożenie rozwiązań do czatów opartych na usłudze Azure OpenAI, takich jak ta architektura, powinno postępować zgodnie ze wskazówkami w temacie LLMOps z przepływem monitów za pomocą usług Azure DevOps i GitHub. Ponadto należy rozważyć najlepsze rozwiązania dotyczące architektur ciągłej integracji/ciągłego wdrażania i architektur zabezpieczonych siecią. Poniższe wskazówki dotyczą implementacji przepływów i skojarzonej infrastruktury w oparciu o zalecenia dotyczące metodyki LLMOps. Te wskazówki dotyczące wdrażania nie obejmują elementów aplikacji frontonu, które nie są niezmienione w architekturze aplikacji internetowej o wysokiej dostępności punktu odniesienia.

Opracowywanie zawartości

Przepływ monitów usługi Azure Machine Edukacja oferuje zarówno środowisko tworzenia oparte na przeglądarce w usłudze Azure Machine Edukacja Studio, jak i za pośrednictwem rozszerzenia programu VS Code. Obie opcje przechowują kod przepływu jako pliki. W przypadku korzystania z usługi Azure Machine Edukacja Studio pliki są przechowywane na koncie usługi Azure Storage. Podczas pracy w programie VS Code pliki są przechowywane w lokalnym systemie plików.

Aby stosować najlepsze rozwiązania w zakresie wspólnego programowania, pliki źródłowe powinny być przechowywane w repozytorium kodu źródłowego online, takim jak GitHub. Takie podejście ułatwia śledzenie wszystkich zmian kodu, współpracę między autorami przepływu a integracją z przepływami wdrażania, które testują i weryfikują wszystkie zmiany kodu.

W przypadku programowania w przedsiębiorstwie należy użyć rozszerzenia programu VS Code i zestawu SDK/interfejsu wiersza polecenia przepływu monitów do programowania. Autorzy przepływów monitów mogą kompilować i testować swoje przepływy z programu VS Code i integrować lokalnie przechowywane pliki z systemem kontroli źródła online i potokami. Chociaż środowisko oparte na przeglądarce jest dobrze dostosowane do programowania eksploracyjnego, z pewnymi pracami można go zintegrować z systemem kontroli źródła. Folder przepływu można pobrać ze strony przepływu w Files panelu, rozpakować i wypchnąć do systemu kontroli źródła.

Ocena

Należy przetestować przepływy używane w aplikacji czatu tak samo jak inne artefakty oprogramowania. Trudno jest określić i potwierdzić pojedynczą "właściwą" odpowiedź dla danych wyjściowych usługi LLM, ale możesz użyć samej usługi LLM do oceny odpowiedzi. Rozważ zaimplementowanie następujących automatycznych ocen przepływów LLM:

  • Dokładność klasyfikacji: ocenia, czy llM daje "poprawny" lub "niepoprawny" wynik i agreguje wyniki w celu uzyskania oceny dokładności.
  • Spójność: ocenia, jak dobrze są napisane zdania w przewidywanej odpowiedzi modelu i jak spójnie łączą się ze sobą.
  • Płynność: ocenia przewidywaną odpowiedź modelu na jego dokładność gramatyczną i językową.
  • Podstawy względem kontekstu: ocenia, jak dobrze przewidywane odpowiedzi modelu są oparte na wstępnie skonfigurowanym kontekście. Nawet jeśli odpowiedzi LLM są poprawne, jeśli nie można ich zweryfikować w danym kontekście, takie odpowiedzi nie są uziemione.
  • Istotność: ocenia, jak dobrze przewidywane odpowiedzi modelu są zgodne z pytaniem zadawanym.

Podczas implementowania automatycznych ocen należy wziąć pod uwagę następujące wskazówki:

  • Generowanie wyników na podstawie ocen i mierzenie ich względem wstępnie zdefiniowanego progu sukcesu. Użyj tych wyników, aby zgłosić przebieg testu/niepowodzenie w potokach.
  • Niektóre z tych testów wymagają wstępnie skonfigurowanych danych wejściowych pytań, kontekstu i podstawy prawdy.
  • Uwzględnij wystarczającą liczbę par odpowiedzi na pytania, aby upewnić się, że wyniki testów są wiarygodne, a zalecane jest co najmniej 100–150 par. Te pary odpowiedzi na pytania są określane jako "złoty zestaw danych". Większa populacja może być wymagana w zależności od rozmiaru i domeny zestawu danych.
  • Unikaj używania funkcji LLMs do generowania dowolnego z danych w złotym zestawie danych.

Przepływ wdrażania

Diagram przedstawiający przepływ wdrażania dla przepływu monitu.

Rysunek 5. Monitowanie o wdrożenie przepływu

  1. Inżynier/analityk danych monitu otwiera gałąź funkcji, w której pracują nad konkretnym zadaniem lub funkcją. Inżynier monitu/analityk danych iteruje przepływ przy użyciu funkcji Monituj przepływ dla programu VS Code, okresowo zatwierdzając zmiany i wypychając te zmiany do gałęzi funkcji.

  2. Po zakończeniu lokalnego programowania i eksperymentowania monit inżynier/analityk danych otwiera żądanie ściągnięcia z gałęzi Feature do gałęzi Main. Żądanie ściągnięcia wyzwala potok żądania ściągnięcia. Ten potok przeprowadza szybkie kontrole jakości, które powinny obejmować:

    • Wykonywanie przepływów eksperymentowania
    • Wykonywanie skonfigurowanych testów jednostkowych
    • Kompilacja bazy kodu
    • Analiza kodu statycznego
  3. Potok może zawierać krok, który wymaga ręcznego zatwierdzenia żądania ściągnięcia przez co najmniej jednego członka zespołu przed scaleniem. Osoba zatwierdzająca nie może być osoba zatwierdzająca, a oni mush mają wiedzę dotyczącą przepływu monitu i znajomość wymagań projektu. Jeśli żądanie ściągnięcia nie zostanie zatwierdzone, scalanie zostanie zablokowane. Jeśli żądanie ściągnięcia zostało zatwierdzone lub nie ma kroku zatwierdzania, gałąź funkcji zostanie scalona z gałęzią Main.

  4. Scalanie z main wyzwala proces kompilacji i wydania dla środowiska deweloperskiego. Szczególnie:

    a. Potok ciągłej integracji jest wyzwalany z scalania do głównego. Potok ciągłej integracji wykonuje wszystkie kroki wykonywane w potoku żądania ściągnięcia i następujące kroki:

    • Przepływ eksperymentowania
    • Przepływ oceny
    • Rejestruje przepływy w usłudze Azure Machine Edukacja Registry po wykryciu zmian

    b. Potok ciągłego wdrażania jest wyzwalany po zakończeniu potoku ciągłej integracji. Ten przepływ wykonuje następujące kroki:

    • Wdraża przepływ z usługi Azure Machine Edukacja Registry do punktu końcowego online usługi Azure Machine Edukacja
    • Uruchamia testy integracji przeznaczone dla punktu końcowego online
    • Uruchamia testy weryfikacyjne kompilacji przeznaczone dla punktu końcowego online
  5. Proces zatwierdzania jest wbudowany w proces podwyższania poziomu wydania — po zatwierdzeniu procesy ciągłej integracji i ciągłego wdrażania opisane w krokach 4.a. & 4.b. są powtarzane, przeznaczone dla środowiska testowego. Kroki a. i b. są takie same, z wyjątkiem tego, że testy akceptacyjnych użytkowników są uruchamiane po testach weryfikacyjnych kompilacji w środowisku testowym.

  6. Procesy ciągłej integracji i ciągłego wdrażania opisane w krokach 4.a. & 4.b. są uruchamiane w celu podwyższenia poziomu wydania do środowiska produkcyjnego po zweryfikowaniu i zatwierdzeniu środowiska testowego.

  7. Po wydaniu w środowisku na żywo mają miejsce zadania operacyjne monitorowania metryk wydajności i oceny wdrożonego programu LLM. Obejmuje to, ale nie jest ograniczone do:

    • Wykrywanie dryfu danych
    • Obserwowanie infrastruktury
    • Zarządzanie kosztami
    • Komunikacja wydajności modelu z uczestnikami projektu

Wskazówki dotyczące wdrażania

Usługa Azure Machine Edukacja Endpoints umożliwia wdrażanie modeli w sposób, który zapewnia elastyczność podczas wydawania do środowiska produkcyjnego. Rozważ następujące strategie, aby zapewnić najlepszą wydajność i jakość modelu:

  • Wdrożenia niebieskie/zielone: dzięki tej strategii można bezpiecznie wdrożyć nową wersję usługi internetowej w ograniczonej grupie użytkowników lub żądań przed skierowaniem całego ruchu do nowego wdrożenia.
  • Testowanie A/B: Nie tylko wdrożenia niebieskie/zielone są skuteczne w celu bezpiecznego wprowadzania zmian, mogą również służyć do wdrażania nowego zachowania, które umożliwia podzbiorowi użytkowników ocenę wpływu zmiany.
  • Uwzględnij linting plików języka Python, które są częścią przepływu monitu w potokach. Linting sprawdza zgodność ze standardami stylów, błędami, złożonością kodu, nieużywanymi importami i nazewnictwem zmiennych.
  • Podczas wdrażania przepływu w obszarze roboczym usługi Azure Machine Edukacja odizolowanej od sieci użyj własnego agenta, aby wdrożyć artefakty w zasobach platformy Azure.
  • Rejestr modeli usługi Azure Machine Edukacja powinien zostać zaktualizowany tylko w przypadku wprowadzenia zmian w modelu.
  • Moduł LLM, przepływy i interfejs użytkownika klienta powinny być luźno powiązane. Aktualizacje do przepływów i interfejsu użytkownika klienta może być możliwe i powinno być możliwe bez wpływu na model i odwrotnie.
  • Podczas opracowywania i wdrażania wielu przepływów każdy przepływ powinien mieć własny cykl życia, co pozwala na luźno powiązane środowisko podczas promowania przepływów z eksperymentowania do środowiska produkcyjnego.

Infrastruktura

Podczas wdrażania podstawowych składników czatu kompleksowego usługi Azure OpenAI niektóre z aprowizowania usług są podstawowe i trwałe w architekturze, natomiast inne składniki są bardziej efemeryczne, ich istnienie związane z wdrożeniem.

Podstawowe składniki

Niektóre składniki tej architektury istnieją z cyklem życia, który wykracza poza pojedynczy przepływ monitów lub dowolne wdrożenie modelu. Te zasoby są zwykle wdrażane raz w ramach podstawowego wdrożenia przez zespół ds. obciążeń i są przechowywane niezależnie od nowych, usuniętych lub zaktualizowanych przepływów monitów lub wdrożeń modelu.

  • Obszar roboczy usługi Azure Machine Learning
  • Konto usługi Azure Storage dla obszaru roboczego usługi Azure Machine Edukacja
  • Azure Container Registry
  • Wyszukiwanie AI platformy Azure
  • Azure OpenAI
  • Azure Application Insights
  • Azure Bastion
  • Maszyna wirtualna platformy Azure dla serwera przesiadkowego

Składniki efemeryczne

Niektóre zasoby platformy Azure są ściślej powiązane z projektem określonych przepływów monitów, dzięki czemu te zasoby będą powiązane z cyklem życia składnika i staną się efemeryczne w tej architekturze. Mają one wpływ na rozwój obciążenia, na przykład po dodaniu lub usunięciu przepływów lub wprowadzeniu nowych modeli. Te zasoby są tworzone ponownie i usuwane wcześniejsze wystąpienia. Niektóre z tych zasobów są bezpośrednimi zasobami platformy Azure, a niektóre są objawami płaszczyzny danych w ramach ich usługi zawierającej.

  • Model w rejestrze modeli usługi Azure Machine Edukacja powinien zostać zaktualizowany, jeśli został zmieniony, w ramach potoku ciągłego wdrażania.
  • Obraz kontenera powinien zostać zaktualizowany w rejestrze kontenerów w ramach potoku ciągłego wdrażania.
  • Punkt końcowy usługi Azure Machine Edukacja jest tworzony po wdrożeniu przepływu monitu, jeśli wdrożenie odwołuje się do punktu końcowego, który nie istnieje. Ten punkt końcowy musi zostać zaktualizowany, aby wyłączyć dostęp publiczny.
  • Wdrożenia punktu końcowego usługi Azure Machine Edukacja są aktualizowane po wdrożeniu lub usunięciu przepływu.
  • Usługa Key Vault dla interfejsu użytkownika klienta musi zostać zaktualizowana przy użyciu klucza do punktu końcowego po utworzeniu nowego punktu końcowego.

Monitorowanie

Diagnostyka jest skonfigurowana dla wszystkich usług. Wszystkie usługi, ale usługa Azure Machine Edukacja i aplikacja systemu Azure Service są skonfigurowane do przechwytywania wszystkich dzienników. Diagnostyka usługi Azure Machine Edukacja jest skonfigurowana do przechwytywania dzienników inspekcji, które są wszystkimi dziennikami zasobów rejestrujących interakcje klientów z danymi lub ustawieniami usługi. usługa aplikacja systemu Azure jest skonfigurowana do przechwytywania dzienników AppServiceHTTPLogs, AppServiceConsoleLogs, AppServiceAppLogs i AppServicePlatformLogs.

Wdrażanie tego scenariusza

Aby wdrożyć i uruchomić implementację referencyjną, wykonaj kroki opisane w kompleksowej implementacji referencyjnej odniesienia interfejsu OpenAI.

Współautorzy

Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.

  • Rob Bagby | Wzorce i praktyki — Microsoft
  • Freddy Ayala | Architekt rozwiązań w chmurze — Microsoft
  • Prabal Deb | Starszy inżynier oprogramowania — Microsoft
  • Raouf Aliouat | Inżynier oprogramowania II — Microsoft
  • Ritesh Modi | Główny inżynier oprogramowania — Microsoft
  • Ryan Pfalz | Starszy architekt rozwiązań — Microsoft

Aby wyświetlić niepubalne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.

Następne kroki

Przeczytaj więcej o usłudze Azure OpenAI