

Gemeinsame Gäste: Qiu Lu, Tang Chunxu, Wang Beinan
Derzeit entwickeln sich die Bereiche künstliche Intelligenz (KI) und maschinelles Lernen (ML) rasant und es wird immer wichtiger, große Datenmengen während des Trainings effektiv zu verarbeiten. Ray hat sich zu einem wichtigen Akteur auf diesem Gebiet entwickelt und ermöglicht durch effiziente Datenstromverarbeitung das Training großer Datensätze. Ray zerlegt große Datensätze in überschaubare Blöcke und unterteilt Trainingsaufgaben in kleinere Aufgaben, ohne dass der gesamte Datensatz lokal auf dem Trainingscomputer gespeichert werden muss. Allerdings steht dieser innovative Ansatz auch vor gewissen Herausforderungen.
Während Ray das Training mit großen Datensätzen erleichtert, stellt das Laden der Daten immer noch einen ernsthaften Engpass dar. In jeder Epoche muss der gesamte Datensatz aus dem Remote-Speicher neu geladen werden, was die GPU-Auslastung erheblich verringert und die Übertragungskosten der gespeicherten Daten erhöht. Daher benötigen wir eine optimierte Methode zur Datenverwaltung während des Trainingsprozesses.
Ray verwendet hauptsächlich Speicher zum Speichern von Daten, und sein In-Memory-Objektspeicher ist für große Aufgabendaten ausgelegt. Allerdings stößt dieser Ansatz bei datenintensiven Aufgaben auf Engpässe, da die für große Aufgaben erforderlichen Daten vor der Ausführung in den Arbeitsspeicher von Ray geladen werden müssen. Da die Größe des Objektspeichers in der Regel nicht für den Trainingsdatensatz geeignet ist, eignet er sich nicht zum Zwischenspeichern von Daten über mehrere Trainingsepochen hinweg, was auch die Notwendigkeit einer skalierbareren Datenverwaltungslösung für das Ray-Framework unterstreicht.
Einer der wichtigen Vorteile von Ray besteht darin, dass es die GPU für das Training nutzt und gleichzeitig die CPU für das Laden und Vorverarbeiten von Daten. Diese Methode stellt eine effiziente Nutzung der GPU-, CPU- und Speicherressourcen innerhalb des Ray-Clusters sicher, führt jedoch auch zu einer Unterauslastung der Festplattenressourcen und einem Mangel an effektiver Verwaltung. Es entstand eine revolutionäre Idee: Aufbau einer leistungsstarken Datenzugriffsschicht zum Zwischenspeichern und Zugreifen auf Trainingsdatensätze durch intelligentes Management ineffizienter Festplattenressourcen auf allen Computern. Dadurch kann die Gesamtleistung des Trainings erheblich verbessert und die Kosten für den Zugriff auf Remote-Speicher gesenkt werden.
Alluxio beschleunigt das Training großer Datensätze, indem ungenutzte Festplattenkapazität auf GPUs und benachbarten CPU-Maschinen geschickt und effizient für verteiltes Caching genutzt wird. Dieser innovative Ansatz verbessert die Datenladeleistung erheblich, was für das Training mit großen Datensätzen von entscheidender Bedeutung ist, und reduziert gleichzeitig die Abhängigkeit von Remote-Speicher und die damit verbundenen Datenübertragungskosten.

Die Integration von Alluxio verbessert die Datenverwaltungsfunktionen von Ray und bringt viele Vorteile mit sich:
√
Skalierbarkeit
Datenzugriff und Caching sind hoch skalierbar
√
Beschleunigen Sie den Datenzugriff
Nutzt Hochleistungsfestplatten zum Zwischenspeichern von Daten
Optimiert für das zufällige Lesen von Spaltenspeicherdateiformaten wie Parquet mit hoher Parallelität
Nullkopie
√
Zuverlässigkeit und Verfügbarkeit
Kein Single Point of Failure
Robuster Remote-Speicherzugriff bei Ausfällen
√
Flexibles Ressourcenmanagement
Weisen Sie Cache-Ressourcen je nach Arbeitslastbedarf dynamisch zu und geben Sie sie frei
Ray kann Arbeitsabläufe für maschinelles Lernen effektiv orchestrieren und nahtlos in Datenlade-, Vorverarbeitungs- und Schulungs-Frameworks integrieren. Als leistungsstarke Datenzugriffsschicht kann Alluxio KI/ML-Trainings- und Inferenzaufgaben erheblich optimieren, insbesondere wenn wiederholt auf Remote-Speicherdaten zugegriffen werden muss.
Ray nutzt PyArrow, um Daten zu laden und das Datenformat in das Arrow-Format zu konvertieren, das dann im nächsten Schritt vom Ray-Workflow verwendet wird. PyArrow delegiert Speicherverbindungsprobleme an das fsspec-Framework und Alluxio dient als Zwischencacheschicht zwischen Ray und zugrunde liegenden Speichersystemen (wie S3, Azure Blob Storage und Hugging Face).

Wenn Sie Alluxio als Caching-Ebene zwischen Ray und S3 verwenden, importieren Sie einfach Alluxiofs, initialisieren Sie das Alluxio-Dateisystem und ändern Sie das Ray-Dateisystem in Alluxio.
# Import fsspec & alluxio fsspec implementation
import fsspec
from alluxiofs import AlluxioFileSystem
fsspec.register_implementation("alluxio", AlluxioFileSystem)
# Create Alluxio filesystem with S3 as the underlying storage system
alluxio = fsspec.filesystem("alluxio", target_protocol=”s3”, etcd_host=args.etcd_host)
# Ray read data from Alluxio using S3 URL
ds = ray.data.read_images("s3://datasets/imagenet-full/train", filesystem=alluxio)
Wir verwenden den Ray Data-Nachttest von Ray Data, um die Datenladeleistung von Alluxio und S3 in derselben Region in verschiedenen Trainingsepochen zu vergleichen. Benchmark-Ergebnisse zeigen, dass durch die Integration von Alluxio mit Ray die Speicherkosten erheblich gesenkt und der Durchsatz verbessert werden können.

√
Verbesserte Datenzugriffsleistung: Wir haben festgestellt, dass der Durchsatz von Alluxio doppelt so hoch ist wie der von S3 im gleichen Bereich, wenn Rays Objektspeicher nicht durch Speicherdruck beeinträchtigt wird.
√
Unter Speicherdruck ist der Vorteil offensichtlicher: Es ist erwähnenswert, dass der Leistungsvorteil von Alluxio erheblich zunimmt und der Durchsatz fünfmal höher ist als bei S3, wenn der Objektspeicher von Ray einem Speicherdruck ausgesetzt ist.
Für Ray-Aufgaben ist es von großer strategischer Bedeutung, ungenutzte Festplattenressourcen als Speicher für verteilten Cache zu nutzen. Diese Methode verbessert die Datenladeleistung erheblich und ist besonders nützlich, wenn mit demselben Datensatz über mehrere Epochen hinweg trainiert oder optimiert wird. Darüber hinaus kann Ray, wenn er unter Speicherdruck steht, praktische Lösungen zur Optimierung und Vereinfachung des Datenverwaltungsprozesses in diesen Szenarien bereitstellen.
✦
[Assistent hinzufügen, um weitere Informationen zu erhalten]
✦

✦
【Aktuelle Popularität】
✦

✦
【Baodian-Markt】
✦






Dieser Artikel wurde über das öffentliche WeChat-Konto – Alluxio (Alluxio_China) – geteilt.
Bei Verstößen wenden Sie sich bitte zur Löschung an [email protected].
Dieser Artikel ist Teil des „ OSC Source Creation Plan “. Alle, die ihn lesen, sind herzlich eingeladen, mitzumachen und ihn gemeinsam zu teilen.