1 points par GN⁺ 2025-03-01 | 1 commentaires | Partager sur WhatsApp

Système de fichiers Fire-Flyer

Le système de fichiers Fire-Flyer (3FS) est un système de fichiers distribué haute performance conçu pour résoudre les problématiques des charges de travail d'entraînement et d'inférence en IA. Il s'appuie sur des SSD de dernière génération et des réseaux RDMA pour fournir une couche de stockage partagée qui simplifie le développement d'applications distribuées.

Performances et facilité d'utilisation

  • Architecture désagrégée : combine la bande passante réseau de milliers de SSD et de centaines de nœuds de stockage afin de permettre aux applications d'accéder aux ressources de stockage sans contrainte de localité.
  • Cohérence forte : implémente Chain Replication with Apportioned Queries (CRAQ) pour offrir une cohérence forte, ce qui rend le code applicatif plus simple et plus facile à comprendre.
  • Interface fichier : un service de métadonnées sans état a été développé sur la base d'un magasin transactionnel clé-valeur (par ex. FoundationDB). L'interface fichier est largement connue et utilisée partout. Il n'est pas nécessaire d'apprendre une nouvelle API de stockage.

Charges de travail variées

  • Préparation des données : organise la sortie des pipelines d'analyse de données dans une structure de répertoires hiérarchique et gère efficacement de gros volumes de sorties intermédiaires.
  • Data loader : permet un accès aléatoire aux échantillons d'entraînement à travers les nœuds de calcul, sans nécessiter de préchargement ni de brassage du dataset.
  • Checkpointing : prend en charge le checkpointing parallèle à haute vitesse pour l'entraînement à grande échelle.
  • KVCache for Inference : offre une alternative économique au caching basé sur la DRAM, avec un débit élevé et une capacité nettement plus importante.

Performances

1. Débit de pointe

  • Lors d'un test de stress de lecture à grande échelle sur un cluster 3FS, un débit de lecture agrégé final d'environ 6.6 TiB/s a été atteint.

2. GraySort

  • L'évaluation a été réalisée à l'aide du benchmark GraySort, qui mesure les performances de tri sur de grands jeux de données. Le tri de 110.5 TiB de données en 8,192 partitions a pris 30 minutes et 14 secondes, avec un débit moyen de 3.66 TiB/min.

3. KVCache

  • La technologie KVCache est utilisée pour optimiser le processus d'inférence des LLM. Elle évite les calculs redondants en mettant en cache les vecteurs de clés et de valeurs des tokens précédents dans les couches du décodeur. Le débit de pointe atteint jusqu'à 40 GiB/s.

Documentation

  • Notes de conception
  • Guide de configuration
  • Référence de l'API USRBIO
  • Spécification P

Consulter le code source

  • Vous pouvez consulter le code source en clonant le dépôt 3FS sur GitHub.

Signaler un problème

1 commentaires

 
GN⁺ 2025-03-01
Commentaires sur Hacker News
  • Ce design a été présenté à l’origine ici : lien

    • Ce système de fichiers est développé et utilisé depuis plusieurs années
    • Il est davantage axé sur l’entraînement de modèles que les systèmes de fichiers traditionnels
    • Quand il y a beaucoup de lectures aléatoires, le cache de lecture et le préchargement ne servent à rien
    • Le système de fichiers a donc été conçu sans ces fonctions afin d’améliorer les performances
  • 3FS est utilisé pendant l’entraînement IA dans des scénarios où les nœuds de calcul lisent par lots des données d’échantillons

    • Il accélère l’entraînement des modèles grâce à une interaction à haute vitesse entre calcul et stockage
    • Il s’agit d’une charge de travail de lectures aléatoires massives, et les données lues ne sont pas réutilisées à court terme
    • Par conséquent, le « cache de lecture » ne peut pas être utilisé, et le préchargement n’est d’aucune utilité
    • L’implémentation de 3FS est donc très différente de celle des autres systèmes de fichiers
  • 3FS utilise les interfaces AIO basées sur Linux et io_uring pour effectuer la lecture des échantillons

    • Le cache de fichiers n’a absolument aucun effet et consomme de la mémoire système, ce qui affecte les tâches suivantes
    • Il désactive le cache de fichiers et lit les données uniquement en mode Direct I/O
    • Il faut aligner le pointeur de buffer, l’offset et la longueur
    • Si l’utilisateur fait lui-même l’alignement, cela entraîne des copies mémoire supplémentaires ; le système de fichiers effectue donc l’alignement en interne
    • Cela optimise les performances et améliore la commodité pour l’utilisateur
  • L’une des différences entre Deepseek et OpenAI/Anthropic tient à l’écart entre praticiens et universitaires

    • OpenAI dispose de talents de classe mondiale, mais aussi de personnes moins exposées aux aspects techniques concrets
  • Les systèmes de fichiers distribués sont considérés comme l’un des logiciels les plus difficiles à concevoir

    • On reçoit souvent le conseil de ne jamais écrire un système de fichiers from scratch, même au-dessus de FUSE
    • Pendant qu’une entreprise de la Silicon Valley en est à sa 100e réunion, une équipe de moins de 60 personnes a développé un système de fichiers parallèle très efficace
  • Article de recherche associé : lien

    • « Fire-Flyer AI-HPC: une co-conception logiciel-matériel rentable pour le deep learning »
    • Le développement rapide du deep learning et des grands modèles de langage fait exploser la demande en puissance de calcul et en bande passante
    • L’architecture Fire-Flyer AI-HPC est présentée pour réduire les coûts et la consommation d’énergie
    • HFReduce a été conçu pour accélérer la communication allreduce
    • Plusieurs mesures ont été mises en œuvre pour éviter la congestion du Computation-Storage Integrated Network
  • Je me demandais comment ils obtenaient de telles performances avec une conception basée sur FUSE

    • FUSE sert à gérer les métadonnées, et il faut brancher une bibliothèque cliente C++ pour obtenir de hautes performances
    • Ce n’est pas d’usage général, et il faut modifier l’application
    • Cela reste une approche astucieuse, et je me demande si la stratégie LD_PRELOAD pourrait être généralisée
  • OpenAI et d’autres s’impliquent aussi en profondeur dans les systèmes, mais on voit rarement ce niveau de minutie ailleurs

    • C’est un excellent travail, et j’espère que Deepseek fera encore des choses plus impressionnantes à l’avenir
  • Ils sont clairement productifs

    • Qu’allons-nous voir demain ? Quelque chose comme DeepSeek OS ?
  • Il n’est pas clair où et comment les systèmes actuellement populaires sont insuffisants

    • Je me demande en quoi les schémas d’accès aux données diffèrent des cas d’usage traditionnels
  • Je me demande s’il y aurait un avantage à porter cela vers un orchestrateur comme K8s

    • C’est peut-être excessif pour l’entraînement, mais le KVCache pourrait être utile pour l’inférence à plusieurs réplicas
  • Je me demande si quelqu’un peut convaincre que ce n’est pas un cas de syndrome NIH

    • Je me demande pourquoi il faudrait utiliser cela plutôt que SeaweedFS, Ceph ou MinIO