Le système de fichiers Fire-Flyer de DeepSeek
(github.com/deepseek-ai)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
- Pour signaler un problème, rendez-vous sur la page des issues GitHub.
1 commentaires
Commentaires sur Hacker News
Ce design a été présenté à l’origine ici : lien
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
3FS utilise les interfaces AIO basées sur Linux et io_uring pour effectuer la lecture des échantillons
L’une des différences entre Deepseek et OpenAI/Anthropic tient à l’écart entre praticiens et universitaires
Les systèmes de fichiers distribués sont considérés comme l’un des logiciels les plus difficiles à concevoir
Article de recherche associé : lien
Je me demandais comment ils obtenaient de telles performances avec une conception basée sur FUSE
OpenAI et d’autres s’impliquent aussi en profondeur dans les systèmes, mais on voit rarement ce niveau de minutie ailleurs
Ils sont clairement productifs
Il n’est pas clair où et comment les systèmes actuellement populaires sont insuffisants
Je me demande s’il y aurait un avantage à porter cela vers un orchestrateur comme K8s
Je me demande si quelqu’un peut convaincre que ce n’est pas un cas de syndrome NIH