1 poin oleh GN⁺ 2025-03-01 | 1 komentar | Bagikan ke WhatsApp

Sistem file Fire-Flyer

Sistem file Fire-Flyer (3FS) adalah sistem file terdistribusi berkinerja tinggi yang dirancang untuk mengatasi tantangan pada beban kerja pelatihan dan inferensi AI. Sistem ini memanfaatkan SSD modern dan jaringan RDMA untuk menyediakan lapisan penyimpanan bersama yang menyederhanakan pengembangan aplikasi terdistribusi.

Kinerja dan kegunaan

  • Arsitektur terpisah: Menggabungkan bandwidth jaringan dari ribuan SSD dan ratusan node penyimpanan sehingga aplikasi dapat mengakses sumber daya penyimpanan tanpa terikat pada lokalitas.
  • Konsistensi kuat: Mengimplementasikan Chain Replication with Apportioned Queries (CRAQ) untuk memberikan konsistensi kuat, serta membuat kode aplikasi lebih sederhana dan mudah dipahami.
  • Antarmuka file: Mengembangkan layanan metadata stateless yang berbasis pada penyimpanan key-value transaksional (misalnya FoundationDB). Antarmuka file sudah dikenal luas dan digunakan di mana-mana. Tidak perlu mempelajari API penyimpanan baru.

Beragam beban kerja

  • Persiapan data: Menata keluaran pipeline analisis data dalam struktur direktori hierarkis dan mengelola keluaran antara dalam jumlah besar secara efisien.
  • Data loader: Memungkinkan akses acak ke sampel pelatihan di seluruh node komputasi sehingga tidak perlu melakukan pra-muat atau pengacakan dataset.
  • Checkpointing: Mendukung checkpointing paralel berkecepatan tinggi untuk pelatihan berskala besar.
  • KVCache untuk inferensi: Menyediakan alternatif yang lebih hemat biaya dibanding caching berbasis DRAM, dengan throughput tinggi dan kapasitas yang cukup besar.

Kinerja

1. Throughput puncak

  • Dalam uji stres pembacaan skala besar pada klaster 3FS, sistem ini mencapai throughput baca agregat akhir sekitar 6.6 TiB/s.

2. GraySort

  • Dievaluasi menggunakan benchmark GraySort yang mengukur kinerja penyortiran dataset berskala besar. Dibutuhkan 30 menit 14 detik untuk menyortir 110.5 TiB data ke dalam 8,192 partisi, dengan throughput rata-rata 3.66 TiB/menit.

3. KVCache

  • Menggunakan teknologi KVCache untuk mengoptimalkan proses inferensi LLM. Sistem ini meng-cache vektor key dan value dari token sebelumnya pada layer decoder untuk menghindari perhitungan berulang. Throughput puncak mencapai hingga 40 GiB/s.

Dokumentasi

  • Catatan desain
  • Panduan konfigurasi
  • Referensi API USRBIO
  • Spesifikasi P

Melihat kode sumber

  • Anda dapat memeriksa kode sumber dengan meng-clone repositori 3FS di GitHub.

Melaporkan masalah

1 komentar

 
GN⁺ 2025-03-01
Komentar Hacker News
  • Desain ini awalnya dipresentasikan di sini: tautan

    • Sistem file ini telah dikembangkan dan digunakan selama beberapa tahun
    • Sistem ini lebih difokuskan pada pelatihan model dibandingkan sistem file tradisional
    • Jika pembacaan acak sangat banyak, cache baca dan prefetch menjadi tidak berguna
    • Untuk meningkatkan performa, sistem file ini dirancang tanpa fitur-fitur tersebut
  • 3FS digunakan dalam skenario pembacaan batch data sampel dari node komputasi selama pelatihan AI

    • Mempercepat pelatihan model melalui interaksi berkecepatan tinggi antara komputasi dan penyimpanan
    • Ini adalah pekerjaan pembacaan acak skala besar, dan data yang dibaca tidak digunakan kembali dalam waktu singkat
    • Karena itu, "cache baca" tidak dapat digunakan, dan preread juga tidak berguna
    • Implementasi 3FS sangat berbeda dari sistem file lainnya
  • 3FS menggunakan antarmuka AIO berbasis Linux dan io_uring untuk menyelesaikan pembacaan sampel

    • Cache file sama sekali tidak efektif, dan justru menghabiskan memori sistem sehingga memengaruhi pekerjaan berikutnya
    • Data dibaca dengan menonaktifkan cache file dan hanya menggunakan mode Direct I/O
    • Pointer buffer, offset, dan panjang harus disejajarkan
    • Jika pengguna melakukan alignment sendiri, akan terjadi penyalinan memori tambahan, jadi alignment dilakukan di dalam sistem file
    • Ini mengoptimalkan performa sekaligus memberi kemudahan bagi pengguna
  • Salah satu perbedaan antara Deepseek dan OpenAI/Anthropic adalah perbedaan antara praktisi dan akademisi

    • OpenAI memiliki talenta kelas dunia, tetapi ada juga orang yang kurang terekspos secara teknis
  • Sistem file terdistribusi dianggap sebagai salah satu perangkat lunak yang paling sulit

    • Ada nasihat agar tidak menulis sistem file dari nol, bahkan di atas FUSE sekalipun
    • Saat perusahaan Silicon Valley mengadakan rapat ke-100 mereka, tim dengan kurang dari 60 orang justru mengembangkan sistem file paralel berperforma tinggi
  • Makalah riset terkait: tautan

    • "Fire-Flyer AI-HPC: co-design perangkat lunak-perangkat keras yang hemat biaya untuk deep learning"
    • Dengan pesatnya perkembangan deep learning dan large language model, permintaan terhadap daya komputasi dan bandwidth melonjak tajam
    • Memperkenalkan arsitektur Fire-Flyer AI-HPC untuk mengurangi biaya dan konsumsi energi
    • Merancang HFReduce untuk mempercepat komunikasi allreduce
    • Menerapkan berbagai langkah untuk mencegah kemacetan pada Computation-Storage Integrated Network
  • Saya penasaran bagaimana mereka mendapatkan performa seperti itu dengan desain berbasis FUSE

    • FUSE digunakan untuk mengelola metadata, dan untuk mendapatkan performa tinggi perlu menghubungkan library klien C++
    • Ini bukan untuk penggunaan umum, dan aplikasi perlu dimodifikasi
    • Tetap saja ini pendekatan yang cerdas, dan saya penasaran apakah strategi LD_PRELOAD bisa digeneralisasi
  • OpenAI dan lainnya juga terlibat sangat dalam di level sistem, tetapi sulit melihat ketelitian seperti ini di tempat lain

    • Pekerjaan yang luar biasa, dan semoga Deepseek melakukan hal-hal yang lebih keren ke depannya
  • Mereka jelas sangat produktif

    • Besok kita akan melihat apa? Sesuatu seperti DeepSeek OS?
  • Saat ini tidak jelas di mana dan bagaimana sistem populer yang ada mengalami kekurangan

    • Saya penasaran bagaimana pola akses data ini berbeda dari use case tradisional
  • Saya penasaran apakah ada keuntungan jika ini di-port ke orkestrator seperti K8s

    • Mungkin berlebihan untuk pelatihan, tetapi KVCache bisa berguna untuk inferensi dengan banyak replika
  • Saya penasaran apakah ada yang bisa meyakinkan bahwa ini bukan sindrom NIH

    • Saya ingin tahu mengapa ini harus digunakan alih-alih SeaweedFS, Ceph, atau MinIO