Fire-Flyer File System ของ DeepSeek
(github.com/deepseek-ai)ระบบไฟล์ Fire-Flyer
ระบบไฟล์ Fire-Flyer (3FS) เป็นระบบไฟล์แบบกระจายประสิทธิภาพสูงที่ออกแบบมาเพื่อแก้ปัญหาของงานเทรนและอนุมาน AI โดยใช้ SSD รุ่นใหม่และเครือข่าย RDMA เพื่อมอบชั้นจัดเก็บข้อมูลแบบใช้ร่วมกันที่ช่วยให้การพัฒนาแอปพลิเคชันแบบกระจายง่ายขึ้น
ประสิทธิภาพและการใช้งาน
- สถาปัตยกรรมแบบแยกส่วน: รวมแบนด์วิดท์เครือข่ายจาก SSD หลายพันตัวและโหนดจัดเก็บข้อมูลหลายร้อยโหนด เพื่อให้แอปพลิเคชันเข้าถึงทรัพยากรสตอเรจได้โดยไม่ถูกจำกัดด้วย locality
- ความสอดคล้องที่เข้มงวด: ใช้งาน Chain Replication with Apportioned Queries (CRAQ) เพื่อให้ความสอดคล้องที่เข้มงวด และทำให้โค้ดแอปพลิเคชันเรียบง่ายและเข้าใจได้ง่าย
- อินเทอร์เฟซไฟล์: พัฒนาบริการเมทาดาทาแบบ stateless ที่ทำงานบน transactional key-value store (เช่น FoundationDB) อินเทอร์เฟซไฟล์เป็นสิ่งที่รู้จักกันอย่างแพร่หลายและใช้ได้ทุกที่ จึงไม่จำเป็นต้องเรียนรู้ storage API ใหม่
รองรับเวิร์กโหลดที่หลากหลาย
- การเตรียมข้อมูล: จัดระเบียบผลลัพธ์ของ data analysis pipeline ให้อยู่ในโครงสร้างไดเรกทอรีแบบลำดับชั้น และจัดการผลลัพธ์กลางจำนวนมากได้อย่างมีประสิทธิภาพ
- Data loader: เปิดให้เข้าถึงตัวอย่างสำหรับการเทรนแบบสุ่มได้ข้าม compute node โดยไม่จำเป็นต้อง preload หรือ shuffle ชุดข้อมูลล่วงหน้า
- Checkpointing: รองรับการทำ checkpoint แบบขนานความเร็วสูงสำหรับการเทรนขนาดใหญ่
- KVCache for Inference: เป็นทางเลือกที่คุ้มค่ากว่าการแคชบน DRAM พร้อมมอบ throughput สูงและความจุขนาดใหญ่พอสมควร
ประสิทธิภาพ
1. Peak throughput
- ในการทดสอบโหลดการอ่านขนาดใหญ่ของคลัสเตอร์ 3FS สามารถทำ aggregated read throughput สูงสุดได้ประมาณ 6.6 TiB/s
2. GraySort
- ประเมินด้วย GraySort benchmark ที่ใช้วัดประสิทธิภาพการเรียงลำดับของชุดข้อมูลขนาดใหญ่ โดยใช้เวลา 30 นาที 14 วินาทีในการเรียงข้อมูล 110.5 TiB เป็น 8,192 พาร์ทิชัน และทำ average throughput ได้ 3.66 TiB/นาที
3. KVCache
- ใช้เทคนิค KVCache เพื่อเพิ่มประสิทธิภาพกระบวนการอนุมานของ LLM โดยแคชเวกเตอร์คีย์และค่า ของโทเค็นก่อนหน้าใน decoder layer เพื่อหลีกเลี่ยงการคำนวณซ้ำ โดยมี peak throughput สูงสุดถึง 40 GiB/s
เอกสาร
- บันทึกการออกแบบ
- คู่มือการตั้งค่า
- เอกสารอ้างอิง USRBIO API
- สเปก P
ตรวจสอบซอร์สโค้ด
- สามารถโคลนรีโพซิทอรี 3FS จาก GitHub เพื่อตรวจสอบซอร์สโค้ดได้
การรายงานปัญหา
- หากต้องการรายงานปัญหา ให้ไปที่ หน้า GitHub Issues
1 ความคิดเห็น
ความเห็นจาก Hacker News
เดิมทีดีไซน์นี้ถูกนำเสนอไว้ที่นี่: ลิงก์
3FS ถูกใช้ในสถานการณ์ระหว่างการฝึก AI ที่โหนดคอมพิวต์อ่านข้อมูลตัวอย่างเป็นชุด
3FS ใช้ Linux-based AIO และอินเทอร์เฟซ io_uring เพื่อทำการอ่านตัวอย่างให้เสร็จสิ้น
ความต่างระหว่าง Deepseek กับ OpenAI/Anthropic อย่างหนึ่งคือความต่างระหว่างคนทำงานภาคปฏิบัติกับนักวิชาการ
ระบบไฟล์แบบกระจายถูกมองว่าเป็นซอฟต์แวร์ที่ทำยากที่สุดอย่างหนึ่ง
งานวิจัยที่เกี่ยวข้อง: ลิงก์
ฉันสงสัยว่าด้วยดีไซน์ที่อิง FUSE พวกเขาได้ประสิทธิภาพระดับนั้นมาได้อย่างไร
OpenAI และที่อื่น ๆ ก็มีส่วนร่วมกับระบบอย่างลึกซึ้งเช่นกัน แต่ที่อื่นกลับไม่ค่อยเห็นความใส่ใจละเอียดระดับนี้
พวกเขาผลิตงานได้มากจริง ๆ
ตอนนี้ยังไม่ชัดเจนว่าระบบยอดนิยมในปัจจุบันมีข้อบกพร่องตรงไหนและอย่างไร
ฉันสงสัยว่าการพอร์ตไปยัง orchestrator อย่าง K8s จะมีข้อดีหรือไม่
ฉันสงสัยว่าจะมีใครอธิบายให้เชื่อได้ไหมว่านี่ไม่ใช่อาการ NIH syndrome