In diesem Dokument wird eine Referenzarchitektur beschrieben, mit der Sie die Leistung für Arbeitslasten aus den Bereichen künstliche Intelligenz (KI) und maschinelles Lernen (ML) mit Parallelstore optimieren können. Parallelstore ist ein paralleler Dateisystemspeicherdienst, mit dem Sie Kosten senken, die Ressourcenauslastung verbessern und die Trainingszeiten für Ihre KI- und ML-Arbeitslasten verkürzen können.
Dieses Dokument richtet sich an Architekten und technische Fachkräfte, die Speicher für ihre KI- und ML-Arbeitslasten in Google Cloudentwerfen, bereitstellen und verwalten. In diesem Dokument wird davon ausgegangen, dass Sie mit dem Lebenszyklus, den Prozessen und den Funktionen von ML vertraut sind.
Parallelstore ist ein vollständig verwaltetes, leistungsstarkes Scratch-Dateisystem in Google Cloud , das auf der DAOS-Architektur (Distributed Asynchronous Object Storage) basiert. Parallelstore eignet sich ideal für KI- und ML-Arbeitslasten, die bis zu 100 TiB Speicherkapazität nutzen und einen Zugriff mit niedriger Latenz (unter einer Millisekunde) mit hohem Durchsatz und hoher Eingabe-/Ausgabeanzahl pro Sekunde (IOPS) bieten müssen.
Parallelstore bietet mehrere Vorteile für KI- und ML-Arbeitslasten, darunter:
- Niedrigere Gesamtbetriebskosten (TCO) für das Training: Parallelstore beschleunigt die Trainingszeit, indem Daten effizient an Compute-Knoten übertragen werden. Diese Funktion trägt dazu bei, die Gesamtbetriebskosten für das Training von KI- und ML-Modellen zu senken.
- Niedrigere Gesamtbetriebskosten für das Bereitstellen: Die Hochleistungsfunktionen von Parallelstore ermöglichen ein schnelleres Laden von Modellen und ein optimiertes Bereitstellen von Inferenzen. Diese Funktionen tragen dazu bei, die Rechenkosten zu senken und die Ressourcennutzung zu verbessern.
- Effiziente Ressourcennutzung: Mit Parallelstore können Sie Training, Checkpointing und Bereitstellung in einer einzigen Instanz kombinieren. Diese Ressourcennutzung trägt dazu bei, den Lese- und Schreibdurchsatz in einem einzigen Hochleistungsspeichersystem effizient zu nutzen.
Architektur
Das folgende Diagramm zeigt eine Beispielarchitektur für die Verwendung von Parallelstore zur Optimierung der Leistung einer Arbeitslast für das Modelltraining und die Bereitstellung:
Die in der vorherigen Architektur dargestellten Arbeitslasten werden in den folgenden Abschnitten ausführlich beschrieben. Die Architektur umfasst die folgenden Komponenten:
Komponente | Zweck |
---|---|
Google Kubernetes Engine (GKE)-Cluster | GKE verwaltet die Compute-Hosts, auf denen die Prozesse zum Trainieren und Bereitstellen von KI- und ML-Modellen ausgeführt werden. GKE verwaltet die zugrunde liegende Infrastruktur von Clustern, einschließlich der Steuerungsebene, Knoten und aller Systemkomponenten. |
Kubernetes-Planer | Die GKE-Steuerungsebene plant Arbeitslasten und verwaltet ihren Lebenszyklus, ihre Skalierung und ihre Upgrades. Der Kubernetes-Knoten-Agent (kubelet ), der im Diagramm nicht dargestellt ist, kommuniziert mit der Steuerungsebene. Der kubelet ist für das Starten und Ausführen von Containern verantwortlich, die auf den GKE-Knoten geplant sind.
Sie können GPUs für Batch- und KI-Arbeitslasten mit dem Dynamic Workload Scheduler bereitstellen. So können Sie GPUs ohne große Bindung anfordern. Weitere Informationen zum Scheduler finden Sie unter KI-/ML-Orchestrierung in GKE. |
VPC-Netzwerk (Virtual Private Cloud) | Alle Google Cloud Ressourcen in der Architektur verwenden ein einziges VPC-Netzwerk. Je nach Ihren Anforderungen können Sie eine Architektur erstellen, die mehrere Netzwerke verwendet. Weitere Informationen zum Konfigurieren eines VPC-Netzwerks für Parallelstore finden Sie unter VPC-Netzwerk konfigurieren. |
Cloud Load Balancing | In dieser Architektur verteilt Cloud Load Balancing eingehende Inferenzanfragen von Anwendungsnutzern effizient an die ausführenden Container im GKE-Cluster. Die Verwendung von Cloud Load Balancing trägt dazu bei, eine hohe Verfügbarkeit, Skalierbarkeit und optimale Leistung für die KI- und ML-Anwendung zu gewährleisten. Weitere Informationen finden Sie unter Informationen zum GKE-Load Balancing. |
Grafikprozessor (GPU) oder Tensor Processing Units (TPUs) | GPUs und TPUs sind spezielle Hardwarebeschleuniger, die die Leistung Ihrer KI- und ML-Arbeitslast verbessern. Weitere Informationen zur Auswahl eines geeigneten Prozessortyps finden Sie weiter unten in diesem Dokument unter Beschleunigeroptionen. |
Parallelstore | Parallelstore beschleunigt das Training und den Dienst von KI und ML durch ein leistungsstarkes paralleles Dateisystem, das für niedrige Latenz und hohen Durchsatz optimiert ist. Im Vergleich zur Verwendung von Cloud Storage allein verkürzt die Verwendung von Parallelstore die Trainingszeit erheblich und verbessert die Reaktionsfähigkeit Ihrer Modelle bei der Bereitstellung. Diese Verbesserungen sind besonders bei anspruchsvollen Arbeitslasten spürbar, die einen schnellen und konsistenten Zugriff auf freigegebene Daten erfordern. |
Cloud Storage | Cloud Storage bietet nichtflüchtigen und kostengünstigen Speicherplatz für Ihre KI- und ML-Arbeitslasten. Cloud Storage dient als zentrales Repository für Ihre Rohtrainingsdatensätze, Modellprüfpunkte und die endgültig trainierten Modelle. Mit Cloud Storage können Sie die Langlebigkeit, langfristige Verfügbarkeit und Kosteneffizienz von Daten sicherstellen, die nicht aktiv für Berechnungen verwendet werden. |
Trainingslast
In der vorherigen Architektur sind dies die Schritte im Datenfluss während des Modelltrainings:
- Trainingsdaten in Cloud Storage hochladen: Sie laden Trainingsdaten in einen Cloud Storage-Bucket hoch, der als sicheres und skalierbares zentrales Repository und als vertrauenswürdige Quelle dient.
- Daten in Parallelstore kopieren: Der Korpus mit Trainingsdaten wird über einen Bulk-API-Import in eine Parallelstore-Instanz aus Cloud Storage übertragen. Wenn Sie die Trainingsdaten übertragen, können Sie die leistungsstarken Dateisystemfunktionen von Parallelstore nutzen, um die Datenlade- und Verarbeitungsgeschwindigkeit während des Modelltrainings zu optimieren.
- Trainingsjobs in GKE ausführen: Der Modelltrainingsprozess wird auf GKE-Knoten ausgeführt. Wenn Sie Parallelstore als Datenquelle verwenden, anstatt Daten direkt aus Cloud Storage zu laden, können die GKE-Knoten mit deutlich höherer Geschwindigkeit und Effizienz auf Trainingsdaten zugreifen und sie laden. Mit Parallelstore können Sie die Ladezeiten von Daten reduzieren und den gesamten Trainingsvorgang beschleunigen, insbesondere bei großen Datensätzen und komplexen Modellen. Je nach Arbeitslastanforderungen können Sie GPUs oder TPUs verwenden. Informationen zur Auswahl eines geeigneten Prozessortyps finden Sie weiter unten in diesem Dokument unter Beschleunigeroptionen.
- Trainings-Checkpunkte in Parallelstore speichern: Während des Trainings werden anhand von von Ihnen definierten Messwerten oder Intervallen Prüfpunkte in Parallelstore gespeichert. Die Checkpoints erfassen den Zustand des Modells in kurzen Intervallen.
- Prüfpunkte und Modell in Cloud Storage speichern: Wir empfehlen, einen Bulk-API-Export aus der Parallelstore-Instanz zu verwenden, um einige Prüfpunkte und das trainierte Modell in Cloud Storage zu speichern. Dies sorgt für Ausfallsicherheit und ermöglicht zukünftige Anwendungsfälle wie die Fortsetzung des Trainings an einem bestimmten Punkt, die Bereitstellung des Modells für die Produktion und die Durchführung weiterer Tests. Es empfiehlt sich, Checkpoints in einem anderen Bucket als Ihre Trainingsdaten zu speichern.
- Checkpoints oder Modell wiederherstellen: Wenn Sie in Ihrem KI- und ML-Workflow Checkpoints oder Modelldaten wiederherstellen müssen, müssen Sie das Asset, das Sie wiederherstellen möchten, in Cloud Storage suchen. Wählen Sie das Asset aus, das Sie basierend auf dem Zeitstempel, dem Leistungsmesswert oder einer bestimmten Version wiederherstellen möchten. Verwenden Sie den API-Import, um das Asset aus Cloud Storage in Parallelstore zu übertragen, und laden Sie es dann in Ihren Trainingscontainer. Sie können dann den wiederhergestellten Checkpoint oder das wiederhergestellte Modell verwenden, um das Training fortzusetzen, Parameter zu optimieren oder die Leistung in einem Validierungs-Dataset zu bewerten.
Ausgelieferte Arbeitslast
In der vorherigen Architektur sind dies die Schritte im Datenfluss während des Bereitstellens des Modells:
- Modell für die Bereitstellung laden: Nach Abschluss des Trainings laden Ihre Pods das trainierte Modell auf die Bereitstellungsknoten. Wenn die Parallelstore-Instanz, die Sie während des Trainings verwendet haben, eine ausreichende IOPS-Kapazität hat, können Sie das Laden des Modells beschleunigen und die Kosten senken, indem Sie die Trainingsinstanz zum Bereitstellen des Modells verwenden. Durch die Wiederverwendung der Trainingsinstanz können Ressourcen effizient zwischen Training und Bereitstellung geteilt werden. Für eine optimale Leistung und Kompatibilität sollten Sie jedoch einen Beschleunigertyp (GPU oder TPU) für das Training verwenden, der mit dem Beschleunigertyp übereinstimmt, der auf den ausführenden GKE-Knoten verfügbar ist.
- Inferenzanfrage: Anwendungsnutzer senden Inferenzanfragen über die KI- und ML-Anwendung. Diese Anfragen werden an den Cloud Load Balancing-Dienst weitergeleitet. Cloud Load Balancing verteilt die eingehenden Anfragen auf die ausführenden Container im GKE-Cluster. So wird sichergestellt, dass kein einzelner Container überlastet wird und Anfragen effizient verarbeitet werden.
- Ausführung von Inferenzanfragen: Während der Produktion verarbeitet das System Inferenzanfragen effizient, indem es den Cache für die Modellbereitstellung nutzt. Die Compute-Knoten interagieren mit dem Cache, indem sie zuerst nach einer übereinstimmenden Vorhersage suchen. Wenn eine übereinstimmende Vorhersage gefunden wird, wird sie direkt zurückgegeben. Dies trägt dazu bei, die Antwortzeiten und die Ressourcennutzung zu optimieren. Andernfalls verarbeitet das Modell die Anfrage, generiert eine Vorhersage und speichert sie zur künftigen Effizienz im Cache.
- Antwortübermittlung: Die Auslieferungscontainer senden die Antworten über Cloud Load Balancing zurück. Cloud Load Balancing leitet die Antworten an die entsprechenden Anwendungsnutzer zurück, wodurch der Zyklus der Inferenzanfrage abgeschlossen wird.
Verwendete Produkte
In dieser Referenzarchitektur werden die folgenden Google Cloud Produkte verwendet:
- Virtual Private Cloud (VPC): Ein virtuelles System, das globale, skalierbare Netzwerkfunktionen für Ihre Google Cloud Arbeitslasten bietet. VPC umfasst VPC-Netzwerk-Peering, Private Service Connect, Zugriff auf private Dienste und freigegebene VPCs.
- Google Kubernetes Engine (GKE): Ein Kubernetes-Dienst, mit dem Sie Containeranwendungen in großem Maßstab mithilfe der Infrastruktur von Google bereitstellen und betreiben können.
- Cloud Storage: Ein kostengünstiger, unbegrenzter Objektspeicher für verschiedene Datentypen. Auf Daten kann von innerhalb und außerhalb von Google Cloudzugegriffen werden. Sie werden zu Redundanzzwecken über Standorte hinweg repliziert.
- Parallelstore: Ein vollständig verwaltetes paralleles Dateisystem für KI, Hochleistungs-Computing (HPC) und datenintensive Anwendungen.
Anwendungsfälle
Parallelstore eignet sich ideal für KI- und ML-Arbeitslasten mit bis zu 100 TiB Speicherkapazität, die einen Zugriff mit niedriger Latenz (unter einer Millisekunde) mit hohem Durchsatz und hohen IOPS bieten müssen. In den folgenden Abschnitten finden Sie Beispiele für Anwendungsfälle, für die Sie Parallelstore verwenden können.
Textbasierte Verarbeitung und Textgenerierung
Large Language Models (LLMs) sind spezielle KI-Modelle, die speziell für das Verstehen und Verarbeiten textbasierter Daten entwickelt wurden. LLMs werden mit riesigen Text-Datasets trainiert, sodass sie eine Vielzahl von Aufgaben ausführen können, darunter maschinelle Übersetzung, Fragenbeantwortung und Textzusammenfassung. Für das Training von LLM-Modellen ist ein Zugriff auf die Datasets mit niedriger Latenz erforderlich, um Anfragen effizient zu verarbeiten und Text zu generieren. Parallelstore eignet sich hervorragend für datenintensive Anwendungen, da es sowohl für das Training als auch für die Inferenz einen hohen Durchsatz und eine niedrige Latenz bietet. Das führt zu reaktionsschnelleren Anwendungen, die auf LLM basieren.
Bild- oder Videoverarbeitung in hoher Auflösung
Traditionelle KI- und ML-Anwendungen oder multimodale generative Modelle, die hochauflösende Bilder oder Videos verarbeiten, z. B. die Analyse medizinischer Bilder oder autonome Fahrsysteme, erfordern eine große Speicherkapazität und einen schnellen Datenzugriff. Das leistungsstarke Scratch-Dateisystem von Parallelstore ermöglicht ein schnelles Laden von Daten, um die Anwendungsleistung zu beschleunigen. Parallelstore kann beispielsweise große Mengen an Patientendaten wie MRT- und CT-Scans vorübergehend speichern und verarbeiten, die aus Cloud Storage abgerufen werden. Mit dieser Funktion können KI- und ML-Modelle die Daten schnell zur Diagnose und Behandlung analysieren.
Designalternativen
In den folgenden Abschnitten werden alternative Designansätze vorgestellt, die Sie für Ihre KI- und ML-Anwendung in Google Cloudin Betracht ziehen können.
Plattformalternative
Anstatt das Modelltraining und den Bereitstellungsablauf in der GKE zu hosten, können Sie die Compute Engine mit Slurm verwenden. Slurm ist ein hoch konfigurierbarer Open-Source-Arbeitslast- und Ressourcenmanager. Die Verwendung der Compute Engine mit Slurm eignet sich besonders für die Modellschulung und Simulationen im großen Maßstab. Wir empfehlen die Verwendung der Compute Engine mit Slurm, wenn Sie proprietäres geistiges Eigentum (IP) für KI und ML in eine skalierbare Umgebung einbinden möchten, die die Flexibilität und Kontrolle bietet, um die Leistung für spezielle Arbeitslasten zu optimieren.
In der Compute Engine stellen Sie Ihre virtuellen Maschinen (VMs) bereit und verwalten sie. So haben Sie eine detaillierte Kontrolle über Instanztypen, Speicher und Netzwerke. Sie können Ihre Infrastruktur an Ihre genauen Anforderungen anpassen, einschließlich der Auswahl bestimmter VM-Maschinentypen. Sie können auch die Beschleunigeroptimierte Maschinenfamilie verwenden, um die Leistung Ihrer KI- und ML-Arbeitslasten zu verbessern. Weitere Informationen zu Maschinentypenfamilien, die in der Compute Engine verfügbar sind, finden Sie im Leitfaden zu Ressourcen und Vergleichen für Maschinenfamilien.
Slurm ist eine leistungsstarke Option zum Verwalten von KI- und ML-Arbeitslasten und ermöglicht die Konfiguration und Verwaltung der Rechenressourcen. Für diesen Ansatz benötigen Sie Kenntnisse in der Slurm-Verwaltung und der Linux-Systemverwaltung.
Beschleunigeroptionen
Hardwarebeschleuniger sind spezielle Prozessoren, die die für KI- und ML-Arbeitslasten erforderlichen Berechnungen beschleunigen. Sie können entweder Grafikprozessoren (GPUs) oder Tensor Processing Units (TPUs) auswählen.
- GPU-Beschleuniger bieten eine hervorragende Leistung für eine Vielzahl von Aufgaben, darunter Grafik-Rendering, Deep-Learning-Training und wissenschaftliches Rechnen. Google Cloud bietet eine breite Auswahl an GPUs für unterschiedliche Leistungs- und Preisanforderungen. Informationen zu GPU-Modellen und ‑Preisen finden Sie unter GPU-Preise.
- TPUs sind speziell entwickelte KI-Beschleuniger, die für das Training und die Inferenz großer KI-Modelle optimiert sind. Sie eignen sich ideal für eine Vielzahl von Anwendungsfällen, z. B. Chatbots, Codegenerierung, Generierung von Medieninhalten, synthetische Sprache, Vision-Dienste, Empfehlungssysteme, Personalisierungsmodelle usw. Weitere Informationen zu TPU-Modellen und ‑Preisen finden Sie unter TPU-Preise.
Alternativen für die Bereitstellung von Speicher
Cloud Storage FUSE mit einem multiregionalen oder zweiregionalen Bucket bietet die höchste Verfügbarkeit, da Ihre trainierten KI- und ML-Modelle in Cloud Storage und in mehreren Regionen gespeichert werden. Cloud Storage FUSE erreicht zwar einen geringeren Durchsatz pro VM als Parallelstore, bietet aber die Skalierbarkeit und Kosteneffizienz von Cloud Storage. Um das Laden von Modellen zu beschleunigen und die Leistung zu verbessern, insbesondere bei anspruchsvollen Arbeitslasten, können Sie vorhandene oder neue Parallelstore-Instanzen in jeder Region verwenden. Informationen zum Optimieren der Leistung mit Cloud Storage FUSE finden Sie unter CSI-Treiber für Cloud Storage FUSE für die GKE-Leistung optimieren.
Google Cloud Hyperdisk ML ist eine leistungsstarke Blockspeicherlösung, die für die Beschleunigung von KI- und ML-Arbeitslasten in großem Umfang entwickelt wurde, die schreibgeschützten Zugriff auf große Datensätze erfordern. Hyperdisk ML kann mit einem höheren Gesamtdurchsatz bereitgestellt werden, erreicht aber im Vergleich zu Parallelstore einen geringeren Durchsatz pro VM.
Außerdem können nur GPU- oder TPU-VMs in derselben Zone auf Hyperdisk-ML-Volumes zugreifen. Daher müssen Sie für regionale GKE-Cluster, die aus mehreren Zonen bereitgestellt werden, separate Hyperdisk ML-Volumes in jeder Zone bereitstellen. Diese Platzierung unterscheidet sich von Parallelstore, bei dem nur eine Instanz pro Region erforderlich ist. Hyperdisk ML ist außerdem nur lesend. Weitere Informationen zur Verwendung von Hyperdisk ML in KI- und ML-Arbeitslasten finden Sie unter KI-/ML-Datenladevorgang mit Hyperdisk ML beschleunigen.
Designaspekte
Wenn Sie eine Parallelstore-Bereitstellung entwerfen möchten, die die Leistung und Kosteneffizienz Ihrer KI- und ML-Arbeitslasten aufGoogle Cloudoptimiert, verwenden Sie die Richtlinien in den folgenden Abschnitten. Die Richtlinien enthalten Empfehlungen, die Sie beachten sollten, wenn Sie Parallelstore als Teil einer Hybridlösung verwenden, die mehrere Speicheroptionen für bestimmte Aufgaben in Ihrem Workflow kombiniert.
Training
Beim Training von KI- und ML-Modellen müssen Sie dem Modell iterativ Daten zuführen, seine Parameter anpassen und seine Leistung bei jeder Iteration bewerten. Dieser Vorgang kann sehr rechenintensiv sein und führt aufgrund der ständigen Notwendigkeit, Trainingsdaten zu lesen und aktualisierte Modellparameter zu schreiben, zu einer großen Anzahl von E/A-Anfragen.
Für eine optimale Leistung während des Trainings empfehlen wir Folgendes:
- Caching: Verwenden Sie Parallelstore als leistungsstarken Cache zusätzlich zu Cloud Storage.
- Vorab-Abruf: Sie können Daten aus Cloud Storage in Parallelstore importieren, um die Latenz während des Trainings zu minimieren. Sie können auch den GKE Volume Populator verwenden, um PersistentVolumeClaims vorab mit Daten aus Cloud Storage zu befüllen.
- Kostenoptimierung: Exportieren Sie Ihre Daten nach dem Training in eine kostengünstigere Cloud Storage-Klasse, um die langfristigen Speicherkosten zu minimieren. Da Ihre nichtflüchtigen Daten in Cloud Storage gespeichert werden, können Sie Parallelstore-Instanzen bei Bedarf für Ihre Trainingsjobs löschen und neu erstellen.
- GKE-Integration: Sie können die Lösung in den GKE CSI-Treiber (Container Storage Interface) einbinden, um die Verwaltung zu vereinfachen. Informationen zum Verbinden eines GKE-Cluster mit einer Parallelstore-Instanz finden Sie unter Google Kubernetes Engine Parallelstore CSI-Treiber.
- A3-VM-Leistung: Mit A3-Varianten können Sie mehr als 20 GB/s (ca.2,5 GB/s pro GPU) für eine optimale Datenübermittlung erzielen.
- Gleichzeitiger Zugriff: Mit der Parallelstore-Instanz können Sie Full-Duplex-Lese- und Schreibvorgänge ausführen.
Beachten Sie beim Bereitstellen von Parallelstore für das Training Folgendes:
- Scratch-Dateisystem: Konfigurieren Sie Checkpoint-Intervalle während des Trainings. Parallelstore ist ein temporäres Dateisystem, d. h., Daten werden vorübergehend gespeichert. Bei 100 TiB liegt die geschätzte durchschnittliche Zeit bis zum Datenverlust bei zwei Monaten. Bei 23 TiB liegt die geschätzte durchschnittliche Zeit bis zum Datenverlust bei mindestens zwölf Monaten.
- Datei- und Verzeichnisstreifen: Optimieren Sie die Datei- und Verzeichnisstreifen für die vorherrschende Dateigröße, um die Leistung zu maximieren.
- Kostenoptimierung: Optimieren Sie die Kosten, indem Sie Daten in Cloud Storage statt in Parallelstore entsprechend vorbereiten.
- Zonenauswahl: Sie können Kosten und Leistung optimieren, indem Sie GPU- oder TPU-Compute-Clients und Speicherknoten in derselben Zone platzieren.
Weitere Informationen zum Konfigurieren Ihrer Parallelstore-Umgebung zur Leistungsoptimierung finden Sie unter Leistungsaspekte.
Prüfpunktausführung
Das Erstellen von Checkpoints ist ein wichtiger Aspekt beim Training von KI- und ML-Modellen. Mit dem Checkpointing können Sie den Status Ihres Modells an verschiedenen Stellen während des Prozesses speichern. So können Sie das Training bei Unterbrechungen, Systemausfällen oder bei der Untersuchung verschiedener Hyperparameterkonfigurationen an einem gespeicherten Checkpoint fortsetzen. Wenn Sie Parallelstore für das Training verwenden, ist es wichtig, ihn auch für das Checkpointing zu verwenden, um den hohen Schreibdurchsatz zu nutzen und die Trainingszeit zu minimieren. Dieser Ansatz sorgt für eine effiziente Ressourcennutzung und hilft, die Gesamtkosten für Ihre GPU-Ressourcen zu senken, da sowohl das Training als auch das Checkpointing so schnell wie möglich erfolgen.
Beachten Sie die folgenden Best Practices, um Ihren Checkpoint-Workflow mit Parallelstore zu optimieren:
- Schnelles Checkpointing: Mit Parallelstore können Sie schnelle Checkpoint-Schreibvorgänge nutzen. Sie können einen Durchsatz von 0,5 GB/s pro TiB Kapazität und mehr als 12 GB/s pro A3-VM erreichen.
- Selektiver Checkpoint-Speicher: Sie können ausgewählte Checkpoints aus Parallelstore in Cloud Storage exportieren, um sie langfristig zu speichern und für die Notfallwiederherstellung zu verwenden.
- Gleichzeitige Vorgänge: Sie profitieren vom Full-Duplex-Lesen und -Schreiben, indem Sie Parallelstore gleichzeitig für Trainings- und Checkpoint-Schreibvorgänge verwenden.
Serving
Beim Bereitstellen werden Ihre trainierten KI- und ML-Modelle bereitgestellt, um Inferenzanfragen zu verarbeiten. Um eine optimale Leistung zu erzielen, ist es wichtig, die Zeit zu minimieren, die zum Laden dieser Modelle in den Arbeitsspeicher benötigt wird. Parallelstore wurde zwar hauptsächlich für Trainingslasten entwickelt, Sie können aber den hohen Durchsatz pro VM (mehr als 20 GB/s) und den aggregierten Clusterdurchsatz nutzen, um die Modellladezeiten auf Tausenden von VMs zu minimieren. Mit Cloud Monitoring können Sie wichtige Messwerte erfassen, anhand derer Sie Engpässe erkennen und für eine optimale Effizienz sorgen.
Beachten Sie beim Bereitstellen von Parallelstore für das Bereitstellen Folgendes:
- Hoher Durchsatz: Mit Cloud Monitoring können Sie die Parallelstore-Leistung maximieren und so dafür sorgen, dass Sie eine ausreichende Kapazität bereitstellen, um bei 100 TiB einen Durchsatz von bis zu 125 GB/s zu erreichen.
- Mögliche Dienstunterbrechungen: Da Parallelstore ein temporäres Dateisystem ist, kann es gelegentlich zu Dienstunterbrechungen kommen. Bei einem Cluster mit 100 TiB beträgt die durchschnittliche Zeit bis zum Datenverlust etwa zwei Monate.
- Daten wiederherstellen: Bei einer Dienstunterbrechung müssen Sie Parallelstore-Daten aus Ihrer aktuellen Cloud Storage-Sicherung wiederherstellen. Die Daten werden mit einer Geschwindigkeit von etwa 16 GB/s übertragen.
- Gemeinsam genutzte Instanzen: Wenn Sie eine Parallelstore-Instanz für Training und Bereitstellung verwenden, wird die Ressourcennutzung maximiert und Sie können Kosten sparen. Es kann jedoch zu Ressourcenkonflikten kommen, wenn beide Arbeitslasten hohe Durchsatzanforderungen haben. Wenn nach dem Training IOPS frei sind, kann die Verwendung derselben Instanz das Laden des Modells für das Bereitstellen beschleunigen. Mit Cloud Monitoring können Sie dafür sorgen, dass Sie ausreichend Ressourcen für Ihre Durchsatzanforderungen zuweisen.
- Separate Instanzen: Die Verwendung separater Instanzen bietet eine Leistungsisolierung, erhöht die Sicherheit durch die Isolierung von Trainingsdaten und verbessert den Datenschutz. Mit Zugriffssteuerungslisten kann die Sicherheit innerhalb einer einzelnen Instanz verwaltet werden. Separate Instanzen bieten jedoch eine robustere Sicherheitsgrenze.
Placement-Optionen
Um die Latenz zu minimieren und die Leistung zu maximieren, erstellen Sie Ihre Parallelstore-Instanz in einer Region, die sich geografisch in der Nähe Ihrer GPU- oder TPU-Computing-Clients befindet.
- Für Training und Checkpointing: Für optimale Ergebnisse müssen sich die Clients und Parallelstore-Instanzen in derselben Zone befinden. Durch diese Co-Location werden die Datenübertragungszeiten minimiert und die Auslastung des Schreibdurchsatzes von Parallelstore maximiert.
- Für die Bereitstellung: Die Bereitstellung in derselben Zone wie Compute-Clients ist zwar ideal, aber eine Parallelstore-Instanz pro Region reicht aus. So lassen sich die zusätzlichen Kosten vermeiden, die mit der Bereitstellung mehrerer Instanzen verbunden sind, und die Rechenleistung lässt sich maximieren. Wenn Sie jedoch zusätzliche Kapazität oder einen höheren Durchsatz benötigen, sollten Sie mehr als eine Instanz pro Region bereitstellen.
Wenn Sie Parallelstore in zwei Regionen bereitstellen, lässt sich die Leistung erheblich steigern, da sich die Daten geografisch näher an den GPUs oder TPUs befinden, die für die Bereitstellung verwendet werden. Dadurch wird die Latenz reduziert und der Datenzugriff während der Inferenz beschleunigt. Bei einem regionalen Ausfall sind sowohl die Trainings- als auch die Bereitstellungsanwendungen für Nutzer nicht mehr verfügbar.
Für eine hohe Verfügbarkeit und Zuverlässigkeit sollten Sie ein Replikat dieser Architektur in einer anderen Region instanziieren. Wenn Sie eine geografisch redundante Architektur erstellen, kann Ihre KI- und ML-Anwendung auch dann weiter ausgeführt werden, wenn in einer Region ein Ausfall auftritt. Mit Backup for GKE können Sie Ihre Cluster- und Cloud Storage-Daten sichern und bei Bedarf in einer anderen Region wiederherstellen.
Informationen zu den unterstützten Standorten für Parallelstore-Instanzen finden Sie unter Unterstützte Standorte.
Bereitstellung
Zum Erstellen und Bereitstellen dieser Referenzarchitektur empfehlen wir das Cluster Toolkit. Cluster Toolkit ist ein modulares, Terraform-basiertes Toolkit, das für die Bereitstellung wiederholbarer KI- und ML-Umgebungen aufGoogle Cloudentwickelt wurde. Verwenden Sie den Trainings-Blueprint für GKE und Parallelstore, um Ihre Umgebung zu definieren. Informationen zum Bereitstellen und Verwalten von Parallelstore-Instanzen für Ihre Cluster finden Sie im Parallelstore-Modul.
Informationen zum manuellen Bereitstellen von Parallelstore finden Sie unter Parallelstore-Instanz erstellen. Um die Skalierbarkeit und Leistung mit dynamischer Bereitstellung weiter zu verbessern, können Sie ein Volume erstellen und verwenden, das von einer Parallelstore-Instanz in GKE unterstützt wird.
Nächste Schritte
- Weitere Informationen zur Verwendung paralleler Dateisysteme für HPC-Arbeitslasten
- Weitere Informationen zu Best Practices für die Implementierung von maschinellem Lernen in Google Cloud
- Weitere Informationen zum Entwerfen von Speichern für KI- und ML-Arbeitslasten in Google Cloud
- Weitere Informationen zum Trainieren eines TensorFlow-Modells mit Keras in GKE
- Weitere Referenzarchitekturen, Diagramme und Best Practices finden Sie im Cloud-Architekturcenter.
Beitragende
Autor: Samantha He | Technical Writer
Weitere Beitragende:
- Dean Hildebrand Technical Director, Office of the CTO
- Kumar Dhanagopal | Cross-Product Solution Developer
- Sean Derrington | Group Outbound Product Manager, Speicher