In diesem Dokument finden Sie Designanleitungen zur Auswahl und Integration vonGoogle Cloud Speicherdiensten für Ihre KI- und ML-Arbeitslasten. Für jede Phase des ML-Lebenszyklus gelten unterschiedliche Speicheranforderungen. Wenn Sie beispielsweise das Trainingsdatensatz hochladen, können Sie die Speicherkapazität für das Training und einen hohen Durchsatz für große Datensätze priorisieren. Ebenso gelten für die Phasen Training, Optimierung, Bereitstellung und Archivierung unterschiedliche Anforderungen.
In diesem Dokument erfahren Sie, wie Sie Ihre Kapazitäts-, Latenz- und Durchsatzanforderungen bewerten, um fundierte Entscheidungen für die richtige Speicherlösung zu treffen. In diesem Dokument wird davon ausgegangen, dass Sie eine Compute-Plattform ausgewählt haben, die den Anforderungen Ihrer Arbeitslast entspricht. Für KI- und ML-Arbeitslasten empfehlen wir entweder die Compute Engine oder die Google Kubernetes Engine (GKE). Weitere Informationen zur Auswahl einer Computing-Plattform finden Sie unter Anwendungen auf Google Cloud hosten.
Auf den folgenden Tabs finden Sie eine kurze Zusammenfassung der empfohlenen Speicheroptionen für jede Phase des ML-Workflows. Weitere Informationen finden Sie unter Geeigneten Speicher auswählen.
Vorbereiten
In der Vorbereitungsphase des ML-Workflows gehen Sie so vor:
- Daten hochladen und aufnehmen
- Wandeln Sie die Daten in das richtige Format um, bevor Sie das Modell trainieren.
Wenn Sie die Speicherkosten durch die Verwendung mehrerer Speicherklassen optimieren möchten, empfehlen wir die Cloud Storage-Funktion Autoclass oder die Verwaltung des Objektlebenszyklus.
Trainieren
In der Trainingsphase des ML-Workflows gehen Sie so vor:
- Modellentwicklung: Entwickeln Sie Ihr Modell mithilfe von Notebooks und iterativem Trial-and-Error.
- Modelltraining:
- Verwenden Sie kleine bis große Anzahlen von Hardwarebeschleunigern, um das Trainings-Dataset wiederholt zu lesen.
- Wenden Sie einen iterativen Prozess auf die Modellentwicklung und -schulung an.
- Checkpoints und Neustarts:
- Speichern Sie den Status während des Modelltrainings regelmäßig, indem Sie einen Prüfpunkt erstellen, damit das Training nach einem Knotenfehler fortgesetzt werden kann.
- Wählen Sie die Checkpoint-Auswahl basierend auf dem I/O-Muster und der Datenmenge aus, die am Checkpoint gespeichert werden muss.
Für die Trainingsphasen empfehlen wir die folgenden Speicheroptionen:
- Verwenden Sie Cloud Storage mit Cloud Storage FUSE und Anywhere Cache, wenn Ihre Arbeitslast die folgenden Merkmale aufweist:
- Trainingsdaten, die aus großen Dateien mit mindestens 50 MB bestehen
- Toleranz für eine höhere Speicherlatenz im Bereich von mehreren Zehntel Millisekunden.
- Datendauerhaftigkeit und Hochverfügbarkeit haben Vorrang vor der Speicherleistung.
- Verwenden Sie Google Cloud Managed Lustre, wenn Ihre Arbeitslast die folgenden Merkmale aufweist:
- Eine Mindestkapazität von 18 TiB für die Trainingsdaten
- Trainingsdaten aus kleinen Dateien mit einer Größe von weniger als 50 MB, um von den Vorteilen einer niedrigen Latenz zu profitieren.
- Eine Latenz von weniger als 1 Millisekunde, um die Speicheranforderungen für zufällige E/A-Vorgänge und Metadatenzugriff zu erfüllen.
- Häufige, leistungsstarke Checkpoints sind erforderlich.
- Eine Desktop-ähnliche Oberfläche mit vollständiger POSIX-Unterstützung zum Ansehen und Verwalten der Daten Ihrer Nutzer.
Zur Kostenoptimierung empfehlen wir, in allen Phasen des Modelltrainings denselben Speicherdienst zu verwenden.
Bereitstellung
In der Bereitstellungsphase des ML-Workflows gehen Sie so vor:
- Speichern Sie das Modell.
- Laden Sie das Modell in eine Instanz, auf der beim Start Maschinenbeschleuniger ausgeführt werden.
- Ergebnisse der Modellinferenz speichern, z. B. generierte Bilder.
- Optional: Speichern und laden Sie das Dataset, das für die Modellinferenz verwendet wird.
Für die Bereitstellungsphasen empfehlen wir die folgenden Speicheroptionen:
- Cloud Storage mit Cloud Storage FUSE und Anywhere Cache, wenn Ihre Arbeitslast die folgenden Merkmale aufweist:
- Eine Anforderung für eine kostengünstige Lösung für eine dynamische Umgebung, in der sich die Anzahl der Inferenzknoten ändern kann.
- Ihr Modell wird nur selten aktualisiert.
- Hohe Verfügbarkeit und Langlebigkeit Ihrer Modelle, auch bei regionalen Störungen.
- Google Cloud Hyperdisk ML, wenn Ihre Arbeitslast die folgenden Merkmale aufweist:
- Erforderlich für mehr als 100 Inferenzknoten.
- Ihr Modell wird nur selten aktualisiert.
- Für Ihre Arbeitslast wird ein unterstützter VM-Typ verwendet.
- Ihre Pipeline kann schreibgeschützte Volumes zum Speichern von Modellen verwalten.
- Managed Lustre, wenn Ihre Arbeitslast die folgenden Merkmale aufweist:
- Für Ihre Trainings- und Prüfpunkt-Arbeitslast wird Managed Lustre verwendet.
- Erforderlich für 10 bis 100 Inferenzknoten.
- Regelmäßige Aktualisierungen Ihres Modells
Archivieren
In der Archivierungsphase von ML-Arbeitslasten bewahren Sie die Trainingsdaten und das Modell über einen längeren Zeitraum auf.
Wenn Sie die Speicherkosten mit mehreren Speicherklassen optimieren möchten, empfehlen wir die Verwendung von Autoclass oder der Verwaltung des Objektlebenszyklus in Cloud Storage.
Übersicht über den Designprozess
So ermitteln Sie die geeigneten Speicheroptionen für Ihre KI- und ML-Arbeitslast inGoogle Cloud:
- Berücksichtigen Sie die Eigenschaften Ihrer Arbeitslast, die Leistungserwartungen und die Kostenziele.
- Sehen Sie sich die empfohlenen Speicherdienste und -funktionen unter Google Cloudan.
- Je nach Ihren Anforderungen und den verfügbaren Optionen wählen Sie die Speicherdienste und -Features aus, die Sie für jede Phase des ML-Workflows benötigen: Vorbereitung, Training, Bereitstellung und Archivierung.
In diesem Dokument liegt der Schwerpunkt auf den Phasen des ML-Workflows, in denen eine sorgfältige Auswahl der Speicheroptionen am wichtigsten ist. Der gesamte ML-Lebenszyklus, die Prozesse und die Funktionen werden jedoch nicht abgedeckt.
Im Folgenden finden Sie eine Übersicht über den dreiphasigen Designprozess für die Auswahl des Speichers für Ihre KI- und ML-Arbeitslast:
- Anforderungen definieren:
- Arbeitslasteigenschaften
- Sicherheitsbeschränkungen
- Anforderungen an die Ausfallsicherheit
- Leistungserwartungen
- Kostenziele
- Speicheroptionen prüfen:
- Cloud Storage
- Managed Lustre
- Hyperdisk ML
- Passenden Speicher auswählen: Wählen Sie Speicherdienste, Funktionen und Designoptionen basierend auf den Merkmalen Ihrer Arbeitslast in jeder Phase des ML-Workflows aus.
Anforderungen definieren
Bevor Sie inGoogle CloudSpeicheroptionen für Ihre KI- und ML-Arbeitslast auswählen, müssen Sie die Speicheranforderungen für die Arbeitslast definieren. Um die Speicheranforderungen zu definieren, sollten Sie Faktoren wie Compute-Plattform, Kapazität, Durchsatz und Latenz berücksichtigen.
Berücksichtigen Sie bei der Auswahl einer Speicheroption für Ihre KI- und ML-Arbeitslasten die Merkmale Ihrer Arbeitslast:
- Sind die Größen Ihrer E/A-Anfragen und Dateien klein (KB), mittel oder groß (MB oder GB)?
- Zeigt Ihre Arbeitslast hauptsächlich sequenzielle oder zufällige Zugriffsmuster auf Dateien?
- Reagieren Ihre KI- und ML-Arbeitslasten empfindlich auf E/A-Latenz und TTFB (Time to First Byte)?
- Benötigen Sie einen hohen Lese- und Schreibdurchsatz für einzelne Clients, aggregierte Clients oder beides?
- Wie viele Grafikprozessoren (GPUs) oder Tensor Processing Units (TPUs) benötigt Ihre größte KI- und ML-Trainingsarbeitslast?
Anhand Ihrer Antworten auf diese Fragen können Sie später in diesem Dokument den geeigneten Speicherplatz auswählen.
Speicheroptionen prüfen
Google Cloud bietet Speicherdienste für alle primären Speicherformate: Block-, Datei-, paralleles Dateisystem und Objekt. In der folgenden Tabelle sind Optionen beschrieben, die Sie für Ihre KI- und ML-Arbeitslast aufGoogle Cloudin Betracht ziehen können. Die Tabelle enthält die drei von Google verwalteten Speicheroptionen, die in diesem Dokument für Ihre KI- und ML-Arbeitslasten im Mittelpunkt stehen. Wenn Sie jedoch bestimmte Anforderungen haben, die durch diese Angebote nicht abgedeckt werden, sollten Sie sich Sycomp Storage ansehen. Dies ist ein von Partnern verwalteter Speicherdienst, der im Google Cloud Marketplace verfügbar ist.
Prüfen Sie die Funktionen, Designoptionen und relativen Vorteile der Dienste für jedes Speicherformat und evaluieren Sie sie.
Speicherdienst | Speichertyp | Features |
---|---|---|
Cloud Storage | Objekt |
|
Managed Lustre | Paralleles Dateisystem |
|
Hyperdisk ML | Blockieren |
|
Sycomp Storage | Paralleles Dateisystem |
|
Cloud Storage
Cloud Storage ist ein vollständig verwalteter Objektspeicherdienst, der sich für KI- und ML-Arbeitslasten jeder Größenordnung eignet. Cloud Storage eignet sich hervorragend für die Verarbeitung unstrukturierter Daten in allen Phasen des KI- und ML-Workflows.
Cloud Storage bietet folgende Vorteile:
- Massive Skalierbarkeit: Sie erhalten unbegrenzte Speicherkapazität, die global auf Exabyte skaliert werden kann.
- Hoher Durchsatz: Skalieren Sie bei entsprechender Planung auf bis zu 1 TB/s.
- Flexible Speicherortoptionen: Sie können zwischen regionalen, multiregionalen und dualregionalen Speicheroptionen für KI- und ML-Arbeitslasten wählen.
- Kosteneffektivität: Sie profitieren von einer Reihe von Speicherklassen, die die Kosten basierend auf Ihren Datenzugriffsmustern optimieren.
Cloud-Speicher zeichnet sich durch Skalierbarkeit und Kosteneffizienz aus. Es ist jedoch wichtig, die Latenz und die E/A-Eigenschaften zu berücksichtigen. Die Latenz liegt im Bereich von mehreren zehn Millisekunden, was höher ist als bei anderen Speicheroptionen. Um den Durchsatz zu maximieren, müssen Sie Hunderte oder Tausende von Threads, große Dateien und große E/A-Anfragen verwenden. Cloud Storage bietet Clientbibliotheken in verschiedenen Programmiersprachen sowie Cloud Storage FUSE und Anywhere Cache.
Cloud Storage FUSE ist ein Open-Source-FUSE-Adapter, der von Google unterstützt wird. Mit Cloud Storage FUSE können Sie Cloud Storage-Buckets als lokale Laufwerke bereitstellen. Cloud Storage FUSE ist nicht vollständig POSIX-konform. Daher ist es wichtig, dass Sie die Einschränkungen und Unterschiede von Cloud Storage FUSE zu herkömmlichen Dateisystemen kennen. Mit Cloud Storage FUSE können Sie mit der Skalierbarkeit, Wirtschaftlichkeit und Leistung von Cloud Storage auf Ihre Trainingsdaten, Modelle und Checkpoints zugreifen.
Das Cloud Storage FUSE-Caching bietet folgende Vorteile:
- Portabilität: Sie können Cloud Storage-Buckets mithilfe der Standardsemantik des Dateisystems bereitstellen und darauf zugreifen, wodurch Ihre Anwendungen plattformunabhängiger werden.
- Kompatibilität: Sie müssen keine Anwendungen mehr für die Verwendung cloudspezifischer APIs umstrukturieren, was Zeit und Ressourcen spart.
- Reduzierte Inaktivitätszeiten: Sie können Trainingsjobs schnell starten, da Sie direkt auf Daten in Cloud Storage zugreifen. Dadurch werden die Inaktivitätszeiten für Ihre GPUs und TPUs minimiert.
- Hoher Durchsatz: Sie profitieren von der integrierten Skalierbarkeit und Leistung von Cloud Storage, die für ML-Arbeitslasten mit hohem Leseaufkommen mit GPUs oder TPUs optimiert ist.
- Clientlokaler Dateicache: Mit einem clientlokalen Cache können Sie das Training beschleunigen, da wiederholte Dateilesevorgänge beschleunigt werden. Diese Beschleunigung kann noch weiter verbessert werden, wenn Sie sie mit dem lokalen SSD mit 6 TiB verwenden, das mit A3-Maschinentypen gebündelt ist.
Anywhere Cache ist eine Cloud Storage-Funktion, die bis zu 1 PiB SSD-gestützten zonalen Lesecache für Cloud Storage-Buckets bietet. Anywhere Cache wurde entwickelt, um datenintensive Anwendungen zu beschleunigen, indem eine lokale, schnelle Zugriffsebene für häufig gelesene Daten innerhalb einer bestimmten Zone bereitgestellt wird.
Der Anywhere-Cache bietet folgende Vorteile:
- Beschleunigter Durchsatz: Cachekapazität und Bandbreite werden automatisch skaliert, um einen hohen Durchsatz zu erzielen, der die regionalen Bandbreitenquoten überschreitet, und um konsistente und vorhersehbare Latenzen zu erreichen.
- Geringere Kosten: Sie vermeiden Gebühren für ausgehenden Traffic bei der Datenübertragung oder Gebühren für den Abruf der Speicherklasse für im Cache gespeicherte Daten. Anywhere Cache passt die Größe des Caches und die verfügbare Bandbreite automatisch an die Anforderungen Ihrer Arbeitslast an.
Hyperdisk ML
Hyperdisk ML ist eine leistungsstarke Blockspeicherlösung, die für die Beschleunigung von KI- und ML-Arbeitslasten entwickelt wurde, die Lesezugriff auf große Datensätze erfordern. Hyperdisk ML nutzt die Skalierbarkeit und Verfügbarkeit von Colossus, um die Leistung im zugrunde liegenden Dateisystem auszugleichen. Im Vergleich zu anderen Speicherdiensten auf Google Cloud eignet sich Hyperdisk ML besonders gut für die Ausführung von Aufgaben, da es vielen VMs gleichzeitig einen außergewöhnlich hohen Gesamtdurchsatz bieten kann.
Hyperdisk ML bietet folgende Vorteile:
- Beschleunigte Modellbereitstellung und Skalierbarkeit: Skalieren Sie auf bis zu Tausende von gleichzeitigen Knoten und erzielen Sie einen hohen Gesamtdurchsatz, wodurch die Ladezeiten und die Ressourcennutzung für Inferenzarbeitslasten mit dem Kubernetes-
ReadOnlyMany
-Modus optimiert werden. - Hohe Leistungsdichte: Sie erreichen den höchsten verfügbaren Durchsatz aufGoogle Cloud und schnelle Lesevorgänge für große freigegebene Datensätze.
- Geringere Gesamtbetriebskosten (Total Cost of Ownership, TCO): Kostensenkung durch kürzere GPU-Ruhezeiten, Multi-Attach-Funktionen und Leistungs-Pooling.
- Gleichzeitiger Lesezugriff: Sie können Kosten sparen, indem Sie Laufwerke zwischen VMs teilen. Das ist kostengünstiger als mehrere Laufwerke mit denselben Daten. Wenn Sie auf statische Daten von mehreren VMs zugreifen möchten, müssen Sie dasselbe Laufwerk im Lesemodus an Hunderte von VMs anhängen. Zum Aktualisieren des Volumes muss das Laufwerk von allen VMs bis auf eine getrennt werden.
Managed Lustre
Verwaltetes Lustre ist ein vollständig verwaltetes Dateisystem in Google Cloud. Verwaltetes Lustre bietet persistente, zonale Instanzen, die auf dem Lustre-Dateisystem DDN EXAScaler basieren. Verwaltetes Lustre eignet sich ideal für KI- und ML-Arbeitslasten, die einen Zugriff mit niedriger Latenz von weniger als einer Millisekunde mit hohem Durchsatz und hoher Anzahl der Ein-/Ausgabevorgänge pro Sekunde (IOPS) bieten müssen. Verwaltetes Lustre kann einen hohen Durchsatz und hohe IOPS für wenige oder Tausende von VMs aufrechterhalten.
Verwaltetes Lustre bietet folgende Vorteile:
- POSIX-Konformität: Unterstützung des POSIX-Standards, der für die Kompatibilität mit vielen vorhandenen Anwendungen und Tools sorgt.
- Niedrigere Gesamtbetriebskosten für das Training: Durch die effiziente Bereitstellung von Daten an Compute-Knoten wird die Trainingszeit verkürzt. Diese Beschleunigung trägt dazu bei, die Gesamtkosten für das Training von KI- und ML-Modellen zu senken.
- Niedrigere Gesamtbetriebskosten für das Bereitstellen: Im Vergleich zu Cloud Storage können Sie Modelle schneller laden und Inferenzen optimiert bereitstellen. Diese Funktionen tragen dazu bei, die Rechenkosten zu senken und die Ressourcennutzung zu verbessern.
- Effiziente Ressourcennutzung: Sie können Checkpoints und Training in einer einzigen Instanz kombinieren. Diese Ressourcennutzung trägt dazu bei, die effiziente Nutzung des Lese- und Schreibdurchsatzes in einem einzigen Hochleistungsspeichersystem zu maximieren.
Sycomp Storage
Sycomp Storage Fueled by IBM Storage Scale (Sycomp Storage) ist ein hochleistungsfähiges, persistentes paralleles Dateisystem, das von Sycomp unterstützt und verwaltet wird. Sycomp Storage eignet sich hervorragend für KI- und ML-Arbeitslasten, die eine große Kapazität, einen hohen Durchsatz und eine geringe Latenz erfordern. Sycomp Storage bietet integriertes On-Demand-Lese- und Schreib-Caching vorhandener Cloud Storage-Buckets. Im Gegensatz zu den zuvor genannten von Google verwalteten Speicheroptionen wird Sycomp Storage vom Partner verwaltet. Sycomp Storage ist im Cloud Marketplace über ein privates Angebot von Sycomp verfügbar.
Sycomp Storage bietet folgende Vorteile:
- POSIX-konform: Unterstützung des POSIX-Standards, der für die Kompatibilität mit vielen vorhandenen Anwendungen und Tools sorgt.
- Skalierbarkeit und Flexibilität: Leistung und Kapazität können unabhängig voneinander erhöht oder verringert werden. Sycomp Storage unterstützt Daten im PB-Maßstab und Tausende von gleichzeitigen VMs mit flexiblem Zugriff über NFS und den integrierten Spectrum Scale-Client.
- Optimierte Leistung: Bis zu 1,2 TB/s Lese- und Schreibdurchsatz mit einer Latenz von weniger als einer Millisekunde.
- Vereinfachtes Deployment und Management: Deployment mit einem CSI-Treiber für GKE-Deployments, Slurm-Integration für Compute Engine-Deployments und Terraform-Unterstützung.
- Cloud Storage und hybride Integration: Sie können das On-Demand-Caching von Cloud Storage-Buckets oder lokalen Daten aktivieren. Sycomp Storage ist das einzige Dateisystem auf Google Cloud , das diesen Vorteil bietet. Wenn Sie Sycomp Storage verwenden, besteht weiterhin direkter Zugriff auf alle Ihre Daten in Cloud Storage. So wird ein Daten-Lock-in vermieden.
Vergleichsanalyse
In der folgenden Tabelle sind die wichtigsten Funktionen der Speicherdienste inGoogle Cloudaufgeführt.
Cloud Storage | Hyperdisk ML | Managed Lustre | Sycomp Storage | |
---|---|---|---|---|
Kapazität | Es gibt keine Unter- oder Obergrenze. | 4 GiB bis 64 TiB | 18 TiB bis 1 PiB | Skaliert auf PB, bestimmt durch die Anzahl der hinzugefügten Laufwerke. |
Skalierung | Automatische Skalierung nach Nutzung | Hochskalieren | Nicht skalierbar | Automatische Skalierung nach Nutzung mit Cloud Storage-Automatik-Tiering |
Freigabe |
|
Unterstützt | Kann auf mehreren Compute Engine-VMs und in mehreren GKE-Clustern bereitgestellt werden. | Gleichzeitiger Lese- und Schreibzugriff mit VMs, auf denen der integrierte Client von IBM Storage Scale und VMs mit NFS ausgeführt werden. |
Option für Verschlüsselungsschlüssel |
|
|
Google-owned and Google-managed encryption keys | Verschlüsselungsschlüssel mit IBM Security Guardium Key Lifecycle Manager (GKLM) verwalten |
Persistenz | Lebensdauer des Buckets | Lebensdauer des Laufwerks | Lebensdauer der Managed Lustre-Instanz. | Lebensdauer des Hyperdisks oder nichtflüchtigen Speichers Scratch-Disk auf lokalem SSD |
Verfügbarkeit |
|
Zonal | Zonal | Zonal |
Leistung | Lese-/Schreibraten automatisch skalieren und dynamische Lastumverteilung | Nichtflüchtiger Speicher mit dynamischer Skalierung | Lineare Skalierung mit bereitgestellter Kapazität | Lineare Skalierung mit bereitgestellter Kapazität |
Verwaltung | Vollständig verwaltet | Manuell formatieren und bereitstellen | Vollständig verwaltet, POSIX-konform | Vollständig von Sycomp verwaltet, POSIX-konform |
Tools zur Datenübertragung
In diesem Abschnitt werden Ihre Optionen zum Verschieben von Daten zwischen Speicherdiensten aufGoogle Cloudbeschrieben. Wenn Sie KI- und ML-Aufgaben ausführen, müssen Sie Ihre Daten möglicherweise von einem Speicherort an einen anderen verschieben. Wenn Ihre Daten beispielsweise in Cloud Storage beginnen, 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 haben folgende Möglichkeiten, Daten zu Google Cloudzu übertragen:
- Daten online übertragen mit dem Storage Transfer Service: Automatisieren Sie die Übertragung großer Datenmengen zwischen Objekt- und Dateispeichersystemen, einschließlich Cloud Storage, Amazon S3, Azure-Speicherdiensten und lokalen Datenquellen. Mit dem Storage Transfer Service können Sie Ihre Daten sicher vom Quellspeicherort zum Zielspeicherort kopieren und regelmäßig geänderte Daten übertragen. Außerdem bietet er Datenintegritätsprüfung, automatische Wiederholungsversuche und Load Balancing.
- Daten mit Transfer Appliance offline übertragen: Google Cloud In Situationen, in denen Netzwerkverbindung und Bandbreite nicht verfügbar, begrenzt oder teuer sind, können Sie große Datenmengen offline übertragen und hochladen.
- Daten in Cloud Storage hochladen: Sie können Daten online mit der Google Cloud Console, der gcloud-Befehlszeile, den Cloud Storage APIs oder Clientbibliotheken in Cloud Storage-Buckets hochladen.
Berücksichtigen Sie bei der Auswahl einer Datenübertragungsmethode Faktoren wie die Datengröße, zeitliche Einschränkungen, die Verfügbarkeit der Bandbreite, Kostenziele sowie Sicherheits- und Compliance-Anforderungen. Informationen zum Planen und Implementieren von Datenübertragungen zu Google Cloudfinden Sie unter Zu Google Cloudmigrieren: Große Datasets übertragen.
Geeigneten Speicher auswählen
KI- und ML-Arbeitslasten umfassen in der Regel vier Hauptphasen: Vorbereiten, Trainieren, Bereitstellen und Archivieren. Jede dieser Phasen hat spezifische Speicheranforderungen. Die Wahl der richtigen Lösung kann sich erheblich auf Leistung, Kosten und Betriebseffizienz auswirken. Mit einem hybriden oder lokal optimierten Ansatz können Sie Ihre Speicheroptionen an die spezifischen Anforderungen jeder Phase Ihrer KI- und ML-Arbeitslast anpassen. Wenn Sie jedoch eine einheitliche Verwaltung und einfache Bedienung priorisieren, kann ein global vereinfachter Ansatz, der eine einheitliche Lösung für alle Phasen verwendet, für Arbeitslasten jeder Größe von Vorteil sein. Die Effektivität der Speicherauswahl hängt von den Dataset-Eigenschaften, der Größe der erforderlichen Rechen- und Speicherressourcen, der Latenz und den zuvor definierten Arbeitslastanforderungen ab.
Auf den folgenden Tabs finden Sie einen Vergleich der Funktionen von Cloud Storage, Managed Lustre und Hyperdisk ML für KI- und ML-Arbeitslasten.
Speicherkapazität
In dieser Tabelle wird die Eignung der einzelnen Speicheroptionen anhand der Speicherkapazität hervorgehoben:
Anforderungen an die Speicherkapazität für das Training | Cloud Storage | Managed Lustre | Hyperdisk ML |
---|---|---|---|
Weniger als 100 TiB | |||
Mehr als 100 TiB |
Durchsatz
In dieser Tabelle wird die Eignung der einzelnen Speicheroptionen anhand der Durchsatzanforderungen hervorgehoben:
Durchsatzanforderungen | Cloud Storage | Managed Lustre | Hyperdisk ML |
---|---|---|---|
Weniger als 125 GB/s | |||
Weniger als 1 TB/s | |||
Mehr als 1 TB/s |
Latenz
In dieser Tabelle wird die Eignung der einzelnen Speicheroptionen basierend auf der Latenz für kleine Dateien und zufällige Lesevorgänge hervorgehoben:
Latenz (kleine Dateien und zufällige Lesevorgänge) | Cloud Storage | Managed Lustre | Hyperdisk ML |
---|---|---|---|
Unter 30 ms | |||
Weniger als 1 ms |
In den folgenden Abschnitten finden Sie Details zu den Hauptphasen von KI- und ML-Arbeitslasten und zu den Faktoren, die Ihre Speicherauswahl beeinflussen können.
Vorbereiten
In der Vorbereitungsphase wird die Grundlage für Ihre KI- und ML-Anwendung gelegt. Dazu werden Rohdaten aus verschiedenen Quellen in Ihre Cloud-Umgebung hochgeladen und in ein verwendbares Format für das Training Ihres KI- und ML-Modells umgewandelt. Dieser Prozess umfasst Aufgaben wie das Bereinigen, Verarbeiten und Konvertieren von Datentypen, um die Kompatibilität mit dem ausgewählten KI- und ML-Framework zu gewährleisten.
Cloud Storage eignet sich aufgrund seiner Skalierbarkeit, Langlebigkeit und Kosteneffizienz gut für die Vorbereitungsphase, insbesondere für große Datasets, die in der KI häufig vorkommen. Cloud Storage lässt sich nahtlos in andereGoogle Cloud Dienste einbinden, sodass Sie potenzielle Optimierungen für datenintensive Trainings nutzen können.
Während der Datenvorbereitung können Sie Ihre Daten in große Blöcke neu anordnen, um die Zugriffseffizienz zu verbessern und zufällige Leseanfragen zu vermeiden. Zur weiteren Reduzierung der E/A-Leistungsanforderungen auf dem Speichersystem können Sie die Anzahl der E/A-Threads erhöhen, indem Sie Pipelining, Trainingsoptimierung oder beides verwenden.
Trainieren
Die Trainingsphase ist der Kern der Modellentwicklung, in der Ihr KI- und ML-Modell aus den bereitgestellten Daten lernt. Diese Phase umfasst zwei wichtige Aspekte mit unterschiedlichen Anforderungen: effizientes Datenladen für den Zugriff auf Trainingsdaten und zuverlässiges Checkpointing zum Speichern des Modellfortschritts. In den folgenden Abschnitten finden Sie Empfehlungen und Faktoren, die Sie bei der Auswahl geeigneter Speicheroptionen für das Laden von Daten und das Erstellen von Checkpoints berücksichtigen sollten.
Laden der Daten
Beim Laden der Daten importieren GPUs oder TPUs wiederholt Datenbatches, um das Modell zu trainieren. In dieser Phase können Sie je nach Größe der Batches und der Reihenfolge, in der Sie sie anfordern, einen Cache verwenden, um die Datenladeaufgaben zu optimieren. Ziel beim Laden von Daten ist es, das Modell mit maximaler Effizienz und möglichst geringen 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 GPUs und TPUs nicht inaktiv sind und 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.
Um Leistung und Kosten für das Datenladen zu optimieren, sollten Sie die folgenden Faktoren berücksichtigen:
- Dataset-Größe: die Größe des gesamten Korpus an Trainingsdaten und die Größe jedes Trainings-Datasets.
- Zugriffsmuster: Mit welcher der folgenden Optionen lässt sich das I/O-Zugriffsmuster Ihrer Trainingslast am besten kategorisieren:
- Paralleler und sequenzieller Zugriff: Eine Datei wird einem einzelnen Knoten zugewiesen und sequenziell gelesen.
- Paralleler und Zufallszugriff: Eine Datei wird einem einzelnen Knoten zugewiesen und zufällig gelesen, um einen Batch von Samples zu erstellen.
- Vollständiger Zufallszugriff: Ein Knoten kann jeden Bereich aus einer beliebigen Datei lesen, um einen Batch zu erstellen.
- Dateigröße: Die typischen Größen von Leseanfragen.
Cloud Storage für das Datenladen
Sie sollten in der Regel Cloud Storage zum Laden Ihrer Daten auswählen, wenn eine der folgenden Bedingungen zutrifft:
- Sie benötigen eine Trainingskapazität von mindestens 100 TiB.
- Ihre Trainingsdaten bestehen aus großen Dateien mit einer Größe von mindestens 50 MB.
- Sie priorisieren die Langlebigkeit und Hochverfügbarkeit von Daten gegenüber der Speicherleistung.
Cloud Storage bietet eine skalierbare und kostengünstige Lösung für das Speichern großer Datenmengen. Mit Cloud Storage FUSE können Sie auf die Daten wie auf ein lokales Dateisystem zugreifen. Cloud Storage FUSE beschleunigt den Datenzugriff während des Trainings, da die Trainingsdaten in der Nähe der Hardwarebeschleuniger gehalten werden, was den Durchsatz erhöht.
Bei Arbeitslasten, die einen Durchsatz von über 1 Tbit/s erfordern, beschleunigt Anywhere Cache die Lesegeschwindigkeit, indem Daten im Cache gespeichert und über regionale Bandbreitenquoten hinaus skaliert werden. Um zu beurteilen, ob Anywhere Cache für Ihre Arbeitslast geeignet ist, können Sie mit dem Anywhere Cache Recommender Ihre Datennutzung und Ihren Speicherplatz analysieren.
Managed Lustre für das Laden von Daten
Sie sollten Managed Lustre zum Laden Ihrer Daten auswählen, wenn eine der folgenden Bedingungen zutrifft:
- Sie benötigen eine Mindestkapazität von 18 TiB für das Training.
- Ihre Trainingsdaten bestehen aus kleinen Dateien mit einer Größe von weniger als 50 MB, um von den Funktionen mit niedriger Latenz zu profitieren.
- Sie benötigen eine Latenz von weniger als 1 Millisekunde, um die Speicheranforderungen für zufällige I/O-Vorgänge und den Metadatenzugriff zu erfüllen.
- Sie benötigen eine Desktop-Umgebung mit voller POSIX-Unterstützung, um die Daten Ihrer Nutzer aufzurufen und zu verwalten.
Sie können Managed Lustre als Hochleistungscache auf Cloud Storage verwenden, um KI- und ML-Arbeitslasten zu beschleunigen, die I/O-Vorgänge mit extrem hohem Durchsatz und niedriger Latenz mit einem vollständig verwalteten parallelen Dateisystem erfordern. Um die Latenz während des Trainings zu minimieren, können Sie Daten aus Cloud Storage in Managed Lustre importieren. Wenn Sie GKE als Compute-Plattform verwenden, können Sie die
GKE Managed Lustre CSI-Treiber, um PersistentVolumeClaims vorab mit Daten aus Cloud Storage zu befüllen. Nach Abschluss des Trainings können Sie Ihre langfristigen Speicherkosten minimieren, indem Sie Ihre Daten in eine kostengünstigere Cloud Storage-Klasse exportieren.
Checkpoints und Wiederherstellung
Für Prüfpunkte und Wiederherstellung 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 für ein Framework spezifisch. Informationen zu Prüfpunkten und Optimierungstechniken für TensorFlow Core finden Sie unter Trainings-Checkpoints. Informationen zu Prüfpunkten und Optimierungstechniken für PyTorch finden Sie unter Modelle speichern und laden.
Sie müssen zu einem bestimmten Zeitpunkt nur einige Prüfpunkte speichern. Prüfpunkt-Arbeitslasten bestehen in der Regel vorwiegend aus Schreibvorgängen, mehreren Löschvorgängen und idealerweise seltenen Lesevorgängen, wenn Fehler auftreten.
Berücksichtigen Sie die folgenden Faktoren, um das Checkpointing zu optimieren und die Leistung wiederherzustellen:
- Modellgröße: Die Anzahl der Parameter in Ihrem KI- und ML-Modell. Die Größe Ihres Modells wirkt sich direkt auf die Größe der Checkpoint-Dateien aus, die von GiB bis TiB reichen können.
- Prüfpunkthäufigkeit: Gibt an, wie oft Ihr Modell Prüfpunkte speichert. Häufige Speichervorgänge bieten eine bessere Fehlertoleranz, erhöhen jedoch die Speicherkosten und können sich auf die Trainingsgeschwindigkeit auswirken.
- Wiederherstellungszeit für Prüfpunkte: Die gewünschte Wiederherstellungszeit für das Laden von Prüfpunkten und das Fortsetzen des Trainings. Um die Wiederherstellungszeit zu minimieren, sollten Sie Faktoren wie die Größe des Checkpoints, die Speicherleistung und die Netzwerkbandbreite berücksichtigen.
Cloud Storage für Checkpoints
Sie sollten Cloud Storage für das Checkpointing auswählen, wenn eine der folgenden Bedingungen zutrifft:
- Ihre Trainingsarbeitslast verwendet Cloud Storage FUSE.
- Sie priorisieren die Langlebigkeit und Hochverfügbarkeit von Daten gegenüber der Speicherleistung.
Um die Leistung des Checkpointing zu verbessern, verwenden Sie Cloud Storage FUSE mit aktivierten hierarchischen Namespaces, um den schnellen atomaren Umbenennungsvorgang zu nutzen und Checkpoints asynchron zu speichern. Um zu verhindern, dass vertrauliche Informationen aus Ihrem Trainingsdatensatz beim Bereitstellen versehentlich offengelegt werden, müssen Sie die Checkpoints in einem separaten Cloud Storage-Bucket speichern. Um die Latenz beim Schreiben von Daten bei unterbrochenen Uploads zu reduzieren, versucht Cloud Storage FUSE nach 10 Sekunden einen erneuten Versuch.
Verwaltetes Lustre für das Checkpointing
Sie sollten Managed Lustre für das Checkpointing auswählen, wenn eine der folgenden Bedingungen zutrifft:
- Für Ihre Trainingsarbeitslast wird bereits Managed Lustre für das Laden von Daten verwendet.
- Sie müssen häufige, leistungsstarke Checkpoints ausführen.
Verwenden Sie Managed Lustre für das Training und das Checkpointing, um die Ressourcennutzung zu maximieren und die Inaktivitätszeit des Accelerators zu minimieren. Mit Managed Lustre können schnelle Checkpoint-Schreibvorgänge mit einem hohen Durchsatz pro VM erreicht werden. Sie können Checkpoints in der persistenten verwalteten Lustre-Instanz beibehalten oder die Kosten optimieren, indem Sie Checkpoints regelmäßig in Cloud Storage exportieren.
Bereitstellung
Wenn Sie Ihr Modell bereitstellen, was auch als Inferenz bezeichnet wird, ist das primäre I/O-Muster schreibgeschützt, um das Modell in den GPU- oder TPU-Speicher zu laden. In der Bereitstellungsphase besteht Ihr Ziel darin, Ihr Modell in der Produktion auszuführen. Das Modell ist viel kleiner als die Trainingsdaten. Das bedeutet, dass Sie das Modell auf mehrere Instanzen replizieren und skalieren können. Wenn Sie Daten bereitstellen, ist es wichtig, dass Sie eine hohe Verfügbarkeit und einen Schutz vor zonalen und regionalen Ausfällen haben. 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 und ML 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 ausführen (z. B. wissenschaftliche Datensätze). Wenn Sie große Datenmengen verarbeiten möchten, wählen Sie eine Speicheroption aus, mit der die Inaktivitätszeiten von GPUs oder TPUs während der Analyse des Datasets minimiert werden können. Verwenden Sie außerdem einen nichtflüchtigen Speicherort, um die Inferenzergebnisse zu speichern.
Die Modellladezeiten wirken sich direkt auf die Inaktivitätszeiten des Accelerators aus, was erhebliche Kosten verursacht. Eine Erhöhung der Modellladezeit pro Knoten kann sich auf viele Knoten auswirken und zu einer erheblichen Kostensteigerung führen. Um eine kosteneffiziente Bereitstellungsinfrastruktur zu erreichen, ist es daher wichtig, das Laden des Modells zu beschleunigen.
Berücksichtigen Sie die folgenden Faktoren, um die Auslieferungsleistung und die Kosten zu optimieren:
- Modellgröße: die Größe Ihres Modells in GiB oder TiB. Größere Modelle erfordern mehr Rechenressourcen und Arbeitsspeicher, was die Latenz erhöhen kann.
- Häufigkeit der Modellauslieferung: Gibt an, wie oft Sie Ihr Modell aktualisieren möchten. Häufiges Laden und Entladen verbraucht Rechenressourcen und erhöht die Latenz.
- Anzahl der Bereitstellungsknoten: Gibt an, wie viele Knoten für die Bereitstellung Ihres Modells verwendet werden. Mehr Knoten verringern in der Regel die Latenz und erhöhen den Durchsatz, erhöhen aber auch die Infrastrukturkosten.
Cloud Storage für die Bereitstellungsphase
Sie sollten Cloud Storage für die Bereitstellung Ihres Modells auswählen, wenn eine der folgenden Bedingungen zutrifft:
- Sie benötigen eine kostengünstige Lösung für eine dynamische Umgebung, in der sich die Anzahl der Inferenzknoten ändern kann.
- Sie aktualisieren Ihr Modell selten.
- Sie legen großen Wert auf hohe Verfügbarkeit und Langlebigkeit Ihrer Modelle, auch bei regionalen Störungen.
Mit einer multiregionalen oder dualen Region bietet Cloud Storage eine hohe Verfügbarkeit und schützt Ihre Arbeitslast vor zonalen und regionalen Ausfällen. Um das Laden des Modells zu beschleunigen, können Sie Cloud Storage FUSE mit aktivierten parallelen Downloads verwenden, damit Teile des Modells parallel abgerufen werden.
Wenn Sie die Modellbereitstellung mit einem Durchsatz von über 1 TB/s erreichen oder Bereitstellungen mit mehr als 100 Bereitstellungsknoten haben möchten, verwenden Sie Anywhere Cache mit einem multiregionalen Bucket. Diese Kombination bietet leistungsstarken, redundanten Speicher über Regionen hinweg und Flexibilität. Außerdem entfallen mit Anywhere Cache die Gebühren für den Datenausgang und den Abruf der Speicherklasse für im Cache gespeicherte Daten.
Hyperdisk ML für das Bereitstellen
Sie sollten Hyperdisk ML für die Bereitstellung Ihres Modells auswählen, wenn eine der folgenden Bedingungen zutrifft:
- Sie benötigen mehr als 100 Knoten für die Inferenz.
- Sie aktualisieren Ihr Modell selten.
- Für Ihre Arbeitslast wird ein unterstützter VM-Typ verwendet.
- Ihre Pipeline kann schreibgeschützte Volumes zum Speichern von Modellen verwalten.
Optimieren Sie die Auslieferungsleistung, indem Sie Hyperdisk ML als Cache für Ihre Cloud Storage-Daten verwenden. Hyperdisk ML nutzt den gemeinsamen Leistungspool und den dynamisch bereitgestellten Durchsatz über mehrere VMs hinweg, um das Lesezugriffsmodell in beliebigem Umfang effizient bereitzustellen.
Managed Lustre für die Bereitstellung
Sie sollten Managed Lustre für die Bereitstellung Ihres Modells auswählen, wenn eine der folgenden Bedingungen zutrifft:
- Für Ihre Trainings- und Checkpoint-Arbeitslast wird Managed Lustre verwendet.
- Ihre Arbeitslast verwendet 10 bis 100 Inferenzknoten.
- Sie aktualisieren Ihr Modell häufig.
Wenn Sie Managed Lustre bereits für das Training und das Checkpointing verwenden, ist es eine kostengünstige und leistungsstarke Option für das Bereitstellen Ihrer Modelle. Verwaltetes Lustre bietet einen hohen Durchsatz pro VM und einen aggregierten Clusterdurchsatz, was die Modellladezeit reduziert. Sie können Managed Lustre für eine beliebige Anzahl von Bereitstellungs-VMs verwenden.
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 besteGoogle Cloud Option zum Speichern von Objektdaten über einen langen Zeitraum. Je nachdem, wie oft Sie auf den Datensatz, das Modell und die Sicherungsdateien zugreifen, bietet Cloud Storage die Möglichkeit zur Kostenoptimierung durch verschiedene Speicherklassen. Sie können die Speicherklasse danach auswählen, wie oft Sie auf Ihre archivierten Daten zugreifen müssen:
- Häufiger Datenzugriff: Standard Storage
- Monatlicher Datenzugriff: Nearline Storage
- Vierteljährlicher Datenzugriff: Coldline Storage
- Jährlicher Datenzugriff: Archivspeicher
Mit der Verwaltung des Objektlebenszyklus können Sie Richtlinien erstellen, um Daten automatisch in Speicherklassen mit längerer Laufzeit 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.
Nächste Schritte
Weitere Informationen zu Speicheroptionen und KI- und ML-Arbeitslasten finden Sie in den folgenden Ressourcen:
- Informationen zum Erstellen einer verwalteten Lustre-Instanz
- Weitere Informationen zum Optimieren von KI- und ML-Arbeitslasten mit Cloud Storage FUSE
- Informationen zur KI- und ML-Perspektive im Google Cloud Well-Architected Framework.
- Weitere Referenzarchitekturen, Diagramme und Best Practices finden Sie im Cloud-Architekturcenter.
Beitragende
Autor: Samantha He | Technische Redakteurin
Weitere Beitragende:
- David Stiver | Group Product Manager
- Dean Hildebrand Technical Director, Office of the CTO
- Kumar Dhanagopal | Cross-Product Solution Developer
- Sean Derrington | Group Outbound Product Manager, Speicher