Entscheiden zwischen Computeoptionen
Wenn Sie Ihr eigenes Modell trainieren möchten, ist die wertvollste Ressource, die Sie verbrauchen werden, die Compute-Instanz. Besonders beim Modelltraining ist es wichtig, die am besten geeignete Compute-Instanz auszuwählen. Darüber hinaus sollten Sie die Computeauslastung überwachen, um zu ermitteln, wann hoch- oder herunterskaliert werden muss, um Zeit und Kosten zu sparen.
Die Ermittlung, welche VM-Größe Ihren Anforderungen am besten entspricht, ist zwar ein iterativer Prozess, aber es gibt einige Richtlinien, die Sie befolgen können, wenn Sie mit der Entwicklung beginnen.
CPU oder GPU
Eine wichtige Entscheidung beim Konfigurieren der Compute-Instanz ist, ob Sie einen Zentralprozessor (CPU) oder einen Grafikprozessor (GPU) verwenden möchten. Für kleinere Tabellendatasets ist die CPU ausreichend und kostengünstiger zu verwenden. Bei der Arbeit mit unstrukturierten Daten wie Bildern oder Text sind GPUs leistungsfähiger und effektiver.
Für größere Mengen von Tabellendaten kann es auch von Vorteil sein, GPUs zu verwenden. Wenn die Verarbeitung Ihrer Daten und das Modelltraining selbst mit der größten verfügbaren CPU-Compute-Instanz viel Zeit in Anspruch nimmt, sollten Sie stattdessen die Verwendung einer GPU-Compute-Instanz in Betracht ziehen. Es gibt Bibliotheken wie RAPIDs (entwickelt von NVIDIA), mit denen Sie Datenaufbereitung und Modelltraining mit größeren Tabellendatasets effizient durchführen können. Da GPUs höhere Kosten als CPUs bedeuten, sind möglicherweise einige Experimente erforderlich, um zu untersuchen, ob die Verwendung von GPUs für Ihre Situation von Vorteil ist.
Tipp
Weitere Informationen zum Trainieren rechenintensiver Modelle mit Azure Machine Learning.
Universell oder arbeitsspeicheroptimiert
Wenn Sie Computeressourcen für Machine Learning-Workloads erstellen, gibt es zwei gängige Typen von VM-Größen, aus denen Sie wählen können:
- Universell: Zeichnen sich durch ein ausgewogenes Verhältnis zwischen CPU und Arbeitsspeicher aus. Ideal für Tests und Entwicklung mit kleineren Datasets.
- Arbeitsspeicheroptimiert: Weisen ein hohes Verhältnis zwischen Arbeitsspeicher und CPU auf. Ideal für In-Memory-Analysen, die ideal ist, wenn Sie über größere Datasets verfügen oder in Notebooks arbeiten.
Die Größe der Compute-Instanz in Azure Machine Learning wird als VM-Größe angezeigt. Die Größen folgen den gleichen Namenskonventionen wie Azure Virtual Machines.
Tipp
Erfahren Sie mehr über die Größen für virtuelle Computer in Azure.
Spark
Dienste wie Azure Synapse Analytics und Azure Databricks bieten eine Spark-Compute-Instanz. Spark-Compute-Instanzen oder -Cluster verwenden dieselbe Größe wie virtuelle Computer in Azure, verteilen jedoch die Workloads.
Ein Spark-Cluster besteht aus einem Treiberknoten und Workerknoten. Ihr Code kommuniziert zunächst mit dem Treiberknoten. Die Arbeit wird dann auf die Workerknoten verteilt. Wenn Sie einen Dienst verwenden, der die Arbeit verteilt, können Teile der Workload parallel ausgeführt werden, wodurch die Verarbeitungszeit reduziert wird. Schließlich wird die Arbeit zusammengefasst und der Treiberknoten übermittelt Ihnen das Ergebnis.
Wichtig
Um einen Spark-Cluster optimal zu nutzen, muss Ihr Code in einer Spark-freundlichen Sprache wie Scala, SQL, RSpark oder PySpark geschrieben werden, um die Workload zu verteilen. Wenn Sie in Python schreiben, verwenden Sie nur den Treiberknoten und lassen die Workerknoten ungenutzt.
Wenn Sie einen Spark-Cluster erstellen, müssen Sie auswählen, ob Sie eine CPU- oder GPU-Compute-Instanz verwenden möchten. Sie müssen auch die Größe des virtuellen Computers für den Treiber und die Workerknoten auswählen.
Überwachen der Computeauslastung
Das Konfigurieren Ihrer Computeressourcen zum Trainieren eines Machine Learning-Modells ist ein iterativer Prozess. Wenn Sie wissen, über wie viele Daten Sie verfügen und wie Sie Ihr Modell trainieren möchten, haben Sie eine Vorstellung davon, welche Computeoptionen für das Training Ihres Modells am besten geeignet sind.
Jedes Mal, wenn Sie ein Modell trainieren, sollten Sie überwachen, wie lange das Trainieren des Modells dauert und wie hoch der Computeaufwand für die Ausführung Ihres Codes ist. Wenn Sie die Computeauslastung überwachen, wissen Sie, ob Sie Ihre Compute-Instanz herauf- oder herunterskalieren müssen. Wenn das Trainieren Ihres Modells zu lange dauert, selbst bei der größten Computegröße, sollten Sie GPUs anstelle von CPUs verwenden. Alternativ können Sie das Modelltraining mithilfe von Spark-Compute verteilen, sodass Sie Ihre Trainingsskripts möglicherweise erneut generieren müssen.