DeepSeeks Fire-Flyer-Dateisystem
(github.com/deepseek-ai)Fire-Flyer-Dateisystem
Das Fire-Flyer-Dateisystem (3FS) ist ein leistungsstarkes verteiltes Dateisystem, das zur Lösung der Herausforderungen von KI-Training und Inferenz-Workloads entwickelt wurde. Es nutzt moderne SSDs und RDMA-Netzwerke und bietet eine gemeinsam genutzte Storage-Schicht, die die Entwicklung verteilter Anwendungen vereinfacht.
Leistung und Benutzerfreundlichkeit
- Entkoppelte Architektur: Bündelt die Netzwerkbandbreite von Tausenden von SSDs und Hunderten von Storage-Knoten, sodass Anwendungen unabhängig von der Lokalität auf Storage-Ressourcen zugreifen können.
- Starke Konsistenz: Implementiert Chain Replication with Apportioned Queries (CRAQ) und bietet starke Konsistenz, wodurch Anwendungscode einfach und leicht verständlich bleibt.
- Datei-Interface: Entwickelt einen zustandslosen Metadatenservice auf Basis eines transaktionalen Key-Value-Stores (z. B. FoundationDB). Das Datei-Interface ist weithin bekannt und überall einsetzbar. Es ist nicht nötig, eine neue Storage-API zu erlernen.
Verschiedene Workloads
- Datenaufbereitung: Organisiert die Ausgaben von Datenanalyse-Pipelines in einer hierarchischen Verzeichnisstruktur und verwaltet große Mengen an Zwischenergebnissen effizient.
- Data Loader: Ermöglicht wahlfreien Zugriff auf Trainingsbeispiele über Compute-Knoten hinweg, sodass kein Vorabladen oder Shuffling des Datensatzes erforderlich ist.
- Checkpointing: Unterstützt schnelles paralleles Checkpointing für groß angelegtes Training.
- KVCache for Inference: Bietet eine kosteneffiziente Alternative zu DRAM-basiertem Caching sowie hohen Durchsatz und eine beträchtlich große Kapazität.
Leistung
1. Spitzendurchsatz
- In einem groß angelegten Lese-Stresstest des 3FS-Clusters wurde ein aggregierter Lesedurchsatz von etwa 6,6 TiB/s erreicht.
2. GraySort
- Die Bewertung erfolgte mit dem GraySort-Benchmark, der die Sortierleistung großer Datensätze misst. Das Sortieren von 110,5 TiB Daten in 8.192 Partitionen dauerte 30 Minuten und 14 Sekunden, wobei ein durchschnittlicher Durchsatz von 3,66 TiB/Minute erreicht wurde.
3. KVCache
- Zur Optimierung des LLM-Inferenzprozesses wird die KVCache-Technologie verwendet. Durch das Caching der Schlüssel- und Wertvektoren früherer Tokens in den Decoder-Layern werden redundante Berechnungen vermieden. Der Spitzendurchsatz erreichte bis zu 40 GiB/s.
Dokumentation
- Design-Notizen
- Konfigurationsleitfaden
- USRBIO-API-Referenz
- P-Spezifikation
Quellcode ansehen
- Der Quellcode kann eingesehen werden, indem das 3FS-Repository auf GitHub geklont wird.
Problem melden
- Um ein Problem zu melden, besuchen Sie die GitHub-Issue-Seite.
1 Kommentare
Hacker-News-Kommentare
Dieses Design wurde ursprünglich hier vorgestellt: Link
3FS wird während des AI-Trainings in Szenarien eingesetzt, in denen Rechenknoten Batch-Lesezugriffe auf Sample-Daten ausführen
3FS verwendet Linux-basiertes AIO und die io_uring-Schnittstelle, um das Lesen der Samples abzuschließen
Ein Unterschied zwischen Deepseek und OpenAI/Anthropic ist unter anderem der zwischen Praktikern und Akademikern
Verteilte Dateisysteme gelten als eine der schwierigsten Softwarekategorien überhaupt
Zugehörige Forschungsarbeit: Link
Ich habe mich gefragt, wie man mit einem FUSE-basierten Design eine solche Leistung erzielen kann
Auch OpenAI und andere sind tief in ihre Systeme involviert, aber anderswo sieht man diese Art von Sorgfalt nur selten
Sie sind auf jeden Fall produktiv
Es ist derzeit nicht klar, wo und wie populäre bestehende Systeme an ihre Grenzen stoßen
Ich frage mich, ob eine Portierung auf einen Orchestrator wie K8s Vorteile hätte
Ich frage mich, ob mich jemand überzeugen kann, dass es sich nicht um das NIH-Syndrom handelt