DeepSeek का Fire-Flyer File System
(github.com/deepseek-ai)Fire-Flyer फ़ाइल सिस्टम
Fire-Flyer फ़ाइल सिस्टम (3FS) एक उच्च-प्रदर्शन distributed फ़ाइल सिस्टम है, जिसे AI training और inference workloads की समस्याओं को हल करने के लिए डिज़ाइन किया गया है। यह आधुनिक SSDs और RDMA नेटवर्क का उपयोग करके एक shared storage layer प्रदान करता है, जो distributed application development को सरल बनाता है।
प्रदर्शन और उपयोगिता
- अलग की गई आर्किटेक्चर: हज़ारों SSDs और सैकड़ों storage nodes की network bandwidth को जोड़कर यह applications को locality की परवाह किए बिना storage resources तक पहुँचने देता है।
- मज़बूत consistency: यह Chain Replication with Apportioned Queries (CRAQ) को implement करता है, जिससे strong consistency मिलती है और application code सरल तथा समझने में आसान बनता है।
- फ़ाइल interface: इसने transactional key-value store (जैसे FoundationDB) पर आधारित एक stateless metadata service विकसित की है। फ़ाइल interface व्यापक रूप से जाना-पहचाना है और हर जगह उपयोग होता है। नई storage API सीखने की ज़रूरत नहीं है।
विभिन्न workloads
- डेटा तैयारी: data analysis pipeline के output को hierarchical directory structure में व्यवस्थित करता है और बड़ी मात्रा में intermediate outputs को कुशलता से प्रबंधित करता है।
- DataLoader: compute nodes में training samples तक random access सक्षम करता है, जिससे dataset को पहले से लोड करने या shuffle करने की आवश्यकता नहीं रहती।
- Checkpointing: बड़े पैमाने की training के लिए high-speed parallel checkpointing को support करता है।
- Inference के लिए KVCache: DRAM-आधारित caching का cost-effective विकल्प प्रदान करता है, साथ ही high throughput और काफ़ी बड़ी capacity देता है।
प्रदर्शन
1. पीक throughput
- 3FS cluster के बड़े पैमाने के read stress test में लगभग 6.6 TiB/s का अंतिम aggregate read throughput हासिल किया गया।
2. GraySort
- बड़े datasets की sorting performance मापने वाले GraySort benchmark का उपयोग करके इसका मूल्यांकन किया गया। 110.5 TiB डेटा को 8,192 partitions में sort करने में 30 मिनट 14 सेकंड लगे, और औसत throughput 3.66 TiB/मिनट रहा।
3. KVCache
- LLM inference process को optimize करने के लिए KVCache तकनीक का उपयोग किया गया। decoder layers में पिछले tokens के key और value vectors को cache करके duplicate computation से बचा जाता है। peak throughput अधिकतम 40 GiB/s तक पहुँचा।
दस्तावेज़
- Design notes
- Configuration guide
- USRBIO API reference
- P specification
source code देखें
- GitHub पर 3FS repository को clone करके source code देखा जा सकता है।
समस्या रिपोर्ट
- समस्या रिपोर्ट करने के लिए GitHub issue page पर जाएँ।
1 टिप्पणियां
Hacker News टिप्पणियाँ
यह डिज़ाइन मूल रूप से यहाँ प्रस्तुत किया गया था: लिंक
3FS का उपयोग AI training के दौरान computing nodes पर sample data को batch में पढ़ने वाले scenario में किया जाता है
3FS sample read पूरा करने के लिए Linux-आधारित AIO और io_uring interface का उपयोग करता है
Deepseek और OpenAI/Anthropic के बीच का अंतर, एक मायने में, practitioners और academics के अंतर जैसा है
distributed file system को सबसे कठिन software में से एक माना जाता है
संबंधित research paper: लिंक
मैं सोच रहा था कि FUSE-आधारित डिज़ाइन से ऐसी performance कैसे मिलती है
OpenAI आदि भी system में गहराई से शामिल हैं, लेकिन दूसरी जगहों पर ऐसी बारीकी कम देखने को मिलती है
वे निश्चित रूप से बहुत productive हैं
यह स्पष्ट नहीं है कि मौजूदा लोकप्रिय systems कहाँ और कैसे कम पड़ते हैं
यह जानने की जिज्ञासा है कि K8s जैसे orchestrator पर port करने का कोई लाभ है या नहीं
जिज्ञासा है कि क्या कोई यह समझा सकता है कि यह NIH syndrome नहीं है