Azure Well-Architected Framework-Perspektive auf Azure Machine Learning
Azure Machine Learning ist ein verwalteter Clouddienst, mit dem Sie Machine Learning-Modelle trainieren, bereitstellen und verwalten können. Es gibt eine Vielzahl von Optionen und Konfigurationen für das Training und die Bereitstellung von Modellen, einschließlich Compute-SKUs und Konfigurationen. Sie können Machine Learning-Modelle für Machine Learning-Compute oder für andere Azure-Dienste wie Azure Kubernetes Service (AKS) bereitstellen.
Dieser Artikel enthält Architekturempfehlungen zum Treffen fundierter Entscheidungen, wenn Sie Machine Learning zum Trainieren, Bereitstellen und Verwalten von Machine Learning-Modellen verwenden. Der Leitfaden basiert auf den Säulen von Azure Well-Architected Framework.
Wichtig
Verwendung dieses Leitfadens
Jeder Abschnitt enthält eine Entwurfscheckliste , die architektonische Problembereiche zusammen mit Designstrategien vorstellt, die auf den Technologieumfang lokalisiert sind.
Außerdem sind Empfehlungen zu den Technologiefunktionen enthalten, die bei der Materialisierung dieser Strategien hilfreich sein können. Die Empfehlungen stellen keine vollständige Liste aller für Machine Learning verfügbaren Konfigurationen und seiner Abhängigkeiten dar. Stattdessen listen sie die wichtigsten Empfehlungen auf, die den Entwurfsperspektiven zugeordnet sind. Verwenden Sie die Empfehlungen, um Ihren Proof-of-Concept zu erstellen oder Ihre vorhandenen Umgebungen zu optimieren.
Die grundlegende Architekturbaseline OpenAI End-to-End-Chatreferenzarchitektur veranschaulicht viele der wichtigsten Empfehlungen.
Technologieumfang
Diese Überprüfung konzentriert sich auf die miteinander verbundenen Entscheidungen für diese Azure-Ressourcen:
- Machine Learning
- Machine Learning-Computecluster
- Machine Learning-Computeinstanzen
Die Überprüfung betrifft keine verbundenen Ressourcen wie Datenspeicher oder Azure Key Vault.
Zuverlässigkeit
Der Zweck der Säule Zuverlässigkeit besteht darin, fortlaufende Funktionen bereitzustellen, indem genügend Resilienz und die Fähigkeit zur schnellen Wiederherstellung nach Fehlern aufgebaut werden.
Die Prinzipien des Zuverlässigkeitsentwurfs bieten eine allgemeine Entwurfsstrategie, die für einzelne Komponenten, Systemflüsse und das System als Ganzes angewendet wird.
Prüfliste für den Entwurf
Starten Sie Ihre Designstrategie basierend auf der Prüfliste der Entwurfsüberprüfung für Zuverlässigkeit , und ermitteln Sie die Relevanz für Ihre Geschäftsanforderungen. Erweitern Sie die Strategie, um bei Bedarf weitere Ansätze einzubeziehen.
Resilienz: Stellen Sie Modelle in Umgebungen bereit, die Verfügbarkeitszonen unterstützen, z. B. AKS. Indem Sie sicherstellen, dass Bereitstellungen über Verfügbarkeitszonen verteilt sind, stellen Sie sicher, dass eine Bereitstellung auch bei einem Ausfall eines Rechenzentrums verfügbar ist. Um die Zuverlässigkeit und Verfügbarkeit zu erhöhen, sollten Sie eine Bereitstellungstopologie mit mehreren Regionen in Betracht ziehen.
Resilienz: Stellen Sie sicher, dass Sie über genügend Compute für Training und Rückschluss verfügen. Stellen Sie durch die Ressourcenplanung sicher, dass Ihre Compute-SKU und Ihre Skalierungseinstellungen die Anforderungen Ihrer Workload erfüllen.
Resilienz: Trennen Sie Machine Learning-Arbeitsbereiche, die für explorative Arbeiten verwendet werden, von denen, die für die Produktion verwendet werden.
Resilienz: Wenn Sie verwaltete Onlineendpunkte für Rückschlüsse verwenden, verwenden Sie eine Releasestrategie, z. B. blau-grüne Bereitstellungen, um Ausfallzeiten zu minimieren und das Risiko zu verringern, das mit der Bereitstellung neuer Versionen verbunden ist.
Geschäftsanforderungen: Wählen Sie Ihre Verwendung von Computeclustern, Computeinstanzen und externalisierten Rückschlusshosts basierend auf Den Zuverlässigkeitsanforderungen aus, wobei Service Level Agreements (SLAs) als Faktor berücksichtigt werden.
Wiederherstellung: Stellen Sie sicher, dass Sie über Selbstreparaturfunktionen verfügen, z. B. Prüfpunktfunktionen, die von Machine Learning unterstützt werden, wenn Sie große Modelle trainieren.
Wiederherstellung: Stellen Sie sicher, dass Sie eine Wiederherstellungsstrategie definiert haben. Machine Learning verfügt nicht über ein automatisches Failover. Daher müssen Sie eine Strategie entwerfen, die den Arbeitsbereich und alle zugehörigen Abhängigkeiten umfasst, z. B. Key Vault, Azure Storage und Azure Container Registry.
Empfehlungen
Empfehlung | Vorteil |
---|---|
Modellbereitstellung mit mehreren Regionen: Wenn möglich, sollten Sie eine Bereitstellungsumgebung mit mehreren Regionen in Betracht ziehen, um die Zuverlässigkeit und Verfügbarkeit zu erhöhen. | Eine Bereitstellung mit mehreren Regionen stellt sicher, dass Ihre Machine Learning-Workloads auch dann weiterhin ausgeführt werden, wenn eine Region ausfällt. Die Bereitstellung mit mehreren Regionen verbessert die Lastenverteilung über Regionen hinweg, was möglicherweise die Leistung für Benutzer in verschiedenen geografischen Regionen verbessert. Weitere Informationen finden Sie unter Failover für Business Continuity & Disaster Recovery. |
Modelltrainingsresilienz: Verwenden Sie prüfpunkting-Features, die von Machine Learning unterstützt werden, einschließlich Azure Container for PyTorch, der TensorFlow Estimator-Klasse oder des Run-Objekts und der FileDataset-Klasse, die Modellprüfpunkte unterstützen. | Modellprüfpunkte speichern den Zustand Ihres Machine Learning-Modells während des Trainings in regelmäßigen Abständen, sodass es im Falle einer Unterbrechung, eines Fehlers oder einer Beendigung wiederhergestellt werden kann. Weitere Informationen finden Sie unter Erhöhen der Prüfpunktgeschwindigkeit und Senkung der Kosten mit Nebula. |
Verwenden der Dedizierten VM-Ebene für Computecluster: Verwenden Sie die Dedizierte VM-Ebene für Computecluster für Batchrückschlüsse, um sicherzustellen, dass Ihr Batchauftrag nicht vorzeitig entfernt wird. | Virtuelle Computer mit niedriger Priorität sind zwar zu einem reduzierten Preis verfügbar, aber verwertbar. Cluster, die die Dedizierte VM-Ebene verwenden, sind nicht vorzeitig entfernt. |
Sicherheit
Der Zweck der Säule Sicherheit besteht darin , Vertraulichkeits-, Integritäts- und Verfügbarkeitsgarantien für die Workload bereitzustellen.
Die Prinzipien des Sicherheitsentwurfs bieten eine allgemeine Entwurfsstrategie zum Erreichen dieser Ziele durch Anwenden von Ansätzen auf das technische Design rund um Machine Learning.
Prüfliste für den Entwurf
Starten Sie Ihre Entwurfsstrategie basierend auf der Prüfliste für die Entwurfsüberprüfung für Sicherheit , und identifizieren Sie Sicherheitsrisiken und Kontrollen, um den Sicherheitsstatus zu verbessern. Erweitern Sie die Strategie, um bei Bedarf weitere Ansätze einzubeziehen.
Verfügbarkeit: Reduzieren Sie die Angriffsfläche des Machine Learning-Arbeitsbereichs, indem Sie den Zugriff auf den Arbeitsbereich auf Ressourcen innerhalb des virtuellen Netzwerks beschränken.
Vertraulichkeit: Schützen Sie sich vor Datenexfiltration aus dem Machine Learning-Arbeitsbereich, indem Sie die Netzwerkisolation implementieren. Stellen Sie sicher, dass der Zugriff auf alle externen Ressourcen explizit genehmigt und der Zugriff auf alle anderen externen Ressourcen nicht zulässig ist.
Integrität: Implementieren Sie Zugriffssteuerungen, die den Machine Learning-Arbeitsbereich für externe Ressourcen basierend auf dem Prinzip der geringsten Berechtigungen authentifizieren und autorisieren.
Integrität: Implementieren Sie die Anwendungsfalltrennung für Machine Learning-Arbeitsbereiche, indem Sie Arbeitsbereiche basierend auf bestimmten Anwendungsfällen oder Projekten einrichten. Dieser Ansatz entspricht dem Prinzip der geringsten Rechte, indem sichergestellt wird, dass Arbeitsbereiche nur für Personen zugänglich sind, die Zugriff auf Daten- und Experimentressourcen für den Anwendungsfall oder das Projekt benötigen.
Integrität: Regeln sie den Zugriff auf grundlegende Modelle. Stellen Sie sicher, dass nur genehmigte Registrierungen Zugriff auf Modelle in der Modellregistrierung haben.
Integrität: Regeln Sie den Zugriff auf genehmigte Containerregistrierungen. Stellen Sie sicher, dass Machine Learning-Compute nur auf genehmigte Registrierungen zugreifen kann.
Integrität: Regeln Sie die Python-Pakete, die auf Machine Learning Compute ausgeführt werden können. Durch die Regulierung der Python-Pakete wird sichergestellt, dass nur vertrauenswürdige Pakete ausgeführt werden.
Integrität: Der für das Training in Machine Learning-Computeumgebungen verwendete Code muss signiert werden. Durch die Anforderung der Codesignatur wird sichergestellt, dass der ausgeführte Code von einer vertrauenswürdigen Quelle stammt und nicht manipuliert wurde.
Vertraulichkeit: Halten Sie sich an das Prinzip der geringsten Rechte für die rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC) für den Machine Learning-Arbeitsbereich und zugehörige Ressourcen, wie z. B. das Speicherkonto des Arbeitsbereichs, um sicherzustellen, dass Personen nur über die erforderlichen Berechtigungen für ihre Rolle verfügen, wodurch potenzielle Sicherheitsrisiken minimiert werden.
Integrität: Stellen Sie Vertrauen und überprüften Zugriff her, indem Sie die Verschlüsselung für ruhende Daten und Daten während der Übertragung implementieren.
Empfehlungen
Empfehlung | Vorteil |
---|---|
Sicherheitsbaseline: Wenden Sie die Azure-Sicherheitsbaseline für Machine Learning an, um die Sicherheit und Compliance Ihres Machine Learning-Diensts zu verbessern. | Die Sicherheitsbaseline bietet maßgeschneiderte Anleitungen zu wichtigen Sicherheitsaspekten wie Netzwerksicherheit, Identitätsverwaltung, Datenschutz und privilegiertem Zugriff. Verwenden Sie für optimale Sicherheit Microsoft Defender für Cloud, um diese Aspekte zu überwachen. |
Isolation für verwaltetes virtuelles Netzwerk: Konfigurieren der Isolation für verwaltete virtuelle Netzwerke für Machine Learning. Wenn Sie die Isolation verwalteter virtueller Netzwerke aktivieren, wird ein verwaltetes virtuelles Netzwerk für den Arbeitsbereich erstellt. Verwaltete Computeressourcen, die Sie für den Arbeitsbereich erstellen, verwenden automatisch dieses verwaltete virtuelle Netzwerk. Wenn Sie die Isolation verwalteter virtueller Netzwerke nicht implementieren können, müssen Sie die Empfehlungen der Netzwerktopologie befolgen, um compute in ein dediziertes Subnetz zu trennen, das von den restlichen Ressourcen in der Lösung entfernt ist, einschließlich der privaten Endpunkte für Arbeitsbereichsressourcen. | Die Isolation verwalteter virtueller Netzwerke erhöht die Sicherheit, indem Sie Ihren Arbeitsbereich von anderen Netzwerken isoliert, wodurch das Risiko eines nicht autorisierten Zugriffs verringert wird. In einem Szenario, in dem eine Sicherheitsverletzung in einem anderen Netzwerk innerhalb Ihres organization auftritt, bleibt das isolierte Netzwerk Ihres Machine Learning-Arbeitsbereichs nicht betroffen, sodass Ihre Machine Learning-Workloads geschützt werden. |
Machine Learning-Netzwerkisolation: Konfigurieren Sie einen privaten Endpunkt für Ihren Machine Learning-Arbeitsbereich, und stellen Sie über diesen privaten Endpunkt eine Verbindung mit dem Arbeitsbereich her. | Die Machine Learning-Netzwerkisolation erhöht die Sicherheit, indem sichergestellt wird, dass der Zugriff auf Ihren Arbeitsbereich sicher und kontrolliert ist. Wenn ein privater Endpunkt für Ihren Arbeitsbereich konfiguriert ist, können Sie den Zugriff auf Ihren Arbeitsbereich so beschränken, dass er nur über die privaten IP-Adressen erfolgt. |
Nur genehmigten ausgehenden Zugriff zulassen: Konfigurieren Sie den ausgehenden Modus im verwalteten ausgehenden Zugriff des Machine Learning-Arbeitsbereichs auf, um Allow only approved outbound das Risiko der Datenexfiltration zu minimieren. Konfigurieren Sie private Endpunkte, Diensttags oder vollqualifizierte Domänennamen (FQDNs) für Ressourcen, auf die Sie zugreifen müssen. |
Diese Konfiguration minimiert das Risiko einer Datenexfiltration und verbessert die Datensicherheit. Wenn diese Konfiguration aktiviert ist, kann ein böswilliger Akteur, der Zugriff auf Ihr System erhält, Ihre Daten nicht an ein nicht genehmigtes externes Ziel senden. |
Isolation virtueller Netzwerke für abhängige Dienste: Konfigurieren Sie abhängige Dienste wie Storage, Key Vault und Container Registry mit privaten Endpunkten, und deaktivieren Sie den öffentlichen Zugriff. | Die Netzwerkisolation stärkt die Sicherheit, indem der Zugriff auf PaaS-Lösungen (Platform-as-a-Service) von Azure nur auf private IP-Adressen beschränkt wird. |
Verwaltete Identität: Verwenden Sie verwaltete Identitäten für die Authentifizierung zwischen Machine Learning und anderen Diensten. | Verwaltete Identitäten verbessern die Sicherheit, indem keine Anmeldeinformationen mehr gespeichert und Dienstprinzipale manuell verwaltet und rotiert werden müssen. |
Deaktivieren der lokalen Authentifizierung: Deaktivieren Sie die lokale Authentifizierung für Machine Learning-Computecluster und -Instanzen. | Das Deaktivieren der lokalen Authentifizierung erhöht die Sicherheit Ihres Machine Learning-Computes und ermöglicht eine zentrale Steuerung und Verwaltung von Identitäten und Ressourcenanmeldeinformationen. |
Deaktivieren Sie den öffentlichen SSH-Port: Stellen Sie sicher, dass der öffentliche SSH-Port (Secure Shell) im Machine Learning-Computecluster geschlossen ist, indem Sie auf Disabled festlegenremoteLoginPortPublicAccess . Wenden Sie eine ähnliche Konfiguration an, wenn Sie ein anderes Compute verwenden. |
Die Deaktivierung des SSH-Zugriffs verhindert, dass unbefugte Personen Zugriff erhalten und ihr System möglicherweise schaden können, und schützt Sie vor Brute-Force-Angriffen. |
Keine öffentlichen IP-Adressen für Machine Learning-Compute bereitstellen: Legen Sie enableNodePublicIp beim Bereitstellen von Machine Learning-Computeclustern oder Computeinstanzen auf false fest. Wenden Sie eine ähnliche Konfiguration an, wenn Sie ein anderes Compute verwenden. |
Verzichten Sie auf die Bereitstellung öffentlicher IP-Adressen, um die Sicherheit zu erhöhen, indem Sie das Potenzial für nicht autorisierten Zugriff auf Ihre Compute-instance oder Cluster einschränken. |
Abrufen des neuesten Betriebssystemimages: Erstellen Sie Computeinstanzen neu, um das neueste Betriebssystemimage abzurufen. | Die Verwendung der neuesten Images stellt sicher, dass Sie eine konsistente, stabile und sichere Umgebung beibehalten, einschließlich der Sicherstellung, dass Sie über die neuesten Sicherheitspatches verfügen. |
Strenge Zugriffssteuerung für Machine Learning-Arbeitsbereiche: Verwenden Sie Microsoft Entra ID Gruppen, um den Arbeitsbereichszugriff zu verwalten und das Prinzip der geringsten Berechtigungen für RBAC einzuhalten. | Strenge Zugriffssteuerungen für Arbeitsbereiche erhöhen die Sicherheit, indem sichergestellt wird, dass Personen nur über die erforderlichen Berechtigungen für ihre Rolle verfügen. Ein Datenwissenschaftler hat für instance möglicherweise Zugriff auf die Ausführung von Experimenten, aber nicht zum Ändern von Sicherheitseinstellungen, um potenzielle Sicherheitsrisiken zu minimieren. |
Einschränken von Modellkatalogbereitstellungen: Schränken Sie Modellbereitstellungen auf bestimmte Registrierungen ein. | Durch Einschränken der Bereitstellungen aus dem Modellkatalog auf bestimmte Registrierungen wird sichergestellt, dass Sie Modelle nur für genehmigte Registrierungen bereitstellen. Dieser Ansatz hilft bei der Regulierung des Zugriffs auf die Open-Source-Basismodelle. |
Verschlüsseln ruhender Daten: Erwägen Sie die Verwendung von kundenseitig verwalteten Schlüsseln mit Machine Learning. | Durch die Verschlüsselung ruhender Daten wird die Datensicherheit verbessert, indem sichergestellt wird, dass vertrauliche Daten mithilfe von direkt von Ihnen verwalteten Schlüsseln verschlüsselt werden. Wenn Sie eine gesetzliche Anforderung zum Verwalten eigener Verschlüsselungsschlüssel haben, verwenden Sie dieses Feature, um diese Anforderung zu erfüllen. |
Minimieren sie das Risiko der Datenexfiltration: Implementieren Sie die Verhinderung der Datenexfiltration. Erstellen Sie beispielsweise eine Dienstendpunktrichtlinie, um ausgehenden Datenverkehr virtueller Netzwerke zu filtern und datenexfiltration nur in bestimmte Azure Storage-Konten zuzulassen. | Minimieren Sie das Risiko der Datenexfiltration, indem Sie ein- und ausgehende Anforderungen einschränken. |
Advisor
Im Folgenden sind einige Beispiele für bewährte Sicherheitsempfehlungen von Advisor für Machine Learning aufgeführt:
- Arbeitsbereiche sollten mit einem kundenseitig verwalteten Schlüssel (CMK) verschlüsselt werden.
- Arbeitsbereiche sollten Azure Private Link verwenden.
- Arbeitsbereiche sollten den Zugriff auf öffentliche Netzwerke deaktivieren.
- Compute sollte sich in einem virtuellen Netzwerk befinden.
- Computeinstanzen sollten neu erstellt werden, um die neuesten Softwareupdates zu erhalten.
Azure Policy
Im Folgenden sind Beispiele für integrierte Azure Policy Definitionen für Machine Learning-Sicherheit aufgeführt:
- Konfigurieren Sie zulässige Registrierungen für angegebene Machine Learning-Computes.
- Konfigurieren Sie zulässige Python-Pakete für angegebene Machine Learning-Computes.
- Machine Learning-Arbeitsbereiche sollten den Zugriff auf öffentliche Netzwerke deaktivieren.
- Machine Learning-Computeinstanzen sollten neu erstellt werden, um die neuesten Softwareupdates zu erhalten.
- Machine Learning-Computes sollten sich in einem virtuellen Netzwerk befinden.
- Für Machine Learning-Computes sollten lokale Authentifizierungsmethoden deaktiviert sein.
- Machine Learning-Arbeitsbereiche sollten mit einem CMK verschlüsselt werden.
- Machine Learning-Arbeitsbereiche sollten Private Link verwenden.
- Machine Learning-Arbeitsbereiche sollten eine benutzerseitig zugewiesene verwaltete Identität verwenden.
- Fordern Sie einen Genehmigungsendpunkt namens vor der Ausführung von Aufträgen für angegebene Machine Learning-Computes an.
- Erfordern Sie die Codesignatur für Trainingscode für Computes.
- Beschränken Sie die Modellbereitstellung auf bestimmte Registrierungen.
Kostenoptimierung
Die Kostenoptimierung konzentriert sich auf das Erkennen von Ausgabenmustern, die Priorisierung von Investitionen in kritische Bereiche und die Optimierung in anderen Bereichen, um das Budget des organization zu erfüllen und gleichzeitig die Geschäftsanforderungen zu erfüllen.
Lesen Sie die Entwurfsprinzipien der Kostenoptimierung , um die Ansätze zum Erreichen dieser Ziele und die erforderlichen Kompromisse bei technischen Entwurfsentscheidungen im Zusammenhang mit dem Training und der Bereitstellung von Modellen in ihren Umgebungen zu verstehen.
Prüfliste für den Entwurf
Starten Sie Ihre Entwurfsstrategie basierend auf der Prüfliste für die Entwurfsüberprüfung für Die Kostenoptimierung für Investitionen, und optimieren Sie den Entwurf so, dass die Workload mit dem für die Workload zugewiesenen Budget ausgerichtet ist. Ihr Entwurf sollte die richtigen Azure-Funktionen verwenden, Investitionen überwachen und Möglichkeiten zur Optimierung im Laufe der Zeit finden.
Nutzungsoptimierung: Wählen Sie die entsprechenden Ressourcen aus, um sicherzustellen, dass sie ihren Workloadanforderungen entsprechen. Wählen Sie beispielsweise zwischen CPUs oder GPUs, verschiedenen SKUs oder VMs mit niedriger oder regulärer Priorität aus.
Nutzungsoptimierung: Stellen Sie sicher, dass computeressourcen, die nicht verwendet werden, herunterskaliert oder heruntergefahren werden, wenn sie leer sind, um Verschwendung zu reduzieren.
Nutzungsoptimierung: Wenden Sie Richtlinien an, und konfigurieren Sie Kontingente, um die oberen und unteren Grenzwerte des Entwurfs einzuhalten.
Nutzungsoptimierung: Testen Sie die Parallelisierung von Trainingsworkloads, um festzustellen, ob die Trainingsanforderungen mit kostengünstigen SKUs erfüllt werden können.
Ratenoptimierung: Kaufen Sie reservierte Instanzen virtueller Azure-Computer, wenn Sie eine gute Schätzung der Nutzung für die nächsten ein bis drei Jahre haben.
Überwachen und Optimieren: Überwachen Sie ihre Ressourcennutzung, z. B. CPU- und GPU-Auslastung beim Trainieren von Modellen. Wenn die Ressourcen nicht vollständig ausgelastet sind, ändern Sie Ihren Code, um Ressourcen besser auszulasten, oder skalieren Sie sie auf kleinere oder kostengünstigere VM-Größen herunter.
Empfehlungen
Empfehlung | Vorteil |
---|---|
Optimieren von Computeressourcen: Optimieren Sie Ihre Computeressourcen basierend auf den Anforderungen Ihrer Workload. Wählen Sie die SKU aus, die am besten zu Ihrer Workload passt:
|
Die Auswahl der richtigen Compute ist von entscheidender Bedeutung, da sich dies direkt auf die Kosten für die Ausführung Ihrer Workload auswirkt. Die Auswahl einer GPU oder einer leistungsstarken SKU ohne ordnungsgemäße Nutzung kann zu verschwenderischen Ausgaben führen, während die Auswahl einer unterdimensionierten Compute zu übermäßig langen Trainingszeiten und Leistungsproblemen führen kann. |
Optimieren der Computeskalierung: Konfigurieren Sie Ihre Computecluster für die automatische Skalierung , um sicherzustellen, dass Sie nur das verwenden, was Sie benötigen. Legen Sie für Trainingscluster die Mindestanzahl von Knoten auf 0 fest, und konfigurieren Sie die Dauer, in der sich der Knoten im Leerlauf befindet, auf eine angemessene Zeit. Um weniger iterative Experimente zu erzielen, reduzieren Sie die Zeit, um Kosten zu sparen. Für weitere iterative Experimente sollten Sie eine höhere Zeit verwenden, um zu verhindern, dass nach jeder Änderung hoch- oder herunterskaliert wird. |
Konfigurieren Sie die automatische Skalierung für Computecluster, um bei geringer Auslastung herunterskaliert zu werden. Legen Sie die Mindestanzahl von Knoten auf 0 fest, damit Trainingscluster bei nicht verwendetem Herunterskalieren auf 0 herunterskaliert werden. |
Festlegen von Trainingsbeendigungsrichtlinien: Legen Sie Richtlinien für vorzeitige Beendigungen fest , um die Dauer der Trainingsläufe zu begrenzen oder sie frühzeitig zu beenden. | Das Festlegen von Beendigungsrichtlinien kann Ihnen helfen, Kosten zu sparen, indem Sie nicht konforme Ausführungsläufe frühzeitig beenden. |
Verwenden von virtuellen Computern mit niedriger Priorität für Batchworkloads: Erwägen Sie die Verwendung virtueller Computer mit niedriger Priorität für Batchworkloads , die nicht zeitabhängig sind und bei denen Unterbrechungen wiederhergestellt werden können. | Virtuelle Computer mit niedriger Priorität ermöglichen es, eine große Menge an Computeleistung zu geringen Kosten zu nutzen. Sie nutzen die überschüssige Kapazität in Azure. |
Aktivieren des Herunterfahrens im Leerlauf für Computeinstanzen: Aktivieren Sie das Herunterfahren im Leerlauf für Computeinstanzen oder planen Sie eine Start- und Stoppzeit , wenn die Nutzungszeit bekannt ist. | Standardmäßig stehen Ihnen Computeinstanzen zur Verfügung, die Kosten ansammeln. Das Konfigurieren von Computeinstanzen für das Herunterfahren im Leerlauf oder das Konfigurieren eines Zeitplans für sie spart Kosten, wenn sie nicht verwendet werden. |
Parallelisieren von Trainingsworkloads: Erwägen Sie die Parallelisierung von Trainingsworkloads. Testen Sie die Ausführung mit Hilfe der parallelen Komponenten in Machine Learning. | Parallele Workloads können auf mehreren kleineren Instanzen ausgeführt werden, was zu Kosteneinsparungen führen kann. |
Azure Reserved VM Instances: Erwerben Sie reservierte Azure-VM-Instanzen, wenn Sie eine gute Schätzung der Nutzung für die nächsten ein bis drei Jahre haben. Nutzen Sie reservierte Kapazitätsoptionen für Dienste, wenn Sie eine gute Schätzung der Nutzung haben. | Erwerben Sie reservierte Azure-VM-Instanzen, um die Nutzung virtueller Computer im Voraus zu bezahlen, und gewähren Sie Rabatte mit nutzungsbasierten Preisen. Der Rabatt wird automatisch für die Nutzung virtueller Computer angewendet, die der Reservierung entspricht. |
Optimaler Betrieb
Operational Excellence konzentriert sich in erster Linie auf Verfahren für Entwicklungsmethoden, Beobachtbarkeit und Releaseverwaltung.
Die Operational Excellence-Entwurfsprinzipien bieten eine allgemeine Entwurfsstrategie zum Erreichen dieser Ziele im Hinblick auf die betrieblichen Anforderungen der Workload.
Prüfliste für den Entwurf
Starten Sie Ihre Entwurfsstrategie auf der Grundlage der Prüfliste für die Entwurfsüberprüfung für Operational Excellence zum Definieren von Prozessen für Beobachtbarkeit, Tests und Bereitstellung im Zusammenhang mit Machine Learning.
Entwicklungsstandards: Nutzen Sie die Vorteile von Machine Learning-Modellkatalogen und -Registrierungen, um Machine Learning-Ressourcen zu speichern, zu versionieren und gemeinsam zu nutzen.
Automatisieren für Effizienz: Befolgen Sie gute MlOps-Methoden (Machine Learning Operations). Erstellen Sie nach Möglichkeit automatisierte End-to-End-Pipelines für Datenvorbereitungs-, Trainings- und Bewertungsprozesse. Verwenden Sie in der Entwicklung Skripts anstelle von Notebooks für Trainingsmodelle, da Skripts einfacher in automatisierte Pipelines integriert werden können.
Sicher bereitstellen: Implementieren Sie Infrastructure-as-Code (IaC) für Machine Learning-Arbeitsbereiche, Computecluster, Computeinstanzen und andere Bereitstellungsumgebungen.
Beobachtbarkeit: Überwachen Sie die Leistung Ihrer bereitgestellten Modelle, einschließlich Datendrift.
Beobachtbarkeit: Wenn Ihre Modelle auf Onlineendpunkten bereitgestellt werden, aktivieren Sie Application Insights zum Überwachen von Onlineendpunkten und Bereitstellungen. Überwachen Sie die Trainingsinfrastruktur, um sicherzustellen, dass Sie Ihre Basisanforderungen erfüllen.
Einfachheit: Verwenden Sie kuratierte Umgebungen, die für Machine Learning optimiert sind, sofern verfügbar.
Empfehlungen
Empfehlung | Vorteil |
---|---|
Minimieren von Machine Learning-Arbeitsbereichsinstanzen: Minimieren Sie nach Möglichkeit die Anzahl von Arbeitsbereichen, um die Wartung zu reduzieren. | Die Begrenzung der Anzahl von Arbeitsbereichen reduziert den Wartungsaufwand und die Betriebskosten. Für Anforderungen wie Sicherheit benötigen Sie möglicherweise mehrere separate Arbeitsbereiche. Minimieren Sie die Anzahl der Arbeitsbereiche nach Möglichkeit. |
Nutzen Sie Modellkataloge und Registrierungen: Nutzen Sie die Vorteile von Machine Learning-Modellkatalogen und -Registrierungen, um Machine Learning-Ressourcen zu speichern, zu versionieren und gemeinsam zu nutzen. Verwenden Sie Machine Learning-Modellkataloge, um A/B-Tests und die Bereitstellung von Modellen zu implementieren. |
Verwenden Sie Machine Learning-Modellregistrierungen, um Ihre Machine Learning-Modelle zu speichern und zu versionieren, um Änderungen nachzuverfolgen und die Herkunft mit den für das Training verwendeten Aufträgen und Datasets zu verwalten. Mit Machine Learning-Modellkatalogen können Ihre Data Science-Teams vortrainierte grundlegende Machine Learning-Modelle ermitteln, auswerten und optimieren. Das Speichern von versionierten Modellen in Machine Learning-Modellregistrierungen unterstützt Bereitstellungsstrategien wie A/B-Releases, Canary-Releases und Rollbacks. |
Überwachen der Modellleistung: Überwachen Sie die Leistung Ihrer bereitgestellten Modelle, und erkennen Sie Datendrift in Datasets. | Die Überwachung bereitgestellter Modelle stellt sicher, dass Ihre Modelle die Leistungsanforderungen erfüllen. Die Überwachung von Datendrift hilft Ihnen, Änderungen in den Eingabedaten zu erkennen, die zu einem Leistungsverlust Ihres Modells führen können. Durch die Verwaltung von Datendrift können Sie sicherstellen, dass Ihr Modell im Laufe der Zeit genaue Ergebnisse liefert. |
Überwachen der Infrastruktur: Wenn Ihre Modelle auf Onlineendpunkten bereitgestellt werden, aktivieren Sie Application Insights zum Überwachen von Onlineendpunkten und -bereitstellungen. Überwachen Sie die Trainingsinfrastruktur, um sicherzustellen, dass Sie Ihre Basisanforderungen erfüllen. Stellen Sie sicher, dass Sie Ressourcenprotokolle für Machine Learning sammeln. |
Mit Überwachungsendpunkten erhalten Sie Einblick in Metriken wie Anforderungslatenz und Anforderungen pro Minute. Sie können Ihre Leistung mit Ihrer Baseline vergleichen und diese Informationen verwenden, um entsprechende Änderungen an Computeressourcen vorzunehmen. Überwachungsmetriken wie Netzwerkbytes können Sie warnen, wenn Sie sich Kontingentlimits nähern und Drosselung verhindern. Ebenso erhalten Sie durch die Überwachung Ihrer Trainingsumgebung die Informationen, um Änderungen an Ihrer Trainingsumgebung vorzunehmen. Verwenden Sie diese Informationen, um zu entscheiden, ob Sie mit verschiedenen leistungsfähigen SKUs hoch- oder herunterskalieren oder zwischen CPUs oder GPUs wählen möchten. |
Kuratieren von Modelltrainingsumgebungen: Verwenden Sie kuratierte Umgebungen, die für Machine Learning optimiert sind, sofern verfügbar. |
Kuratierte Umgebungen sind vorab erstellte Umgebungen, die von Machine Learning bereitgestellt werden und die Bereitstellungszeit beschleunigen und die Wartezeit für Bereitstellung und Training verringern. Die Verwendung kuratierter Umgebungen verbessert die Erfolgsraten für Training und Bereitstellung und vermeidet unnötige Imagebuilds. Kuratierte Umgebungen wie Azure Container for PyTorch können auch für das Trainieren großer Modelle in Machine Learning optimiert werden. |
Effiziente Leistung
Bei der Leistungseffizienz geht es darum, die Benutzerfreundlichkeit zu erhalten, auch wenn die Auslastung durch die Verwaltung der Kapazität erhöht wird. Die Strategie umfasst das Skalieren von Ressourcen, das Identifizieren und Optimieren potenzieller Engpässe sowie die Optimierung von Spitzenleistungen.
Die Entwurfsprinzipien der Leistungseffizienz bieten eine allgemeine Entwurfsstrategie, um diese Kapazitätsziele im Vergleich zur erwarteten Nutzung zu erreichen.
Prüfliste für den Entwurf
Starten Sie Ihre Entwurfsstrategie basierend auf der Prüfliste der Entwurfsüberprüfung für die Leistungseffizienz , um eine Baseline basierend auf Schlüsselleistungsindikatoren für Machine Learning-Workloads zu definieren.
Leistungsziele: Bestimmen Sie die akzeptable Trainingszeit und die Häufigkeit des Erneuttrainings für Ihr Modell. Das Festlegen eines klaren Ziels für die Trainingszeit zusammen mit Tests hilft Ihnen dabei, die Computeressourcen, CPU im Vergleich zu GPU und CPU-SKUs zu bestimmen, die zum Erreichen des Trainingszeitziels erforderlich sind.
Leistungsziele: Definieren Sie die akzeptablen Leistungsziele für Ihre bereitgestellten Modelle, einschließlich Antwortzeit, Anforderungen pro Sekunde, Fehlerrate und Betriebszeit. Leistungsziele dienen als Benchmark für die Effizienz Ihres bereitgestellten Modells. Ziele können Ihnen dabei helfen, CPU- und GPU-Entscheidungen, CPU-SKU-Entscheidungen und Skalierungsanforderungen zu treffen.
Kapazitätsanforderungen erfüllen: Wählen Sie die richtigen Computeressourcen für das Modelltraining aus.
Kapazitätsanforderungen erfüllen: Wählen Sie die richtigen Computeressourcen für Modellbereitstellungen aus.
Kapazitätsanforderungen erfüllen: Wählen Sie Bereitstellungsumgebungen mit Funktionen zur automatischen Skalierung aus, um Bei bedarfsschwankungen Kapazität hinzuzufügen und zu entfernen.
Leistung erzielen und erhalten: Überwachen Sie kontinuierlich die Leistung Ihrer bereitgestellten Modelle, überprüfen Sie die Ergebnisse und ergreifen Sie geeignete Maßnahmen.
Leistung erzielen und erhalten: Überwachen Sie kontinuierlich die Leistung Ihrer Infrastruktur der bereitgestellten Modelle, überprüfen Sie die Ergebnisse und ergreifen Sie geeignete Maßnahmen. Überwachen Sie die Trainingsinfrastruktur, um sicherzustellen, dass Sie Ihre Anforderungen an die Trainingszeit erfüllen.
Empfehlungen
Empfehlung | Vorteil |
---|---|
Wählen Sie geeignete Computedienste für das Modelltraining aus: Ziehen Sie Machine Learning-Computecluster über Computeinstanzen für das Modelltraining in Betracht, wenn Sie eine automatische Skalierung benötigen. Optimieren Sie Ihre Computeressourcen basierend auf den Schulungsanforderungen. Wählen Sie zunächst zwischen CPUs und GPUs. Standardmäßig werden CPUs verwendet, aber sie sollten GPUs für Workloads wie Deep Learning, Bild- oder Videoverarbeitung oder große Datenmengen in Betracht ziehen. Wählen Sie als Nächstes die Image-SKU aus, die am besten zu Ihrer Workload passt. Verwenden Sie Tests, um die Computeoption auszuwählen, die die Kosten für die Trainingszeit bei der Bestimmung Ihres Baselines optimiert. |
Die Auswahl der richtigen Compute ist wichtig, da sie sich direkt auf die Trainingszeit auswirkt. Wenn Sie die richtige SKU und CPU im Vergleich zur GPU auswählen, stellen Sie sicher, dass Ihr Modelltraining Ihre Anforderungen und Leistungsziele erfüllt. Die Auswahl einer leistungsschwachen SKU, die übermäßig ausgelastet ist, kann zu übermäßig langen Trainingszeiten und Leistungsproblemen führen. Computecluster bieten die Möglichkeit, die Leistung zu verbessern, indem Workloads hochskaliert werden, die horizontale Skalierung unterstützen. Diese Methode bietet Flexibilität für die Verarbeitung von Workloads mit unterschiedlichen Anforderungen und ermöglicht das Hinzufügen oder Entfernen von Computern nach Bedarf. |
Skalierung der Modellbereitstellungsumgebung: Verwenden Sie die Funktionen der Bereitstellungsumgebung für die automatische Skalierung. Verwenden Sie für AKS-Bereitstellungsumgebungen die automatische Clusterskalierung, um bedarfsgesteuert zu skalieren. Bei Onlineendpunkten wird die automatische Skalierung über die Integration mit dem Feature für die automatische Skalierung von Azure Monitor automatisch skaliert. | Die automatische Skalierung passt die Anzahl der Instanzen des bereitgestellten Modells an den Bedarf an. |
Überwachen der Modellleistung: Überwachen Sie die Leistung Ihrer bereitgestellten Modelle. | Die Überwachung der Leistung von Modellen in der Produktion warnt Sie auf potenzielle Probleme wie Datendrift, Vorhersagedrift, Datenqualität und Featurezuordnungsdrift. Die Überwachung von Datendrift hilft Ihnen, Änderungen in den Eingabedaten zu erkennen, die zu einem Leistungsverlust Ihres Modells führen können. Durch die Verwaltung von Datendrift können Sie sicherstellen, dass Ihr Modell im Laufe der Zeit genaue Ergebnisse liefert. |
Überwachen der Infrastruktur: Überwachen Sie Onlineendpunkte und integrieren Sie sie in Monitor, um die entsprechenden Metriken und Protokolle nachzuverfolgen und zu überwachen. Aktivieren Sie Application Insights beim Erstellen von Onlinebereitstellungen. Überwachen Sie die Trainingsinfrastruktur und überprüfen Sie die Ressourcennutzung wie Arbeitsspeicher und CPU- oder GPU-Auslastung bei Trainingsmodellen, um sicherzustellen, dass Sie Ihre Basisanforderungen erfüllen. |
Mit Überwachungsendpunkten erhalten Sie Einblick in Metriken wie Anforderungslatenz und Anforderungen pro Minute. Sie können Ihre Leistung mit Ihrer Baseline vergleichen und diese Informationen verwenden, um entsprechende Änderungen an Computeressourcen vorzunehmen. Überwachungsmetriken wie Netzwerkbytes können Sie warnen, wenn Sie sich Kontingentlimits nähern und Drosselung verhindern. Ebenso erhalten Sie durch die Überwachung Ihrer Trainingsumgebung die Informationen, um Änderungen an Ihrer Trainingsumgebung vorzunehmen. Verwenden Sie diese Informationen, um zu entscheiden, ob Sie mit verschiedenen leistungsfähigen SKUs hoch- oder herunterskalieren oder zwischen CPUs oder GPUs wählen möchten. |
Azure-Richtlinien
Azure bietet einen umfangreichen Satz integrierter Richtlinien im Zusammenhang mit Machine Learning und seinen Abhängigkeiten. Einige der vorherigen Empfehlungen können über Azure-Richtlinien überwacht werden. Berücksichtigen Sie die folgenden Richtlinien, die sich auf die Sicherheit beziehen:
- Zulässige Registrierungen für angegebene Machine Learning-Computes.
- Konfigurieren Sie zulässige Python-Pakete für angegebene Machine Learning-Computes.
- Machine Learning-Computes sollten sich in einem virtuellen Netzwerk befinden.
- Für Machine Learning-Computes sollten lokale Authentifizierungsmethoden deaktiviert sein.
- Machine Learning-Arbeitsbereiche sollten den Zugriff auf öffentliche Netzwerke deaktivieren.
- Machine Learning-Computeinstanzen sollten neu erstellt werden, um die neuesten Softwareupdates zu erhalten.
- Machine Learning-Arbeitsbereiche sollten mit einem kundenseitig verwalteten Schlüssel verschlüsselt werden.
- Machine Learning-Arbeitsbereiche sollten private Verknüpfungen verwenden.
- Machine Learning-Arbeitsbereiche sollten eine benutzerseitig zugewiesene verwaltete Identität verwenden.
- Fordern Sie einen Genehmigungsendpunkt namens vor der Ausführung von Aufträgen für angegebene Machine Learning-Computes an.
- Erfordern Sie die Codesignatur für Trainingscode für Computes.
- Beschränken Sie die Modellbereitstellung auf bestimmte Registrierungen.
Betrachten Sie die folgende Richtlinie, die sich auf die Kostenoptimierung bezieht:
Betrachten Sie die folgenden Richtlinien, die sich auf operative Exzellenz beziehen:
- Erfordern, dass Protokollfilterausdrücke und Datenspeicher für vollständige Protokolle für angegebene Machine Learning-Computes verwendet werden.
- Ressourcenprotokolle in Machine Learning-Arbeitsbereichen sollten aktiviert sein.
Eine umfassende Governance finden Sie unter Azure Policy integrierten Definitionen für Machine Learning.
Advisor-Empfehlungen
Beim Advisor handelt es sich um einen personalisierten Cloudberater, der Sie mit bewährten Methoden zum Optimieren von Azure-Bereitstellungen unterstützt. Advisor-Empfehlungen können Ihnen helfen, die Zuverlässigkeit, Sicherheit, Kosteneffizienz, Leistung und operative Exzellenz von Machine Learning zu verbessern.
Berücksichtigen Sie die folgenden Advisor-Empfehlungen für die Sicherheit:
- Arbeitsbereiche sollten mit einem kundenseitig verwalteten Schlüssel (CMK) verschlüsselt werden.
- Arbeitsbereiche sollten einen privaten Link verwenden.
- Arbeitsbereiche sollten den Zugriff auf öffentliche Netzwerke deaktivieren.
- Compute sollte sich in einem virtuellen Netzwerk befinden.
- Computeinstanzen sollten neu erstellt werden, um die neuesten Softwareupdates zu erhalten.
Berücksichtigen Sie die folgende Advisor-Empfehlung für operative Exzellenz:
- Ressourcenprotokolle in Machine Learning-Arbeitsbereichen sollten aktiviert sein.
Nächste Schritte
Betrachten Sie diese Artikel als Ressourcen, die die in diesem Artikel hervorgehobenen Empfehlungen veranschaulichen.
- Verwenden Sie die Baseline-OpenAI-End-to-End-Chat-Referenzarchitektur als Beispiel dafür, wie diese Empfehlungen auf eine Workload angewendet werden können.
- Verwenden Sie die Machine Learning-Produktdokumentation , um Implementierungskompetenz zu erstellen.