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 sorgfältige Auswahl ist erforderlich, wenn Sie Ihr Dataset hochladen, Ihr Modell trainieren und optimieren, das Modell in Produktion nehmen oder das Dataset und das Modell in einem Archiv speichern. Kurz gesagt: Sie müssen die besten Speicherdienste auswählen, die für jede Phase Ihrer KI- und ML-Arbeitslasten die richtige Latenz, Skalierung und Kosten bieten.
Damit Sie fundierte Entscheidungen treffen können, finden Sie in diesem 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 in der Regel Cloud Storage, wenn Sie größere Dateigrößen, niedrigere Eingabe-/Ausgabevorgänge pro Sekunde (IOPS) oder eine höhere Latenz haben. Wenn Sie jedoch höhere IOPS, kleinere Dateigrößen oder eine niedrigere Latenz benötigen, wählen Sie stattdessen Filestore aus.
Abbildung 1: Wichtige Überlegungen zum Speichern von KI- und ML-Daten
Phasen von KI- und ML-Arbeitslasten
KI- und ML-Arbeitslasten bestehen aus vier Hauptphasen: Vorbereiten, Trainieren, Bereitstellen und Archivieren. An diesen vier Stellen im Lebenszyklus einer KI- und ML-Arbeitslast müssen Sie eine Entscheidung darüber treffen, welche Speicheroptionen Sie verwenden sollten. In den meisten Fällen empfehlen wir, für die übrigen Phasen dieselbe Speicheroption zu verwenden, die Sie in der Vorbereitungsphase ausgewählt haben. Wenn Sie dieser Empfehlung folgen, können Sie das Kopieren von Datensätzen 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-Eigenschaften, der Größe 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 Informationen 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 lokalem 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
Um die Auswahl der Speicheroptionen für Ihre KI- und ML-Arbeitslasten einzugrenzen, beantworten Sie zuerst die folgenden Fragen:
- Sind die I/O-Anfragegrößen und Dateigrößen für KI und ML 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 viele Cloud GPUs oder Cloud TPUs werden für Ihre größte KI- und ML-Trainingsarbeitslast benötigt?
Neben den Antworten auf die vorherigen Fragen müssen Sie auch die Rechenoptionen und Beschleuniger kennen, mit denen Sie Ihre KI- und ML-Arbeitslasten optimieren können.
Hinweise zur Rechenplattform
Google Cloud unterstützt drei Hauptmethoden zum Ausführen von KI- und ML-Arbeitslasten:
- Compute Engine: Virtuelle Maschinen (VMs) unterstützen alle von Google verwalteten Speicherdienste und Angebote von Partnern. Compute Engine unterstützt Lokale SSD, Persistent Disk, Cloud Storage, Cloud Storage FUSE, NetApp Volumes und Filestore. Für groß angelegte Trainingsjobs in der Compute Engine arbeitet Google mit SchedMD zusammen, um Verbesserungen am Slurm-Scheduler vorzunehmen.
Google Kubernetes Engine (GKE): GKE ist eine beliebte Plattform für KI, die sich in gängige Frameworks, Arbeitslasten und Datenverarbeitungstools integrieren lässt. GKE unterstützt lokale SSDs, persistente 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 die Compute Engine als auch für GKE empfehlen wir die Verwendung des Cluster Toolkits, um wiederverwendbare und schlüsselfertige Cluster bereitzustellen, die den Best Practices von Google Cloud entsprechen.
Ü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 Beschleuniger: NVIDIA Cloud-GPUs und die kundenspezifisch 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 Unterschiede beim Speicher. Instanzen mit Cloud-GPUs unterstützen lokale SSDs mit einem Remote-Speicherdurchsatz von bis zu 200 Gbit/s. Cloud TPU-Knoten und ‑VMs unterstützen keine lokalen SSDs und nutzen ausschließlich den Zugriff auf Remote-Speicher.
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 sollten Cloud TPUs verwendet werden?
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 ersten Speicheroption für Ihre KI- und ML-Arbeitslast berücksichtigen können: Cloud Storage, Filestore und Google Cloud NetApp Volumes.
Abbildung 2: Von Google Cloud angebotene Speicherdienste für KI und ML
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 Speicher-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. Diese bieten folgende Vorteile:
- Filestore
- Hochleistungsfähiger NFS-basierter Dateispeicher für Unternehmen
- Nichtflüchtiger Speicher zum Speichern Ihrer Daten.
- Niedrige Speicherlatenz und ein Durchsatz von 26 GB/s.
- NetApp Volumes
- Dateispeicher, der mit NFS und Server Message Block (SMB) kompatibel ist.
- Kann mit dem NetApp ONTAP-Speichersoftwaretool verwaltet werden.
- Nichtflüchtiger Speicher zum Speichern Ihrer Daten.
- Durchsatz von 4,5 Gbit/s
Verwenden Sie die folgenden Speicheroptionen als erste Wahl für KI- und ML-Arbeitslasten:
Verwenden Sie die folgenden Speicheroptionen, um Ihre KI- und ML-Arbeitslasten zu ergänzen:
Wenn Sie Daten zwischen diesen Speicheroptionen übertragen möchten, können Sie die Tools zur Datenübertragung verwenden.
Cloud Storage
Cloud Storage ist ein vollständig verwalteter Objektspeicherdienst, der sich auf die Datenvorbereitung, das Training von KI-Modellen, die Datenbereitstellung, die Sicherung und das Archivieren unstrukturierter Daten konzentriert. Zu den Vorteilen von Cloud Storage gehören:
- Unbegrenzte Speicherkapazität, die global auf Exabyte skaliert
- Ultrahoher Durchsatz
- Speicheroptionen für Regionen und zwei Regionen für KI- und ML-Arbeitslasten
Cloud Storage skaliert den Durchsatz auf Terabyte pro Sekunde und mehr, hat aber eine relativ höhere Latenz (mehrere zehn Millisekunden) als Filestore oder ein lokales Dateisystem. Der Durchsatz einzelner Threads ist auf etwa 100–200 MB pro Sekunde begrenzt. Ein hoher Durchsatz kann also nur mit Hunderten bis Tausenden von einzelnen Threads erreicht werden. Außerdem erfordern hohe Durchsätze die Verwendung großer Dateien und großer E/A-Anfragen.
Cloud Storage unterstützt Clientbibliotheken in verschiedenen 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 Standard-Dateisystem-APIs verwenden, um aus einem Bucket zu lesen oder in einen Bucket zu schreiben. Sie können Ihre Trainingsdaten, Modelle und Checkpoints mit der Skalierbarkeit, Wirtschaftlichkeit 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 von Cloud Storage FUSE
Filestore
Filestore ist ein vollständig verwalteter NFS-basierter Dateispeicherdienst. Zu den Filestore-Dienstebenen, die für KI- und ML-Arbeitslasten verwendet werden, gehören:
- Enterprise-Stufe: Wird für geschäftskritische Arbeitslasten verwendet, die eine regionale Verfügbarkeit erfordern.
- Zonenebene: Wird für Hochleistungsanwendungen verwendet, die eine zonale Verfügbarkeit mit hohen IOPS- und Durchsatzanforderungen erfordern.
- Basic-Stufe: Wird für die Dateifreigabe, Softwareentwicklung, Webhosting und grundlegende KI- und ML-Arbeitslasten verwendet.
Filestore bietet eine E/A-Leistung mit niedriger Latenz. Sie eignet sich gut für Datasets mit geringen Anforderungen an den E/A-Zugriff oder kleinen Dateien. Filestore kann jedoch bei Bedarf auch große I/O- oder Dateinutzungen verarbeiten. Filestore kann auf eine Größe von etwa 100 TB skaliert werden. Bei KI-Trainingslasten, bei denen Daten wiederholt gelesen werden, können Sie den Lesedurchsatz verbessern, indem Sie den FS-Cache mit einer lokalen 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 Instanzleistung optimieren und testen.
Google Cloud NetApp Volumes
NetApp Volumes ist ein vollständig verwalteter Dienst mit erweiterten Datenverwaltungsfunktionen, der NFS-, SMB- und Multi-Protokoll-Umgebungen unterstützt. NetApp Volumes unterstützt eine geringe Latenz, Volumes mit mehreren Tebibyte und einen Durchsatz von mehreren 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 die primäre Speicheroption ausgewählt haben, können Sie Blockspeicher verwenden, um die Leistung zu steigern, Daten zwischen Speicheroptionen zu übertragen und von Vorgängen mit niedriger Latenz zu profitieren. Sie haben zwei Speicheroptionen für Blockspeicher: lokale SSDs und nichtflüchtige Laufwerke.
Lokale SSD
Lokale SSDs bieten lokalen Speicherplatz direkt für eine VM oder einen Container. Die meisten Google Cloud-Maschinentypen mit Cloud-GPUs enthalten eine gewisse Menge an lokalem SSD. Da lokale SSDs physisch an die Cloud-GPUs angeschlossen sind, bieten sie Zugriff mit niedriger Latenz und potenziell Millionen von IOPS. Cloud TPU-basierte Instanzen umfassen dagegen keinen lokalen SSD.
Lokale SSDs bieten zwar eine hohe Leistung, aber jede Speicherinstanz ist flüchtig. Die auf einem lokalen SSD gespeicherten Daten gehen also verloren, wenn Sie die Instanz anhalten oder löschen. Aufgrund der flüchtigen Natur von lokalen SSDs sollten Sie andere Speichertypen in Betracht ziehen, wenn Ihre Daten eine bessere Haltbarkeit erfordern.
Wenn die Menge der Trainingsdaten jedoch sehr gering ist, werden die Trainingsdaten häufig aus Cloud Storage auf das lokale SSD einer GPU kopiert. Der Grund dafür ist, dass lokale SSDs eine geringere I/O-Latenz bieten und die Trainingszeit verkürzen.
Weitere Informationen zu lokalen SSDs finden Sie unter Lokale SSDs. Weitere Informationen zur Kapazität lokaler SSDs, die mit Cloud GPUs-Instanztypen verfügbar ist, finden Sie unter GPU-Plattformen.
Persistent Disk
Persistent Disk ist ein Netzwerkblockspeicherdienst mit einer umfassenden Suite von Datenpersistenz- und -Verwaltungsfunktionen. Sie können den nichtflüchtigen Speicher nicht nur als Bootlaufwerk, sondern auch für 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.
Tools zur Datenübertragung
Wenn Sie KI- und ML-Aufgaben ausführen, müssen Sie Ihre Daten manchmal von einem Speicherort an einen anderen kopieren. Wenn Ihre Daten beispielsweise in Cloud Storage gespeichert sind, können Sie sie an einen anderen Speicherort verschieben, um das Modell zu trainieren, und dann die Checkpoint-Snapshots oder das trainierte Modell wieder in Cloud Storage kopieren. Sie können auch die meisten Aufgaben in Filestore ausführen und Ihre Daten und Ihr Modell dann zu Archivierungszwecken in Cloud Storage verschieben. In diesem Abschnitt werden die Optionen zum Verschieben von Daten zwischen Speicherdiensten in Google Cloud beschrieben.
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 Ihrem lokalen Dateispeicher und Objektspeicher-Repositories, Ihrem Google Cloud-Speicher und anderen Cloud-Anbietern kopieren. Mit dem Storage Transfer Service können Sie Ihre Daten sicher vom Quell- zum Zielspeicherort kopieren und auch regelmäßige Übertragungen geänderter Daten ausführen. 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
In diesem Abschnitt wird die Zusammenfassung in Tabelle 1 erweitert, um spezifische Empfehlungen und Anleitungen für jede Phase einer KI- und ML-Arbeitslast zu erläutern. 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 Hauptempfehlungen, die im Abschnitt Speicherempfehlungen für KI und ML erläutert werden.
Die folgende Abbildung zeigt einen Entscheidungsbaum mit den empfohlenen Speicheroptionen für die vier Hauptphasen einer KI- und ML-Arbeitslast. 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 ersten Phase müssen Sie auswählen, ob Sie Cloud Storage oder Filestore als persistente Datenquelle für Ihre Daten verwenden möchten. Sie können auch potenzielle Optimierungen für datenintensive Trainings auswählen. Die Arbeitslasten und Datensätze verschiedener Teams in Ihrem Unternehmen können variieren, was dazu führen kann, dass diese Teams unterschiedliche Speicherentscheidungen treffen. Um diesen unterschiedlichen Anforderungen gerecht zu werden, können Sie die Speicheroptionen zwischen Cloud Storage und Filestore entsprechend kombinieren.
Cloud Storage für die Vorbereitungsphase
- Ihre Arbeitslast enthält große Dateien mit einer Größe von mindestens 50 MB.
- Ihre Arbeitslast erfordert weniger IOPS.
Ihre Arbeitslast kann eine höhere Speicherlatenz im Bereich von mehreren Zehn Millisekunden tolerieren.
Sie müssen über die Cloud Storage APIs, Cloud Storage FUSE und eine Teilmenge der Datei-APIs auf den Datensatz zugreifen.
Wenn Sie Ihre Arbeitslast in Cloud Storage optimieren möchten, können Sie regionalen Speicher auswählen und Ihren Bucket in derselben Region wie Ihre Compute-Ressourcen platzieren. Wenn Sie jedoch eine höhere Zuverlässigkeit benötigen oder Accelerators in zwei verschiedenen Regionen verwenden, sollten Sie den Dual-Region-Speicher auswählen.
Dateispeicher für die Vorbereitungsphase
Sie sollten Filestore auswählen, um Ihre Daten vorzubereiten, wenn eine der folgenden Bedingungen zutrifft:
- Ihre Arbeitslast enthält kleinere Dateien mit einer Größe von weniger als 50 MB.
- Ihre Arbeitslast erfordert mehr IOPS.
- Für Ihre Arbeitslast ist eine niedrigere Latenz von weniger als 1 Millisekunde erforderlich, um die Speicheranforderungen für zufällige I/O-Vorgänge und den Metadatenzugriff zu erfüllen.
- Ihre Nutzer benötigen eine Desktop-Umgebung mit voller POSIX-Unterstützung, um die Daten aufzurufen und zu verwalten.
- Ihre Nutzer müssen andere Aufgaben erledigen, z. B. Softwareentwicklung.
Weitere Überlegungen für die Vorbereitungsphase
Wenn Sie sich in dieser Phase schwertun, eine Option auszuwählen, können Ihnen die folgenden Punkte bei der Entscheidungsfindung 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 Datenvorbereitung organisieren viele Nutzer ihre Daten in großen Chunks, 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 in der Regel die primäre Speicheroption, die Sie für die Vorbereitungsphase ausgewählt haben. Wenn Ihr primärer Speicher die Trainingsarbeitslast nicht allein bewältigen kann, müssen Sie ihn möglicherweise ergänzen. Sie können bei Bedarf zusätzlichen Speicherplatz hinzufügen, z. B. lokale SSDs, um die Arbeitslast auszugleichen.
In diesem Abschnitt finden Sie Empfehlungen zur Verwendung von Cloud Storage oder Filestore in dieser Phase sowie weitere Informationen zu diesen Empfehlungen. Die Details umfassen Folgendes:
- Richtlinien für Datei- und Anfragegrößen
- Vorschläge für die Ergänzung der Auswahl Ihres primären Speichers
- Eine Erklärung der Implementierungsdetails für die beiden wichtigsten Arbeitslasten in dieser Phase: Datenladevorgang, Checkpoints und Neustart
Cloud Storage für die Trainingsphase
Die wichtigsten Gründe für die Auswahl von Cloud Storage beim Trainieren Ihrer Daten:
- Wenn Sie Cloud Storage bei der Vorbereitung Ihrer Daten verwenden, sollten Sie sie auch in Cloud Storage trainieren.
- Cloud Storage eignet sich gut für den Durchsatz, für Arbeitslasten, die keinen hohen Durchsatz für eine einzelne VM erfordern, oder für Arbeitslasten, bei denen viele Threads verwendet werden, um den Durchsatz bei Bedarf zu erhöhen.
Cloud Storage mit lokalem SSD oder Filestore für die Trainingsphase
Der Hauptgrund für die Auswahl von Cloud Storage mit lokalem SSD oder Filestore beim Trainieren Ihrer Daten ist, wenn Sie kleine I/O-Anfragen oder kleine Dateien unterstützen 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
Die wichtigsten Gründe für die Auswahl von Filestore beim Trainieren Ihrer Daten:
- Wenn Sie Filestore bei der Vorbereitung Ihrer Daten verwenden, sollten Sie sie in den meisten Fällen auch in Filestore trainieren.
- Filestore eignet sich gut für eine niedrige Latenz, einen hohen Durchsatz pro Client und Anwendungen, die nur wenige Threads verwenden, aber dennoch eine hohe Leistung erfordern.
- Wenn Sie Ihre Trainingsaufgaben in Filestore ergänzen möchten, können Sie bei Bedarf einen lokalen SSD-Cache erstellen.
Datei- und Anfragegrößen
Sobald der Datensatz für das Training bereit ist, haben Sie zwei Möglichkeiten, die verschiedenen Speicheroptionen zu bewerten.
- Datasets mit großen Dateien, auf die mit großen Anfragegrößen 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 Anfragegrößen zugegriffen wird
Bei dieser Option besteht der Trainingsjob hauptsächlich aus größeren Dateien mit einer Größe von mindestens 50 MB. Der Trainingsjob nimmt die Dateien mit 1 MB bis 16 MB pro Anfrage auf. Für diese Option empfehlen wir in der Regel Cloud Storage mit Cloud Storage FUSE, da die Dateien groß genug sind, dass Cloud Storage die Accelerators mit Daten versorgen kann. Beachten Sie, dass Sie möglicherweise Hunderte bis Tausende von Threads benötigen, um mit dieser Option die maximale Leistung zu erzielen.
Wenn Sie jedoch für andere Anwendungen vollständige POSIX-APIs benötigen oder Ihre Arbeitslast nicht für die große Anzahl erforderlicher Threads 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 einer Größe von weniger als 50 MB.
- Ein Datensatz mit größeren Dateien, die aber sequenziell oder zufällig mit relativ kleinen Leseanfragegrößen (z. B. weniger als 1 MB) gelesen werden. Ein Beispiel für diesen Anwendungsfall ist, wenn das System weniger als 100 KB gleichzeitig aus einer Datei mit mehreren Gigabyte oder Terabyte liest.
Wenn Sie Filestore bereits aufgrund seiner POSIX-Funktionen verwenden, empfehlen wir, Ihre Daten für das Training in Filestore zu belassen. Filestore bietet Zugriff auf die Daten mit geringer E/A-Latenz. Diese geringere Latenz kann die Gesamttrainingszeit und die Kosten für das Training Ihres Modells senken.
Wenn Sie Ihre Daten in Cloud Storage speichern, empfehlen wir, sie vor dem Training auf ein lokales SSD oder Filestore zu kopieren.
Laden der Daten
Während des Datenladens importieren Cloud GPUs oder Cloud TPUs wiederholt Datenbatches, um das Modell zu trainieren. Diese Phase kann je nach Größe der Batches und der Reihenfolge, in der Sie sie anfordern, cachefreundlich sein. Ihr Ziel besteht nun darin, das Modell mit maximaler Effizienz, aber zu den geringsten Kosten zu trainieren.
Wenn die Größe Ihrer Trainingsdaten auf Petabyte ansteigt, müssen die Daten möglicherweise mehrmals neu gelesen werden. Eine solche Skalierung 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 Speicherort 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 Accelerators erhöhen. Je nach Art der Parallelität können Sie die Kosten minimieren, indem Sie die Anforderungen an den Gesamtlesedurchsatz erhöhen, der erforderlich ist, um inaktive Accelerators zu vermeiden.
Um diese Verbesserungen in Cloud Storage oder Filestore zu unterstützen, müssen Sie jeder Instanz ein lokales SSD hinzufügen, damit Sie die E/A vom überlasteten Speichersystem auslagern können.
Das Vorabladen von Daten aus Cloud Storage auf das lokale SSD jeder Instanz birgt jedoch eigene Herausforderungen. Es besteht das Risiko, dass während der Datenübertragung höhere Kosten für die inaktiven Accelerators anfallen. Wenn die Datenübertragungszeiten und die Kosten für den inaktiven Accelerator hoch sind, können Sie die Kosten möglicherweise senken, indem Sie stattdessen Filestore mit lokalem SSD verwenden.
- Anzahl der Cloud-GPUs pro Instanz: Wenn Sie mehr Cloud-GPUs auf jeder Instanz bereitstellen, können Sie den Durchsatz zwischen Cloud-GPUs mit NVLink erhöhen. Der verfügbare Durchsatz des lokalen SSD und des Speichernetzwerks steigt jedoch nicht immer linear an.
- Speicher- und Anwendungsoptimierungen: Speicheroptionen und Anwendungen haben spezifische Leistungsanforderungen, damit sie optimal ausgeführt werden können. Achten Sie darauf, diese Anforderungen an Speicher- und Anwendungssysteme mit Ihren Optimierungen für das Datenladen in Einklang zu bringen. So können Sie beispielsweise Ihre Cloud GPUs oder Cloud TPUs effizient nutzen.
Checkpoints und Neustart
Für Prüfpunkte und Neustarts müssen Trainingsjobs ihren Status regelmäßig speichern, damit sie bei Instanzausfällen schnell 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 zum Erstellen und Aufnehmen von Checkpoints ist in der Regel spezifisch für ein Framework wie TensorFlow oder PyTorch. Einige Nutzer haben komplexe Frameworks entwickelt, um die Effizienz des Checkpointing zu erhöhen. Mit diesen komplexen Frameworks können sie Checkpoints häufiger ausführen.
Die meisten Nutzer verwenden jedoch in der Regel freigegebenen Speicher, z. B. Cloud Storage oder Filestore. Beim Speichern von Checkpoints müssen Sie jeweils nur drei bis fünf Checkpoints 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 Checkpoints.
Außerdem müssen Sie die Größe des Checkpoints berücksichtigen, den jede GPU oder TPU erstellen muss. Die Größe des Checkpoints bestimmt den Schreibdurchsatz, der erforderlich ist, um den Trainingsjob kostengünstig und zeitnah abzuschließen.
Um die Kosten zu minimieren, sollten Sie die folgenden Elemente erhöhen:
- Häufigkeit der Checkpoints
- Der Gesamtschreibdurchsatz, der für Checkpoints erforderlich ist
- Effizienz des Neustarts
Bereitstellung
Wenn Sie Ihr Modell bereitstellen, was auch als KI-Inferenz bezeichnet wird, ist das primäre I/O-Muster schreibgeschützt, um das Modell in Cloud-GPUs oder Cloud TPU-Speicher zu laden. Ihr Ziel in dieser Phase besteht darin, Ihr Modell in der Produktion auszuführen. Das Modell ist viel kleiner als die Trainingsdaten, sodass Sie es auf 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 für generative KI sind die Eingabedaten für das Modell möglicherweise recht klein und müssen möglicherweise nicht dauerhaft gespeichert werden. In anderen Fällen müssen Sie möglicherweise große Datenmengen über das Modell laufen lassen (z. B. wissenschaftliche Datensätze). 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 Ihres Modells haben Sie zwei Möglichkeiten.
Cloud Storage für die Bereitstellungsphase
Die wichtigsten Gründe für die Auswahl von Cloud Storage beim Bereitstellen 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 lassen.
- Sie können die generierten Inhalte in Cloud Storage speichern.
- Cloud Storage ist eine gute Wahl, wenn KI-Inferenzen in mehreren Regionen stattfinden.
- Sie können Dual- und Multi-Region-Buckets verwenden, um die Modellverfügbarkeit bei regionalen Ausfällen zu gewährleisten.
Filestore für die Bereitstellungsphase
Die wichtigsten Gründe für die Auswahl von Filestore beim Bereitstellen Ihrer Daten:
- Wenn Sie Ihr Modell in Filestore trainieren, können Sie Migrationskosten sparen, indem Sie das Modell bei der Bereitstellung in Filestore lassen.
- 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 zonalen Dienststufen von Filestore sind eine kostengünstige Option, aber nur, wenn für Ihre KI- und ML-Arbeitslast keine Hochverfügbarkeit erforderlich ist.
- Wenn Sie eine regionsübergreifende Wiederherstellung benötigen, können Sie das Modell an einem Remote-Speicherort oder in einem Remote-Cloud Storage-Bucket speichern und dann bei Bedarf wiederherstellen.
- Filestore ist eine zuverlässige und hochverfügbare Option, die bei der Generierung kleiner Dateien oder bei Bedarf von Datei-APIs Zugriff auf Ihr Modell mit niedriger Latenz bietet.
Archivieren
Die Archivierungsphase hat ein E/A-Muster vom Typ „einmal schreiben, selten lesen“. Ihr Ziel besteht darin, die verschiedenen Trainingsdatensätze 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. Außerdem müssen Sie diese Artikel über einen längeren Zeitraum an einem sicheren Ort aufbewahren. 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 seiner extremen Langlebigkeit, seines großen Umfangs und seiner geringen Kosten ist Cloud Storage die beste Option, um Objektdaten über einen langen Zeitraum zu speichern. Je nachdem, wie häufig Sie auf den Datensatz, das Modell und die Sicherungsdateien zugreifen, bietet Cloud Storage eine Kostenoptimierung durch verschiedene Speicherklassen mit den folgenden Ansätzen:
- Speichern Sie Daten, auf die häufig zugegriffen wird, im Standardspeicher.
- Speichern Sie Daten, auf die Sie monatlich zugreifen, in Nearline Storage.
- Speichern Sie Daten, auf die Sie alle drei Monate zugreifen, in Coldline Storage.
- Speichern Sie Daten, auf die Sie einmal im Jahr zugreifen, im Archivspeicher.
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 Ihre Filestore-Daten jedoch zusätzlich schützen, indem Sie Filestore-Sicherungen in einer anderen Region erstellen. Sie können auch Filestore-Snapshots zur Wiederherstellung lokaler Dateien und Dateisysteme erstellen. Weitere Informationen zu Filestore-Sicherungen finden Sie unter Sicherungen. 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 Local SSD oder Filestore auswählen
- Filestore und optional 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 regionalen Speicher auswählen, wenn sich Ihre Rechenplattform für das Training in derselben Region befindet. Wählen Sie Dual-Region-Speicher aus, 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 Local SSD sind jedoch in bestimmten Fällen eine gute Alternative, wenn Sie die volle POSIX-Unterstützung benötigen oder Cloud Storage zu einem Leistungsengpass wird.
Cloud Storage mit Local SSD oder Filestore auswählen
Bei datenintensiven Trainings oder Checkpoint- und Neustart-Arbeitslasten kann es sinnvoll sein, während der speicherintensiven Trainingsphase ein schnelleres Speicherangebot zu verwenden. Typische Optionen sind das Kopieren der Daten auf ein lokales SSD oder 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 die Erhöhung der Anzahl der Sicherungen steigt 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 der einzelnen Methoden beschrieben.
Vorteile lokaler SSDs
- Hoher Durchsatz und hohe IOPS nach der Datenübertragung
- Geringe bis minimale zusätzliche Kosten
Nachteile lokaler SSDs
- Cloud GPUs oder Cloud TPUs bleiben während des Datenladevorgangs inaktiv.
- Die Datenübertragung muss für jeden Job und jede Instanz erfolgen.
- Ist nur für einige Instanztypen mit Cloud-GPUs verfügbar.
- Bietet eine begrenzte Speicherkapazität.
- Unterstützt Checkpoints, die jedoch manuell in eine dauerhafte Speicheroption wie Cloud Storage übertragen werden müssen.
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 Inaktivitätszeiten für Cloud GPUs oder Cloud TPUs, da die Daten übertragen werden, bevor Sie für die Cloud GPUs oder Cloud TPUs bezahlen.
- Sie haben eine große Speicherkapazität.
- Unterstützt schnelles Checkpointing für Tausende von VMs.
- Unterstützt Cloud GPUs, Cloud TPUs und alle anderen Compute Engine-Instanztypen.
Nachteile von Filestore
- Hohe Vorabkosten, aber die erhöhte Recheneffizienz kann die Gesamtkosten für die Modellerstellung senken.
Filestore mit optionaler lokaler SSD auswählen
Filestore ist die beste Wahl für KI- und ML-Arbeitslasten, die eine geringe Latenz und vollständige POSIX-Unterstützung erfordern. Filestore ist nicht nur die empfohlene Wahl für kleine Dateien oder kleine E/A-Trainingsjobs, sondern bietet auch eine reaktionsschnelle Leistung für KI- und ML-Notebooks, Softwareentwicklung und viele andere Anwendungen. Sie können Filestore auch in einer Zone bereitstellen, um ein Hochleistungstraining und einen dauerhaften Speicher von Checkpoints zu ermöglichen. Die Bereitstellung von Filestore in einer Zone ermöglicht außerdem einen schnellen Neustart bei einem Ausfall. Alternativ können Sie Filestore regional bereitstellen, um hoch verfü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 Datensätze zugreifen, um das Training von ML-Modellen in Vertex AI zu beschleunigen | Google Cloud
- Cloud Storage als Dateisystem beim KI-Training
- Daten für das Training benutzerdefinierter Modelle in Vertex AI lesen und speichern | Google Cloud-Blog
- Einen Überblick über die Prinzipien und Empfehlungen, die speziell für KI- und ML-Arbeitslasten in Google Cloud gelten, finden Sie im Architektur-Framework unter KI und ML.
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 | Cross-Product Solution Developer