1 पॉइंट द्वारा GN⁺ 2025-03-01 | 1 टिप्पणियां | WhatsApp पर शेयर करें

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 टिप्पणियां

 
GN⁺ 2025-03-01
Hacker News टिप्पणियाँ
  • यह डिज़ाइन मूल रूप से यहाँ प्रस्तुत किया गया था: लिंक

    • यह file system कई वर्षों से विकसित और उपयोग में है
    • पारंपरिक file system की तुलना में यह model training पर अधिक केंद्रित है
    • जब random read बहुत अधिक हों, तो read cache और prefetch बेकार हो जाते हैं
    • performance सुधारने के लिए इन सुविधाओं के बिना file system डिज़ाइन किया गया
  • 3FS का उपयोग AI training के दौरान computing nodes पर sample data को batch में पढ़ने वाले scenario में किया जाता है

    • high-speed computing और storage interaction के ज़रिए model training को तेज़ करता है
    • यह बड़े पैमाने का random read workload है, और पढ़ा गया data थोड़े समय में दोबारा उपयोग नहीं होता
    • इसलिए "read cache" का उपयोग नहीं किया जा सकता, और readahead भी बेकार है
    • 3FS का implementation दूसरे file system से काफ़ी अलग है
  • 3FS sample read पूरा करने के लिए Linux-आधारित AIO और io_uring interface का उपयोग करता है

    • file cache बिल्कुल भी प्रभावी नहीं है, और system memory खर्च करके बाद के कार्यों को प्रभावित करता है
    • file cache बंद करके केवल Direct I/O mode में data पढ़ा जाता है
    • buffer pointer, offset और length को align करना पड़ता है
    • अगर user alignment करे तो अतिरिक्त memory copy होती है, इसलिए file system के अंदर alignment किया जाता है
    • इससे performance optimize होती है और user को सुविधा मिलती है
  • Deepseek और OpenAI/Anthropic के बीच का अंतर, एक मायने में, practitioners और academics के अंतर जैसा है

    • OpenAI में world-class प्रतिभाएँ हैं, लेकिन कुछ लोग ऐसे भी हैं जिनकी technical exposure कम है
  • distributed file system को सबसे कठिन software में से एक माना जाता है

    • सलाह दी जाती है कि FUSE के ऊपर भी file system शुरू से न लिखा जाए
    • जब Silicon Valley की कंपनियाँ 100वीं मीटिंग कर रही होती हैं, तब 60 से कम लोगों की टीम ने high-efficiency parallel file system विकसित किया
  • संबंधित research paper: लिंक

    • "Fire-Flyer AI-HPC: deep learning के लिए cost-effective software-hardware co-design"
    • deep learning और large language model के तेज़ विकास से compute capacity और bandwidth की मांग तेज़ी से बढ़ी है
    • Fire-Flyer AI-HPC architecture पेश किया गया है ताकि cost और energy consumption घटाया जा सके
    • HFReduce डिज़ाइन किया गया है ताकि allreduce communication को तेज़ किया जा सके
    • Computation-Storage Integrated Network में congestion रोकने के लिए कई उपाय लागू किए गए
  • मैं सोच रहा था कि FUSE-आधारित डिज़ाइन से ऐसी performance कैसे मिलती है

    • FUSE का उपयोग metadata प्रबंधन के लिए किया जाता है, और high performance पाने के लिए C++ client library को link करना पड़ता है
    • यह general-purpose नहीं है, और application को modify करना पड़ता है
    • फिर भी यह एक चतुर तरीका है, और यह जानने की जिज्ञासा है कि क्या LD_PRELOAD रणनीति को सामान्यीकृत किया जा सकता है
  • OpenAI आदि भी system में गहराई से शामिल हैं, लेकिन दूसरी जगहों पर ऐसी बारीकी कम देखने को मिलती है

    • बेहतरीन काम है, और उम्मीद है कि Deepseek आगे और भी शानदार चीज़ें करेगा
  • वे निश्चित रूप से बहुत productive हैं

    • कल क्या देखने को मिलेगा? DeepSeek OS जैसा कुछ?
  • यह स्पष्ट नहीं है कि मौजूदा लोकप्रिय systems कहाँ और कैसे कम पड़ते हैं

    • जिज्ञासा है कि data access pattern पारंपरिक use case से कैसे अलग है
  • यह जानने की जिज्ञासा है कि K8s जैसे orchestrator पर port करने का कोई लाभ है या नहीं

    • training के लिए यह overkill हो सकता है, लेकिन KVCache multi-replica inference के लिए उपयोगी हो सकता है
  • जिज्ञासा है कि क्या कोई यह समझा सकता है कि यह NIH syndrome नहीं है

    • यह क्यों SeaweedFS, Ceph, MinIO की जगह इस्तेमाल किया जाए, यह जानना चाहता हूँ