Wenn Sie Google Cloud-Speicherdienste für Ihre Arbeitslasten für künstliche Intelligenz (KI) und maschinelles Lernen (ML) auswählen, müssen Sie darauf achten, die richtige Kombination von Speicheroptionen für jeden bestimmten Job auszuwählen. Diese Notwendigkeit einer sorgfältigen Auswahl gilt, wenn Sie Ihr Dataset hochladen, Ihr Modell trainieren und optimieren, das Modell in die Produktion platzieren oder das Dataset und das Modell in einem Archiv speichern. Kurz gesagt müssen Sie die besten Speicherdienste auswählen, die für jede Phase Ihrer KI- und ML-Arbeitslasten die angemessene Latenz, Skalierung und Kosten bieten.
Damit Sie fundierte Entscheidungen treffen können, enthält dieses Dokument Designanleitungen zur Verwendung und Integration der verschiedenen Speicheroptionen von Google Cloud für wichtige KI- und ML-Arbeitslasten.
Abbildung 1 zeigt eine Zusammenfassung der primären Speicheroptionen. Wie im Diagramm dargestellt, wählen Sie Cloud Storage normalerweise aus, wenn Sie größere Dateien, geringere Eingabe- und Ausgabevorgänge pro Sekunde (IOPS) oder eine höhere Latenz haben. Wenn Sie jedoch höhere IOPS, kleinere Dateigrößen oder eine geringere Latenz benötigen, wählen Sie stattdessen Filestore.
Abbildung 1: Überlegungen zu primären KI- und ML-Speicher
Übersicht über KI- und ML-Arbeitslastphasen
KI- und ML-Arbeitslasten bestehen aus vier Hauptphasen: Vorbereitung, Training, Bereitstellung und Archivierung. Dies sind die viermal Lebenszyklus einer KI- und ML-Arbeitslast, bei denen Sie entscheiden müssen, welche Speicheroptionen Sie verwenden sollten. In den meisten Fällen empfehlen wir, für die verbleibenden Phasen weiterhin dieselbe Speicherauswahl zu verwenden, die Sie in der Vorbereitungsphase ausgewählt haben. Wenn Sie dieser Empfehlung folgen, können Sie das Kopieren von Datasets zwischen Speicherdiensten reduzieren. Es gibt jedoch einige Ausnahmen von dieser allgemeinen Regel, die weiter unten in diesem Leitfaden beschrieben werden.
Einige Speicherlösungen funktionieren in den einzelnen Phasen besser als andere und müssen möglicherweise mit zusätzlichen Speicheroptionen kombiniert werden, um die besten Ergebnisse zu erzielen. Die Effektivität der Speicherauswahl hängt von den Dataset-Attributen, der Skalierung der erforderlichen Rechen- und Speicherressourcen, der Latenz und anderen Faktoren ab. In der folgenden Tabelle werden die Phasen und eine kurze Zusammenfassung der empfohlenen Speicheroptionen für jede Phase beschrieben. Eine visuelle Darstellung dieser Tabelle und weitere Details finden Sie im Entscheidungsbaum.
Tabelle 1: Speicherempfehlungen für die Phasen und Schritte in KI- und ML-Arbeitslasten
Phasen | Schritte | Speicherempfehlungen |
---|---|---|
Vorbereiten |
Datenvorbereitung
|
Cloud Storage
Filestore Zonal
|
Trainieren |
|
Cloud Storage
Cloud Storage mit lokaler SSD oder Filestore
Filestore
|
|
Cloud Storage
Filestore Zonal
|
|
Bereitstellung |
|
Cloud Storage
Filestore
|
Archivieren |
|
Cloud Storage
|
Weitere Informationen zu den zugrunde liegenden Annahmen für diese Tabelle finden Sie in den folgenden Abschnitten:
- Kriterien
- Speicheroptionen
- Speicheroptionen den KI- und ML-Phasen zuordnen
- Speicherempfehlungen für KI und ML
Kriterium
Beantworten Sie zuerst die folgenden Fragen, um die Auswahl der Speicheroptionen für Ihre KI- und ML-Arbeitslasten einzugrenzen:
- Sind Ihre KI- und ML-E/A-Anfragegrößen und Dateigrößen klein, mittel oder groß?
- Reagieren Ihre KI- und ML-Arbeitslasten empfindlich auf E/A-Latenz und Zeit bis zum ersten Byte (TTFB)?
- Benötigen Sie einen hohen Lese- und Schreibdurchsatz für einzelne Clients, aggregierte Clients oder beides?
- Wie hoch ist die größte Anzahl an Cloud GPUs oder Cloud TPUs, die Ihre größte KI- und ML-Trainingsarbeitslast benötigt?
Neben den Antworten auf die vorherigen Fragen müssen Sie auch die Computing-Optionen und -Beschleuniger kennen, die Sie zur Optimierung Ihrer KI- und ML-Arbeitslasten auswählen können.
Überlegungen zur Computing-Plattform
Google Cloud unterstützt drei primäre Methoden zum Ausführen von KI- und ML-Arbeitslasten:
- Compute Engine: Virtuelle Maschinen (VMs) unterstützen alle von Google verwalteten Speicherdienste und Partnerangebote. Compute Engine unterstützt Lokale SSD, Persistent Disk, Cloud Storage, Cloud Storage FUSE, NetApp Volumes und Filestore. Für umfangreiche Trainingsjobs in Compute Engine hat Google eine Partnerschaft mit SchedMD eingegangen, um Slurm-Planer-Verbesserungen bereitzustellen.
Google Kubernetes Engine (GKE): GKE ist eine beliebte Plattform für KI, die sich in gängige Frameworks, Arbeitslasten und Datenverarbeitungstools einbinden lässt. GKE unterstützt lokale SSDs, nichtflüchtige Volumes, Cloud Storage FUSE und Filestore
Vertex AI: Vertex AI ist eine vollständig verwaltete KI-Plattform, die eine End-to-End-Lösung für KI- und ML-Arbeitslasten bietet. Vertex AI unterstützt sowohl Cloud Storage als auch dateibasierten NFS-Speicher (Network File System) wie Filestore und NetApp Volumes.
Sowohl für Compute Engine als auch für GKE empfehlen wir die Verwendung des Cloud Cluster Toolkit, um wiederholbare und sofort einsatzbereite Cluster gemäß den Best Practices von Google Cloud bereitzustellen.
Überlegungen zu Beschleunigern
Wenn Sie Speicheroptionen für KI- und ML-Arbeitslasten auswählen, müssen Sie auch die für Ihre Aufgabe geeigneten Beschleunigerverarbeitungsoptionen auswählen. Google Cloud unterstützt zwei Beschleunigeroptionen: NVIDIA Cloud-GPUs und die speziell entwickelten Google Cloud TPUs. Beide Beschleunigertypen sind anwendungsspezifische integrierte Schaltungen (Application-Specific Integrated Circuits, ASICs), mit denen ML-Arbeitslasten effizienter als mit Standardprozessoren verarbeitet werden können.
Zwischen Cloud GPUs und Cloud TPU-Beschleunigern gibt es einige wichtige Speicherunterschiede. Instanzen, die Cloud GPUs verwenden, unterstützen lokale SSD mit einem Remote-Speicherdurchsatz von bis zu 200 GB/s. Cloud TPU-Knoten und -VMs unterstützen lokale SSD nicht und sind ausschließlich auf den Remotespeicherzugriff angewiesen.
Weitere Informationen zu beschleunigungsoptimierten Maschinentypen finden Sie unter Beschleunigeroptimierte Maschinenfamilie. Weitere Informationen zu Cloud GPUs finden Sie unter Cloud GPU-Plattformen. Weitere Informationen zu Cloud TPUs finden Sie unter Einführung in Cloud TPU. Weitere Informationen zur Auswahl zwischen Cloud TPUs und Cloud GPUs finden Sie unter Wann werden Cloud TPUs verwendet?.
Speicheroptionen
Wie zuvor in Tabelle 1 zusammengefasst, verwenden Sie Objektspeicher oder Dateispeicher mit Ihren KI- und ML-Arbeitslasten und ergänzen diese Speicheroption dann durch Blockspeicher. Abbildung 2 zeigt drei typische Optionen, die Sie bei der Auswahl der anfänglichen Speicherauswahl für Ihre KI- und ML-Arbeitslast berücksichtigen können: Cloud Storage, Filestore und Google Cloud NetApp Volumes
Abbildung 2: Geeignete Speicherdienste für KI und ML von Google Cloud
Wenn Sie einen Objektspeicher benötigen, wählen Sie Cloud Storage aus. Cloud Storage bietet Folgendes:
- Ein Speicherort für unstrukturierte Daten und Objekte.
- APIs wie die Cloud Storage JSON API für den Zugriff auf Ihre Storage-Buckets.
- Nichtflüchtiger Speicher zum Speichern Ihrer Daten.
- Ein Durchsatz von Terabyte pro Sekunde, erfordert jedoch eine höhere Speicherlatenz.
Wenn Sie Dateispeicher benötigen, haben Sie zwei Möglichkeiten – Filestore und NetApp Volumes –, die Folgendes bieten:
- Filestore
- Leistungsstarker Dateispeicher für Unternehmen auf Basis von NFS.
- Nichtflüchtiger Speicher zum Speichern Ihrer Daten.
- Niedrige Speicherlatenz und ein Durchsatz von 26 GB/s.
- NetApp Volumes
- Mit NFS und Server Message Block (SMB) kompatibler Dateispeicher.
- Kann mit der Option zur Verwendung des NetApp ONTAP-Speichersoftwaretools verwaltet werden.
- Nichtflüchtiger Speicher zum Speichern Ihrer Daten.
- Durchsatz von 4,5 GB/s.
Verwenden Sie die folgenden Speicheroptionen als erste Wahl für KI- und ML-Arbeitslasten:
Verwenden Sie die folgenden Speicheroptionen als Ergänzung Ihrer KI- und ML-Arbeitslasten:
Wenn Sie Daten zwischen diesen Speicheroptionen übertragen müssen, können Sie die Datenübertragungstools verwenden.
Cloud Storage
Cloud Storage ist ein vollständig verwalteter Objektspeicherdienst, der sich auf Datenvorbereitung, KI-Modelltraining, Datenbereitstellung, Sicherung und Archivierung unstrukturierter Daten konzentriert. Cloud Storage bietet unter anderem folgende Vorteile:
- Unbegrenzte Speicherkapazität, die weltweit auf Exabyte skaliert wird
- Besonders hohe Durchsatzleistung
- Regionale und Dual-Region-Speicheroptionen für KI- und ML-Arbeitslasten
Cloud Storage skaliert den Durchsatz auf Terabyte pro Sekunde und darüber hinaus, hat aber eine relativ höhere Latenz (zehntel Millisekunden) als Filestore oder ein lokales Dateisystem. Der Durchsatz einzelner Threads ist auf etwa 100–200 MB pro Sekunde beschränkt. Daher kann ein hoher Durchsatz nur mit Hunderten bis Tausenden von Einzelthreads erreicht werden. Darüber hinaus erfordert ein hoher Durchsatz die Verwendung großer Dateien und großer E/A-Anfragen.
Cloud Storage unterstützt Clientbibliotheken in einer Vielzahl von Programmiersprachen, aber auch Cloud Storage FUSE. Mit Cloud Storage FUSE können Sie Cloud Storage-Buckets in Ihrem lokalen Dateisystem bereitstellen. Mit Cloud Storage FUSE können Ihre Anwendungen Standarddateisystem-APIs verwenden, um aus einem Bucket zu lesen oder in einen Bucket zu schreiben. Sie können Ihre Trainingsdaten, Modelle und Prüfpunkte mit der Skalierbarkeit, Erschwinglichkeit und Leistung von Cloud Storage speichern und darauf zugreifen.
Weitere Informationen zu Cloud Storage finden Sie in den folgenden Ressourcen:
- Produktübersicht über Cloud Storage
- Richtlinien für die Anforderungsrate und Zugriffsverteilung
- Cloud Storage FUSE
- Leistung und Best Practices für Cloud Storage FUSE
Filestore
Filestore ist ein vollständig verwalteter NFS-dateibasierter Speicherdienst. Für KI- und ML-Arbeitslasten werden folgende Filestore-Dienststufen verwendet:
- Unternehmensstufe: Wird für geschäftskritische Arbeitslasten verwendet, die regionale Verfügbarkeit erfordern.
- Zonale Stufe: Wird für Hochleistungsanwendungen verwendet, die eine zonale Verfügbarkeit mit hohen IOPS- und Durchsatzleistungsanforderungen erfordern.
- Basis-Stufe: Wird für Dateifreigabe, Softwareentwicklung, Webhosting sowie grundlegende KI- und ML-Arbeitslasten verwendet.
Filestore bietet eine E/A-Leistung mit niedriger Latenz. Es eignet sich gut für Datasets mit kleinen E/A-Zugriffsanforderungen oder kleinen Dateien. Filestore kann jedoch auch große E/A- oder große Dateianwendungsfälle nach Bedarf verarbeiten. Filestore kann auf bis zu etwa 100 TB skaliert werden. Für KI-Trainingsarbeitslasten, die Daten wiederholt lesen, können Sie den Lesedurchsatz verbessern, indem Sie FS-Cache mit lokaler SSD verwenden.
Weitere Informationen zu Filestore finden Sie in der Filestore-Übersicht. Weitere Informationen zu Filestore-Dienststufen finden Sie unter Dienststufen. Weitere Informationen zur Filestore-Leistung finden Sie unter Leistung von Instanzen optimieren und testen.
Google Cloud NetApp Volumes
NetApp Volumes ist ein vollständig verwalteter Dienst mit erweiterten Datenverwaltungsfeatures, die NFS-, SMB- und Multi-Protokoll-Umgebungen unterstützen. NetApp Volumes unterstützt niedrige Latenzen, Multi-Tebibyte-Volumes und einen Durchsatz von Gigabyte pro Sekunde.
Weitere Informationen zu NetApp Volumes finden Sie unter Was ist Google Cloud NetApp Volumes? Weitere Informationen zur Leistung von NetApp Volumes finden Sie unter Erwartete Leistung.
Blockspeicher
Nachdem Sie Ihren primären Speicher ausgewählt haben, können Sie den Blockspeicher verwenden, um die Leistung zu erhöhen, Daten zwischen Speicheroptionen zu übertragen und Vorgänge mit niedriger Latenz zu nutzen. Sie haben zwei Speicheroptionen mit Blockspeicher: lokale SSD und Persistent Disk.
Lokale SSD
Eine lokale SSD stellt lokalen Speicher direkt auf einer VM oder einem Container bereit. Die meisten Google Cloud-Maschinentypen, die Cloud-GPUs enthalten, umfassen eine gewisse Menge an lokalen SSDs. Da lokale SSD-Laufwerke physisch mit den Cloud GPUs verbunden sind, bieten sie Zugriff mit geringer Latenz mit potenziell Millionen von IOPS. Im Gegensatz dazu enthalten Cloud TPU-basierte Instanzen keine lokale SSD.
Obwohl lokale SSDs eine hohe Leistung bieten, ist jede Speicherinstanz sitzungsspezifisch. Daher gehen die auf einem lokalen SSD-Laufwerk gespeicherten Daten verloren, wenn Sie die Instanz beenden oder löschen. Da lokale SSDs flüchtig sind, sollten Sie andere Speichertypen in Betracht ziehen, wenn Ihre Daten eine bessere Langlebigkeit Ihrer Daten erfordern.
Wenn die Menge der Trainingsdaten jedoch sehr klein ist, ist es üblich, die Trainingsdaten aus Cloud Storage auf die lokale SSD einer GPU zu kopieren. Der Grund dafür ist, dass eine lokale SSD eine geringere E/A-Latenz bietet und die Trainingszeit reduziert.
Weitere Informationen zur lokalen SSD finden Sie unter Lokale SSDs. Weitere Informationen zur Menge der lokalen SSD-Kapazität, die mit Cloud GPU-Instanztypen verfügbar ist, finden Sie unter GPU-Plattformen.
Persistent Disk
Persistent Disk ist ein Netzwerkblockspeicherdienst mit einer umfassenden Suite von Datenpersistenz- und -Verwaltungsfunktionen. Zusätzlich zur Verwendung als Bootlaufwerk können Sie Persistent Disk mit KI-Arbeitslasten wie Scratch-Speicher verwenden. Persistent Disk ist in den folgenden Optionen verfügbar:
- Standard bietet effizienten und zuverlässigen Blockspeicher.
- Abgestimmter Speicher bietet kostengünstigen und zuverlässigen Blockspeicher
- SSD bietet schnellen und zuverlässigen Blockspeicher
- Extrem bietet die höchste Leistung für Blockspeicher mit anpassbaren IOPS.
Weitere Informationen zu nichtflüchtigem Speicher finden Sie unter Nichtflüchtiger Speicher.
Datenübertragungstools
Bei KI- und ML-Aufgaben müssen Sie manchmal Ihre Daten von einem Standort an einen anderen kopieren. Wenn Ihre Daten beispielsweise in Cloud Storage beginnen, können Sie sie an eine andere Stelle verschieben, um das Modell zu trainieren, und dann die Prüfpunkt-Snapshots oder das trainierte Modell zurück in Cloud Storage kopieren. Sie können auch die meisten Aufgaben in Filestore ausführen und dann Ihre Daten und Ihr Modell zu Archivierungszwecken in Cloud Storage verschieben. In diesem Abschnitt werden Ihre Optionen zum Verschieben von Daten zwischen Speicherdiensten in Google Cloud erläutert.
Storage Transfer Service
Mit dem Storage Transfer Service können Sie Ihre Daten zwischen Cloud Storage, Filestore und NetApp Volumes übertragen. Mit diesem vollständig verwalteten Dienst können Sie auch Daten zwischen Ihren lokalen Dateispeicher- und Objektspeicher-Repositories, Ihrem Google Cloud Storage und von anderen Cloud-Anbietern kopieren. Mit dem Storage Transfer Service können Sie Ihre Daten sicher vom Quell- zum Zielspeicherort kopieren und regelmäßig geänderte Daten übertragen. Außerdem bietet er Datenintegritätsprüfung, automatische Wiederholungsversuche und Load-Balancing.
Weitere Informationen zum Storage Transfer Service finden Sie unter Was ist der Storage Transfer Service?
Befehlszeile
Wenn Sie Daten zwischen Filestore und Cloud Storage verschieben, sollten Sie die Google Cloud CLI verwenden. Mit der gcloud CLI können Sie Cloud Storage-Buckets und -Objekte mit optimalem Durchsatz und einer vollständigen Suite von Befehlen erstellen und verwalten.
Speicheroptionen den KI- und ML-Phasen zuordnen
Dieser Abschnitt erweitert die Zusammenfassung in Tabelle 1, um die spezifischen Empfehlungen und Anleitungen für jede Phase einer KI- und ML-Arbeitslast zu erkunden. Das Ziel ist es, Ihnen dabei zu helfen, die Gründe für diese Entscheidungen zu verstehen und die besten Speicheroptionen für jede KI- und ML-Stufe auszuwählen. Diese Analyse führt zu drei primären Empfehlungen, die im Abschnitt Speicherempfehlungen für KI und ML erläutert werden.
Die folgende Abbildung zeigt einen Entscheidungsbaum, der die empfohlenen Speicheroptionen für die vier Hauptphasen einer KI- und ML-Arbeitslast zeigt. Auf das Diagramm folgt eine ausführliche Erklärung der einzelnen Phasen und der Entscheidungen, die Sie in jeder Phase treffen können.
Abbildung 3: Speicheroptionen für jede KI- und ML-Phase
Vorbereiten
In dieser anfänglichen Phase müssen Sie auswählen, ob Sie Cloud Storage oder Filestore als nichtflüchtige "Source of Truth" für Ihre Daten verwenden möchten. Sie können auch potenzielle Optimierungen für das datenintensive Training auswählen. Beachten Sie, dass die verschiedenen Teams in Ihrer Organisation unterschiedliche Arbeitslast- und Dataset-Typen haben können, was dazu führen kann, dass diese Teams unterschiedliche Speicherentscheidungen treffen. Sie können Ihre Speicheroptionen zwischen Cloud Storage und Filestore entsprechend kombinieren, um diese unterschiedlichen Anforderungen zu erfüllen.
Cloud Storage für die Vorbereitungsphase
- Ihre Arbeitslast enthält große Dateien mit 50 MB oder mehr.
- Ihre Arbeitslast erfordert einen geringeren IOPS-Wert.
Ihre Arbeitslast kann eine höhere Speicherlatenz in wenigen Millisekunden tolerieren.
Sie benötigen Zugriff auf das Dataset über Cloud Storage APIs oder Cloud Storage FUSE und eine Teilmenge von Datei-APIs.
Zur Optimierung Ihrer Arbeitslast in Cloud Storage können Sie regionalen Speicher auswählen und den Bucket in derselben Region wie Ihre Rechenressourcen platzieren. Wenn Sie jedoch eine höhere Zuverlässigkeit benötigen oder Beschleuniger in zwei verschiedenen Regionen verwenden, sollten Sie einen Dual-Region-Speicher auswählen.
Filestore für die Vorbereitungsphase
Sie sollten Filestore zur Vorbereitung Ihrer Daten auswählen, wenn eine der folgenden Bedingungen zutrifft:
- Ihre Arbeitslast enthält kleinere Dateien mit weniger als 50 MB.
- Ihre Arbeitslast erfordert einen höheren IOPS-Wert.
- Ihre Arbeitslast benötigt eine geringere Latenz von weniger als einer Millisekunde, um die Speicheranforderungen für zufällig verteilte E/A- und Metadatenzugriffe zu erfüllen.
- Ihre Nutzer benötigen eine Desktop-ähnliche Erfahrung mit vollständiger POSIX-Unterstützung, um die Daten anzeigen und verwalten zu können.
- Ihre Nutzer müssen andere Aufgaben ausführen, z. B. die Softwareentwicklung.
Weitere Überlegungen für die Vorbereitungsphase
Wenn Sie sich in dieser Phase für die Auswahl einer Option entscheiden, beachten Sie die folgenden Punkte, die Ihnen bei der Entscheidung helfen:
- Wenn Sie andere KI- und ML-Frameworks wie Dataflow, Spark oder BigQuery für das Dataset verwenden möchten, ist Cloud Storage aufgrund der benutzerdefinierten Einbindung in diese Arten von Frameworks eine logische Wahl.
- Filestore hat eine maximale Kapazität von etwa 100 TB. Wenn Sie Ihr Modell mit Datasets trainieren müssen, die größer sind, oder wenn Sie das Dataset nicht in mehrere 100-TB-Instanzen aufteilen können, ist Cloud Storage die bessere Option.
Während der Datenvorbereitungsphase organisieren viele Nutzer ihre Daten in große Blöcke, um die Zugriffseffizienz zu verbessern und zufällige Leseanfragen zu vermeiden. Zur weiteren Reduzierung der E/A-Leistungsanforderungen auf dem Speichersystem verwenden viele Nutzer Pipelining, Trainingsoptimierung, um die Anzahl der E/A-Threads zu erhöhen, oder beides.
Trainieren
In der Trainingsphase verwenden Sie normalerweise die primäre Speicheroption wieder, die Sie für die Vorbereitungsphase ausgewählt haben. Falls der primäre Speicher nicht allein die Trainingsarbeitslast verarbeiten kann, müssen Sie unter Umständen den primären Speicher ergänzen. Sie können bei Bedarf zusätzlichen Speicher hinzufügen, z. B. lokale SSDs, um die Arbeitslast auszugleichen.
Neben Empfehlungen zur Verwendung von Cloud Storage oder Filestore in dieser Phase finden Sie in diesem Abschnitt auch weitere Informationen zu diesen Empfehlungen. Die Details umfassen Folgendes:
- Hinweise zu Dateigrößen und Anfragegrößen
- Vorschläge für die Ergänzung der Auswahl Ihres primären Speichers
- Erläuterung der Implementierungsdetails für die beiden wichtigsten Arbeitslasten in dieser Phase – Datenladen, Prüfpunktausführung und Neustart
Cloud Storage für die Trainingsphase
Hauptgründe für die Wahl von Cloud Storage beim Training Ihrer Daten sind:
- Wenn Sie bei der Vorbereitung Ihrer Daten Cloud Storage verwenden, empfiehlt es sich, sie in Cloud Storage zu trainieren.
- Cloud Storage ist eine gute Wahl für Durchsatz, Arbeitslasten, die keinen hohen Durchsatz für eine einzelne VM erfordern, oder Arbeitslasten, die viele Threads verwenden, um den Durchsatz nach Bedarf zu erhöhen.
Cloud Storage mit lokaler SSD oder Filestore für die Trainingsphase
Der Hauptgrund für die Auswahl von Cloud Storage mit lokaler SSD oder Filestore beim Trainieren Ihrer Daten, wenn kleine E/A-Anfragen oder kleine Dateien unterstützt werden müssen. In diesem Fall können Sie Ihre Cloud Storage-Trainingsaufgabe ergänzen, indem Sie einige Daten auf eine lokale SSD oder Filestore Zonal verschieben.
Filestore für die Trainingsphase
Hauptgründe für die Auswahl von Filestore beim Training Ihrer Daten sind:
- Wenn Sie bei der Vorbereitung Ihrer Daten Filestore verwenden, sollten Sie Ihre Daten in den meisten Fällen weiterhin in Filestore trainieren.
- Filestore ist eine gute Wahl für niedrige Latenz, hohen clientbasierten Durchsatz und Anwendungen, die eine geringe Anzahl von Threads verwenden, aber trotzdem eine hohe Leistung erfordern.
- Wenn Sie Ihre Trainingsaufgaben in Filestore ergänzen müssen, können Sie nach Bedarf einen lokalen SSD-Cache erstellen.
Dateigrößen und Anfragegrößen
Sobald das Dataset für das Training bereit ist, gibt es zwei Hauptoptionen, die Ihnen bei der Bewertung der verschiedenen Speicheroptionen helfen können.
- Datasets mit großen Dateien, auf die mit großen Anfragen zugegriffen wird
- Datasets mit kleinen bis mittelgroßen Dateien oder, auf die mit kleinen Anfragegrößen zugegriffen wird
Datasets mit großen Dateien, auf die mit großen Anfragen zugegriffen wird
Bei dieser Option besteht der Trainingsjob hauptsächlich aus größeren Dateien mit mindestens 50 MB. Der Trainingsjob nimmt die Dateien mit 1 MB bis 16 MB pro Anfrage auf. Im Allgemeinen empfehlen wir für diese Option Cloud Storage mit Cloud Storage FUSE, da die Dateien groß genug sind, dass Cloud Storage die Beschleuniger bereitstellen kann. Beachten Sie, dass Sie möglicherweise Hunderte bis Tausende von Threads benötigen, um die maximale Leistung mit dieser Option zu erzielen.
Wenn Sie jedoch vollständige POSIX APIs für andere Anwendungen benötigen oder Ihre Arbeitslast für die hohe Anzahl erforderlicher Threads nicht geeignet ist, ist Filestore eine gute Alternative.
Datasets mit kleinen bis mittelgroßen Dateien oder, auf die mit kleinen Anfragegrößen zugegriffen wird
Mit dieser Option können Sie Ihren Trainingsjob auf zwei Arten klassifizieren:
- Viele kleine bis mittelgroße Dateien mit weniger als 50 MB.
- Ein Dataset mit größeren Dateien, aber die Daten werden nacheinander oder zufällig mit relativ kleinen Leseanfragegrößen (z. B. kleiner als 1 MB) gelesen. Ein Beispiel für diesen Anwendungsfall ist, wenn das System jeweils weniger als 100 KB aus einer Datei mit mehreren Gigabyte oder Multi-Terabyte liest.
Wenn Sie bereits Filestore für seine POSIX-Funktionen verwenden, empfehlen wir, Ihre Daten für das Training in Filestore aufzubewahren. Filestore bietet Zugriff auf die Daten mit niedriger E/A-Latenz. Diese niedrigere Latenz kann die Gesamttrainingszeit reduzieren und die Kosten für das Training Ihres Modells senken.
Wenn Sie Ihre Daten mit Cloud Storage speichern, empfehlen wir, dass Sie Ihre Daten vor dem Training auf eine lokale SSD oder Filestore kopieren.
Laden der Daten
Während des Ladens von Daten importieren Cloud GPUs oder Cloud TPUs Daten-Batches wiederholt, um das Modell zu trainieren. Diese Phase kann cachefähig sein, je nach Größe der Batches und Reihenfolge, in der sie angefordert werden. An diesem Punkt besteht das Ziel darin, das Modell mit maximaler Effizienz zu den niedrigsten Kosten zu trainieren.
Wenn die Größe der Trainingsdaten auf Petabyte skaliert wird, müssen die Daten möglicherweise mehrmals gelesen werden. Ein solcher Umfang erfordert eine intensive Verarbeitung durch einen GPU- oder TPU-Beschleuniger. Sie müssen jedoch dafür sorgen, dass Ihre Cloud GPUs und Cloud TPUs nicht inaktiv sind, sondern Ihre Daten aktiv verarbeiten. Andernfalls zahlen Sie für einen teuren, inaktiven Beschleuniger, während Sie die Daten von einem Standort an einen anderen kopieren.
Beachten Sie beim Laden von Daten Folgendes:
- Parallelität: Es gibt verschiedene Möglichkeiten, das Training zu parallelisieren. Jede kann sich auf die erforderliche Gesamtspeicherleistung und die Notwendigkeit des lokalen Cachings von Daten auf jeder Instanz auswirken.
- Maximale Anzahl von Cloud GPUs oder Cloud TPUs für einen einzelnen Trainingsjob: Wenn die Anzahl der Beschleuniger und VMs zunimmt, können die Auswirkungen auf das Speichersystem erheblich sein und dies kann zu höheren Kosten führen, wenn die Cloud GPUs oder Cloud TPUs inaktiv sind. Es gibt jedoch Möglichkeiten, die Kosten zu minimieren, wenn Sie die Anzahl der Beschleuniger erhöhen. Je nach Art der verwendeten Parallelität können Sie die Kosten minimieren, indem Sie die aggregierten Lesedurchsatzanforderungen erhöhen, die erforderlich sind, um inaktive Beschleuniger zu vermeiden.
Zur Unterstützung dieser Verbesserungen in Cloud Storage oder Filestore müssen Sie jeder Instanz eine lokale SSD hinzufügen, damit Sie die E/A des überlasteten Speichersystems entlasten können.
Das Vorabladen von Daten aus Cloud Storage auf die lokale SSD von Instanzen ist jedoch mit Herausforderungen verbunden. Während der Übertragung der Daten riskieren Sie, dass für die inaktiven Beschleuniger höhere Kosten anfallen. Wenn die Datenübertragungszeiten und die Kosten für Inaktivität des Beschleunigers hoch sind, können Sie möglicherweise die Kosten senken, wenn Sie stattdessen Filestore mit lokaler SSD verwenden.
- Anzahl der Cloud GPUs pro Instanz: Wenn Sie auf jeder Instanz mehr Cloud GPUs bereitstellen, können Sie den Durchsatz der Cloud GPUs mit NVLink erhöhen. Der verfügbare lokale SSD- und Speichernetzwerkdurchsatz erhöht sich jedoch nicht immer linear.
- Speicher- und Anwendungsoptimierungen: Speicheroptionen und Anwendungen haben bestimmte Leistungsanforderungen, um optimal ausgeführt zu werden. Achten Sie darauf, diese Speicher- und Anwendungssystemanforderungen mit Ihren Datenladeoptimierungen abzuwägen, z. B. um Ihre Cloud GPUs oder Cloud TPUs auf dem neuesten Stand zu halten und effizient zu arbeiten.
Prüfpunktausführung und Neustart
Für Prüfpunktausführung und Neustart müssen Trainingsjobs ihren Status regelmäßig speichern, damit sie schnell nach Instanzfehlern wiederhergestellt werden können. Wenn der Fehler auftritt, müssen Jobs neu gestartet, der letzte Prüfpunkt aufgenommen und dann das Training fortgesetzt werden. Der genaue Mechanismus, mit dem Prüfpunkte erstellt und aufgenommen werden, ist in der Regel spezifisch für ein Framework wie TensorFlow oder PyTorch. Einige Nutzer haben komplexe Frameworks erstellt, um die Effizienz der Prüfpunktausführung zu erhöhen. Mit diesen komplexen Frameworks können sie einen Prüfpunkt häufiger ausführen.
Die meisten Nutzer verwenden jedoch normalerweise freigegebenen Speicher wie Cloud Storage oder Filestore. Wenn Sie Prüfpunkte speichern, müssen Sie immer nur drei bis fünf Prüfpunkte speichern. Prüfpunkt-Arbeitslasten bestehen vorwiegend aus Schreibvorgängen, mehreren Löschvorgängen und idealerweise seltenen Lesevorgängen, wenn Fehler auftreten. Während der Wiederherstellung umfasst das E/A-Muster intensive und häufige Schreibvorgänge, häufige Löschvorgänge und häufige Lesevorgänge des Prüfpunkts.
Sie müssen auch die Größe des Prüfpunkts berücksichtigen, den jede GPU oder TPU erstellen muss. Die Größe des Prüfpunkts bestimmt den Schreibdurchsatz, der erforderlich ist, um den Trainingsjob kostengünstig und rechtzeitig abzuschließen.
Zur Minimierung der Kosten sollten Sie die folgenden Elemente erhöhen:
- Häufigkeit der Prüfpunkte
- Der aggregierte Schreibdurchsatz, der für Prüfpunkte erforderlich ist
- Effizienz bei Neustarts
Bereitstellung
Wenn Sie Ihr Modell bereitstellen (auch als KI-Inferenz bezeichnet), ist das primäre E/A-Muster schreibgeschützt, um das Modell in Cloud GPUs oder Cloud TPU-Speicher zu laden. Das Ziel in dieser Phase besteht darin, das Modell in der Produktion auszuführen. Das Modell ist viel kleiner als die Trainingsdaten, sodass Sie es für mehrere Instanzen replizieren und skalieren können. Eine hohe Verfügbarkeit und ein hoher Schutz vor zonalen und regionalen Ausfällen sind in dieser Phase wichtig. Daher müssen Sie dafür sorgen, dass Ihr Modell für eine Vielzahl von Fehlerszenarien verfügbar ist.
Bei vielen Anwendungsfällen der generativen KI sind die Eingabedaten für das Modell möglicherweise ziemlich klein und müssen nicht dauerhaft gespeichert werden. In anderen Fällen müssen Sie möglicherweise große Datenmengen über das Modell ausführen (z. B. wissenschaftliche Datasets). In diesem Fall müssen Sie eine Option auswählen, die die Cloud-GPUs oder Cloud TPUs während der Analyse des Datasets beibehalten kann, sowie einen nichtflüchtigen Speicherort zum Speichern der Inferenzergebnisse.
Beim Bereitstellen des Modells haben Sie zwei Hauptmöglichkeiten.
Cloud Storage für die Bereitstellungsphase
Dies sind die Hauptgründe für die Wahl von Cloud Storage bei der Bereitstellung Ihrer Daten:
- Wenn Sie Ihr Modell in Cloud Storage trainieren, können Sie Migrationskosten sparen, indem Sie das Modell bei der Bereitstellung in Cloud Storage belassen.
- Sie können Ihre generierten Inhalte in Cloud Storage speichern.
- Cloud Storage ist eine gute Wahl, wenn KI-Inferenz in mehreren Regionen erfolgt.
- Sie können Buckets mit zwei oder mehreren Regionen verwenden, um die Modellverfügbarkeit bei regionalen Ausfällen bereitzustellen.
Filestore für die Bereitstellungsphase
Hauptgründe für die Auswahl von Filestore bei der Bereitstellung Ihrer Daten sind:
- Wenn Sie Ihr Modell in Filestore trainieren, können Sie Migrationskosten sparen, indem Sie das Modell bei der Bereitstellung in Filestore belassen.
- Da das Service Level Agreement (SLA) eine Verfügbarkeit von 99,99% bietet, ist die Filestore Enterprise-Dienststufe eine gute Wahl für Hochverfügbarkeit, wenn Sie Ihr Modell zwischen mehreren Zonen in einer Region bereitstellen.
- Die Filestore Zonal-Dienststufen sind möglicherweise eine vernünftige kostengünstigere Wahl, aber nur, wenn Hochverfügbarkeit für Ihre KI- und ML-Arbeitslast keine Voraussetzung ist.
- Wenn Sie eine regionenübergreifende Wiederherstellung benötigen, können Sie das Modell an einem Remote-Sicherungsort oder in einem Remote-Cloud Storage-Bucket speichern und dann das Modell nach Bedarf wiederherstellen.
- Filestore bietet eine dauerhafte und hochverfügbare Option, die einen Zugriff mit geringer Latenz auf Ihr Modell ermöglicht, wenn Sie kleine Dateien generieren oder Datei-APIs benötigen.
Archivieren
Die Archivierungsphase hat ein E/A-Muster von "Einmal schreiben, selten lesen". Ihr Ziel ist es, die verschiedenen Sätze von Trainingsdaten und die verschiedenen Versionen der von Ihnen generierten Modelle zu speichern. Sie können diese inkrementellen Versionen von Daten und Modellen für Sicherungs- und Notfallwiederherstellungszwecke verwenden. Sie müssen diese Elemente auch über einen längeren Zeitraum an einem langlebigen Ort speichern. Auch wenn Sie nicht sehr oft auf die Daten und Modelle zugreifen müssen, möchten Sie doch, dass diese Elemente verfügbar sind, wenn Sie sie brauchen.
Aufgrund der extremen Langlebigkeit, der umfassenden Skalierbarkeit und der geringen Kosten ist Cloud Storage die beste Option zum Speichern von Objektdaten über einen längeren Zeitraum. Je nachdem, wie oft Sie auf das Dataset, das Modell und die Sicherungsdateien zugreifen, bietet Cloud Storage eine Kostenoptimierung über verschiedene Speicherklassen mit den folgenden Ansätzen:
- Platzieren Sie Daten, auf die häufig zugegriffen wird, im Standard Storage.
- Speichern Sie Daten, auf die Sie monatlich zugreifen, in Nearline Storage.
- Speichern Sie Daten, auf die Sie alle drei Monate zugreifen, in Coldline Storage.
- Bewahren Sie Daten, auf die Sie einmal pro Jahr zugreifen, in Archive Storage auf.
Mit der Verwaltung des Objektlebenszyklus können Sie Richtlinien erstellen, um Daten in kältere Speicherklassen zu verschieben oder Daten anhand bestimmter Kriterien zu löschen. Wenn Sie sich nicht sicher sind, wie oft Sie auf Ihre Daten zugreifen werden, können Sie mit dem Feature Autoclass Daten basierend auf Ihrem Zugriff automatisch zwischen Speicherklassen verschieben.
Wenn sich Ihre Daten in Filestore befinden, ist es oft sinnvoll, sie zu Archivierungszwecken in Cloud Storage zu verschieben. Sie können jedoch zusätzlichen Schutz für Ihre Filestore-Daten bieten, indem Sie Filestore-Sicherungen in einer anderen Region erstellen. Sie können auch Filestore-Snapshots für die Wiederherstellung lokaler Dateien und Dateisysteme erstellen. Weitere Informationen zu Filestore-Sicherungen finden Sie unter Sicherungen – Übersicht. Weitere Informationen zu Filestore-Snapshots finden Sie unter Snapshots – Übersicht.
Speicherempfehlungen für KI und ML
In diesem Abschnitt wird die Analyse aus dem vorherigen Abschnitt Speicheroptionen den KI- und ML-Phasen zuordnen zusammengefasst. Er enthält Details zu den drei Kombinationen von primären Speicheroptionen, die wir für die meisten KI- und ML-Arbeitslasten empfehlen. Es gibt drei Optionen:
- Cloud Storage auswählen
- Cloud Storage und lokale SSD oder Filestore auswählen
- Filestore und optionale lokale SSD auswählen
Cloud Storage auswählen
Cloud Storage bietet im Vergleich zu allen anderen Speicherangeboten das Speicherangebot mit den niedrigsten Kosten pro Kapazität. Es lässt sich auf eine große Anzahl von Clients skalieren, bietet regionalen und dual-regionalen Zugriff sowie Verfügbarkeit und ist über Cloud Storage FUSE zugänglich. Sie sollten Regional Storage auswählen, wenn sich Ihre Computing-Plattform für das Training in derselben Region befindet. Wählen Sie Dual-Region-Speicher, wenn Sie eine höhere Zuverlässigkeit benötigen oder Cloud GPUs oder Cloud TPUs in zwei verschiedenen Regionen verwenden.
Cloud Storage ist die beste Wahl für die langfristige Datenaufbewahrung und für Arbeitslasten mit geringeren Anforderungen an die Speicherleistung. Andere Optionen wie Filestore und lokale SSDs sind jedoch wertvolle Alternativen, wenn Sie vollständige POSIX-Unterstützung benötigen oder Cloud Storage zu einem Leistungsengpass wird.
Cloud Storage mit lokaler SSD oder Filestore auswählen
Für datenintensive Trainings- oder Prüfpunkt- und Neustartarbeitslasten kann es sinnvoll sein, während der E/A-intensiven Trainingsphase ein schnelleres Speicherangebot zu verwenden. Typische Möglichkeiten sind das Kopieren der Daten auf eine lokale SSD oder einen Filestore. Diese Aktion reduziert die gesamte Joblaufzeit, da die Cloud GPUs oder Cloud TPUs mit Daten bereitgestellt werden. Außerdem wird verhindert, dass die Instanzen hängen bleiben, während Prüfpunktvorgänge abgeschlossen werden. Je häufiger Sie Prüfpunkte erstellen, desto mehr Prüfpunkte stehen Ihnen als Sicherungen zur Verfügung. Durch diese Erhöhung der Anzahl der Sicherungen erhöht sich auch die Gesamtrate, mit der die nützlichen Daten eintreffen (auch als Goodput bezeichnet). Diese Kombination aus der Optimierung der Prozessoren und der Erhöhung des Goodputs reduziert die Gesamtkosten für das Training Ihres Modells.
Bei der Verwendung einer lokalen SSD oder von Filestore müssen Vor- und Nachteile berücksichtigt werden. Im folgenden Abschnitt werden einige Vor- und Nachteile aufgeführt.
Vorteile lokaler SSDs
- Hoher Durchsatz und hohe IOPS nach der Übertragung der Daten
- Geringe bis minimale Zusatzkosten
Nachteile lokaler SSDs
- Cloud GPUs oder Cloud TPUs bleiben inaktiv, während die Daten geladen werden.
- Die Datenübertragung muss in jedem Job und für jede Instanz erfolgen.
- Ist nur für einige Cloud GPU-Instanztypen verfügbar.
- Bietet begrenzte Speicherkapazität.
- Unterstützt Prüfpunktausführung, Sie müssen die Prüfpunkte jedoch manuell in eine dauerhafte Speicheroption wie Cloud Storage übertragen.
Vorteile von Filestore
- Bietet freigegebenen NFS-Speicher, mit dem Daten einmal übertragen und dann für mehrere Jobs und Nutzer freigegeben werden können.
- Es gibt keine inaktiven Cloud GPUs oder Cloud TPUs, da die Daten übertragen werden, bevor Sie für die Cloud GPUs oder Cloud TPUs bezahlen.
- Hat eine große Speicherkapazität.
- Unterstützt schnelle Prüfpunktausführung für Tausende von VMs.
- Unterstützt Cloud GPUs, Cloud TPUs und alle anderen Compute Engine-Instanztypen.
Nachteile von Filestore
- Hohe Vorabkosten; Die höhere Computing-Effizienz kann jedoch die Gesamtkosten für das Training senken.
Filestore mit optionaler lokaler SSD auswählen
Filestore ist die beste Wahl für KI- und ML-Arbeitslasten, die eine niedrige Latenz und vollständigen POSIX-Support benötigen. Neben der empfohlenen Wahl für kleine Datei- oder kleine E/A-Trainingsjobs bietet Filestore eine Reaktionsschnelligkeit für KI- und ML-Notebooks, Softwareentwicklung und viele andere Anwendungen. Sie können Filestore auch in einer Zone bereitstellen, um Hochleistungstraining und nichtflüchtigen Speicher von Prüfpunkten zu ermöglichen. Die Bereitstellung von Filestore in einer Zone bietet auch einen schnellen Neustart nach einem Fehler. Alternativ können Sie Filestore regional bereitstellen, um hochverfügbare Inferenzjobs zu unterstützen. Das optionale Hinzufügen von FS-Cache zur Unterstützung des lokalen SSD-Caching ermöglicht schnelles wiederholtes Lesen von Trainingsdaten zur Optimierung der Arbeitslasten.
Nächste Schritte
Weitere Informationen zu Speicheroptionen sowie zu KI und ML finden Sie in den folgenden Ressourcen:
- Optimale Speicherstrategie für eine Cloud-Arbeitslast entwickeln
- Produktübersicht über Cloud Storage
- Cloud Storage FUSE
- Übersicht über Filestore
- Lokale SSDs
- Übersicht über den Storage Transfer Service
- Einführung in Vertex AI
- Netzwerkerreichbarkeit von Vertex AI Pipelines erweitern
- Video: Schneller und einfacher auf größere Datasets zugreifen, um das Training Ihrer ML-Modelle in Vertex AI zu beschleunigen | Google Cloud
- Cloud Storage als Dateisystem in AI Training
- Daten für das benutzerdefinierte Modelltraining in Vertex AI lesen und speichern | Google Cloud-Blog
Beitragende
Autoren:
- Dean Hildebrand Technical Director, Office of the CTO
- Sean Derrington | Group Outbound Product Manager, Speicher
- Richard Hendricks | Mitarbeiter im Architecture Center
Weiterer Mitwirkender: Kumar Dhanagopal | Entwickler von produktübergreifenden Lösungen