Speicher für KI- und ML-Arbeitslasten in Google Cloud entwerfen

Last reviewed 2024-03-20 UTC

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. Dies erfordert eine sorgfältige Auswahl, wenn Sie Ihr Dataset hochladen, trainieren und optimieren, das Modell in die Produktion platzieren oder das Dataset und das Modell in einem Archiv speichern. Kurz gesagt, Sie müssen die besten Speicherdienste auswählen, die die richtige Latenz, Skalierung und Kosten für jede Phase Ihrer KI- und ML-Arbeitslasten 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 in der Regel Cloud Storage aus, wenn Sie größere Dateien, niedrigere Eingabe- und Ausgabevorgänge pro Sekunde (IOPS) oder eine höhere Latenz haben. Wenn Sie jedoch einen höheren IOPS-Wert, kleinere Dateigrößen oder eine geringere Latenz benötigen, wählen Sie stattdessen Filestore.

Abbildung 1: Überlegungen zur primären KI- und ML-Speicherung

Wählen Sie Cloud Storage aus, wenn Sie größere Dateien, einen geringeren IOPS-Wert oder eine höhere Latenz haben. Wählen Sie Filestore aus, wenn Sie einen höheren IOPS-Wert, kleinere Dateigrößen oder eine geringere Latenz benötigen.

Übersicht über KI- und ML-Arbeitslastphasen

KI- und ML-Arbeitslasten bestehen aus vier Hauptphasen: Vorbereitung, Trainieren, Bereitstellen und Archivieren. Das sind die vier Male im Lebenszyklus einer KI- und ML-Arbeitslast, bei denen Sie eine Entscheidung für die zu verwendenden Speicheroptionen treffen müssen. In den meisten Fällen empfehlen wir, weiterhin dieselbe Speicherauswahl zu verwenden, die Sie in der Vorbereitungsphase für die verbleibenden Phasen ausgewählt haben. Wenn Sie diese Empfehlung befolgen, können Sie das Kopieren von Datasets zwischen Speicherdiensten reduzieren. Es gibt jedoch einige Ausnahmen von dieser allgemeinen Regel, die weiter unten in dieser Anleitung 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

  • Daten hochladen und aufnehmen.
  • Daten in das richtige Format umwandeln, bevor Sie das Modell trainieren

Cloud Storage

  • Große Dateien (50 MB oder mehr), die eine höhere Speicherlatenz (zehntel Millisekunden) tolerieren können.

Filestore Zonal

  • Kleinere Datasets mit kleineren Dateien (kleiner als 50 MB) und niedrigerer Speicherlatenz (ca. 1 Millisekunde).

Trainieren

  1. Modellentwicklung
    • Entwickeln Sie Ihr Modell mithilfe von Notebooks und wenden Sie iterative Tests an.
  2. Modelltraining
    • Verwenden Sie kleine bis große Anzahlen von Graphical Processing Units (Cloud GPUs) oder Tensor Processing Units (Cloud TPUs), um das Trainings-Dataset wiederholt zu lesen.
    • Anwendung eines iterativen Prozesses für die Modellentwicklung und das Training.

Cloud Storage

  • Wenn Sie Cloud Storage in der Vorbereitungsphase auswählen, sollten Sie Ihre Daten am besten in Cloud Storage trainieren.

Cloud Storage mit lokaler SSD oder Filestore

  • Wenn Sie Cloud Storage in der Vorbereitungsphase auswählen, aber kleine E/A-Anfragen oder kleine Dateien unterstützen müssen, können Sie Ihre Trainingsaufgaben ergänzen. Verschieben Sie dazu einige Ihrer Daten von Cloud Storage auf eine lokale SSD oder Filestore Zonal.

Filestore

  • Wenn Sie Filestore in der Vorbereitungsphase auswählen, sollten Sie Ihre Daten am besten in Filestore trainieren.
  • Erstellen Sie einen lokalen SSD-Cache als Ergänzung Ihrer Filestore-Trainingsaufgaben.
  1. Prüfpunktausführung und Neustart
    • Speichern Sie den Zustand während des Modelltrainings regelmäßig, indem Sie einen Prüfpunkt erstellen, damit das Training nach einem Knotenfehler neu gestartet werden kann.
    • Treffen Sie diese Auswahl basierend auf dem E/A-Muster und der Datenmenge, die zum Prüfpunkt gespeichert werden muss.

Cloud Storage

  • Wenn Sie Cloud Storage in der Vorbereitungsphase auswählen, verwenden Sie am besten Cloud Storage für die Prüfpunktausführung und den Neustart.
  • Geeignet für Durchsatz und Arbeitslasten, die eine große Anzahl von Threads benötigen.

Filestore Zonal

  • Wenn Sie Filestore in der Vorbereitungsphase auswählen, verwenden Sie am besten Filestore für die Prüfpunktausführung und den Neustart.
  • Gut für Latenz, hohen clientbasierten Durchsatz und eine geringe Anzahl von Threads.

Bereitstellung

  • Speichern Sie das Modell.
  • Laden Sie das Modell beim Start in eine Instanz, auf der Cloud GPUs oder Cloud TPUs ausgeführt werden.
  • Ergebnisse der Modellinferenz speichern, z. B. generierte Bilder.
  • Optional können Sie das für die Modellinferenz verwendete Dataset speichern und laden.

Cloud Storage

  • Wenn Sie Ihr Modell in Cloud Storage trainieren, empfiehlt es sich, dafür Cloud Storage zu verwenden.
  • Speichern Sie den von Ihrem Modell generierten Inhalt in Cloud Storage.

Filestore

  • Wenn Sie Ihr Modell in Filestore trainieren, sollten Sie zur Bereitstellung Ihres Modells Filestore verwenden.
  • Wenn Sie Langlebigkeit und niedrige Latenz beim Generieren kleiner Dateien benötigen, wählen Sie Filestore Zonal (zonal) oder Filestore Enterprise (regional) aus.

Archivieren

  • Bewahren Sie die Trainingsdaten und das Modell für längere Zeit auf.

Cloud Storage

  • Optimieren Sie die Speicherkosten mit mehreren Speicherklassen, Autoclass oder Verwaltung des Objektlebenszyklus.
  • Wenn Sie Filestore verwenden, können Sie Filestore-Snapshots und -Sicherungen verwenden oder die Daten in Cloud Storage kopieren.

Weitere Informationen zu den zugrunde liegenden Annahmen für diese Tabelle finden Sie in den folgenden Abschnitten:

Kriterium

Um die Auswahl der Speicheroptionen für Ihre KI- und ML-Arbeitslasten einzugrenzen, beantworten Sie zuerst die folgenden Fragen:

  • 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 höchste Anzahl an Cloud-GPUs oder Cloud TPUs, die Ihre einzige größte KI- und ML-Trainingsarbeitslast benötigt?

Neben der Beantwortung der 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:

Sowohl für Compute Engine als auch für GKE empfehlen wir die Verwendung des HPC Toolkits, 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 Optionen für die Beschleunigerverarbeitung auswählen, die für Ihre Aufgabe geeignet sind. 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.

Es gibt einige wichtige Speicherunterschiede zwischen Cloud GPUs und Cloud TPU-Beschleunigern. Instanzen, die Cloud-GPUs verwenden, unterstützen lokale SSDs mit bis zu 200 GB/s Remote-Speicherdurchsatz. Cloud TPU-Knoten und -VMs unterstützen lokale SSDs nicht und verlassen sich ausschließlich auf den Remote-Speicherzugriff.

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 Speicheroption für Ihre KI- und ML-Arbeitslast berücksichtigen können: Cloud Storage, Filestore und Google Cloud NetApp Volumes.

Abbildung 2: Geeignete KI- und ML-Speicherdienste von Google Cloud

Die drei Optionen, die Sie bei der Auswahl der anfänglichen Speicheroption für Ihre KI- und ML-Arbeitslasten berücksichtigen können, sind Cloud Storage, Filestore und NetApp Volumes.

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, basierend auf NFS.
    • Nichtflüchtiger Speicher zum Speichern Ihrer Daten
    • Niedrige Speicherlatenz und Durchsatz von 26 GB/s.
  • NetApp Volumes
    • Mit NFS und Server Message Block (SMB) kompatibeler Dateispeicher.
    • Kann mit der Option zur Verwendung des Speichersoftwaretools NetApp ONTAP 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 als Ergänzung zu Ihren KI- und ML-Arbeitslasten folgende Speicheroptionen:

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 für unstrukturierte Daten konzentriert. Cloud Storage bietet unter anderem folgende Vorteile:

  • Unbegrenzte Speicherkapazität, die weltweit auf Exabyte skaliert wird
  • Besonders hohe Durchsatzleistung
  • Regionale und dualregionale Speicheroptionen für KI- und ML-Arbeitslasten

Cloud Storage skaliert den Durchsatz auf Terabyte pro Sekunde und darüber hinaus, hat jedoch eine relativ höhere Latenz (zehntel Millisekunden) als Filestore oder ein lokales Dateisystem. Der Durchsatz einzelner Threads ist auf etwa 100 bis 200 MB pro Sekunde begrenzt. Dies bedeutet, dass ein hoher Durchsatz nur mit Hunderten bis Tausenden von einzelnen Threads erreicht werden kann. 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, unterstützt 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 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:

Filestore

Filestore ist ein vollständig verwalteter dateibasierter NFS-Speicherdienst. Zu den Filestore-Dienststufen, die für KI- und ML-Arbeitslasten verwendet werden, gehören:

  • Unternehmensstufe: Wird für geschäftskritische Arbeitslasten verwendet, die eine 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 und einfache KI- und ML-Arbeitslasten verwendet.

Filestore bietet eine E/A-Leistung mit niedriger Latenz. Diese Option eignet sich gut für Datasets mit kleinen E/A-Zugriffsanforderungen oder kleinen Dateien. Filestore kann jedoch bei Bedarf auch große E/A-Vorgänge oder Anwendungsfälle mit großen Dateien verarbeiten. Filestore kann auf bis zu 100 TB skaliert werden. Bei KI-Trainingsarbeitslasten, die Daten wiederholt lesen, können Sie den Lesedurchsatz mithilfe von FS-Cache mit lokaler SSD verbessern.

Weitere Informationen zu Filestore finden Sie in der Filestore-Übersicht. Weitere Informationen zu Filestore-Dienststufen finden Sie unter Dienststufen. Weitere Informationen zur Leistung von Filestore finden Sie unter Leistung von Instanzen optimieren und testen.

Google Cloud NetApp Volumes

NetApp Volumes ist ein vollständig verwalteter Dienst mit erweiterten Funktionen zur Datenverwaltung, die NFS-, SMB- und Multi-Protokoll-Umgebungen unterstützen. NetApp Volumes unterstützt Volumes mit niedriger Latenz, Multi-Tebibyte und Gigabyte pro Sekunde Durchsatz.

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 ergänzen, Daten zwischen Speicheroptionen zu übertragen und Vorgänge mit niedriger Latenz zu nutzen. Für den Blockspeicher haben Sie zwei Speicheroptionen: lokale SSD und Persistent Disk.

Lokale SSD

Lokale SSDs stellen lokalen Speicher direkt für eine VM oder einen Container bereit. Die meisten Google Cloud-Maschinentypen, die Cloud-GPUs enthalten, enthalten eine gewisse Menge an lokalen SSDs. Da lokale SSD-Laufwerke physisch mit den Cloud GPUs verbunden sind, bieten sie einen Zugriff mit geringer Latenz und möglicherweise 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 erfordern.

Wenn die Menge der Trainingsdaten jedoch sehr gering ist, werden die Trainingsdaten üblicherweise aus Cloud Storage auf die lokale SSD einer GPU kopiert. Dies liegt daran, dass lokale SSDs eine geringere E/A-Latenz bieten und die Trainingszeit reduzieren.

Weitere Informationen zu lokalen SSDs finden Sie unter Lokale SSDs. Weitere Informationen zur verfügbaren lokalen SSD-Kapazität mit Cloud GPU-Instanztypen finden Sie unter GPU-Plattformen.

Persistent Disk

Persistent Disk ist ein Netzwerkblockspeicherdienst mit einer umfassenden Suite von Funktionen zur Datenpersistenz und -verwaltung. Zusätzlich zur Verwendung als Bootlaufwerk können Sie Persistent Disk auch mit KI-Arbeitslasten wie Scratch-Speicher nutzen. Persistent Disk ist in 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

Wenn Sie KI- und ML-Aufgaben ausführen, müssen Sie Ihre Daten manchmal 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 Checkpoint-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 Ihrem lokalen Dateispeicher- und Objektspeicher-Repositories, Ihrem Google Cloud Storage und anderen Cloudanbietern kopieren. Mit dem Storage Transfer Service können Sie Ihre Daten sicher vom Quellspeicherort an den 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?

Befehlszeilenschnittstellen-Optionen

Zum Verschieben von Daten zwischen Filestore und Cloud Storage können Sie die folgenden Tools verwenden:

  • gcloud storage (empfohlen): Cloud Storage-Buckets und -Objekte mit optimalem Durchsatz und einer vollständigen Suite von gcloud CLI-Befehlen erstellen und verwalten.
  • gsutil: Cloud Storage-Komponenten verwalten und pflegen. Erfordert eine Feinabstimmung, um einen besseren Durchsatz zu erzielen.

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 untersuchen. Das Ziel ist es, die Begründungen für diese Entscheidungen zu verstehen und die besten Speicheroptionen für jede KI- und ML-Phase auszuwählen. Aus dieser Analyse ergeben sich drei primäre 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 detaillierte Erläuterung jeder Phase und die Entscheidungen, die Sie in jeder Phase treffen können.

Abbildung 3: Speicheroptionen für jede KI- und ML-Phase

Ein Entscheidungsbaum, der die empfohlenen Speicheroptionen für die vier Hauptphasen einer KI- und ML-Arbeitslast zeigt.

Vorbereiten

In dieser Anfangsphase 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 ein datenintensives Training auswählen. Beachten Sie, dass die verschiedenen Teams in Ihrer Organisation unterschiedliche Arbeitslast- und Dataset-Typen haben können, die dazu führen können, dass diese Teams unterschiedliche Speicherentscheidungen treffen. Um diese unterschiedlichen Anforderungen zu erfüllen, können Sie Ihre Speicheroptionen zwischen Cloud Storage und Filestore entsprechend kombinieren.

Cloud Storage für die Vorbereitungsphase

  • Ihre Arbeitslast enthält große Dateien mit mindestens 50 MB.
  • 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 Regional Storage auswählen und Ihren 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 zum Vorbereiten Ihrer Daten auswählen, wenn eine der folgenden Bedingungen zutrifft:

  • Ihre Arbeitslast enthält kleinere Dateien unter 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 den zufälligen E/A- und Metadatenzugriff zu erfüllen.
  • Die Nutzer benötigen eine Desktop-ähnliche Umgebung mit vollständiger POSIX-Unterstützung, um die Daten aufrufen 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 nicht für eine Option entscheiden, sollten Sie die folgenden Punkte berücksichtigen, 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 gliedern 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 in der Regel die primäre Speicheroption, die Sie für die Vorbereitungsphase ausgewählt haben. Wenn der ausgewählte primäre Speicher die Trainingsarbeitslast nicht allein 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.

Zusätzlich zu den Empfehlungen für die Verwendung von Cloud Storage oder Filestore in dieser Phase erhalten Sie in diesem Abschnitt auch weitere Informationen zu diesen Empfehlungen. Die Details umfassen Folgendes:

  • Anleitung für 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 wichtigen Arbeitslasten in dieser Phase: Datenladevorgang, Prüfpunktausführung und Neustart

Cloud Storage für die Trainingsphase

Dies sind die wichtigsten Gründe für die Wahl von Cloud Storage beim Trainieren Ihrer Daten:

  • Wenn Sie Cloud Storage für die Vorbereitung Ihrer Daten verwenden, sollten Sie Ihre Daten am besten in Cloud Storage 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 Wahl von Cloud Storage mit lokaler SSD oder Filestore beim Trainieren Ihrer Daten ist, wenn Sie kleine E/A-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 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 Durchsatz pro Client und Anwendungen, die eine geringe Anzahl von Threads verwenden, aber dennoch eine hohe Leistung erfordern.
  • Wenn Sie Ihre Trainingsaufgaben in Filestore ergänzen müssen, sollten Sie eventuell einen lokalen SSD-Cache erstellen.

Dateigrößen und Anfragegrößen

Sobald das Dataset für das Training bereit ist, gibt es zwei Hauptoptionen, mit denen Sie die verschiedenen Speicheroptionen bewerten können.

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 mindestens 50 MB. Der Trainingsjob nimmt die Dateien mit 1 MB bis 16 MB pro Anfrage auf. Wir empfehlen im Allgemeinen für diese Option Cloud Storage mit Cloud Storage FUSE, da die Dateien groß genug sind, dass Cloud Storage die Beschleuniger beibehalten können. Beachten Sie, dass Sie Hunderttausende von Threads benötigen, um mit dieser Option maximale Leistung 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 den 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. weniger 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 Filestore bereits für seine POSIX-Funktionen verwenden, empfehlen wir, Ihre Daten für das Training in Filestore zu behalten. Filestore bietet Zugriff mit geringer E/A-Latenz auf die Daten. Diese niedrigere Latenz kann die Gesamttrainingszeit reduzieren und die Kosten für das Training Ihres Modells senken.

Wenn Sie Ihre Daten in Cloud Storage speichern, sollten Sie Ihre Daten vor dem Training auf die lokale SSD oder Filestore kopieren.

Laden der Daten

Beim Datenladevorgang importieren Cloud GPUs oder Cloud TPUs wiederholt Batches von Daten, um das Modell zu trainieren. Diese Phase kann Cache-freundlich sein, je nach Größe der Batches und Reihenfolge, in der Sie diese anfordern. Ihr Ziel an diesem Punkt besteht darin, das Modell mit maximaler Effizienz, aber zu den niedrigsten Kosten zu trainieren.

Wenn die Größe Ihrer Trainingsdaten auf Petabyte skaliert, müssen die Daten möglicherweise mehrmals gelesen werden. Eine solche Skalierung erfordert eine intensive Verarbeitung durch einen GPU- oder TPU-Beschleuniger. Sie müssen jedoch darauf achten, dass Ihre Cloud GPUs und Cloud TPUs nicht inaktiv sind, aber 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 verwendeter Parallelität können Sie die Kosten minimieren. Erhöhen Sie dazu die Anforderungen an den Gesamtdurchsatz für Lesevorgänge, 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 auf die lokale SSD jeder Instanz aus Cloud Storage bringt jedoch eigene Herausforderungen mit sich. Sie riskieren dadurch höhere Kosten für inaktive Beschleuniger, während die Daten übertragen werden. Wenn die Datenübertragungszeiten und die Inaktivitätskosten für Beschleuniger hoch sind, können Sie die Kosten möglicherweise senken, wenn Sie stattdessen Filestore mit einer lokalen SSD verwenden.

  • Anzahl der Cloud-GPUs pro Instanz: Wenn Sie für jede Instanz weitere Cloud-GPUs bereitstellen, können Sie den Durchsatz zwischen Cloud-GPUs mit NVLink erhöhen. Der verfügbare lokale SSD- und Speichernetzwerkdurchsatz nimmt jedoch nicht immer linear zu.
  • Speicher- und Anwendungsoptimierungen: Speicheroptionen und Anwendungen haben bestimmte Leistungsanforderungen, um optimal ausgeführt zu werden. Achten Sie darauf, diese Speicher- und Anwendungssystemanforderungen mit Ihren Optimierungen beim Laden von Daten abzugleichen, z. B. ob Ihre Cloud GPUs oder Cloud TPUs ausgelastet und effizient ausgeführt werden.

Prüfpunktausführung und Neustart

Für die Prüfpunktausführung und den Neustart müssen Trainingsjobs ihren Status regelmäßig speichern, damit sie nach einem Instanzausfall 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 Prüfpunkten 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 in der Regel freigegebenen Speicher wie Cloud Storage oder Filestore. Wenn Sie Prüfpunkte speichern, müssen Sie jeweils 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öschungen und häufiges Lesen des Prüfpunkts.

Sie müssen auch die Größe des Prüfpunkts berücksichtigen, den jede GPU oder TPU erstellen muss. Die Prüfpunktgröße 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:

  • Die Häufigkeit der Prüfpunkte
  • Der aggregierte Schreibdurchsatz, der für Prüfpunkte erforderlich ist
  • Neustarteffizienz

Bereitstellung

Wenn Sie Ihr Modell bereitstellen, was auch als KI-Inferenz bezeichnet wird, ist das primäre E/A-Muster schreibgeschützt, um das Modell in Cloud GPUs oder Cloud TPU-Arbeitsspeicher zu laden. Ihr Ziel in dieser Phase besteht darin, das Modell in der Produktion auszuführen. Das Modell ist viel kleiner als die Trainingsdaten, sodass Sie es über mehrere Instanzen hinweg 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 können die Eingabedaten für das Modell recht klein sein und müssen möglicherweise 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.

Für die Bereitstellung Ihres Modells gibt es zwei Hauptoptionen.

Cloud Storage für die Bereitstellungsphase

Dies sind die wichtigsten Gründe für die Wahl von Cloud Storage bei der Bereitstellung Ihrer Daten:

  • Wenn Sie Ihr Modell in Cloud Storage trainieren, können Sie die Migrationskosten sparen, indem Sie das Modell bei der Bereitstellung in Cloud Storage belassen.
  • Sie können die generierten Inhalte in Cloud Storage speichern.
  • Cloud Storage ist eine gute Wahl, wenn die KI-Ableitung in mehreren Regionen erfolgt.
  • Sie können Buckets mit zwei oder mehr Regionen verwenden, um die Modellverfügbarkeit über regionale Ausfälle hinweg bereitzustellen.

Filestore für die Bereitstellungsphase

Die wichtigsten Grü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 zonalen Filestore-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-Sicherungsspeicherort oder einem Remote-Cloud Storage-Bucket speichern und dann das Modell nach Bedarf wiederherstellen.
  • Filestore bietet eine langlebige und hochverfügbare Option, die Zugriff mit geringer Latenz auf Ihr Modell ermöglicht, wenn Sie kleine Dateien generieren oder Datei-APIs benötigen.

Archiv

Die Archivphase hat das E/A-Muster "write once, read many". Ihr Ziel ist es, die verschiedenen Sätze von Trainingsdaten und die verschiedenen Versionen von Modellen zu speichern, die Sie generiert haben. Sie können diese inkrementellen Versionen von Daten und Modellen zu Sicherungs- und Notfallwiederherstellungszwecken verwenden. Außerdem müssen Sie diese Elemente für einen längeren Zeitraum an einem dauerhaften Speicherort speichern. Auch wenn Sie nicht sehr oft Zugriff auf die Daten und Modelle benötigen, sollten diese Elemente bei Bedarf verfügbar sein.

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 folgenden Ansätzen:

  • Platzieren Sie häufig aufgerufene Daten 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.
  • Speichern Sie Daten, auf die Sie einmal pro Jahr zugreifen, in Archive Storage.

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, die Daten 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 von lokalen Dateien und Dateisystemen 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 fasst die Analyse aus dem vorherigen Abschnitt Speicheroptionen den KI- und ML-Phasen zuordnen zusammen. Sie enthält Details zu den drei Kombinationen der primären Speicheroptionen, die wir für die meisten KI- und ML-Arbeitslasten empfehlen. Es gibt folgende drei Optionen:

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 regionale und dualregionale Barrierefreiheit und Verfügbarkeit und kann über Cloud Storage FUSE aufgerufen werden. Sie sollten regionalen Speicher auswählen, wenn sich Ihre Computing-Plattform für das Training in derselben Region befindet, und einen Dual-Region-Speicher, wenn Sie eine höhere Zuverlässigkeit benötigen oder Cloud-GPUs oder Cloud TPUs in zwei verschiedenen Regionen verwenden möchten.

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 SSD 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 datenintensives Training oder Prüfpunkt- und Neustartarbeitslasten kann es sinnvoll sein, während der E/A-intensiven Trainingsphase ein schnelleres Speicherangebot zu verwenden. Typische Auswahlmö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. Diese Erhöhung der Anzahl der Sicherungen erhöht auch die Gesamtrate, mit der die nützlichen Daten ankommen. Dies wird 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 beschrieben.

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 für jeden Job für jede Instanz erfolgen.
  • Ist nur für einige Cloud-GPU-Instanztypen verfügbar.
  • Bietet eingeschränkte Speicherkapazität.
  • Unterstützt die Prüfpunktausführung. Sie müssen die Prüfpunkte jedoch manuell in eine dauerhafte Speicheroption wie Cloud Storage übertragen.

Vorteile von Filestore

  • Stellt freigegebenen NFS-Speicher bereit, mit dem Daten einmal übertragen und dann für mehrere Jobs und Nutzer freigegeben werden können.
  • Es entstehen 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 möglicherweise die Gesamttrainingskosten 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ändige POSIX-Unterstützung benötigen. Filestore ist nicht nur die empfohlene Wahl für kleine Dateien oder kleine E/A-Trainingsjobs, sondern bietet auch eine responsive Umgebung für KI- und ML-Notebooks, Softwareentwicklung und viele andere Anwendungen. Sie können Filestore auch in einer Zone bereitstellen, um Hochleistungstraining und dauerhafte Speicherung 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 von lokalem SSD-Caching ermöglicht schnelles wiederholtes Lesen von Trainingsdaten, um Arbeitslasten zu optimieren.

Nächste Schritte

Weitere Informationen zu Speicheroptionen sowie zu KI und ML finden Sie in den folgenden Ressourcen:

Beitragende

Autoren:

  • Dean Hildebrand Technical Director, Office of the CTO
  • Sean Derrington | Group Outbound Product Manager, Speicher
  • Richard Hendricks | Mitarbeiter im Architecture Center

Anderer Beitragender: Kumar Dhanagopal | Entwickler von produktübergreifenden Lösungen