Organisieren und Einrichten von Azure Machine Learning-Umgebungen

Beim Planen einer Azure Machine Learning-Bereitstellung für eine Unternehmensumgebung gibt es einige gängige Entscheidungspunkte, die sich auf die Erstellung des Arbeitsbereichs auswirken:

  • Teamstruktur: Die Art und Weise, wie Ihre Machine Learning-Teams organisiert sind und an Projekten zusammenarbeiten, unter Berücksichtigung von Anwendungsfall und Datentrennung oder Anforderungen der Kostenverwaltung.

  • Umgebungen: Die Umgebungen, die als Teil Ihres Entwicklungs- und Freigabeworkflows verwendet werden, um die Entwicklung von der Produktion zu trennen.

  • Region: Der Speicherort Ihrer Daten und die Zielgruppe, für die Sie Ihre Machine Learning-Lösung bereitstellen müssen.

Teamstruktur und Einrichtung des Arbeitsbereichs

Der Arbeitsbereich ist die Ressource der obersten Ebene für Azure Machine Learning. Dort werden die Artefakte gespeichert, die bei der Arbeit mit Machine Learning produziert werden, und das verwaltete Compute sowie Zeiger auf angefügte und zugehörige Ressourcen. Aus Sicht der Verwaltbarkeit ermöglicht der Arbeitsbereich als Azure Resource Manager-Ressource die rollenbasierte Zugriffssteuerung von Azure (Azure RBAC), die Verwaltung nach Richtlinien und kann als Einheit für die Kostenberichterstattung verwendet werden.

Organisationen wählen in der Regel eines der folgenden Lösungsmuster oder eine Kombination davon aus, um die Anforderungen an die Verwaltbarkeit zu erfüllen.

Arbeitsbereich pro Team: Wählen Sie einen Arbeitsbereich für jedes Team, wenn alle Mitglieder eines Teams die gleiche Zugriffsebene für Daten- und Experimentressourcen benötigen. Beispielsweise könnte eine Organisation mit drei Machine Learning-Teams drei Arbeitsbereiche erstellen, eines für jedes Team.

Die Verwendung eines Arbeitsbereichs pro Team hat den Vorteil, dass alle Machine Learning-Artefakte für die Projekte des Teams an einem Ort gespeichert werden. Produktivitätssteigerungen können erreicht werden, da Teammitglieder problemlos auf Experimentergebnisse zugreifen, sie untersuchen und wiederverwenden können. Das Organisieren Ihrer Arbeitsbereiche nach Teams reduziert den Azure-Speicherbedarf und vereinfacht die Kostenverwaltung nach Teams. Da die Anzahl der Experimentressourcen schnell zunehmen kann, können Sie Ihre Artefakte organisiert halten, indem Sie Benennungs- und Taggingkonventionen befolgen. Empfehlungen zum Benennen von Ressourcen finden Sie unter Entwickeln Ihrer Benennungs- und Kennzeichnungsstrategie für Azure-Ressourcen.

Bei diesem Ansatz muss jedes Teammitglied über ähnliche Datenzugriffsebenen-Berechtigungen verfügen. Differenzierte RBAC und Zugriffssteuerungslisten (Access Control Lists, ACL) für Datenquellen und Experimentressourcen sind innerhalb eines Arbeitsbereichs eingeschränkt. Datentrennungsanforderungen nach Anwendungsfall sind nicht möglich.

Arbeitsbereich pro Projekt: Wählen Sie einen Arbeitsbereich für jedes Projekt aus, wenn die Trennung von Daten und Experimentressourcen nach Projekt erforderlich ist, oder wenn Sie Kostenberichterstattung und Budgetierung auf Projektebene benötigen. Beispielsweise können in einer Organisation mit vier Machine Learning-Teams, die jeweils drei Projekte ausführen, 12 Arbeitsbereichsinstanzen erstellt werden.

Der Vorteil der Verwendung eines einzelnen Arbeitsbereichs pro Projekt ist, dass die Kosten auf Projektebene verwaltet werden können. Teams erstellen in der Regel eine dedizierte Ressourcengruppe für Azure Machine Learning und zugehörige Ressourcen aus ähnlichen Gründen. Wenn Sie z. B. mit externen Mitwirkenden arbeiten, vereinfacht ein projektorientierter Arbeitsbereich die Zusammenarbeit an einem Projekt, da externen Benutzern nur Zugriff auf die Projektressourcen gewährt werden muss, nicht auf die Teamressourcen.

Bei diesem Ansatz ist die Isolation von Experimentergebnissen und Ressourcen zu berücksichtigen. Die Ermittlung und Wiederverwendung der Ressourcen ist möglicherweise schwieriger, da Ressourcen auf mehrere Arbeitsbereichsinstanzen verteilt werden.

Einzelner Arbeitsbereich: Verwenden Sie einen einzelnen Arbeitsbereich für nicht team- oder nicht projektbezogene Aufgaben oder für Kosten, die nicht direkt einer bestimmten Abrechnungseinheit (z. B. Forschung und Entwicklung) zugeordnet werden können.

Der Vorteil dieses Setups besteht darin, dass die Kosten einzelner, nicht projektbezogener Aufgaben von projektbezogenen Kosten entkoppelt werden können. Wenn Sie einen einzelnen Arbeitsbereich einrichten, in dem alle Benutzer ihre Arbeit erledigen können, verringern Sie den Azure-Speicherbedarf.

Ein Aspekt dieses Ansatzes ist, dass der Arbeitsbereich schnell überladen werden könnte, wenn viele Machine Learning- Fachleute dieselbe Instanz gemeinsam nutzen. Benutzer benötigen möglicherweise eine Filterung von Ressourcen auf Benutzeroberflächenbasis, um ihre Ressourcen effektiv zu finden. Sie können freigegebene Machine Learning-Arbeitsbereiche für die einzelnen Geschäftsbereiche erstellen, um Skalierungsprobleme zu vermeiden oder Budgets zu segmentieren.

Einrichtung von Umgebungen und Arbeitsbereichen

Eine Umgebung ist eine Sammlung von Ressourcen, auf die Bereitstellungen basierend auf ihrer Phase im Anwendungslebenszyklus ausgerichtet sind. Gängige Beispiele für Umgebungsnamen sind Dev, Test, QA, Staging und Production.

Der Entwicklungsprozess in Ihrer Organisation wirkt sich auf die Anforderungen für die Verwendung der Umgebung aus. Ihre Umgebung wirkt sich auf das Setup von Azure Machine Learning und zugeordneten Ressourcen wie angefügtes Compute aus. Beispielsweise kann die Datenverfügbarkeit Einschränkungen der Verwaltbarkeit einer Machine Learning-Instanz für jede Umgebung mit sich bringen. Die folgenden Lösungsmuster sind üblich:

Bereitstellung eines einzelnen Umgebungsarbeitsbereichs: Wenn Sie die Bereitstellung eines einzelnen Umgebungsarbeitsbereichs auswählen, wird Azure Machine Learning in einer Umgebung bereitgestellt. Dieses Setup ist für forschungszentrierte Szenarios üblich, bei denen es nicht erforderlich ist, Machine Learning-Artefakte auf der Grundlage ihrer Lebenszyklusphase Umgebungen übergreifend freizugeben. Ein anderes Szenario, in dem diese Einrichtung sinnvoll ist, liegt vor, wenn nur Rückschlussdienste und nicht Machine Learning-Pipelines in verschiedenen Umgebungen bereitgestellt werden.

Der Vorteil eines forschungszentrierten Setups ist ein kleinerer Azure-Speicherbedarf und minimaler Verwaltungsaufwand. Diese Vorgehensweise bedeutet, dass nicht in jeder Umgebung ein Azure Machine Learning-Arbeitsbereich bereitgestellt werden muss.

Bei diesem Ansatz ist zu berücksichtigen, dass die Bereitstellung einer einzelnen Umgebung von der Datenverfügbarkeit abhängig ist. Beim Einrichten des Datenspeichers ist Vorsicht geboten. Wenn Sie einen umfangreichen Zugriff einrichten, z. B. den Schreibzugriff auf Produktionsdatenquellen, könnten Sie die Datenqualität versehentlich beeinträchtigen. Wenn Sie für Produktion und Entwicklung dieselbe Umgebung nutzen, gelten für Entwicklung und Produktion dieselben RBAC-Einschränkungen. Mit diesem Setup könnten beide Umgebungen zu starr oder zu flexibel werden.

Bereitstellung einer einzelnen Umgebung

Bereitstellung mehrerer Umgebungsarbeitsbereiche: Wenn Sie eine Bereitstellung mehrerer Umgebungsarbeitsbereiche auswählen, wird für jede Umgebung eine Arbeitsbereichsinstanz bereitgestellt. Ein häufiges Szenario für diese Einrichtung ist ein regulierter Arbeitsbereich mit einer klaren Trennung der Aufgaben zwischen den Umgebungen und für Benutzer, die über Ressourcenzugriff auf diese Umgebungen verfügen.

Die Vorteile dieses Setups sind:

  • Gestaffelter Rollout von Machine Learning-Workflows und Artefakten. Beispielsweise verschiedene Umgebungen übergreifende Modelle, mit der Möglichkeit, Flexibilität zu verbessern und die Zeit bis zur Bereitstellung zu verkürzen.

  • Erhöhte Sicherheit und Kontrolle von Ressourcen, da Sie in nachgelagerten Umgebungen mehr Zugriffsbeschränkungen zuweisen können.

  • Trainingsszenarios für Produktionsdaten in Nicht-Entwicklungsumgebungen, da Sie einer ausgewählten Gruppe von Benutzern Zugriff einräumen können.

Bei diesem Ansatz besteht das Risiko eines höheren Verwaltungs- und Prozessaufwands, da diese Einrichtung einen differenzierten, Arbeitsbereichsinstanzen übergreifenden Entwicklungs- und Rolloutprozess für Machine Learning-Artefakte erfordert. Darüber hinaus kann ein weiterer Datenverwaltungs- und Engineeringaufwand erforderlich sein, um Produktionsdaten für das Training in der Entwicklungsumgebung zur Verfügung zu stellen. Über die Zugriffsverwaltung müssen Sie einem Team Zugriff einräumen, um Vorfälle in der Produktion untersuchen und auflösen zu können. Und schließlich muss Ihr Team über Azure DevOps- und Machine Learning-Engineering-Fachwissen verfügen, um Automatisierungsworkflows zu implementieren.

Bereitstellung mehrerer Umgebungen

Eine Umgebung mit eingeschränktem Datenzugriff, eine mit Zugriff auf Produktionsdaten: Wenn Sie sich für dieses Setup entscheiden, wird Azure Machine Learning in zwei Umgebungen bereitgestellt – einer mit eingeschränktem Datenzugriff und einer mit Zugriff auf die Produktionsdaten. Dieses Setup ist üblich, wenn Entwicklungs- und Produktionsumgebungen getrennt werden müssen. Vielleicht gelten z. B. organisatorische Einschränkungen für das Verfügbarmachen von Produktionsdaten in einer Umgebung, oder Sie möchten Entwicklungs- von Produktionsaufgaben trennen, ohne Daten mehr als nötig zu duplizieren, weil die Wartungskosten hoch sind.

Der Vorteil dieses Setups ist die klare Trennung von Aufgaben und Zugriff zwischen Entwicklungs- und Produktionsumgebungen. Ein weiterer Vorteil ist der geringere Ressourcenverwaltungsaufwand im Vergleich zu einem Bereitstellungsszenario mit mehreren Umgebungen.

Bei diesem Ansatz ist zu berücksichtigen, dass ein definierter, Arbeitsbereiche übergreifender Entwicklungs- und Rolloutprozess für Machine Learning-Artefakte erforderlich ist. Außerdem ist zu berücksichtigen, dass ein Datenverwaltungs- und Engineeringaufwand erforderlich sein kann, um Produktionsdaten für das Training in einer Entwicklungsumgebung zur Verfügung zu stellen. Doch möglicherweise ist der Aufwand geringer als bei einer Bereitstellung mehrerer Umgebungsarbeitsbereiche.

Eine Umgebung mit eingeschränktem Datenzugriff, eine Umgebung mit Produktionsdatenzugriff

Einrichtung von Regionen und Ressourcen

Der Standort Ihrer Ressourcen, Daten oder Benutzer erfordert möglicherweise, dass Sie Azure Machine Learning-Arbeitsbereichsinstanzen und zugehörige Ressourcen in mehreren Azure-Regionen erstellen. Beispielsweise können sich die Ressourcen eines Projekts aus Leistungs-, Kosten- und Kompatibilitätsgründen über die Azure-Regionen „Europa, Westen“ und „USA, Osten“ erstrecken. Die folgenden Szenarien sind üblich:

Regionales Training: Die Machine Learning-Trainingsaufträge werden in derselben Azure-Region ausgeführt, in der sich die Daten befinden. In diesem Setup wird ein Machine Learning-Arbeitsbereich für jede Azure-Region bereitgestellt, in der sich Daten befinden. Es handelt sich hierbei um ein häufiges Szenario, wenn Sie Konformitätsvorschriften einhalten müssen oder Einschränkungen der Datenverschiebung zwischen Regionen unterliegen.

Der Vorteil dieses Setups besteht darin, dass Experimente in dem Rechenzentrum, in dem sich die Daten befinden, mit der geringsten Netzwerklatenz ausgeführt werden können. Bei diesem Ansatz ist zu berücksichtigen, dass die Verwaltungskomplexität steigt, wenn eine Machine Learning-Pipeline mehrere Arbeitsbereichsinstanzen übergreifend ausgeführt wird. Es wird zur Herausforderung, Experimentergebnisse Instanzen übergreifend zu vergleichen, und steigert den Kontingent- und Computeverwaltungsaufwand.

Wenn Sie Speicher Regionen übergreifend anfügen, aber Compute aus einer Region verwenden möchten, unterstützt Azure Machine Learning das Szenario, in einer Region Speicherkonten anstatt des Arbeitsbereichs anzufügen. Metadaten, z. B. Metriken, werden in der Arbeitsbereichsregion gespeichert.

Regionales Training

Regionale Dienste: Machine Learning-Dienste werden in der Nähe der Zielgruppe bereitgestellt. Wenn sich die Zielbenutzer beispielsweise in Australien befinden und die Hauptspeicher- und Experimentierregion „Europa, Westen“ ist, stellen Sie den Machine Learning-Arbeitsbereich für Experimente in „Europa, Westen“ und einen AKS-Cluster zur Rückschlussendpunkt-Bereitstellung in Australien bereit.

Die Vorteile dieser Einrichtung sind die Möglichkeit, Rückschlüsse in dem Rechenzentrum durchzuführen, in dem neue Daten erfasst werden, wodurch Latenz und Datenverschiebungen minimiert werden, und die Einhaltung lokaler Vorschriften.

Bei diesem Ansatz ist zu berücksichtigen, dass ein Setup mit mehreren Regionen einige Vorteile bietet, aber auch den Kontingent- und Computeverwaltungsaufwand steigert. Wenn Batchrückschlüsse notwendig sind, erfordern regionale Dienste möglicherweise eine Bereitstellung mehrerer Arbeitsbereiche. Mithilfe von Rückschlussendpunkten gesammelte Daten müssen möglicherweise für Szenarien mit erneutem Training über mehrere Regionen hinweg übertragen werden.

Regionaler Dienst

Regionale Feinabstimmung: Ein Basismodell wird mit einem anfänglichen Dataset trainiert, z. B. mit öffentlichen Daten oder Daten aus allen Regionen, und später erfolgt die Feinabstimmung mit einem regionalen Dataset. Das regionale Dataset ist möglicherweise aufgrund von Konformitäts- oder Datenverschiebungseinschränkungen nur in einer bestimmten Region vorhanden. Beispielsweise könnte das Basismodelltraining in einem Arbeitsbereich in Region A erfolgen, während die Feinabstimmung in einem Arbeitsbereich in Region B durchgeführt werden könnte.

Der Vorteil dieses Setups besteht darin, dass das Experimentieren in Übereinstimmung mit dem Rechenzentrum verfügbar ist, in dem sich die Daten befinden. Dennoch wird das Basismodelltraining mit einem größeren Dataset in einer früheren Pipelinephase genutzt.

Bei diesem Ansatz ist zu berücksichtigen, dass komplexe Experimentierepipelines möglich sind, aber daraus weitere Herausforderungen entstehen können. Beispielsweise der Regionen übergreifende Vergleich von Experimentergebnissen und damit eine Steigerung des Kontingent- und Computeverwaltungsaufwands.

Regionale Feinabstimmung

Referenzimplementierung

Um die Bereitstellung von Azure Machine Learning in einem größeren Rahmen zu veranschaulichen, wird in diesem Abschnitt erläutert, wie die Organisation „Contoso“ unter Berücksichtigung ihrer Organisationseinschränkungen und der Anforderungen an Berichterstattung und Budgetierung Azure Machine Learning eingerichtet hat:

  • Contoso erstellt Ressourcengruppen auf einer Lösungsgrundlage aus Kostenverwaltungs- und Berichterstattungsgründen.
  • IT-Administratoren erstellen nur Ressourcengruppen und Ressourcen für finanzierte Lösungen, um die Budgetanforderungen zu erfüllen.
  • Aufgrund des explorativen und unsicheren Wesens von Data Science benötigen Benutzer einen Ort, an dem sie experimentieren, an Anwendungsfällen arbeiten und Daten untersuchen können. Explorative Arbeit kann oft nicht direkt einem bestimmten Anwendungsfall zugeordnet werden, sondern nur einem Budget für Forschung und Entwicklung. Contoso möchte einige Machine Learning-Ressourcen, die jeder zu Untersuchungszwecken verwenden kann, zentral finanzieren.
  • Wenn sich ein Machine Learning-Anwendungsfall in der explorativen Umgebung als erfolgreich erweist, können Teams Ressourcengruppen anfordern. Beispielsweise Dev, QA und Prod für iterative experimentelle Projektarbeit, und der Zugriff auf Produktionsdatenquellen kann eingerichtet werden.
  • Die Anforderungen an Datentrennung und Konformität lassen nicht zu, dass Liveproduktionsdaten in Entwicklungsumgebungen vorhanden sind.
  • Für verschiedene Benutzergruppen gelten nach IT-Richtlinie pro Umgebung verschiedene RBAC-Anforderungen, z. B. wenn der Zugriff in der Produktion restriktiver ist.
  • Alle Daten, Experimente und Rückschlüsse werden in einer einzelnen Azure-Region gespeichert bzw. durchgeführt.

Um den oben genannten Anforderungen gerecht zu werden, hat Contoso seine Ressourcen wie folgt eingerichtet:

  • Azure Machine Learning-Arbeitsbereiche und -Ressourcengruppen sind projektspezifisch, um den Anforderungen von Budgetplanung und Anwendungsfalltrennung gerecht zu werden.
  • Eine Einrichtung mit mehreren Umgebungen für Azure Machine Learning und zugehörige Ressourcen, um Kostenverwaltung, RBAC und Datenzugriffsanforderungen zu berücksichtigen.
  • Eine einzelne Ressourcengruppe und ein Machine Learning-Arbeitsbereich, der für die Untersuchung reserviert ist.
  • Azure Active Directory-Gruppen, die sich je nach Benutzerrolle und Umgebung unterscheiden. Beispielsweise unterscheiden sich Vorgänge, die eine wissenschaftliche Fachkraft für Daten in einer Produktionsumgebung ausführen kann, von denen, die in der Entwicklungsumgebung möglich sind, und Zugriffsebenen können je nach Lösung verschieden sein.
  • Alle Ressourcen werden in einer einzelnen Azure-Region erstellt.

Contoso-Referenzimplementierung