1 puan yazan GN⁺ 2025-03-01 | 1 yorum | WhatsApp'ta paylaş

Fire-Flyer dosya sistemi

Fire-Flyer dosya sistemi (3FS), yapay zeka eğitimi ve çıkarım iş yüklerinin sorunlarını çözmek için tasarlanmış yüksek performanslı dağıtık bir dosya sistemidir. Modern SSD'ler ve RDMA ağlarını kullanarak dağıtık uygulama geliştirmeyi basitleştiren paylaşımlı bir depolama katmanı sunar.

Performans ve kullanılabilirlik

  • Ayrıştırılmış mimari: Binlerce SSD'nin ve yüzlerce depolama düğümünün ağ bant genişliğini birleştirerek uygulamaların yerellikten bağımsız şekilde depolama kaynaklarına erişmesini sağlar.
  • Güçlü tutarlılık: Chain Replication with Apportioned Queries (CRAQ) uygulayarak güçlü tutarlılık sağlar ve uygulama kodunu daha basit ve anlaşılır hale getirir.
  • Dosya arayüzü: Durumsuz metadata hizmeti, işlemsel bir anahtar-değer deposu (ör. FoundationDB) üzerine geliştirilmiştir. Dosya arayüzü yaygın olarak bilinir ve her yerde kullanılır. Yeni bir depolama API'si öğrenmeye gerek yoktur.

Çeşitli iş yükleri

  • Veri hazırlama: Veri analizi pipeline'larının çıktısını hiyerarşik dizin yapısında düzenler ve büyük miktardaki ara çıktıyı verimli şekilde yönetir.
  • Data loader: Eğitim örneklerine compute node'lar genelinde rastgele erişim sağlar; böylece veri setinin önceden yüklenmesi veya karıştırılması gerekmez.
  • Checkpointing: Büyük ölçekli eğitim için yüksek hızlı paralel checkpointing destekler.
  • KVCache for Inference: DRAM tabanlı önbelleğe almaya maliyet açısından verimli bir alternatif sunar; yüksek throughput ve oldukça büyük kapasite sağlar.

Performans

1. Tepe throughput

  • 3FS kümesinin büyük ölçekli okuma stres testinde yaklaşık 6.6 TiB/s nihai toplam okuma throughput'una ulaşıldı.

2. GraySort

  • Büyük ölçekli veri kümelerinin sıralama performansını ölçen GraySort benchmark'ı ile değerlendirildi. 110.5 TiB veriyi 8.192 partition'a sıralamak 30 dakika 14 saniye sürdü ve ortalama throughput 3.66 TiB/dakika olarak gerçekleşti.

3. KVCache

  • LLM çıkarım sürecini optimize etmek için KVCache tekniği kullanılır. Decoder katmanındaki önceki token'ların anahtar ve değer vektörleri önbelleğe alınarak gereksiz hesaplama önlenir. Tepe throughput en fazla 40 GiB/s seviyesine ulaştı.

Belgeler

  • Tasarım notları
  • Kurulum kılavuzu
  • USRBIO API referansı
  • P spesifikasyonu

Kaynak kodunu inceleme

  • Kaynak kodunu incelemek için GitHub'da 3FS deposunu klonlayabilirsiniz.

Sorun bildirme

1 yorum

 
GN⁺ 2025-03-01
Hacker News yorumları
  • Bu tasarım ilk olarak burada tanıtıldı: link

    • Bu dosya sistemi birkaç yıldır geliştiriliyor ve kullanılıyor
    • Geleneksel dosya sistemlerine kıyasla model eğitimine daha fazla odaklanıyor
    • Rastgele okumanın yoğun olduğu durumlarda okuma önbelleği ve prefetch işe yaramıyor
    • Performansı artırmak için dosya sistemi bu özellikler olmadan tasarlanmış
  • 3FS, yapay zeka eğitimi sırasında hesaplama düğümlerinde örnek verilerin toplu okunması senaryosunda kullanılıyor

    • Yüksek hızlı hesaplama ve depolama etkileşimiyle model eğitimini hızlandırıyor
    • Bu, büyük ölçekli rastgele okuma iş yükü ve okunan veriler kısa süre içinde tekrar kullanılmıyor
    • Bu nedenle "okuma önbelleği" kullanılamıyor ve prefetch de işe yaramıyor
    • 3FS'nin uygulaması diğer dosya sistemlerinden oldukça farklı
  • 3FS, örnek okumayı tamamlamak için Linux tabanlı AIO ve io_uring arayüzlerini kullanıyor

    • Dosya önbelleği hiç etkili değil ve sistem belleğini tüketerek sonraki işleri etkiliyor
    • Dosya önbelleğini kapatıp verileri yalnızca Direct I/O modunda okuyor
    • Buffer pointer, offset ve length değerlerinin hizalanması gerekiyor
    • Kullanıcı hizalamayı yaparsa ek bellek kopyalama oluştuğundan, dosya sistemi hizalamayı kendi içinde yapıyor
    • Böylece performansı optimize ediyor ve kullanıcıya kolaylık sağlıyor
  • DeepSeek ile OpenAI/Anthropic arasındaki farklardan biri, uygulamacılar ile akademisyenler arasındaki fark

    • OpenAI'de dünya çapında yetenekler var ama teknik görünürlüğü düşük kişiler de bulunuyor
  • Dağıtık dosya sistemleri en zorlu yazılımlardan biri olarak görülüyor

    • FUSE üzerinde bile olsa, bir dosya sistemini sıfırdan yazmamanız tavsiye edilir
    • Silikon Vadisi şirketleri 100. toplantısını yaparken, 60 kişiden küçük bir ekip yüksek verimli paralel dosya sistemi geliştirdi
  • İlgili araştırma makalesi: link

    • "Fire-Flyer AI-HPC: Derin öğrenme için maliyet etkin bir yazılım-donanım ortak tasarımı"
    • Derin öğrenme ve büyük dil modellerindeki hızlı ilerleme, hesaplama gücü ve bant genişliği talebini keskin biçimde artırıyor
    • Fire-Flyer AI-HPC mimarisini tanıtarak maliyet ve enerji tüketimini azaltıyor
    • allreduce iletişimini hızlandırmak için HFReduce tasarlanmış
    • Computation-Storage Integrated Network üzerinde tıkanıklığı önlemek için çeşitli önlemler uygulanmış
  • FUSE tabanlı bir tasarımla bu performansı nasıl elde ettiklerini merak ettim

    • FUSE metadata yönetimi için kullanılıyor ve yüksek performans elde etmek için bir C++ istemci kütüphanesinin bağlanması gerekiyor
    • Genel amaçlı değil; uygulamaların değiştirilmesi gerekiyor
    • Yine de akıllıca bir yöntem ve LD_PRELOAD stratejisinin genelleştirilip genelleştirilemeyeceğini merak ediyorum
  • OpenAI ve benzerleri de sistemlere derinlemesine dahil oluyor ama başka yerlerde bu kadar özen görmek zor

    • Harika bir iş; umarım DeepSeek ileride daha da etkileyici işler yapar
  • Kesinlikle üretkenler

    • Yarın ne göreceğiz? DeepSeek OS gibi bir şey mi?
  • Şu anda popüler olan sistemlerin nerede ve nasıl yetersiz kaldığı net değil

    • Veri erişim örüntülerinin geleneksel kullanım senaryolarından nasıl farklı olduğunu merak ediyorum
  • Bunun K8s gibi bir orkestratöre taşınmasının bir faydası olup olmayacağını merak ediyorum

    • Eğitim için gereğinden fazla olabilir ama KVCache, çoklu kopyalı inference için faydalı olabilir
  • Bunun NIH sendromu olmadığını ikna edici biçimde açıklayabilecek biri var mı diye merak ediyorum

    • Neden SeaweedFS, Ceph veya MinIO yerine bunun kullanılması gerektiğini merak ediyorum