Mehrinstanzenfähigkeit und Azure OpenAI Service
Azure OpenAI bietet Ihnen Zugriff auf die leistungsstarken Sprachmodelle von OpenAI. In diesem Artikel werden die wichtigsten Features von Azure OpenAI beschrieben, die für mehrinstanzenfähige Lösungen von Vorteil sind. Sehen Sie sich die empfohlenen Ressourcen an, um Ihren Ansatz zu planen und Azure OpenAI zu verwenden.
Isolationsmodelle
Wenn Sie über ein mehrinstanzenfähiges System verfügen, das azure OpenAI-Dienst verwendet, müssen Sie die Isolationsebene festlegen, die Ihre Mandanten benötigen. Sie sollten Ihr Isolationsmodell anhand der folgenden Faktoren ermitteln:
- Für wie viele Mandanten planen Sie?
- Verfügen Ihre Mandanten über Complianceanforderungen, die eine Netzwerk- oder Infrastrukturisolation erfordern?
- Benötigen Ihre Mandanten Modelle, die auf ihre eigenen Daten abgestimmt sind?
- Benötigen Ihre Mandanten unterschiedliche Modellversionen oder Modelllebenszyklus?
In der folgenden Tabelle sind die Bereitstellungsansätze zusammengefasst, die Sie beim Verwenden des Azure OpenAI-Diensts in einem mehrinstanzenbasierten System verwenden können:
Aspekt | Dedizierter Azure OpenAI-Dienst | Freigegebener Azure OpenAI-Dienst, dedizierte Modellbereitstellung pro Mandant | Shared Azure OpenAI-Dienst, Bereitstellung gemeinsam genutzter Modelle | Vom Mandanten bereitgestellter Azure OpenAI-Dienst |
---|---|---|---|---|
Datenisolation | High | Medium | Niedrig | Hoch |
Leistungsisolation | High | High | Niedrig bis mittel, je nach TPM-Nutzung (Token pro Minute) für jeden Mandanten | Hoch |
Bereitstellungskomplexität | Niedrig bis mittel, je nach Anzahl der Mandanten | Mittel, müssen Bereitstellungsnamen und Kontingente verwalten. | Niedrig | Nicht zutreffend, vom Kunden verwaltet. |
Komplexität des Betriebs | Niedrig | Mittel | High | Niedrig für den Anbieter, höher für den Mandanten |
Beispielszenario | Bereitstellungen mit einem einzelnen Mandanten, die eine Netzwerkisolation von anderen Mandanten erfordern. | Mandanten mit spezifischen Modelllebenszyklus oder Feinabstimmungsanforderungen. | Große Mehrinstanzenlösungen mit einer gemeinsam genutzten Anwendungsebene. | Mandanten mit spezifischen Compliance- oder Feinabstimmungsanforderungen. |
Dedizierter Azure OpenAI-Dienst
Wenn Sie Dienstanbieter sind, sollten Sie eine Azure OpenAI-Instanz für jeden Mandanten in Ihrem Azure-Abonnement bereitstellen. Dieser Ansatz bietet Datenisolation für jeden Mandanten. Dabei ist erforderlich, dass Sie eine zunehmende Anzahl von Azure OpenAI-Ressourcen bereitstellen und verwalten, wenn Sie die Anzahl der Mandanten erhöhen.
Verwenden Sie diesen Ansatz, wenn Sie separate Anwendungsbereitstellungen für jeden Mandanten haben oder Einschränkungen umgehen müssen, z. B. das Kontingent oder die Anforderung pro Minute. Weitere Informationen finden Sie unter Kontingente und Grenzwerte in Azure OpenAI.
Das folgende Diagramm veranschaulicht das Modell für Azure OpenAI für jeden Mandanten im Abonnement des Anbieters.
Freigegebener Azure OpenAI-Dienst
Sie können eine Instanz von Azure OpenAI für mehrere Mandanten freigeben. Die Azure OpenAI-Ressource wird in Ihrem Azure-Abonnement (dem Dienstanbieter) bereitgestellt. Sie sind für die Verwaltung verantwortlich. Diese Lösung ist am einfachsten zu Implementieren, bietet aber die geringste Daten- und Leistungsisolation.
Das Freigeben einer Azure OpenAI-Ressource bietet keine Sicherheitssegmentierung für jede Modellbereitstellung. Ein Mandant kann möglicherweise ein Modell verwenden, das nicht zur Verwendung autorisiert ist. Vermeiden Sie daher die Freigabe einer Azure OpenAI-Instanz, wenn Sie fein abgestimmte Modelle verwenden, da Sie möglicherweise vertrauliche Informationen verfügbar machen und nicht autorisierten Zugriff auf mandantenspezifische Daten oder Ressourcen zulassen.
Das Freigeben einer Instanz von Azure OpenAI zwischen mehreren Mandanten kann auch zu einem Noisy Neighbor-Problem führen. Dies kann wiederum zu einer höheren Latenz für einige Mandanten führen. Außerdem müssen Sie den Anwendungscode mehrinstanzenfähig gestalten. Wenn Sie Ihre Kunden beispielsweise für den Ressourcenverbrauch einer freigegebenen Azure OpenAI-Instanz belasten möchten, implementieren Sie die Logik, um die Gesamtzahl der Token für jeden Mandanten in Ihrer Anwendung nachzuverfolgen.
Sie können auch mehrere freigegebene Azure OpenAI-Instanzen bereitstellen. Wenn Sie beispielsweise dem Muster für Bereitstellungsstempel folgen, stellen Sie eine freigegebene Azure OpenAI-Instanz für jeden Stempel bereit. Wenn Sie eine Lösung für mehrere Regionen bereitstellen, sollten Sie Azure OpenAI in jeder Region für Folgendes bereitstellen:
- Vermeiden regionsübergreifender Wartezeit
- Erfüllen von Anforderungen an Datenresidenz
- Ermöglichen der Nutzung regionaler Azure OpenAI-Instanzen innerhalb anderer Dienste, die eine Bereitstellung in derselben Region erfordern
Wenn Sie über eine freigegebene Azure OpenAI-Instanz verfügen, ist es wichtig, die Grenzwerte zu berücksichtigen und Ihr Kontingent zu verwalten.
Die folgende Abbildung veranschaulicht das freigegebene Azure OpenAI-Modell.
Wenn Sie einen freigegebenen Azure OpenAI-Dienst bereitstellen, können Sie entscheiden, ob die Modellbereitstellungen innerhalb des Diensts ebenfalls freigegeben werden oder ob sie bestimmten Kunden zugeordnet sind.
Gemeinsame Modellbereitstellung zwischen Mandanten
Die Gemeinsame Nutzung einer Modellbereitstellung zwischen Mandanten vereinfacht Ihre Betriebliche Belastung, da Sie weniger Bereitstellungen zum Verwalten haben und Modellversionen nachverfolgt werden können. Planen Sie die Verwendung einer Bereitstellung gemeinsam genutzter Modelle, falls möglich, und erstellen Sie nur dedizierte Modellbereitstellungen, wenn Sie die angebotenen Funktionen benötigen.
Dedizierte Modellbereitstellung pro Mandant
Sie können eine Modellbereitstellung für jeden Mandanten oder für Mandanten erstellen, die spezielle Anforderungen haben, die nicht mit einer gemeinsamen Modellbereitstellung erfüllt werden können. Häufige Gründe für die Verwendung dedizierter Modellbereitstellungen für einen Mandanten sind die folgenden:
Kontingent- und Kostenverwaltung: Sie erleichtert die mandantenspezifische TPM-Zuordnung, indem die Anzahl der von jedem Modell verwendeten Token nachverfolgt wird, wodurch Sie die Nutzung der einzelnen Mandanten genau zuordnen und verwalten können. Wenn Sie bereitgestellte Durchsatzeinheiten (PTUs) verwenden, können Sie die PTUs bestimmten Kunden zuweisen und andere Abrechnungsmodelle für andere Kunden verwenden.
Inhaltsfilterrichtlinien: Manchmal erfordert ein bestimmter Mandant möglicherweise eine eindeutige Inhaltsfilterrichtlinie, z. B. eine mandantenspezifische Blockliste nicht zulässiger Wörter. Sie geben die Inhaltsfilterrichtlinie im Bereich einer Modellbereitstellung an.
Modelltypen und -versionen: Möglicherweise müssen Sie unterschiedliche Modelle oder Modellversionen für verschiedene Mandanten verwenden. Ein Mandant erfordert möglicherweise auch einen eigenen Modelllebenszyklusverwaltungsprozess.
Mandantenspezifische Feinabstimmung: Wenn Sie unterschiedliche fein abgestimmte Modelle für jeden Mandanten erstellen, müssen Sie eine separate Modellbereitstellung für jedes fein abgestimmte Modell erstellen.
Denken Sie daran, dass für die meisten Anwendungsfälle keine Feinabstimmung erforderlich ist. In der Regel ist es besser, Ihr Modell mithilfe von Azure OpenAI On Your Data oder einem anderen RAG-Ansatz (Retrieval Augmented Generation) zu bodenieren.
Data Residency: Dieser Ansatz unterstützt unterschiedliche Anforderungen an die Datenhaltung. Sie können z. B. eine regionale Modellbereitstellung für einen Mandanten mit strengen Anforderungen an die Datenhaltung bereitstellen und eine globale Modellbereitstellung für andere Mandanten ohne strenge Anforderungen verwenden.
Jede Modellbereitstellung verfügt über eine eigene eindeutige URL, aber es ist wichtig, dass die zugrunde liegenden Modelle für andere Azure-Kunden freigegeben werden. Sie verwenden auch die freigegebene Azure-Infrastruktur.
Azure OpenAI erzwingt keine Zugriffssteuerung für jede Modellbereitstellung. Daher muss Ihre Anwendung steuern, welcher Mandant welche Modellbereitstellung erreichen kann.
Vom Mandanten bereitgestellte Azure OpenAI-Ressource
In einigen Fällen erstellen Ihre Mandanten möglicherweise die Azure OpenAI-Instanz in ihren eigenen Azure-Abonnements und gewähren Ihrer Anwendung Zugriff darauf. Dieser Ansatz kann in den folgenden Situationen angemessen sein:
- Mandanten verfügen über bestimmte Kontingente und Berechtigungen von Microsoft, z. B. Zugriff auf verschiedene Modelle, bestimmte Inhaltsfilterrichtlinien oder die Verwendung des bereitgestellten Durchsatzes.
- Der Mandant verfügt über ein fein abgestimmtes Modell, das er aus Ihrer Lösung verwenden muss.
- Sie benötigen eine Komponente in ihrer Umgebung, um Daten über ihre vom Kunden verwaltete Azure OpenAI-Instanz zur Verarbeitung zu verarbeiten und zu senden.
Um auf die Azure OpenAI-Instanz im Abonnement Ihres Mandanten zugreifen zu können, muss der Mandant Ihrer Anwendung Zugriff gewähren. Ihre Anwendung muss sich über ihre Microsoft Entra-Instanz authentifizieren. Eine Möglichkeit besteht darin, eine mehrinstanzenfähige Microsoft Entra-Anwendung zu veröffentlichen. Der folgende Workflow beschreibt die Schritte dieses Ansatzes:
- Der Mandant registriert die mehrinstanzenfähige Microsoft Entra-Anwendung im eigenen Microsoft Entra-Mandanten.
- Der Mandant gewährt der mehrinstanzenfähigen Microsoft Entra-Anwendung die entsprechende Zugriffsebene für die Azure OpenAI-Ressource. Beispielsweise kann der Mandant die Anwendung der Rolle Azure KI Services-Benutzer mithilfe der rollenbasierten Zugriffssteuerung (RBAC) zuweisen.
- Der Mandant stellt die Ressourcen-ID der Azure OpenAI-Ressource bereit, die er erstellt.
- Ihr Anwendungscode kann einen Dienstprinzipal verwenden, der der mehrinstanzenfähigen Microsoft Entra-Anwendung in Ihrer eigenen Microsoft Entra-Instanz zugeordnet ist, um auf die Azure OpenAI-Instanz der einzelnen Mandanten zuzugreifen.
Alternativ können Sie jeden Mandanten bitten, ein Dienstprinzipal für Ihren Dienst zu erstellen und Ihnen dessen Anmeldeinformationen mitzuteilen. Dieser Ansatz setzt voraus, dass Sie die Anmeldeinformationen jedes Mandanten sicher aufbewahren und verwalten, was ein potenzielles Sicherheitsrisiko darstellt.
Wenn Ihre Mandanten Netzwerkzugriffssteuerungen für ihre Azure OpenAI-Instanz konfigurieren, stellen Sie sicher, dass Sie darauf zugreifen können.
Das folgende Diagramm veranschaulicht das Modell für Azure OpenAI für jeden Mandanten im Abonnement des Mandanten.
Features des Azure OpenAI-Diensts, die Mehrinstanzenfähigkeit unterstützen
Assistenten-API
Die Assistenten-API fügt Ihrem Azure OpenAI-Dienst Funktionen hinzu, die es für die Erstellung von KI-Assistenten geeignet macht. Es umfasst die Möglichkeit, Tools und APIs aufzurufen, sowie Suchdateien, um die Antworten zu ermitteln, die das Modell generiert. Es ermöglicht die Verwaltung persistenter Unterhaltungsthreads durch den Dienst und kann Code in einer Sandkastenumgebung generieren und ausführen. Um diese Funktionen zu unterstützen, muss die Assistenten-API einige Daten speichern.
Wenn Sie die Assistenten-API in einer Mehrinstanzenlösung verwenden, können Sie Assistenten erstellen, die einem einzelnen Mandanten zugeordnet sind, oder Sie können einen Assistenten für mehrere Mandanten freigeben. Es ist wichtig, dass Sie die Mandantenisolation in allen gespeicherten Daten berücksichtigen, insbesondere für freigegebene Assistenten. Sie sollten beispielsweise sicherstellen, dass Unterhaltungsthreads für jeden Mandanten separat gespeichert werden.
Die Assistenten-API unterstützt Funktionsaufrufe, die Ihre Anwendungsanweisungen zu Funktionen zum Aufrufen und Einschließen von Argumenten sendet. Stellen Sie sicher, dass alle von Ihnen getätigten Funktionen multitenantfähig sind, z. B. indem Sie die Mandanten-ID in den Aufruf des nachgeschalteten Systems einschließen. Überprüfen Sie die Mandanten-ID in Ihrer Anwendung, und verlassen Sie sich nicht auf das Sprachmodell, um die Mandanten-ID für Sie zu verteilen.
Azure OpenAI für Ihre Daten
Azure OpenAI On Your Data ermöglicht es dem großen Sprachmodell, Wissensquellen wie Indizes und Datenbanken direkt abzufragen, als Teil der Generierung einer Antwort aus dem Sprachmodell.
Wenn Sie eine Anforderung stellen, können Sie die Datenquellen angeben, die abgefragt werden sollen. Stellen Sie in einer mehrinstanzenfähigen Lösung sicher, dass Ihre Datenquellen mandantenfähig sind und Sie Mandantenfilter für Ihre Anforderungen angeben können. Verteilen Sie die Mandanten-ID entsprechend an die Datenquelle. Angenommen, Sie fragen Azure AI Search ab. Wenn Sie Daten für mehrere Mandanten in einem einzigen Index haben, geben Sie einen Filter an, um die abgerufenen Ergebnisse auf die ID des aktuellen Mandanten zu beschränken. Wenn Sie auch einen Index für jeden Mandanten erstellt haben, stellen Sie sicher, dass Sie den richtigen Index für den aktuellen Mandanten angeben.
Beitragende
Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:
Hauptautor:
- Sofia Ferreira | Software Engineer, ISV & DN CoE
Andere Mitwirkende:
- John Downs | Principal Software Engineer
- Landon Pierce | Customer Engineer, ISV & DN CoE
- Paolo Salvatori | Principal Customer Engineer, ISV & DN CoE
- Daniel Scott-Raynsford | Partnerlösungsarchitekt
- Arsen Vladimirskiy | Principal Customer Engineer, ISV & DN CoE
Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.