Auswählen eines Eingabemodus und einer Speichereinheit - Amazon SageMaker KI

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Auswählen eines Eingabemodus und einer Speichereinheit

Die beste Datenquelle für Ihren Trainingsauftrag hängt von Arbeitslastmerkmalen wie der Größe des Datensatzes, dem Dateiformat, der durchschnittlichen Dateigröße, der Trainingsdauer, einem sequentiellen oder zufälligen Lesemuster des Datenladers und der Geschwindigkeit ab, mit der Ihr Modell die Trainingsdaten verarbeiten kann. Die folgenden Best Practices bieten einen Leitfaden für den Einstieg in den für Ihren Anwendungsfall am besten geeigneten Eingabemodus und Datenspeicherservice.

Flussdiagramm mit einer Zusammenfassung der Best Practices zur Auswahl des besten Speichers als Datenquelle und Eingabedateimodus

Wann Sie Amazon EFS verwenden sollten

Wenn Ihr Datensatz im Amazon Elastic File System gespeichert ist, haben Sie möglicherweise eine Vorverarbeitungs- oder Anmerkungsanwendung, die Amazon EFS zur Speicherung verwendet. Sie können einen Trainingsauftrag ausführen, der mit einem Datenkanal konfiguriert ist, der auf das Amazon EFS-Dateisystem verweist. Weitere Informationen finden Sie unter Beschleunigen Sie das Training zu Amazon SageMaker AI mithilfe der Dateisysteme Amazon FSx for Lustre und Amazon EFS. Wenn Sie keine bessere Leistung erzielen können, überprüfen Sie Ihre Optimierungsoptionen anhand des Leitfadens zur Leistung des Amazon Elastic File System oder ziehen Sie die Verwendung anderer Eingabemodi oder Datenspeicher in Betracht.

Verwenden Sie den Dateimodus für kleine Datensätze

Wenn der Datensatz in Amazon Simple Storage Service gespeichert ist und sein Gesamtvolumen relativ klein ist (z. B. weniger als 50-100 GB), sollten Sie den Dateimodus verwenden. Der Aufwand für das Herunterladen eines 50-GB-Datensatzes kann je nach Gesamtzahl der Dateien variieren. Beispielsweise dauert es etwa 5 Minuten, wenn ein Datensatz in 100-MB-Shards aufgeteilt wird. Ob dieser Startaufwand akzeptabel ist, hängt in erster Linie von der Gesamtdauer Ihres Trainingsauftrags ab, denn eine längere Trainingsphase bedeutet eine verhältnismäßig kleinere Downloadphase.

Serialisierung vieler kleiner Dateien

Wenn Ihr Datensatz klein ist (weniger als 50-100 GB), aber aus vielen kleinen Dateien besteht (weniger als 50 MB pro Datei), steigt der Download-Overhead im Dateimodus, da jede Datei einzeln vom Amazon Simple Storage Service auf das Volume der Trainings-Instance heruntergeladen werden muss. Um diesen Overhead und die Datendurchlaufzeit im Allgemeinen zu reduzieren, sollten Sie erwägen, Gruppen solcher kleiner Dateien in weniger größere Dateicontainer (z. B. 150 MB pro Datei) zu serialisieren, indem Sie Dateiformate wie TFRecordfor TensorFlow, for und WebDatasetRecordIO for PyTorch verwenden. MXNet

Wann sollte der schnelle Dateimodus verwendet werden

Bei größeren Datensätzen mit größeren Dateien (mehr als 50 MB pro Datei) besteht die erste Option darin, den schnellen Dateimodus auszuprobieren, der einfacher zu verwenden ist als FSx für Lustre, da kein Dateisystem erstellt oder eine Verbindung zu einer VPC hergestellt werden muss. Der schnelle Dateimodus ist ideal für große Dateicontainer (mehr als 150 MB) und eignet sich möglicherweise auch für Dateien mit mehr als 50 MB. Da der schnelle Dateimodus eine POSIX-Schnittstelle bietet, unterstützt er zufällige Lesevorgänge (Lesen nicht-sequentieller Byte-Bereiche). Dies ist jedoch nicht der ideale Anwendungsfall, und der Durchsatz ist möglicherweise geringer als bei sequenziellen Lesevorgängen. Wenn Sie jedoch ein relativ großes und rechenintensives ML-Modell haben, kann der schnelle Dateimodus die effektive Bandbreite der Trainingspipeline sättigen und nicht zu einem IO-Engpass führen. Sie müssen experimentieren und sehen. Um vom Dateimodus in den schnellen Dateimodus (und zurück) zu wechseln, fügen Sie einfach den input_mode='FastFile' Parameter hinzu (oder entfernen) Sie ihn, während Sie Ihren Eingabekanal mit dem SageMaker Python-SDK definieren:

sagemaker.inputs.TrainingInput(S3_INPUT_FOLDER, input_mode = 'FastFile')

Wann sollten Sie Amazon FSx for Lustre verwenden?

Wenn Ihr Datensatz für den Dateimodus zu groß ist, viele kleine Dateien enthält, die Sie nicht einfach serialisieren können, oder ein zufälliges Lesezugriffsmuster verwendet, ist Lustre eine gute Option, FSx die Sie in Betracht ziehen sollten. Sein Dateisystem skaliert auf einen Durchsatz von Hunderten von Gigabyte pro Sekunde (GB/s) und Millionen von IOPS, was ideal ist, wenn Sie viele kleine Dateien haben. Beachten Sie jedoch, dass das Kaltstartproblem möglicherweise auf verzögertes Laden und den Aufwand beim Einrichten und Initialisieren des FSx for Lustre-Dateisystems zurückzuführen ist.

Tipp

Weitere Informationen finden Sie unter Wählen Sie die beste Datenquelle für Ihren SageMaker Amazon-Schulungsjob. In diesem Blog zum AWS maschinellen Lernen werden Fallstudien und Leistungsbenchmarks für Datenquellen und Eingabemodi eingehender erörtert.